llvm-project/clang/lib/Serialization
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
..
ASTCommon.cpp Restore r142914 and r142915, now with missing file and apparent 2011-10-25 17:37:35 +00:00
ASTCommon.h Migrate the serialization of ASTContext's AutoDeduceTy and 2011-08-09 15:13:55 +00:00
ASTReader.cpp [libclang] Add infrastructure to be able to only deserialize decls in a file region and 2011-11-03 02:20:32 +00:00
ASTReaderDecl.cpp [PCH] Now that we store the location of a decl outside its record 2011-10-31 07:20:15 +00:00
ASTReaderInternals.h remove pedantic ; 2011-09-10 16:13:42 +00:00
ASTReaderStmt.cpp Change the AST representation of operations on Objective-C 2011-11-06 09:01:30 +00:00
ASTWriter.cpp Rework the AST for the initializer of a delegating constructor, so 2011-11-01 01:16:03 +00:00
ASTWriterDecl.cpp [PCH] Now that we store the location of a decl outside its record 2011-10-31 07:20:15 +00:00
ASTWriterStmt.cpp Change the AST representation of operations on Objective-C 2011-11-06 09:01:30 +00:00
CMakeLists.txt Factor the Module and ModuleManager classes out into separate headers 2011-08-25 20:47:51 +00:00
ChainedIncludesSource.cpp Rename Diagnostic to DiagnosticsEngine as per issue 5397 2011-09-25 23:23:43 +00:00
GeneratePCH.cpp In libclang, when visiting preprocessed entities in a source range, use 2011-09-19 20:40:48 +00:00
Makefile Reintroduce the serialization library, with fixed dependencies. 2010-08-17 20:43:28 +00:00
Module.cpp [PCH] Keep track of file-level declarations that are contained by files. 2011-10-28 22:54:21 +00:00
ModuleManager.cpp Add support for viewing the module graph via Graphviz, for debugging 2011-10-11 19:27:55 +00:00