diff --git a/clang/lib/AST/ASTImporterLookupTable.cpp b/clang/lib/AST/ASTImporterLookupTable.cpp index bf772c20d32ee..ef42561c6f941 100644 --- a/clang/lib/AST/ASTImporterLookupTable.cpp +++ b/clang/lib/AST/ASTImporterLookupTable.cpp @@ -14,6 +14,7 @@ #include "clang/AST/ASTImporterLookupTable.h" #include "clang/AST/Decl.h" #include "clang/AST/RecursiveASTVisitor.h" +#include "llvm/Support/FormatVariadic.h" namespace clang { @@ -93,10 +94,19 @@ void ASTImporterLookupTable::add(DeclContext *DC, NamedDecl *ND) { } void ASTImporterLookupTable::remove(DeclContext *DC, NamedDecl *ND) { - DeclList &Decls = LookupTable[DC][ND->getDeclName()]; + const DeclarationName Name = ND->getDeclName(); + DeclList &Decls = LookupTable[DC][Name]; bool EraseResult = Decls.remove(ND); (void)EraseResult; - assert(EraseResult == true && "Trying to remove not contained Decl"); +#ifndef NDEBUG + if (!EraseResult) { + std::string Message = + llvm::formatv("Trying to remove not contained Decl '{0}' of type {1}", + Name.getAsString(), DC->getDeclKindName()) + .str(); + llvm_unreachable(Message.c_str()); + } +#endif } void ASTImporterLookupTable::add(NamedDecl *ND) {