forked from OSchip/llvm-project
IRgen: Move remaining LValue::Set... methods to LValue::set... (non-static) methods.
llvm-svn: 111722
This commit is contained in:
parent
f166a523f1
commit
4bb04cee6a
|
@ -1041,10 +1041,10 @@ static void setObjCGCLValueClass(const ASTContext &Ctx, const Expr *E,
|
|||
return;
|
||||
|
||||
if (isa<ObjCIvarRefExpr>(E)) {
|
||||
LV.SetObjCIvar(LV, true);
|
||||
LV.setObjCIvar(true);
|
||||
ObjCIvarRefExpr *Exp = cast<ObjCIvarRefExpr>(const_cast<Expr*>(E));
|
||||
LV.setBaseIvarExp(Exp->getBase());
|
||||
LV.SetObjCArray(LV, E->getType()->isArrayType());
|
||||
LV.setObjCArray(E->getType()->isArrayType());
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -1052,11 +1052,11 @@ static void setObjCGCLValueClass(const ASTContext &Ctx, const Expr *E,
|
|||
if (const VarDecl *VD = dyn_cast<VarDecl>(Exp->getDecl())) {
|
||||
if ((VD->isBlockVarDecl() && !VD->hasLocalStorage()) ||
|
||||
VD->isFileVarDecl()) {
|
||||
LV.SetGlobalObjCRef(LV, true);
|
||||
LV.SetThreadLocalRef(LV, VD->isThreadSpecified());
|
||||
LV.setGlobalObjCRef(true);
|
||||
LV.setThreadLocalRef(VD->isThreadSpecified());
|
||||
}
|
||||
}
|
||||
LV.SetObjCArray(LV, E->getType()->isArrayType());
|
||||
LV.setObjCArray(E->getType()->isArrayType());
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -1074,7 +1074,7 @@ static void setObjCGCLValueClass(const ASTContext &Ctx, const Expr *E,
|
|||
if (ExpTy->isPointerType())
|
||||
ExpTy = ExpTy->getAs<PointerType>()->getPointeeType();
|
||||
if (ExpTy->isRecordType())
|
||||
LV.SetObjCIvar(LV, false);
|
||||
LV.setObjCIvar(false);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
@ -1093,11 +1093,11 @@ static void setObjCGCLValueClass(const ASTContext &Ctx, const Expr *E,
|
|||
if (LV.isObjCIvar() && !LV.isObjCArray())
|
||||
// Using array syntax to assigning to what an ivar points to is not
|
||||
// same as assigning to the ivar itself. {id *Names;} Names[i] = 0;
|
||||
LV.SetObjCIvar(LV, false);
|
||||
LV.setObjCIvar(false);
|
||||
else if (LV.isGlobalObjCRef() && !LV.isObjCArray())
|
||||
// Using array syntax to assigning to what global points to is not
|
||||
// same as assigning to the global itself. {id *G;} G[i] = 0;
|
||||
LV.SetGlobalObjCRef(LV, false);
|
||||
LV.setGlobalObjCRef(false);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -1105,7 +1105,7 @@ static void setObjCGCLValueClass(const ASTContext &Ctx, const Expr *E,
|
|||
setObjCGCLValueClass(Ctx, Exp->getBase(), LV);
|
||||
// We don't know if member is an 'ivar', but this flag is looked at
|
||||
// only in the context of LV.isObjCIvar().
|
||||
LV.SetObjCArray(LV, E->getType()->isArrayType());
|
||||
LV.setObjCArray(E->getType()->isArrayType());
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -184,15 +184,26 @@ public:
|
|||
}
|
||||
|
||||
bool isObjCIvar() const { return Ivar; }
|
||||
void setObjCIvar(bool Value) { Ivar = Value; }
|
||||
|
||||
bool isObjCArray() const { return ObjIsArray; }
|
||||
void setObjCArray(bool Value) { ObjIsArray = Value; }
|
||||
|
||||
bool isNonGC () const { return NonGC; }
|
||||
void setNonGC(bool Value) { NonGC = Value; }
|
||||
|
||||
bool isGlobalObjCRef() const { return GlobalObjCRef; }
|
||||
void setGlobalObjCRef(bool Value) { GlobalObjCRef = Value; }
|
||||
|
||||
bool isThreadLocalRef() const { return ThreadLocalRef; }
|
||||
bool isObjCWeak() const { return Quals.getObjCGCAttr() == Qualifiers::Weak; }
|
||||
bool isObjCStrong() const { return Quals.getObjCGCAttr() == Qualifiers::Strong; }
|
||||
void setThreadLocalRef(bool Value) { ThreadLocalRef = Value;}
|
||||
|
||||
bool isObjCWeak() const {
|
||||
return Quals.getObjCGCAttr() == Qualifiers::Weak;
|
||||
}
|
||||
bool isObjCStrong() const {
|
||||
return Quals.getObjCGCAttr() == Qualifiers::Strong;
|
||||
}
|
||||
|
||||
Expr *getBaseIvarExp() const { return BaseIvarExp; }
|
||||
void setBaseIvarExp(Expr *V) { BaseIvarExp = V; }
|
||||
|
@ -204,19 +215,6 @@ public:
|
|||
|
||||
unsigned getAlignment() const { return Alignment; }
|
||||
|
||||
static void SetObjCIvar(LValue& R, bool iValue) {
|
||||
R.Ivar = iValue;
|
||||
}
|
||||
static void SetObjCArray(LValue& R, bool iValue) {
|
||||
R.ObjIsArray = iValue;
|
||||
}
|
||||
static void SetGlobalObjCRef(LValue& R, bool iValue) {
|
||||
R.GlobalObjCRef = iValue;
|
||||
}
|
||||
static void SetThreadLocalRef(LValue& R, bool iValue) {
|
||||
R.ThreadLocalRef = iValue;
|
||||
}
|
||||
|
||||
// simple lvalue
|
||||
llvm::Value *getAddress() const { assert(isSimple()); return V; }
|
||||
|
||||
|
|
Loading…
Reference in New Issue