llvm-project/clang/lib/Analysis
John McCall fe96e0b6be Change the AST representation of operations on Objective-C
property references to use a new PseudoObjectExpr
expression which pairs a syntactic form of the expression
with a set of semantic expressions implementing it.
This should significantly reduce the complexity required
elsewhere in the compiler to deal with these kinds of
expressions (e.g. IR generation's special l-value kind,
the static analyzer's Message abstraction), at the lower
cost of specifically dealing with the odd AST structure
of these expressions.  It should also greatly simplify
efforts to implement similar language features in the
future, most notably Managed C++'s properties and indexed
properties.

Most of the effort here is in dealing with the various
clients of the AST.  I've gone ahead and simplified the
ObjC rewriter's use of properties;  other clients, like
IR-gen and the static analyzer, have all the old
complexity *and* all the new complexity, at least
temporarily.  Many thanks to Ted for writing and advising
on the necessary changes to the static analyzer.

I've xfailed a small diagnostics regression in the static
analyzer at Ted's request.

llvm-svn: 143867
2011-11-06 09:01:30 +00:00
..
AnalysisDeclContext.cpp Actually rename the file AnalysisContext.cpp -> AnalysisDeclContext.cpp 2011-10-24 01:47:37 +00:00
CFG.cpp Change the AST representation of operations on Objective-C 2011-11-06 09:01:30 +00:00
CFGReachabilityAnalysis.cpp remove unneeded llvm:: namespace qualifiers on some core types now that LLVM.h imports 2011-07-23 10:55:15 +00:00
CFGStmtMap.cpp Constify the result of CFGStmt::getStmt(). 2011-08-23 23:05:04 +00:00
CMakeLists.txt Add source-level dominators analysis. Patch by Guoping Long! 2011-10-25 00:25:24 +00:00
CocoaConventions.cpp Tweak the interface for analyzing the CF conventions for a name 2011-10-01 00:48:56 +00:00
Dominators.cpp Add source-level dominators analysis. Patch by Guoping Long! 2011-10-25 00:25:24 +00:00
FormatString.cpp Tweak printf format string parsing to accept 'hh' conversion specifier to accept any char, not just signed char. Fixes <rdar://problem/10303638>. 2011-10-25 04:20:41 +00:00
FormatStringParsing.h Fix namespace polution. 2010-07-26 21:25:24 +00:00
LiveVariables.cpp Change the AST representation of operations on Objective-C 2011-11-06 09:01:30 +00:00
Makefile BUILD_ARCHIVE is the default for libraries, no need to set it. 2010-07-18 00:14:47 +00:00
PostOrderCFGView.cpp Rename AnalysisContext to AnalysisDeclContext. Not only is this name more accurate, but it frees up the name AnalysisContext for other uses. 2011-10-24 01:32:45 +00:00
PrintfFormatString.cpp Teach format string analysis that "%zu" means size_t. 2011-10-27 08:29:09 +00:00
ProgramPoint.cpp ProgramPoint cleanup after the previous commit r141408 (remove the copy constructor, mark withTag const). 2011-10-07 21:01:38 +00:00
PseudoConstantAnalysis.cpp Cleanup various declarations of 'Stmt*' to be 'Stmt *', etc. in libAnalyzer and libStaticAnalyzer[*]. It was highly inconsistent, and very ugly to look at. 2011-08-12 23:37:29 +00:00
ReachableCode.cpp Rename AnalysisContext to AnalysisDeclContext. Not only is this name more accurate, but it frees up the name AnalysisContext for other uses. 2011-10-24 01:32:45 +00:00
ScanfFormatString.cpp Revert r109428 "Hoist argument type checking into CheckFormatHandler. This is prep for scanf format" 2010-07-27 04:46:02 +00:00
ThreadSafety.cpp Rename AnalysisContext to AnalysisDeclContext. Not only is this name more accurate, but it frees up the name AnalysisContext for other uses. 2011-10-24 01:32:45 +00:00
UninitializedValues.cpp Rename AnalysisContext to AnalysisDeclContext. Not only is this name more accurate, but it frees up the name AnalysisContext for other uses. 2011-10-24 01:32:45 +00:00