diff options
author | Ted Kremenek <kremenek@apple.com> | 2007-12-13 04:47:15 +0000 |
---|---|---|
committer | Ted Kremenek <kremenek@apple.com> | 2007-12-13 04:47:15 +0000 |
commit | 8d9ebae7ba382d3151e4a7d336578d9b92f73c3c (patch) | |
tree | 8e80833f0c2c4e4e0085e835b8710a0fca120a77 /Analysis/UninitializedValues.cpp | |
parent | aa715be95578de1e1741d1ab3517f393c763e836 (diff) |
Fixed bug in live-variable analysis and uninitialized-values analysis where
we incorrectly examine the expression within a sizeof() for use in computing
dataflow values.
This fixes: PR 1858 (http://llvm.org/bugs/show_bug.cgi?id=1858)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44982 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'Analysis/UninitializedValues.cpp')
-rw-r--r-- | Analysis/UninitializedValues.cpp | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/Analysis/UninitializedValues.cpp b/Analysis/UninitializedValues.cpp index aec3197279..9651814b02 100644 --- a/Analysis/UninitializedValues.cpp +++ b/Analysis/UninitializedValues.cpp @@ -136,9 +136,19 @@ bool TransferFuncs::VisitCallExpr(CallExpr* C) { } bool TransferFuncs::VisitUnaryOperator(UnaryOperator* U) { - if (U->getOpcode() == UnaryOperator::AddrOf) - if (BlockVarDecl* VD = FindBlockVarDecl(U->getSubExpr())) - return V(VD,AD) = Initialized; + switch (U->getOpcode()) { + case UnaryOperator::AddrOf: + if (BlockVarDecl* VD = FindBlockVarDecl(U->getSubExpr())) + return V(VD,AD) = Initialized; + + break; + + case UnaryOperator::SizeOf: + return Initialized; + + default: + break; + } return Visit(U->getSubExpr()); } |