| commit | 53c1c10bebf401c2a1e5492725b56ba91cc62477 | [log] [tgz] |
|---|---|---|
| author | George Karpenkov <ekarpenkov@apple.com> | Tue Feb 27 19:28:52 2018 +0000 |
| committer | George Karpenkov <ekarpenkov@apple.com> | Tue Feb 27 19:28:52 2018 +0000 |
| tree | 02dc9d8ff3456d17e7e2641223b461d057b165cc | |
| parent | fc0d02cbbfaaa91bf09666bffb2c2f64342bdd07 [diff] |
[analyzer] Only attempt to get the value of locations of known type Fixes https://bugs.llvm.org/show_bug.cgi?id=36474 In general, getSVal API should be changed so that it does not crash on some non-obvious conditions. It should either be updated to require a type, or to return Optional<SVal>. Differential Revision: https://reviews.llvm.org/D43801 llvm-svn: 326233
diff --git a/clang/lib/StaticAnalyzer/Checkers/NonnullGlobalConstantsChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/NonnullGlobalConstantsChecker.cpp index 0b4ecb4..f65e1d0 100644 --- a/clang/lib/StaticAnalyzer/Checkers/NonnullGlobalConstantsChecker.cpp +++ b/clang/lib/StaticAnalyzer/Checkers/NonnullGlobalConstantsChecker.cpp
@@ -73,9 +73,9 @@ return; ProgramStateRef State = C.getState(); - SVal V = State->getSVal(location.castAs<Loc>()); if (isGlobalConstString(location)) { + SVal V = State->getSVal(location.castAs<Loc>()); Optional<DefinedOrUnknownSVal> Constr = V.getAs<DefinedOrUnknownSVal>(); if (Constr) {