summaryrefslogtreecommitdiffstats
path: root/clang/lib/AST/StmtSerialization.cpp
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2008-09-03 00:27:26 +0000
committerDaniel Dunbar <daniel@zuster.org>2008-09-03 00:27:26 +0000
commitc5d330400fd473e709f42036080bba7a4b7e48a8 (patch)
treed7dae2cebd03b8c1966f8d4736357839116a502d /clang/lib/AST/StmtSerialization.cpp
parentb530f0812222f25395a841d145cdae785844f52f (diff)
downloadbcm5719-llvm-c5d330400fd473e709f42036080bba7a4b7e48a8.tar.gz
bcm5719-llvm-c5d330400fd473e709f42036080bba7a4b7e48a8.zip
Fix ObjCPropertRefExpr to be able to encode all the information for
uses which refer to methods not properties. - Not yet wired in Sema. llvm-svn: 55681
Diffstat (limited to 'clang/lib/AST/StmtSerialization.cpp')
-rw-r--r--clang/lib/AST/StmtSerialization.cpp17
1 files changed, 15 insertions, 2 deletions
diff --git a/clang/lib/AST/StmtSerialization.cpp b/clang/lib/AST/StmtSerialization.cpp
index 1c61b66512a..23879ee63b3 100644
--- a/clang/lib/AST/StmtSerialization.cpp
+++ b/clang/lib/AST/StmtSerialization.cpp
@@ -998,7 +998,14 @@ ObjCIvarRefExpr* ObjCIvarRefExpr::CreateImpl(Deserializer& D, ASTContext& C) {
void ObjCPropertyRefExpr::EmitImpl(Serializer& S) const {
S.Emit(Loc);
S.Emit(getType());
- S.EmitPtr(getDecl());
+ unsigned Kind = getKind();
+ S.Emit(Kind);
+ if (Kind == PropertyRef) {
+ S.EmitPtr(getProperty());
+ } else {
+ S.EmitPtr(getGetterMethod());
+ S.EmitPtr(getSetterMethod());
+ }
}
ObjCPropertyRefExpr* ObjCPropertyRefExpr::CreateImpl(Deserializer& D,
@@ -1006,7 +1013,13 @@ ObjCPropertyRefExpr* ObjCPropertyRefExpr::CreateImpl(Deserializer& D,
SourceLocation Loc = SourceLocation::ReadVal(D);
QualType T = QualType::ReadVal(D);
ObjCPropertyRefExpr* dr = new ObjCPropertyRefExpr(NULL,T,Loc,0);
- D.ReadPtr(dr->D,false);
+ unsigned Kind = D.ReadInt();
+ if (Kind == PropertyRef) {
+ D.ReadPtr(dr->Referent.AsProperty,false);
+ } else {
+ D.ReadPtr(dr->Referent.AsMethod.Setter,false);
+ D.ReadPtr(dr->Referent.AsMethod.Getter,false);
+ }
return dr;
}
OpenPOWER on IntegriCloud