diff options
-rw-r--r-- | clang-tools-extra/clangd/XRefs.cpp | 3 | ||||
-rw-r--r-- | clang-tools-extra/unittests/clangd/SymbolInfoTests.cpp | 8 |
2 files changed, 9 insertions, 2 deletions
diff --git a/clang-tools-extra/clangd/XRefs.cpp b/clang-tools-extra/clangd/XRefs.cpp index 2f0990a9a32..9138cf7e7ff 100644 --- a/clang-tools-extra/clangd/XRefs.cpp +++ b/clang-tools-extra/clangd/XRefs.cpp @@ -794,7 +794,8 @@ std::vector<SymbolDetails> getSymbolInfo(ParsedAST &AST, Position Pos) { SymbolDetails NewMacro; NewMacro.name = Macro.Name; llvm::SmallString<32> USR; - if (!index::generateUSRForMacro(NewMacro.name, Loc, SM, USR)) { + if (!index::generateUSRForMacro(NewMacro.name, + Macro.Info->getDefinitionLoc(), SM, USR)) { NewMacro.USR = USR.str(); NewMacro.ID = SymbolID(NewMacro.USR); } diff --git a/clang-tools-extra/unittests/clangd/SymbolInfoTests.cpp b/clang-tools-extra/unittests/clangd/SymbolInfoTests.cpp index 369c2e75e58..69a27f23394 100644 --- a/clang-tools-extra/unittests/clangd/SymbolInfoTests.cpp +++ b/clang-tools-extra/unittests/clangd/SymbolInfoTests.cpp @@ -149,7 +149,13 @@ TEST(SymbolInfoTests, All) { #define MACRO 5\nint i = MAC^RO; )cpp", {CreateExpectedSymbolDetails("MACRO", "", - "c:TestTU.cpp@55@macro@MACRO")}}, + "c:TestTU.cpp@38@macro@MACRO")}}, + { + R"cpp( // Macro reference + #define MACRO 5\nint i = MACRO^; + )cpp", + {CreateExpectedSymbolDetails("MACRO", "", + "c:TestTU.cpp@38@macro@MACRO")}}, { R"cpp( // Multiple symbols returned - using overloaded function name void foo() {} |