diff --git a/clang/lib/Basic/SourceManager.cpp b/clang/lib/Basic/SourceManager.cpp index 64481476d7f8..0e0ed2aa6959 100644 --- a/clang/lib/Basic/SourceManager.cpp +++ b/clang/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/clang/test/Index/annotate-tokens-pp.c b/clang/test/Index/annotate-tokens-pp.c index 1d0657894eb2..ecdabb6dbc9d 100644 --- a/clang/test/Index/annotate-tokens-pp.c +++ b/clang/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)