Don't free AST consumer when --disable-free is set.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59030
91177308-0d34-0410-b5e6-
96231b3b80d8
CodeGenPasses(0), PerModulePasses(0), PerFunctionPasses(0) {}
~BackendConsumer() {
- // FIXME: Move out of destructor.
- EmitAssembly();
-
delete AsmOutStream;
delete TheTargetData;
delete ModuleProvider;
virtual void HandleTranslationUnit(TranslationUnit& TU) {
Gen->HandleTranslationUnit(TU);
+
+ EmitAssembly();
+ // Force a flush here in case we never get released.
+ if (AsmOutStream)
+ AsmOutStream->flush();
}
virtual void HandleTagDeclDefinition(TagDecl *D) {
// files.
if (ClearSourceMgr)
PP.getSourceManager().clearIDTables();
+
+ if (DisableFree)
+ Consumer.take();
}
static void ProcessSerializedFile(const std::string& InFile, Diagnostic& Diag,