diff options
| author | Jordy Rose <jediknil@belkadan.com> | 2011-07-15 20:29:02 +0000 |
|---|---|---|
| committer | Jordy Rose <jediknil@belkadan.com> | 2011-07-15 20:29:02 +0000 |
| commit | b72bd53f7d046420fa64ff3e684b912b258a27f0 (patch) | |
| tree | 3099f6b32f4b134580c7b03bb83f6bae4f1bb0c1 /clang/lib/StaticAnalyzer | |
| parent | 063fd270ed6f6ba0a8b5807832d4a9460427ca48 (diff) | |
| download | bcm5719-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.cpp | 5 |
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; } |

