Don't read CompilerInstance fields that don't exist in ASTUnit
When transferring data from a CompilerInstance in an error path we need to consider cases where the various fields are uninitialized. llvm-svn: 206644
This commit is contained in:
parent
12d6c3b4d7
commit
532fdc0d4f
|
@ -1717,11 +1717,14 @@ void ASTUnit::transferASTDataFromCompilerInstance(CompilerInstance &CI) {
|
|||
// Steal the created target, context, and preprocessor.
|
||||
TheSema.reset(CI.takeSema());
|
||||
Consumer.reset(CI.takeASTConsumer());
|
||||
Ctx = &CI.getASTContext();
|
||||
PP = &CI.getPreprocessor();
|
||||
if (CI.hasASTContext())
|
||||
Ctx = &CI.getASTContext();
|
||||
if (CI.hasPreprocessor())
|
||||
PP = &CI.getPreprocessor();
|
||||
CI.setSourceManager(0);
|
||||
CI.setFileManager(0);
|
||||
Target = &CI.getTarget();
|
||||
if (CI.hasTarget())
|
||||
Target = &CI.getTarget();
|
||||
Reader = CI.getModuleManager();
|
||||
HadModuleLoaderFatalFailure = CI.hadModuleLoaderFatalFailure();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue