Skip to content

Commit 6fc1bf1

Browse files
committed
Add method to forget generated declarations
1 parent 8e4d289 commit 6fc1bf1

File tree

2 files changed

+10
-0
lines changed

2 files changed

+10
-0
lines changed

clang/include/clang/CodeGen/ModuleBuilder.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@ class CodeGenerator : public ASTConsumer {
106106
const CodeGenOptions& CGO);
107107

108108
void forgetGlobal(llvm::GlobalValue* GV);
109+
void forgetDecl(llvm::StringRef MangledName);
109110
};
110111

111112
/// CreateLLVMCodeGen - Create a CodeGenerator instance.

clang/lib/CodeGen/ModuleBuilder.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -283,6 +283,11 @@ namespace clang {
283283
}
284284
}
285285

286+
void forgetDecl(llvm::StringRef MangledName) {
287+
Builder->DeferredDecls.erase(MangledName);
288+
Builder->Manglings.erase(MangledName);
289+
}
290+
286291
void Initialize(ASTContext &Context) override {
287292
Ctx = &Context;
288293

@@ -509,6 +514,10 @@ void CodeGenerator::forgetGlobal(llvm::GlobalValue* GV) {
509514
static_cast<CodeGeneratorImpl*>(this)->forgetGlobal(GV);
510515
}
511516

517+
void CodeGenerator::forgetDecl(llvm::StringRef MangledName) {
518+
static_cast<CodeGeneratorImpl*>(this)->forgetDecl(MangledName);
519+
}
520+
512521
CodeGenerator *
513522
clang::CreateLLVMCodeGen(DiagnosticsEngine &Diags, llvm::StringRef ModuleName,
514523
IntrusiveRefCntPtr<llvm::vfs::FileSystem> FS,

0 commit comments

Comments
 (0)