aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/ASTUnit.cpp
diff options
context:
space:
mode:
authorAlexey Samsonov <vonosmas@gmail.com>2014-08-28 23:51:01 +0000
committerAlexey Samsonov <vonosmas@gmail.com>2014-08-28 23:51:01 +0000
commitb4f99dd07797e03e801b8cdfbbe0a3bdd391d6d5 (patch)
treea36460e4a7121523f28514f02f4c4d9e57d45d5a /clang/lib/Frontend/ASTUnit.cpp
parent75bb28ec04a152b6b921d4134333fe659b7c0b7b (diff)
downloadllvm-b4f99dd07797e03e801b8cdfbbe0a3bdd391d6d5.zip
llvm-b4f99dd07797e03e801b8cdfbbe0a3bdd391d6d5.tar.gz
llvm-b4f99dd07797e03e801b8cdfbbe0a3bdd391d6d5.tar.bz2
Don't create a null reference in ASTUnit::LoadFromCommandLine.
This change is the last in the pack of five commits (also see r216691, r216694, r216695, and r216696) that reduces the number of test failures in "check-clang" invocation in UBSan bootstrap from 2443 down to 5. llvm-svn: 216697
Diffstat (limited to 'clang/lib/Frontend/ASTUnit.cpp')
-rw-r--r--clang/lib/Frontend/ASTUnit.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/clang/lib/Frontend/ASTUnit.cpp b/clang/lib/Frontend/ASTUnit.cpp
index 31dbc7a..31266dc 100644
--- a/clang/lib/Frontend/ASTUnit.cpp
+++ b/clang/lib/Frontend/ASTUnit.cpp
@@ -1985,7 +1985,6 @@ ASTUnit *ASTUnit::LoadFromCommandLine(
AST.reset(new ASTUnit(false));
ConfigureDiags(Diags, ArgBegin, ArgEnd, *AST, CaptureDiagnostics);
AST->Diagnostics = Diags;
- Diags = nullptr; // Zero out now to ease cleanup during crash recovery.
AST->FileSystemOpts = CI->getFileSystemOpts();
IntrusiveRefCntPtr<vfs::FileSystem> VFS =
createVFSFromCompilerInvocation(*CI, *Diags);
@@ -2004,7 +2003,9 @@ ASTUnit *ASTUnit::LoadFromCommandLine(
AST->Invocation = CI;
if (ForSerialization)
AST->WriterData.reset(new ASTWriterData());
- CI = nullptr; // Zero out now to ease cleanup during crash recovery.
+ // Zero out now to ease cleanup during crash recovery.
+ CI = nullptr;
+ Diags = nullptr;
// Recover resources if we crash before exiting this method.
llvm::CrashRecoveryContextCleanupRegistrar<ASTUnit>