]> granicus.if.org Git - clang/commit
[analyzer] Add a checker to manage dynamic type propagation.
authorAnna Zaks <ganna@apple.com>
Mon, 6 Aug 2012 23:25:39 +0000 (23:25 +0000)
committerAnna Zaks <ganna@apple.com>
Mon, 6 Aug 2012 23:25:39 +0000 (23:25 +0000)
commitc7ecc43c33a21b82c49664910b19fcc1f555aa51
treee08d07f14729a8c26fe7852b8424d0328811b179
parent71f55f771794674a410171dbf3cb5dbedf95d033
[analyzer] Add a checker to manage dynamic type propagation.

Instead of sprinkling dynamic type info propagation throughout
ExprEngine, the added checker would add the more precise type
information on known APIs (Ex: ObjC alloc, new) and propagate
the type info in other cases (ex: ObjC init method, casts (the second is
not implemented yet)).

Add handling of ObjC alloc, new and init to the checker.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161357 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h
include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h
lib/StaticAnalyzer/Checkers/CMakeLists.txt
lib/StaticAnalyzer/Checkers/Checkers.td
lib/StaticAnalyzer/Checkers/DynamicTypePropagation.cpp [new file with mode: 0644]
lib/StaticAnalyzer/Core/CallEvent.cpp
lib/StaticAnalyzer/Core/ExprEngineC.cpp
lib/StaticAnalyzer/Core/ProgramState.cpp
test/Analysis/inlining/InlineObjCInstanceMethod.m
test/Analysis/inlining/ObjCDynTypePopagation.m [new file with mode: 0644]