Index: clang/lib/Interpreter/IncrementalParser.cpp =================================================================== --- clang/lib/Interpreter/IncrementalParser.cpp +++ clang/lib/Interpreter/IncrementalParser.cpp @@ -134,7 +134,10 @@ P->Initialize(); } -IncrementalParser::~IncrementalParser() { Act->FinalizeAction(); } +IncrementalParser::~IncrementalParser() { + P.reset(); + Act->FinalizeAction(); +} llvm::Expected IncrementalParser::ParseOrWrapTopLevelDecl() { Index: clang/lib/Interpreter/Interpreter.cpp =================================================================== --- clang/lib/Interpreter/Interpreter.cpp +++ clang/lib/Interpreter/Interpreter.cpp @@ -116,6 +116,9 @@ // times, reusing the same AST. Clang->getCodeGenOpts().ClearASTBeforeBackend = false; + Clang->getFrontendOpts().DisableFree = false; + Clang->getCodeGenOpts().DisableFree = false; + return std::move(Clang); }