forked from OSchip/llvm-project
[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
This commit is contained in:
parent
8c18719bae
commit
f3753ad774
|
@ -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) {
|
||||
|
|
Loading…
Reference in New Issue