diff options
author | Balazs Keri <1.int32@gmail.com> | 2019-08-06 12:10:16 +0000 |
---|---|---|
committer | Balazs Keri <1.int32@gmail.com> | 2019-08-06 12:10:16 +0000 |
commit | 4e79097dc7c30ea8e1a7e96b740113e7cd9e635d (patch) | |
tree | 176651a03cb1f9ccc2fb1df0bed6a69769eec257 /clang/tools/clang-extdef-mapping/ClangExtDefMapGen.cpp | |
parent | 56bdb0c5082547229ff668405bde2ef5254ee817 (diff) | |
download | bcm5719-llvm-4e79097dc7c30ea8e1a7e96b740113e7cd9e635d.tar.gz bcm5719-llvm-4e79097dc7c30ea8e1a7e96b740113e7cd9e635d.zip |
[CrossTU] Handle case when no USR could be generated during Decl search.
Summary:
When searching for a declaration to be loaded the "lookup name" for every
other Decl is computed. If the USR can not be determined here should be
not an assert, instead skip this Decl.
Reviewers: martong
Reviewed By: martong
Subscribers: rnkovacs, dkrupp, Szelethus, gamesh411, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D65445
llvm-svn: 368020
Diffstat (limited to 'clang/tools/clang-extdef-mapping/ClangExtDefMapGen.cpp')
-rw-r--r-- | clang/tools/clang-extdef-mapping/ClangExtDefMapGen.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/clang/tools/clang-extdef-mapping/ClangExtDefMapGen.cpp b/clang/tools/clang-extdef-mapping/ClangExtDefMapGen.cpp index 7a374698f7b..3c015fef93c 100644 --- a/clang/tools/clang-extdef-mapping/ClangExtDefMapGen.cpp +++ b/clang/tools/clang-extdef-mapping/ClangExtDefMapGen.cpp @@ -76,7 +76,12 @@ void MapExtDefNamesConsumer::handleDecl(const Decl *D) { void MapExtDefNamesConsumer::addIfInMain(const DeclaratorDecl *DD, SourceLocation defStart) { - std::string LookupName = CrossTranslationUnitContext::getLookupName(DD); + llvm::Optional<std::string> LookupName = + CrossTranslationUnitContext::getLookupName(DD); + if (!LookupName) + return; + assert(!LookupName->empty() && "Lookup name should be non-empty."); + if (CurrentFileName.empty()) { CurrentFileName = SM.getFileEntryForID(SM.getMainFileID())->tryGetRealPathName(); @@ -89,7 +94,7 @@ void MapExtDefNamesConsumer::addIfInMain(const DeclaratorDecl *DD, case VisibleNoLinkage: case UniqueExternalLinkage: if (SM.isInMainFile(defStart)) - Index[LookupName] = CurrentFileName; + Index[*LookupName] = CurrentFileName; break; default: break; |