summaryrefslogtreecommitdiffstats
path: root/clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp
diff options
context:
space:
mode:
authorDaniel Marjamaki <daniel.marjamaki@evidente.se>2017-06-19 08:55:51 +0000
committerDaniel Marjamaki <daniel.marjamaki@evidente.se>2017-06-19 08:55:51 +0000
commit9c6e8489893e16bf5d97b001696ffacbbbd07206 (patch)
tree6967bfe5708859b5e83bcadf387554865ad31eff /clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp
parent3f1e89380b294a1192fa4019053dc5ab3c8eacbf (diff)
downloadbcm5719-llvm-9c6e8489893e16bf5d97b001696ffacbbbd07206.tar.gz
bcm5719-llvm-9c6e8489893e16bf5d97b001696ffacbbbd07206.zip
[analyzer] Fix logical not for pointers with different bit width
Differential Revision: https://reviews.llvm.org/D31029 llvm-svn: 305669
Diffstat (limited to 'clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp')
-rw-r--r--clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp5
1 files changed, 2 insertions, 3 deletions
diff --git a/clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp b/clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp
index 8f720a2067b..6f1e8391e67 100644
--- a/clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp
+++ b/clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp
@@ -980,10 +980,9 @@ void ExprEngine::VisitUnaryOperator(const UnaryOperator* U, ExplodedNode *Pred,
// transfer functions as "0 == E".
SVal Result;
if (Optional<Loc> LV = V.getAs<Loc>()) {
- Loc X = svalBuilder.makeNull();
+ Loc X = svalBuilder.makeNullWithType(Ex->getType());
Result = evalBinOp(state, BO_EQ, *LV, X, U->getType());
- }
- else if (Ex->getType()->isFloatingType()) {
+ } else if (Ex->getType()->isFloatingType()) {
// FIXME: handle floating point types.
Result = UnknownVal();
} else {
OpenPOWER on IntegriCloud