diff options
author | Alexey Samsonov <vonosmas@gmail.com> | 2014-08-28 23:51:01 +0000 |
---|---|---|
committer | Alexey Samsonov <vonosmas@gmail.com> | 2014-08-28 23:51:01 +0000 |
commit | b4f99dd07797e03e801b8cdfbbe0a3bdd391d6d5 (patch) | |
tree | a36460e4a7121523f28514f02f4c4d9e57d45d5a /clang/lib/Frontend/ASTUnit.cpp | |
parent | 75bb28ec04a152b6b921d4134333fe659b7c0b7b (diff) | |
download | llvm-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.cpp | 5 |
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> |