summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--clang/lib/StaticAnalyzer/Checkers/UninitializedObjectChecker.cpp16
1 files changed, 9 insertions, 7 deletions
diff --git a/clang/lib/StaticAnalyzer/Checkers/UninitializedObjectChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/UninitializedObjectChecker.cpp
index 63e4b817da3..a517e81122b 100644
--- a/clang/lib/StaticAnalyzer/Checkers/UninitializedObjectChecker.cpp
+++ b/clang/lib/StaticAnalyzer/Checkers/UninitializedObjectChecker.cpp
@@ -384,15 +384,17 @@ bool FindUninitializedFields::isNonUnionUninit(const TypedValueRegion *R,
continue;
}
- assert(isPrimitiveType(T) && "Non-primitive type! "
- "At this point FR must be primitive!");
+ if (isPrimitiveType(T)) {
+ SVal V = State->getSVal(FieldVal);
- SVal V = State->getSVal(FieldVal);
-
- if (isPrimitiveUninit(V)) {
- if (addFieldToUninits({LocalChain, FR}))
- ContainsUninitField = true;
+ if (isPrimitiveUninit(V)) {
+ if (addFieldToUninits({LocalChain, FR}))
+ ContainsUninitField = true;
+ }
+ continue;
}
+
+ llvm_unreachable("All cases are handled!");
}
// Checking bases.
OpenPOWER on IntegriCloud