From: Argyrios Kyrtzidis Date: Mon, 19 Sep 2011 20:39:57 +0000 (+0000) Subject: For SourceManager::isBeforeInTranslationUnit, a location pointing X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=50402470f07f720c509c8797f40a106a0d4af6a7;p=clang For SourceManager::isBeforeInTranslationUnit, a location pointing 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 --- diff --git a/lib/Basic/SourceManager.cpp b/lib/Basic/SourceManager.cpp index 64481476d7..0e0ed2aa69 100644 --- a/lib/Basic/SourceManager.cpp +++ b/lib/Basic/SourceManager.cpp @@ -1598,7 +1598,7 @@ static bool MoveUpIncludeHierarchy(std::pair &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(); diff --git a/test/Index/annotate-tokens-pp.c b/test/Index/annotate-tokens-pp.c index 1d0657894e..ecdabb6dbc 100644 --- a/test/Index/annotate-tokens-pp.c +++ b/test/Index/annotate-tokens-pp.c @@ -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)