For SourceManager::isBeforeInTranslationUnit, a location pointing

inside a macro argument should be regarded as coming before
the location of the expanded tokens.

llvm-svn: 140053
This commit is contained in:
Argyrios Kyrtzidis 2011-09-19 20:39:57 +00:00
parent b527a7cbf8
commit b4199b659b
2 changed files with 5 additions and 3 deletions

View 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();

View 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)