Author: Balazs Benics Date: 2021-11-19T11:31:01+01:00 New Revision: f3753ad774506804ef5df065b48268712bdaa554
URL: https://github.com/llvm/llvm-project/commit/f3753ad774506804ef5df065b48268712bdaa554 DIFF: https://github.com/llvm/llvm-project/commit/f3753ad774506804ef5df065b48268712bdaa554.diff LOG: [ASTImporter][NFC] Dump decl name at assertion violation Sometimes it would be useful to see which Decl kind caused some issue, along with the name of the concrete instance of the Decl in the source code. Reviewed By: martong Differential Revision: https://reviews.llvm.org/D113668 Added: Modified: clang/lib/AST/ASTImporterLookupTable.cpp Removed: ################################################################################ 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) { _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits