forked from OSchip/llvm-project
Frontend: Stop leaking when not -disable-free
Try again to plug a leak that's been around since at least r128011 after coming across the FIXME. Nico Weber tried something similar in r207065 but had to revert in r207070 due to a bot failure. The build failure isn't visible anymore so I'm not sure what went wrong. I'm doing this slightly differently -- when not -disable-free I'm still resetting the members (just not leaking them) -- so maybe it will work out this time? Tests pass locally, anyway. llvm-svn: 236419
This commit is contained in:
parent
52266388f8
commit
fa4de125c9
|
@ -494,13 +494,20 @@ void FrontendAction::EndSourceFile() {
|
|||
// FrontendAction.
|
||||
CI.clearOutputFiles(/*EraseFiles=*/shouldEraseOutputFiles());
|
||||
|
||||
// FIXME: Only do this if DisableFree is set.
|
||||
if (isCurrentFileAST()) {
|
||||
CI.resetAndLeakSema();
|
||||
CI.resetAndLeakASTContext();
|
||||
CI.resetAndLeakPreprocessor();
|
||||
CI.resetAndLeakSourceManager();
|
||||
CI.resetAndLeakFileManager();
|
||||
if (DisableFree) {
|
||||
CI.resetAndLeakSema();
|
||||
CI.resetAndLeakASTContext();
|
||||
CI.resetAndLeakPreprocessor();
|
||||
CI.resetAndLeakSourceManager();
|
||||
CI.resetAndLeakFileManager();
|
||||
} else {
|
||||
CI.setSema(nullptr);
|
||||
CI.setASTContext(nullptr);
|
||||
CI.setPreprocessor(nullptr);
|
||||
CI.setSourceManager(nullptr);
|
||||
CI.setFileManager(nullptr);
|
||||
}
|
||||
}
|
||||
|
||||
setCompilerInstance(nullptr);
|
||||
|
|
Loading…
Reference in New Issue