commit | f051379fbc3fef3b884088082721a15bc8ee1ead | [log] [tgz] |
---|---|---|
author | Kristof Umann <dkszelethus@gmail.com> | Fri Sep 14 10:18:26 2018 +0000 |
committer | Kristof Umann <dkszelethus@gmail.com> | Fri Sep 14 10:18:26 2018 +0000 |
tree | 889ec1cc7e5487755248f7ce4b885e731777d601 | |
parent | d6145d9849f48229980c9243c36cb08c2e45c869 [diff] [blame] |
[analyzer][UninitializedObjectChecker] Support for nonloc::LocAsInteger Differential Revision: https://reviews.llvm.org/D49437 llvm-svn: 342221
diff --git a/clang/lib/StaticAnalyzer/Checkers/UninitializedObject/UninitializedObjectChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/UninitializedObject/UninitializedObjectChecker.cpp index b632229..711b43f 100644 --- a/clang/lib/StaticAnalyzer/Checkers/UninitializedObject/UninitializedObjectChecker.cpp +++ b/clang/lib/StaticAnalyzer/Checkers/UninitializedObject/UninitializedObjectChecker.cpp
@@ -274,15 +274,15 @@ continue; } - if (isDereferencableType(T)) { + SVal V = State->getSVal(FieldVal); + + if (isDereferencableType(T) || V.getAs<nonloc::LocAsInteger>()) { if (isDereferencableUninit(FR, LocalChain)) ContainsUninitField = true; continue; } if (isPrimitiveType(T)) { - SVal V = State->getSVal(FieldVal); - if (isPrimitiveUninit(V)) { if (addFieldToUninits(LocalChain.add(RegularField(FR)))) ContainsUninitField = true;