Author: rtrieu Date: Thu Jun 9 17:03:04 2016 New Revision: 272318 URL: http://llvm.org/viewvc/llvm-project?rev=272318&view=rev Log: Fix a crash in the AST dumper.
Boxed expressions in a template context may have a null method decl. If so, don't try to access the selector. Modified: cfe/trunk/lib/AST/ASTDumper.cpp cfe/trunk/test/Misc/ast-dump-decl.mm Modified: cfe/trunk/lib/AST/ASTDumper.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/ASTDumper.cpp?rev=272318&r1=272317&r2=272318&view=diff ============================================================================== --- cfe/trunk/lib/AST/ASTDumper.cpp (original) +++ cfe/trunk/lib/AST/ASTDumper.cpp Thu Jun 9 17:03:04 2016 @@ -2177,8 +2177,10 @@ void ASTDumper::VisitObjCMessageExpr(con void ASTDumper::VisitObjCBoxedExpr(const ObjCBoxedExpr *Node) { VisitExpr(Node); - OS << " selector="; - Node->getBoxingMethod()->getSelector().print(OS); + if (auto *BoxingMethod = Node->getBoxingMethod()) { + OS << " selector="; + BoxingMethod->getSelector().print(OS); + } } void ASTDumper::VisitObjCAtCatchStmt(const ObjCAtCatchStmt *Node) { Modified: cfe/trunk/test/Misc/ast-dump-decl.mm URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Misc/ast-dump-decl.mm?rev=272318&r1=272317&r2=272318&view=diff ============================================================================== --- cfe/trunk/test/Misc/ast-dump-decl.mm (original) +++ cfe/trunk/test/Misc/ast-dump-decl.mm Thu Jun 9 17:03:04 2016 @@ -21,3 +21,13 @@ // CHECK-NEXT: CXXConstructExpr // CHECK-NEXT: ObjCIvarDecl{{.*}} X // CHECK-NEXT: ObjCMethodDecl{{.*}} foo + +// @() boxing expressions. +template <typename T> +struct BoxingTest { + static id box(T value) { + return @(value); + } +}; + +// CHECK: ObjCBoxedExpr{{.*}} '<dependent type>'{{$}} _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits