]> granicus.if.org Git - clang/commitdiff
If an ObjCMessageExpr is implicit, there are no source locations for the
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>
Thu, 12 Jan 2012 22:34:19 +0000 (22:34 +0000)
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>
Thu, 12 Jan 2012 22:34:19 +0000 (22:34 +0000)
selector identifiers.

It was difficult to form a test case for it unfortunately.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148053 91177308-0d34-0410-b5e6-96231b3b80d8

lib/AST/Expr.cpp

index e7177aabe2b645c483ff5a65344d9f50499614b1..b94a08db73a410eb160797e510cd7960c99e4ce7 100644 (file)
@@ -2872,9 +2872,11 @@ void ObjCMessageExpr::initArgsAndSelLocs(ArrayRef<Expr *> Args,
     MyArgs[I] = Args[I];
   }
 
-  SelLocsKind = SelLocsK;
-  if (SelLocsK == SelLoc_NonStandard)
-    std::copy(SelLocs.begin(), SelLocs.end(), getStoredSelLocs());
+  if (!isImplicit()) {
+    SelLocsKind = SelLocsK;
+    if (SelLocsK == SelLoc_NonStandard)
+      std::copy(SelLocs.begin(), SelLocs.end(), getStoredSelLocs());
+  }
 }
 
 ObjCMessageExpr *ObjCMessageExpr::Create(ASTContext &Context, QualType T,