diff options
| author | Ted Kremenek <kremenek@apple.com> | 2009-05-04 06:18:28 +0000 |
|---|---|---|
| committer | Ted Kremenek <kremenek@apple.com> | 2009-05-04 06:18:28 +0000 |
| commit | 02e508960c1d2f7bbe0018d95b0ca850291f1c70 (patch) | |
| tree | 1aa07d92d89548acbcf46763ded7a2298d4503be /clang/lib/Analysis/GRExprEngine.cpp | |
| parent | 5b07c7ec057de27677dc4c0db2df4c5e998e9384 (diff) | |
| download | bcm5719-llvm-02e508960c1d2f7bbe0018d95b0ca850291f1c70.tar.gz bcm5719-llvm-02e508960c1d2f7bbe0018d95b0ca850291f1c70.zip | |
Per conversations with Zhongxing, add an 'element type' to
ElementRegion. I also removed 'ElementRegion::getArrayRegion',
although we may need to add this back.
This breaks a few test cases with RegionStore:
- 'array-struct.c' triggers an infinite recursion in RegionStoreManager. Need to investigate.
- misc-ps.m triggers a failure with RegionStoreManager as we now get the diagnostic:
'Line 159: Uninitialized or undefined return value returned to caller.'
There were a bunch of places that needed to be edit
RegionStoreManager, and we may not be passing all the correct 'element
types' down from GRExprEngine.
Zhongxing: When you get a chance, could you review this? I could have
easily screwed up something basic in RegionStoreManager.
llvm-svn: 70830
Diffstat (limited to 'clang/lib/Analysis/GRExprEngine.cpp')
| -rw-r--r-- | clang/lib/Analysis/GRExprEngine.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/clang/lib/Analysis/GRExprEngine.cpp b/clang/lib/Analysis/GRExprEngine.cpp index 096ccddd08d..0fabd35b0b2 100644 --- a/clang/lib/Analysis/GRExprEngine.cpp +++ b/clang/lib/Analysis/GRExprEngine.cpp @@ -1011,7 +1011,8 @@ void GRExprEngine::VisitArraySubscriptExpr(ArraySubscriptExpr* A, NodeTy* Pred, for (NodeSet::iterator I2=Tmp2.begin(), E2=Tmp2.end(); I2!=E2; ++I2) { const GRState* state = GetState(*I2); - SVal V = StateMgr.GetLValue(state, GetSVal(state, Base), + SVal V = StateMgr.GetLValue(state, A->getType(), + GetSVal(state, Base), GetSVal(state, Idx)); if (asLValue) |

