[analyzer] Handle the dot syntax for properties in the ExprEngine.
commitd3d0ecb4f9544cdbffd8cf66bc420df7327468e2
authorArgiris Kirtzidis <akyrtzi@gmail.com>
Tue, 25 Jan 2011 00:04:03 +0000 (25 00:04 +0000)
committerArgiris Kirtzidis <akyrtzi@gmail.com>
Tue, 25 Jan 2011 00:04:03 +0000 (25 00:04 +0000)
tree4e827248b9a645d660c677319ea7b929f50fb300
parent56233bd1195d705c26a0090bd26fa32e4cdb8718
[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.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124161 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/StaticAnalyzer/PathSensitive/ExprEngine.h
include/clang/StaticAnalyzer/PathSensitive/SVals.h
lib/StaticAnalyzer/BasicStore.cpp
lib/StaticAnalyzer/CFRefCount.cpp
lib/StaticAnalyzer/Checkers/CallAndMessageChecker.cpp
lib/StaticAnalyzer/Checkers/ExprEngine.cpp
lib/StaticAnalyzer/RegionStore.cpp
lib/StaticAnalyzer/SVals.cpp
test/Analysis/properties.m [new file with mode: 0644]