diff options
author | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2011-01-25 00:04:03 +0000 |
---|---|---|
committer | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2011-01-25 00:04:03 +0000 |
commit | ffb08c46face8f337fbcb725d83dbe66002501dc (patch) | |
tree | c6cc4a5c5059a1754fdacce62dc461a8d9e0c3c7 /clang/lib/StaticAnalyzer/BasicStore.cpp | |
parent | fdbcd5465818b0802a8192855523759f1540f05a (diff) | |
download | bcm5719-llvm-ffb08c46face8f337fbcb725d83dbe66002501dc.tar.gz bcm5719-llvm-ffb08c46face8f337fbcb725d83dbe66002501dc.zip |
[analyzer] Handle the dot syntax for properties in the ExprEngine.
We translate property accesses to obj-c messages by simulating "loads" or "stores" to properties
using a pseudo-location SVal kind (ObjCPropRef).
Checkers can now reason about obj-c messages for both explicit message expressions and implicit
messages due to property accesses.
llvm-svn: 124161
Diffstat (limited to 'clang/lib/StaticAnalyzer/BasicStore.cpp')
-rw-r--r-- | clang/lib/StaticAnalyzer/BasicStore.cpp | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/clang/lib/StaticAnalyzer/BasicStore.cpp b/clang/lib/StaticAnalyzer/BasicStore.cpp index 42fd3391f16..0254ba777a4 100644 --- a/clang/lib/StaticAnalyzer/BasicStore.cpp +++ b/clang/lib/StaticAnalyzer/BasicStore.cpp @@ -196,6 +196,7 @@ SVal BasicStoreManager::Retrieve(Store store, Loc loc, QualType T) { return V.isUnknownOrUndef() ? V : CastRetrievedVal(V, TR, T); } + case loc::ObjCPropRefKind: case loc::ConcreteIntKind: // Support direct accesses to memory. It's up to individual checkers // to flag an error. |