hanchenye-llvm-project/clang/lib/Analysis
Jordan Rose 1a866cd54b [analyzer] Model getters of known-@synthesized Objective-C properties.
...by synthesizing their body to be "return self->_prop;", with an extra
nudge to RetainCountChecker to still treat the value as +0 if we have no
other information.

This doesn't handle weak properties, but that's mostly correct anyway,
since they can go to nil at any time. This also doesn't apply to properties
whose implementations we can't see, since they may not be backed by an
ivar at all. And finally, this doesn't handle properties of C++ class type,
because we can't invoke the copy constructor. (Sema has actually done this
work already, but the AST it synthesizes is one the analyzer doesn't quite
handle -- it has an rvalue DeclRefExpr.)

Modeling setters is likely to be more difficult (since it requires
handling strong/copy), but not impossible.

<rdar://problem/11956898>

llvm-svn: 198953
2014-01-10 20:06:06 +00:00
..
AnalysisDeclContext.cpp [analyzer] Model getters of known-@synthesized Objective-C properties. 2014-01-10 20:06:06 +00:00
BodyFarm.cpp [analyzer] Model getters of known-@synthesized Objective-C properties. 2014-01-10 20:06:06 +00:00
BodyFarm.h [analyzer] Model getters of known-@synthesized Objective-C properties. 2014-01-10 20:06:06 +00:00
CFG.cpp Add CFG tests for switch's involving "extended" enum. 2013-12-11 23:44:05 +00:00
CFGReachabilityAnalysis.cpp Use pop_back_val() instead of both back() and pop_back(). 2013-08-23 16:11:15 +00:00
CFGStmtMap.cpp Remove the CFGElement "Invalid" state. 2013-02-23 00:29:34 +00:00
CMakeLists.txt [CMake] clang/lib: Satisfy dependencies to add *actually used* libraries on target_link_libraries() and LLVM_LINK_COMPONENTS. 2013-12-09 19:04:43 +00:00
CallGraph.cpp [analyzer] Fix typos. 2012-12-21 17:27:04 +00:00
CocoaConventions.cpp Excise <cctype> from Clang (except clang-tblgen) in favor of CharInfo.h. 2013-02-08 22:30:41 +00:00
Consumed.cpp Sort all the #include lines with LLVM's utils/sort_includes.py which 2014-01-07 11:51:46 +00:00
Dominators.cpp
FormatString.cpp Analysis: Add support for MS specific printf format specifiers 2013-08-21 21:54:46 +00:00
FormatStringParsing.h Sort all of Clang's files under 'lib', and fix up the broken headers 2012-12-04 09:13:33 +00:00
LiveVariables.cpp Revert "[analyzer] Refactor conditional expression evaluating code" 2013-12-06 18:56:29 +00:00
Makefile
ObjCNoReturn.cpp clang/lib/Analysis/ObjCNoReturn.cpp: Fix [-Wnewline-eof] 2012-09-13 05:53:17 +00:00
PostOrderCFGView.cpp
PrintfFormatString.cpp Analysis: Make %I in printf more reasonable, add more tests 2013-08-22 07:53:21 +00:00
ProgramPoint.cpp
PseudoConstantAnalysis.cpp Drop the ASTContext.h include from Stmt.h and fix up transitive users. 2012-07-04 17:04:04 +00:00
ReachableCode.cpp Make sort predicate match the qsort convention. 2013-09-22 15:02:02 +00:00
ScanfFormatString.cpp Analysis: Add support for MS specific printf format specifiers 2013-08-21 21:54:46 +00:00
ThreadSafety.cpp Switching getAttrs calls over to using a specific_attr_iterator. No functional changes intended. 2013-12-19 15:35:31 +00:00
UninitializedValues.cpp PR16054: Slight strengthening for -Wsometimes-uninitialized: if we use a 2013-09-12 18:49:10 +00:00