summaryrefslogtreecommitdiffstats
path: root/clang/lib/StaticAnalyzer
diff options
context:
space:
mode:
authorJordy Rose <jediknil@belkadan.com>2011-07-15 20:29:02 +0000
committerJordy Rose <jediknil@belkadan.com>2011-07-15 20:29:02 +0000
commitb72bd53f7d046420fa64ff3e684b912b258a27f0 (patch)
tree3099f6b32f4b134580c7b03bb83f6bae4f1bb0c1 /clang/lib/StaticAnalyzer
parent063fd270ed6f6ba0a8b5807832d4a9460427ca48 (diff)
downloadbcm5719-llvm-b72bd53f7d046420fa64ff3e684b912b258a27f0.tar.gz
bcm5719-llvm-b72bd53f7d046420fa64ff3e684b912b258a27f0.zip
[analyzer] GNU __null is a pointer-sized integer, not a pointer. Fixes PR10372.
llvm-svn: 135294
Diffstat (limited to 'clang/lib/StaticAnalyzer')
-rw-r--r--clang/lib/StaticAnalyzer/Core/ExprEngine.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/clang/lib/StaticAnalyzer/Core/ExprEngine.cpp b/clang/lib/StaticAnalyzer/Core/ExprEngine.cpp
index cdf76bfa3ef..ffe5f0b6cdf 100644
--- a/clang/lib/StaticAnalyzer/Core/ExprEngine.cpp
+++ b/clang/lib/StaticAnalyzer/Core/ExprEngine.cpp
@@ -510,7 +510,10 @@ void ExprEngine::Visit(const Stmt* S, ExplodedNode* Pred,
break;
case Stmt::GNUNullExprClass: {
- MakeNode(Dst, S, Pred, GetState(Pred)->BindExpr(S, svalBuilder.makeNull()));
+ // GNU __null is a pointer-width integer, not an actual pointer.
+ const GRState *state = GetState(Pred);
+ state = state->BindExpr(S, svalBuilder.makeIntValWithPtrWidth(0, false));
+ MakeNode(Dst, S, Pred, state);
break;
}
OpenPOWER on IntegriCloud