diff options
| author | Richard Smith <richard-llvm@metafoo.co.uk> | 2012-08-14 22:37:22 +0000 |
|---|---|---|
| committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2012-08-14 22:37:22 +0000 |
| commit | 8a0527d54e6e6df83fcd262ea32ab0594e8c47ed (patch) | |
| tree | 9017b2d49f772ad5867be584b270d4b94309ec62 /clang | |
| parent | a6e89aac91cdda2856990d47c336c36e2bd3943f (diff) | |
| download | bcm5719-llvm-8a0527d54e6e6df83fcd262ea32ab0594e8c47ed.tar.gz bcm5719-llvm-8a0527d54e6e6df83fcd262ea32ab0594e8c47ed.zip | |
Fix undefined behavior: reference bound to dereferenced null pointer.
llvm-svn: 161899
Diffstat (limited to 'clang')
| -rw-r--r-- | clang/lib/Basic/Diagnostic.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/clang/lib/Basic/Diagnostic.cpp b/clang/lib/Basic/Diagnostic.cpp index e68950200fd..2c49c2f7606 100644 --- a/clang/lib/Basic/Diagnostic.cpp +++ b/clang/lib/Basic/Diagnostic.cpp @@ -167,8 +167,9 @@ void DiagnosticsEngine::setDiagnosticMapping(diag::kind Diag, diag::Mapping Map, (Map == diag::MAP_FATAL || Map == diag::MAP_ERROR)) && "Cannot map errors into warnings!"); assert(!DiagStatePoints.empty()); + assert((L.isInvalid() || SourceMgr) && "No SourceMgr for valid location"); - FullSourceLoc Loc(L, *SourceMgr); + FullSourceLoc Loc = SourceMgr? FullSourceLoc(L, *SourceMgr) : FullSourceLoc(); FullSourceLoc LastStateChangePos = DiagStatePoints.back().Loc; // Don't allow a mapping to a warning override an error/fatal mapping. if (Map == diag::MAP_WARNING) { |

