]> granicus.if.org Git - clang/commit
[analyzer] Handle the dot syntax for properties in the ExprEngine.
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>
Tue, 25 Jan 2011 00:04:03 +0000 (00:04 +0000)
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>
Tue, 25 Jan 2011 00:04:03 +0000 (00:04 +0000)
commit14429b918bd2f4cb52abc75546a7fe37142054ca
tree4e827248b9a645d660c677319ea7b929f50fb300
parent5286e2ddfd8332520de4c076e49991d6fe557adb
[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]