]> granicus.if.org Git - clang/commitdiff
For SourceManager::isBeforeInTranslationUnit, a location pointing
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>
Mon, 19 Sep 2011 20:39:57 +0000 (20:39 +0000)
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>
Mon, 19 Sep 2011 20:39:57 +0000 (20:39 +0000)
inside a macro argument should be regarded as coming before
the location of the expanded tokens.

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

lib/Basic/SourceManager.cpp
test/Index/annotate-tokens-pp.c

index 64481476d7f8a83f56aa04251efa6da494d0ea05..0e0ed2aa69597c908de07cafeb8c0f965e884499 100644 (file)
@@ -1598,7 +1598,7 @@ static bool MoveUpIncludeHierarchy(std::pair<FileID, unsigned> &Loc,
   SourceLocation UpperLoc;
   const SrcMgr::SLocEntry &Entry = SM.getSLocEntry(Loc.first);
   if (Entry.isExpansion())
-    UpperLoc = Entry.getExpansion().getExpansionLocStart();
+    UpperLoc = Entry.getExpansion().getExpansionLocEnd();
   else
     UpperLoc = Entry.getFile().getIncludeLoc();
   
index 1d0657894eb23a57527d144f7ce84fd1f7bb4562..ecdabb6dbc9d28904768bac1fbfc90606d167121 100644 (file)
@@ -122,7 +122,8 @@ const char *fname = __FILE__;
 // CHECK: Identifier: "t" [16:25 - 16:26] DeclRefExpr=t:15:7
 // CHECK: Punctuation: "," [16:26 - 16:27]
 // CHECK: Identifier: "z" [16:27 - 16:28] DeclRefExpr=z:14:7
-// CHECK: Punctuation: ")" [16:28 - 16:29] UnexposedStmt=
+// FIXME: The token below should really be annotated as "macro expansion=REVERSE_MACRO:10:9"
+// CHECK: Punctuation: ")" [16:28 - 16:29] VarDecl=k:16:7 (Definition)
 // CHECK: Punctuation: ";" [16:29 - 16:30] UnexposedStmt=
 // CHECK: Keyword: "int" [17:3 - 17:6] VarDecl=j:17:7 (Definition)
 // CHECK: Identifier: "j" [17:7 - 17:8] VarDecl=j:17:7 (Definition)
@@ -132,7 +133,8 @@ const char *fname = __FILE__;
 // CHECK: Identifier: "k" [17:23 - 17:24] DeclRefExpr=k:16:7
 // CHECK: Punctuation: "+" [17:25 - 17:26] UnexposedExpr=
 // CHECK: Identifier: "k" [17:27 - 17:28] DeclRefExpr=k:16:7
-// CHECK: Punctuation: ")" [17:28 - 17:29] UnexposedStmt=
+// FIXME: The token below should really be annotated as "macro expansion=TWICE_MACRO:11:9"
+// CHECK: Punctuation: ")" [17:28 - 17:29] VarDecl=j:17:7 (Definition)
 // CHECK: Punctuation: ";" [17:29 - 17:30] UnexposedStmt=
 // CHECK: Keyword: "int" [18:3 - 18:6] VarDecl=w:18:7 (Definition)
 // CHECK: Identifier: "w" [18:7 - 18:8] VarDecl=w:18:7 (Definition)