diff options
| author | Eric Liu <ioeric@google.com> | 2018-07-09 18:54:51 +0000 |
|---|---|---|
| committer | Eric Liu <ioeric@google.com> | 2018-07-09 18:54:51 +0000 |
| commit | a62c9d62a32bbbba652b97e21d21e05b4b10fb94 (patch) | |
| tree | eda38a605fcd5e850a99b0e53f4f865902d44fbf | |
| parent | 0566f2352ae5286f73ed5fa2d7cc65933f486aac (diff) | |
| download | bcm5719-llvm-a62c9d62a32bbbba652b97e21d21e05b4b10fb94.tar.gz bcm5719-llvm-a62c9d62a32bbbba652b97e21d21e05b4b10fb94.zip | |
[clangd] Make sure macro information exists before increasing usage count.
llvm-svn: 336581
| -rw-r--r-- | clang-tools-extra/clangd/index/SymbolCollector.cpp | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/clang-tools-extra/clangd/index/SymbolCollector.cpp b/clang-tools-extra/clangd/index/SymbolCollector.cpp index 1ad75e14cba..568dff9594a 100644 --- a/clang-tools-extra/clangd/index/SymbolCollector.cpp +++ b/clang-tools-extra/clangd/index/SymbolCollector.cpp @@ -371,7 +371,6 @@ bool SymbolCollector::handleMacroOccurence(const IdentifierInfo *Name, Roles & static_cast<unsigned>(index::SymbolRole::Definition))) return true; - llvm::SmallString<128> USR; if (index::generateUSRForMacro(Name->getName(), MI->getDefinitionLoc(), SM, USR)) @@ -433,11 +432,10 @@ void SymbolCollector::finish() { assert(PP); for (const IdentifierInfo *II : ReferencedMacros) { llvm::SmallString<128> USR; - if (!index::generateUSRForMacro( - II->getName(), - PP->getMacroDefinition(II).getMacroInfo()->getDefinitionLoc(), - PP->getSourceManager(), USR)) - IncRef(SymbolID(USR)); + if (const auto *MI = PP->getMacroDefinition(II).getMacroInfo()) + if (!index::generateUSRForMacro(II->getName(), MI->getDefinitionLoc(), + PP->getSourceManager(), USR)) + IncRef(SymbolID(USR)); } } ReferencedDecls.clear(); |

