]> granicus.if.org Git - clang/commit
Introduce a placeholder type for "pseudo object"
authorJohn McCall <rjmccall@apple.com>
Tue, 25 Oct 2011 07:27:56 +0000 (07:27 +0000)
committerJohn McCall <rjmccall@apple.com>
Tue, 25 Oct 2011 07:27:56 +0000 (07:27 +0000)
commita1b852f8e1bee5ed3604ee483803cef39ce57a20
treea660a7efb932f3eab03275702a554a2adcca90ec
parente88c4513157cc551ed8080b1e3b3b875a9a570e1
Introduce a placeholder type for "pseudo object"
expressions: expressions which refer to a logical rather
than a physical l-value, where the logical object is
actually accessed via custom getter/setter code.
A subsequent patch will generalize the AST for these
so that arbitrary "implementing" sub-expressions can
be provided.

Right now the only client is ObjC properties, but
this should be generalizable to similar language
features, e.g. Managed C++'s __property methods.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142914 91177308-0d34-0410-b5e6-96231b3b80d8
31 files changed:
include/clang/AST/ASTContext.h
include/clang/AST/BuiltinTypes.def
include/clang/AST/Expr.h
include/clang/AST/ExprObjC.h
include/clang/Basic/DiagnosticSemaKinds.td
include/clang/Sema/Sema.h
include/clang/Serialization/ASTBitCodes.h
lib/AST/ASTContext.cpp
lib/AST/Type.cpp
lib/AST/TypeLoc.cpp
lib/CodeGen/CGExprAgg.cpp
lib/CodeGen/CGExprComplex.cpp
lib/CodeGen/CGExprScalar.cpp
lib/Rewrite/RewriteObjC.cpp
lib/Sema/SemaChecking.cpp
lib/Sema/SemaExpr.cpp
lib/Sema/SemaExprCXX.cpp
lib/Sema/SemaExprMember.cpp
lib/Sema/SemaExprObjC.cpp
lib/Sema/SemaInit.cpp
lib/Sema/SemaObjCProperty.cpp
lib/Sema/SemaOverload.cpp
lib/Sema/SemaStmt.cpp
lib/Sema/TreeTransform.h
lib/Serialization/ASTCommon.cpp
lib/Serialization/ASTReader.cpp
test/SemaObjC/property-category-1.m
test/SemaObjC/property-error-readonly-assign.m
test/SemaObjC/property-in-class-extension.m
test/SemaObjC/property-user-setter.m
test/SemaObjCXX/propert-dot-error.mm