From: Daniel Dunbar Date: Sat, 21 Aug 2010 03:22:38 +0000 (+0000) Subject: IRgen/LValue: Add LValue::setNonGC instead of SetObjCNonGC, for consistency with... X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ea619177353e0a9f35b7d926a92df0e103515dbe;p=clang IRgen/LValue: Add LValue::setNonGC instead of SetObjCNonGC, for consistency with isNonGC(). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111718 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/CodeGen/CGExpr.cpp b/lib/CodeGen/CGExpr.cpp index f95a438818..da42af39dc 100644 --- a/lib/CodeGen/CGExpr.cpp +++ b/lib/CodeGen/CGExpr.cpp @@ -1185,7 +1185,9 @@ LValue CodeGenFunction::EmitDeclRefLValue(const DeclRefExpr *E) { if (VD->getType()->isReferenceType()) V = Builder.CreateLoad(V, "tmp"); LValue LV = LValue::MakeAddr(V, Quals); - LValue::SetObjCNonGC(LV, NonGCable); + if (NonGCable) { + LV.setNonGC(true); + } setObjCGCLValueClass(getContext(), E, LV); return LV; } @@ -1234,7 +1236,7 @@ LValue CodeGenFunction::EmitUnaryOpLValue(const UnaryOperator *E) { if (getContext().getLangOptions().ObjC1 && getContext().getLangOptions().getGCMode() != LangOptions::NonGC && LV.isObjCWeak()) - LValue::SetObjCNonGC(LV, !E->isOBJCGCCandidate(getContext())); + LV.setNonGC(!E->isOBJCGCCandidate(getContext())); return LV; } case UnaryOperator::Real: @@ -1462,7 +1464,7 @@ LValue CodeGenFunction::EmitArraySubscriptExpr(const ArraySubscriptExpr *E) { LValue LV = LValue::MakeAddr(Address, Quals); if (getContext().getLangOptions().ObjC1 && getContext().getLangOptions().getGCMode() != LangOptions::NonGC) { - LValue::SetObjCNonGC(LV, !E->isOBJCGCCandidate(getContext())); + LV.setNonGC(!E->isOBJCGCCandidate(getContext())); setObjCGCLValueClass(getContext(), E, LV); } return LV; @@ -1568,7 +1570,7 @@ LValue CodeGenFunction::EmitMemberExpr(const MemberExpr *E) { if (FieldDecl *Field = dyn_cast(ND)) { LValue LV = EmitLValueForField(BaseValue, Field, BaseQuals.getCVRQualifiers()); - LValue::SetObjCNonGC(LV, isNonGC); + LV.setNonGC(isNonGC); setObjCGCLValueClass(getContext(), E, LV); return LV; } diff --git a/lib/CodeGen/CGExprAgg.cpp b/lib/CodeGen/CGExprAgg.cpp index b3bce15c74..bd7f18e24c 100644 --- a/lib/CodeGen/CGExprAgg.cpp +++ b/lib/CodeGen/CGExprAgg.cpp @@ -735,7 +735,7 @@ void AggExprEmitter::VisitInitListExpr(InitListExpr *E) { // FIXME: volatility LValue FieldLoc = CGF.EmitLValueForFieldInitialization(DestPtr, *Field, 0); // We never generate write-barries for initialized fields. - LValue::SetObjCNonGC(FieldLoc, true); + FieldLoc.setNonGC(true); if (CurInitVal < NumInitElements) { // Store the initializer into the field. EmitInitializationToLValue(E->getInit(CurInitVal++), FieldLoc, diff --git a/lib/CodeGen/CGValue.h b/lib/CodeGen/CGValue.h index 8153169c87..b190cc8cc0 100644 --- a/lib/CodeGen/CGValue.h +++ b/lib/CodeGen/CGValue.h @@ -185,7 +185,10 @@ public: bool isObjCIvar() const { return Ivar; } bool isObjCArray() const { return ObjIsArray; } + bool isNonGC () const { return NonGC; } + void setNonGC(bool Value) { NonGC = Value; } + bool isGlobalObjCRef() const { return GlobalObjCRef; } bool isThreadLocalRef() const { return ThreadLocalRef; } bool isObjCWeak() const { return Quals.getObjCGCAttr() == Qualifiers::Weak; } @@ -210,9 +213,6 @@ public: static void SetThreadLocalRef(LValue& R, bool iValue) { R.ThreadLocalRef = iValue; } - static void SetObjCNonGC(LValue& R, bool iValue) { - R.NonGC = iValue; - } // simple lvalue llvm::Value *getAddress() const { assert(isSimple()); return V; }