Renamed ClassProp data member of ObjCImplctSetterGetterRefExpr

to InterfaceDecl, as it is unrelated to any property and
holds the InterfaceDecl needed for accessing class getter/setter
methods using the dot-syntax.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79371 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Fariborz Jahanian 2009-08-18 21:37:33 +00:00
Родитель 109b13db33
Коммит d2ae5aa732
5 изменённых файлов: 15 добавлений и 15 удалений

Просмотреть файл

@ -279,7 +279,7 @@ class ObjCImplctSetterGetterRefExpr : public Expr {
SourceLocation Loc;
// FIXME: Swizzle these into a single pointer.
Stmt *Base;
ObjCInterfaceDecl *ClassProp;
ObjCInterfaceDecl *InterfaceDecl;
SourceLocation ClassLoc;
public:
@ -288,7 +288,7 @@ public:
ObjCMethodDecl *setter,
SourceLocation l, Expr *base)
: Expr(ObjCImplctSetterGetterRefExprClass, t), Setter(setter),
Getter(getter), Loc(l), Base(base), ClassProp(0),
Getter(getter), Loc(l), Base(base), InterfaceDecl(0),
ClassLoc(SourceLocation()) {
}
ObjCImplctSetterGetterRefExpr(ObjCMethodDecl *getter,
@ -296,17 +296,17 @@ public:
ObjCMethodDecl *setter,
SourceLocation l, ObjCInterfaceDecl *C, SourceLocation CL)
: Expr(ObjCImplctSetterGetterRefExprClass, t), Setter(setter),
Getter(getter), Loc(l), Base(0), ClassProp(C), ClassLoc(CL) {
Getter(getter), Loc(l), Base(0), InterfaceDecl(C), ClassLoc(CL) {
}
explicit ObjCImplctSetterGetterRefExpr(EmptyShell Empty)
: Expr(ObjCImplctSetterGetterRefExprClass, Empty){}
ObjCMethodDecl *getGetterMethod() const { return Getter; }
ObjCMethodDecl *getSetterMethod() const { return Setter; }
ObjCInterfaceDecl *getClassProp() const { return ClassProp; }
ObjCInterfaceDecl *getInterfaceDecl() const { return InterfaceDecl; }
void setGetterMethod(ObjCMethodDecl *D) { Getter = D; }
void setSetterMethod(ObjCMethodDecl *D) { Setter = D; }
void setClassProp(ObjCInterfaceDecl *D) { ClassProp = D; }
void setInterfaceDecl(ObjCInterfaceDecl *D) { InterfaceDecl = D; }
virtual SourceRange getSourceRange() const {
if (Base)

Просмотреть файл

@ -588,7 +588,7 @@ void StmtProfiler::VisitObjCImplctSetterGetterRefExpr(
VisitExpr(S);
VisitDecl(S->getGetterMethod());
VisitDecl(S->getSetterMethod());
VisitDecl(S->getClassProp());
VisitDecl(S->getInterfaceDecl());
}
void StmtProfiler::VisitObjCMessageExpr(ObjCMessageExpr *S) {

Просмотреть файл

@ -341,8 +341,8 @@ RValue CodeGenFunction::EmitObjCPropertyGet(const Expr *Exp) {
cast<ObjCImplctSetterGetterRefExpr>(Exp);
Selector S = KE->getGetterMethod()->getSelector();
llvm::Value *Receiver;
if (KE->getClassProp()) {
const ObjCInterfaceDecl *OID = KE->getClassProp();
if (KE->getInterfaceDecl()) {
const ObjCInterfaceDecl *OID = KE->getInterfaceDecl();
Receiver = CGM.getObjCRuntime().GetClass(Builder, OID);
} else if (isa<ObjCSuperExpr>(KE->getBase()))
return EmitObjCSuperPropertyGet(KE, S);
@ -351,7 +351,7 @@ RValue CodeGenFunction::EmitObjCPropertyGet(const Expr *Exp) {
return CGM.getObjCRuntime().
GenerateMessageSend(*this, Exp->getType(), S,
Receiver,
KE->getClassProp() != 0, CallArgList());
KE->getInterfaceDecl() != 0, CallArgList());
}
}
@ -394,8 +394,8 @@ void CodeGenFunction::EmitObjCPropertySet(const Expr *Exp,
Selector S = E->getSetterMethod()->getSelector();
CallArgList Args;
llvm::Value *Receiver;
if (E->getClassProp()) {
const ObjCInterfaceDecl *OID = E->getClassProp();
if (E->getInterfaceDecl()) {
const ObjCInterfaceDecl *OID = E->getInterfaceDecl();
Receiver = CGM.getObjCRuntime().GetClass(Builder, OID);
} else if (isa<ObjCSuperExpr>(E->getBase())) {
EmitObjCSuperPropertySet(E, S, Src);
@ -405,7 +405,7 @@ void CodeGenFunction::EmitObjCPropertySet(const Expr *Exp,
Args.push_back(std::make_pair(Src, E->getType()));
CGM.getObjCRuntime().GenerateMessageSend(*this, getContext().VoidTy, S,
Receiver,
E->getClassProp() != 0, Args);
E->getInterfaceDecl() != 0, Args);
} else
assert (0 && "bad expression node in EmitObjCPropertySet");
}

Просмотреть файл

@ -749,7 +749,7 @@ unsigned PCHStmtReader::VisitObjCImplctSetterGetterRefExpr(
cast_or_null<ObjCMethodDecl>(Reader.GetDecl(Record[Idx++])));
E->setSetterMethod(
cast_or_null<ObjCMethodDecl>(Reader.GetDecl(Record[Idx++])));
E->setClassProp(
E->setInterfaceDecl(
cast_or_null<ObjCInterfaceDecl>(Reader.GetDecl(Record[Idx++])));
E->setBase(cast_or_null<Expr>(StmtStack.back()));
E->setLocation(SourceLocation::getFromRawEncoding(Record[Idx++]));

Просмотреть файл

@ -679,8 +679,8 @@ void PCHStmtWriter::VisitObjCImplctSetterGetterRefExpr(
Writer.AddDeclRef(E->getGetterMethod(), Record);
Writer.AddDeclRef(E->getSetterMethod(), Record);
// NOTE: ClassProp and Base are mutually exclusive.
Writer.AddDeclRef(E->getClassProp(), Record);
// NOTE: InterfaceDecl and Base are mutually exclusive.
Writer.AddDeclRef(E->getInterfaceDecl(), Record);
Writer.WriteSubStmt(E->getBase());
Writer.AddSourceLocation(E->getLocation(), Record);
Writer.AddSourceLocation(E->getClassLoc(), Record);