[cfe-commits] r120884 - in /cfe/trunk/lib/CodeGen: CGExpr.cpp CGExprAgg.cpp CGExprCXX.cpp CGExprComplex.cpp CGExprScalar.cpp CGObjC.cpp CGValue.h CodeGenFunction.h
jahanian
fjahanian at apple.com
Sat Dec 4 11:21:48 PST 2010
I am seeing these failures:
********************
Testing Time: 105.79s
********************
Failing Tests (15):
Clang :: CodeGenCXX/PR5050-constructor-conversion.cpp
Clang :: CodeGenCXX/array-construction.cpp
Clang :: CodeGenCXX/array-operator-delete-call.cpp
Clang :: CodeGenCXX/cast-conversion.cpp
Clang :: CodeGenCXX/constructor-conversion.cpp
Clang :: CodeGenCXX/constructor-default-arg.cpp
Clang :: CodeGenCXX/constructor-for-array-members.cpp
Clang :: CodeGenCXX/convert-to-fptr.cpp
Clang :: CodeGenCXX/decl-ref-init.cpp
Clang :: CodeGenCXX/default-constructor-for-members.cpp
Clang :: CodeGenCXX/derived-to-base-conv.cpp
Clang :: CodeGenCXX/ptr-to-member-function.cpp
Clang :: CodeGenObjC/objc-read-weak-byref.m
Clang :: CodeGenObjC/objc2-weak-block-call.m
Clang :: Driver/hello.c
Expected Passes : 2659
Expected Failures : 22
Unexpected Failures: 15
- Fariborz
On Dec 3, 2010, at 6:32 PM, John McCall wrote:
> Author: rjmccall
> Date: Fri Dec 3 20:32:38 2010
> New Revision: 120884
>
> URL: http://llvm.org/viewvc/llvm-project?rev=120884&view=rev
> Log:
> Kill the KVC l-value kind and calculate the base expression when emitting
> the l-value.
>
>
> Modified:
> cfe/trunk/lib/CodeGen/CGExpr.cpp
> cfe/trunk/lib/CodeGen/CGExprAgg.cpp
> cfe/trunk/lib/CodeGen/CGExprCXX.cpp
> cfe/trunk/lib/CodeGen/CGExprComplex.cpp
> cfe/trunk/lib/CodeGen/CGExprScalar.cpp
> cfe/trunk/lib/CodeGen/CGObjC.cpp
> cfe/trunk/lib/CodeGen/CGValue.h
> cfe/trunk/lib/CodeGen/CodeGenFunction.h
>
> Modified: cfe/trunk/lib/CodeGen/CGExpr.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGExpr.cpp?rev=120884&r1=120883&r2=120884&view=diff
> ==============================================================================
> --- cfe/trunk/lib/CodeGen/CGExpr.cpp (original)
> +++ cfe/trunk/lib/CodeGen/CGExpr.cpp Fri Dec 3 20:32:38 2010
> @@ -195,11 +195,9 @@
> if (E->isLValue()) {
> // Emit the expression as an lvalue.
> LValue LV = CGF.EmitLValue(E);
> - if (LV.isPropertyRef() || LV.isKVCRef()) {
> + if (LV.isPropertyRef()) {
> QualType QT = E->getType();
> - RValue RV =
> - LV.isPropertyRef() ? CGF.EmitLoadOfPropertyRefLValue(LV, QT)
> - : CGF.EmitLoadOfKVCRefLValue(LV, QT);
> + RValue RV = CGF.EmitLoadOfPropertyRefLValue(LV);
> assert(RV.isScalar() && "EmitExprForReferenceBinding");
> return RV.getScalarVal();
> }
> @@ -671,11 +669,8 @@
> if (LV.isBitField())
> return EmitLoadOfBitfieldLValue(LV, ExprType);
>
> - if (LV.isPropertyRef())
> - return EmitLoadOfPropertyRefLValue(LV, ExprType);
> -
> - assert(LV.isKVCRef() && "Unknown LValue type!");
> - return EmitLoadOfKVCRefLValue(LV, ExprType);
> + assert(LV.isPropertyRef() && "Unknown LValue type!");
> + return EmitLoadOfPropertyRefLValue(LV);
> }
>
> RValue CodeGenFunction::EmitLoadOfBitfieldLValue(LValue LV,
> @@ -750,16 +745,6 @@
> return RValue::get(Res);
> }
>
> -RValue CodeGenFunction::EmitLoadOfPropertyRefLValue(LValue LV,
> - QualType ExprType) {
> - return EmitObjCPropertyGet(LV.getPropertyRefExpr());
> -}
> -
> -RValue CodeGenFunction::EmitLoadOfKVCRefLValue(LValue LV,
> - QualType ExprType) {
> - return EmitObjCPropertyGet(LV.getKVCRefExpr());
> -}
> -
> // If this is a reference to a subset of the elements of a vector, create an
> // appropriate shufflevector.
> RValue CodeGenFunction::EmitLoadOfExtVectorElementLValue(LValue LV,
> @@ -820,11 +805,8 @@
> if (Dst.isBitField())
> return EmitStoreThroughBitfieldLValue(Src, Dst, Ty);
>
> - if (Dst.isPropertyRef())
> - return EmitStoreThroughPropertyRefLValue(Src, Dst, Ty);
> -
> - assert(Dst.isKVCRef() && "Unknown LValue type");
> - return EmitStoreThroughKVCRefLValue(Src, Dst, Ty);
> + assert(Dst.isPropertyRef() && "Unknown LValue type");
> + return EmitStoreThroughPropertyRefLValue(Src, Dst);
> }
>
> if (Dst.isObjCWeak() && !Dst.isNonGC()) {
> @@ -969,18 +951,6 @@
> }
> }
>
> -void CodeGenFunction::EmitStoreThroughPropertyRefLValue(RValue Src,
> - LValue Dst,
> - QualType Ty) {
> - EmitObjCPropertySet(Dst.getPropertyRefExpr(), Src);
> -}
> -
> -void CodeGenFunction::EmitStoreThroughKVCRefLValue(RValue Src,
> - LValue Dst,
> - QualType Ty) {
> - EmitObjCPropertySet(Dst.getKVCRefExpr(), Src);
> -}
> -
> void CodeGenFunction::EmitStoreThroughExtVectorComponentLValue(RValue Src,
> LValue Dst,
> QualType Ty) {
> @@ -1569,7 +1539,7 @@
> BaseQuals = PTy->getPointeeType().getQualifiers();
> } else if (ObjCPropertyRefExpr *PRE
> = dyn_cast<ObjCPropertyRefExpr>(BaseExpr->IgnoreParens())) {
> - RValue RV = EmitObjCPropertyGet(PRE);
> + RValue RV = EmitLoadOfPropertyRefLValue(EmitObjCPropertyRefLValue(PRE));
> BaseValue = RV.getAggregateAddr();
> BaseQuals = BaseExpr->getType().getQualifiers();
> } else {
> @@ -1788,11 +1758,9 @@
> case CK_NoOp:
> if (!E->getSubExpr()->isRValue() || E->getType()->isRecordType()) {
> LValue LV = EmitLValue(E->getSubExpr());
> - if (LV.isPropertyRef() || LV.isKVCRef()) {
> + if (LV.isPropertyRef()) {
> QualType QT = E->getSubExpr()->getType();
> - RValue RV =
> - LV.isPropertyRef() ? EmitLoadOfPropertyRefLValue(LV, QT)
> - : EmitLoadOfKVCRefLValue(LV, QT);
> + RValue RV = EmitLoadOfPropertyRefLValue(LV);
> assert(RV.isAggregate());
> llvm::Value *V = RV.getAggregateAddr();
> return MakeAddrLValue(V, QT);
> @@ -1861,11 +1829,9 @@
>
> LValue LV = EmitLValue(E->getSubExpr());
> llvm::Value *This;
> - if (LV.isPropertyRef() || LV.isKVCRef()) {
> + if (LV.isPropertyRef()) {
> QualType QT = E->getSubExpr()->getType();
> - RValue RV =
> - LV.isPropertyRef() ? EmitLoadOfPropertyRefLValue(LV, QT)
> - : EmitLoadOfKVCRefLValue(LV, QT);
> + RValue RV = EmitLoadOfPropertyRefLValue(LV);
> assert (!RV.isScalar() && "EmitCastLValue");
> This = RV.getAggregateAddr();
> }
> @@ -2107,9 +2073,15 @@
> // This is a special l-value that just issues sends when we load or
> // store through it.
>
> - if (E->isImplicitProperty())
> - return LValue::MakeKVCRef(E, E->getType().getCVRQualifiers());
> - return LValue::MakePropertyRef(E, E->getType().getCVRQualifiers());
> + // For certain base kinds, we need to emit the base immediately.
> + llvm::Value *Base;
> + if (E->isSuperReceiver())
> + Base = 0;
> + else if (E->isClassReceiver())
> + Base = CGM.getObjCRuntime().GetClass(Builder, E->getClassReceiver());
> + else
> + Base = EmitScalarExpr(E->getBase());
> + return LValue::MakePropertyRef(E, Base);
> }
>
> LValue CodeGenFunction::EmitStmtExprLValue(const StmtExpr *E) {
>
> Modified: cfe/trunk/lib/CodeGen/CGExprAgg.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGExprAgg.cpp?rev=120884&r1=120883&r2=120884&view=diff
> ==============================================================================
> --- cfe/trunk/lib/CodeGen/CGExprAgg.cpp (original)
> +++ cfe/trunk/lib/CodeGen/CGExprAgg.cpp Fri Dec 3 20:32:38 2010
> @@ -349,7 +349,8 @@
> }
>
> void AggExprEmitter::VisitObjCPropertyRefExpr(ObjCPropertyRefExpr *E) {
> - RValue RV = CGF.EmitObjCPropertyGet(E, getReturnValueSlot());
> + RValue RV = CGF.EmitLoadOfPropertyRefLValue(CGF.EmitObjCPropertyRefLValue(E),
> + getReturnValueSlot());
> EmitGCMove(E, RV);
> }
>
> @@ -388,11 +389,7 @@
> if (LHS.isPropertyRef()) {
> AggValueSlot Slot = EnsureSlot(E->getRHS()->getType());
> CGF.EmitAggExpr(E->getRHS(), Slot);
> - CGF.EmitObjCPropertySet(LHS.getPropertyRefExpr(), Slot.asRValue());
> - } else if (LHS.isKVCRef()) {
> - AggValueSlot Slot = EnsureSlot(E->getRHS()->getType());
> - CGF.EmitAggExpr(E->getRHS(), Slot);
> - CGF.EmitObjCPropertySet(LHS.getKVCRefExpr(), Slot.asRValue());
> + CGF.EmitStoreThroughPropertyRefLValue(Slot.asRValue(), LHS);
> } else {
> bool GCollection = false;
> if (CGF.getContext().getLangOptions().getGCMode())
>
> Modified: cfe/trunk/lib/CodeGen/CGExprCXX.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGExprCXX.cpp?rev=120884&r1=120883&r2=120884&view=diff
> ==============================================================================
> --- cfe/trunk/lib/CodeGen/CGExprCXX.cpp (original)
> +++ cfe/trunk/lib/CodeGen/CGExprCXX.cpp Fri Dec 3 20:32:38 2010
> @@ -124,11 +124,9 @@
> This = EmitScalarExpr(ME->getBase());
> else {
> LValue BaseLV = EmitLValue(ME->getBase());
> - if (BaseLV.isPropertyRef() || BaseLV.isKVCRef()) {
> + if (BaseLV.isPropertyRef()) {
> QualType QT = ME->getBase()->getType();
> - RValue RV =
> - BaseLV.isPropertyRef() ? EmitLoadOfPropertyRefLValue(BaseLV, QT)
> - : EmitLoadOfKVCRefLValue(BaseLV, QT);
> + RValue RV = EmitLoadOfPropertyRefLValue(BaseLV);
> This = RV.isScalar() ? RV.getScalarVal() : RV.getAggregateAddr();
> }
> else
> @@ -242,13 +240,10 @@
> "EmitCXXOperatorMemberCallExpr - user declared copy assignment");
> LValue LV = EmitLValue(E->getArg(0));
> llvm::Value *This;
> - if (LV.isPropertyRef() || LV.isKVCRef()) {
> + if (LV.isPropertyRef()) {
> AggValueSlot Slot = CreateAggTemp(E->getArg(1)->getType());
> EmitAggExpr(E->getArg(1), Slot);
> - if (LV.isPropertyRef())
> - EmitObjCPropertySet(LV.getPropertyRefExpr(), Slot.asRValue());
> - else
> - EmitObjCPropertySet(LV.getKVCRefExpr(), Slot.asRValue());
> + EmitStoreThroughPropertyRefLValue(Slot.asRValue(), LV);
> return RValue::getAggregate(0, false);
> }
> else
> @@ -267,11 +262,9 @@
> FPT->isVariadic());
> LValue LV = EmitLValue(E->getArg(0));
> llvm::Value *This;
> - if (LV.isPropertyRef() || LV.isKVCRef()) {
> + if (LV.isPropertyRef()) {
> QualType QT = E->getArg(0)->getType();
> - RValue RV =
> - LV.isPropertyRef() ? EmitLoadOfPropertyRefLValue(LV, QT)
> - : EmitLoadOfKVCRefLValue(LV, QT);
> + RValue RV = EmitLoadOfPropertyRefLValue(LV);
> assert (!RV.isScalar() && "EmitCXXOperatorMemberCallExpr");
> This = RV.getAggregateAddr();
> }
>
> Modified: cfe/trunk/lib/CodeGen/CGExprComplex.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGExprComplex.cpp?rev=120884&r1=120883&r2=120884&view=diff
> ==============================================================================
> --- cfe/trunk/lib/CodeGen/CGExprComplex.cpp (original)
> +++ cfe/trunk/lib/CodeGen/CGExprComplex.cpp Fri Dec 3 20:32:38 2010
> @@ -64,11 +64,8 @@
> if (LV.isSimple())
> return EmitLoadOfComplex(LV.getAddress(), LV.isVolatileQualified());
>
> - if (LV.isPropertyRef())
> - return CGF.EmitObjCPropertyGet(LV.getPropertyRefExpr()).getComplexVal();
> -
> - assert(LV.isKVCRef() && "Unknown LValue type!");
> - return CGF.EmitObjCPropertyGet(LV.getKVCRefExpr()).getComplexVal();
> + assert(LV.isPropertyRef() && "Unknown LValue type!");
> + return CGF.EmitLoadOfPropertyRefLValue(LV).getComplexVal();
> }
>
> /// EmitLoadOfComplex - Given a pointer to a complex value, emit code to load
> @@ -531,11 +528,7 @@
> // We know the LHS is a complex lvalue.
> ComplexPairTy LHSComplexPair;
> if (LHS.isPropertyRef())
> - LHSComplexPair =
> - CGF.EmitObjCPropertyGet(LHS.getPropertyRefExpr()).getComplexVal();
> - else if (LHS.isKVCRef())
> - LHSComplexPair =
> - CGF.EmitObjCPropertyGet(LHS.getKVCRefExpr()).getComplexVal();
> + LHSComplexPair = CGF.EmitLoadOfPropertyRefLValue(LHS).getComplexVal();
> else
> LHSComplexPair = EmitLoadOfComplex(LHS.getAddress(),
> LHS.isVolatileQualified());
> @@ -551,10 +544,7 @@
>
> // Store the result value into the LHS lvalue.
> if (LHS.isPropertyRef())
> - CGF.EmitObjCPropertySet(LHS.getPropertyRefExpr(),
> - RValue::getComplex(Result));
> - else if (LHS.isKVCRef())
> - CGF.EmitObjCPropertySet(LHS.getKVCRefExpr(), RValue::getComplex(Result));
> + CGF.EmitStoreThroughPropertyRefLValue(RValue::getComplex(Result), LHS);
> else
> EmitStoreOfComplex(Result, LHS.getAddress(), LHS.isVolatileQualified());
>
> @@ -573,7 +563,7 @@
> return Val;
>
> // Objective-C property assignment never reloads the value following a store.
> - if (LV.isPropertyRef() || LV.isKVCRef())
> + if (LV.isPropertyRef())
> return Val;
>
> // If the lvalue is non-volatile, return the computed value of the assignment.
> @@ -599,9 +589,7 @@
>
> // Store the result value into the LHS lvalue.
> if (LHS.isPropertyRef())
> - CGF.EmitObjCPropertySet(LHS.getPropertyRefExpr(), RValue::getComplex(Val));
> - else if (LHS.isKVCRef())
> - CGF.EmitObjCPropertySet(LHS.getKVCRefExpr(), RValue::getComplex(Val));
> + CGF.EmitStoreThroughPropertyRefLValue(RValue::getComplex(Val), LHS);
> else
> EmitStoreOfComplex(Val, LHS.getAddress(), LHS.isVolatileQualified());
>
> @@ -617,7 +605,7 @@
> return Val;
>
> // Objective-C property assignment never reloads the value following a store.
> - if (LV.isPropertyRef() || LV.isKVCRef())
> + if (LV.isPropertyRef())
> return Val;
>
> // If the lvalue is non-volatile, return the computed value of the assignment.
>
> Modified: cfe/trunk/lib/CodeGen/CGExprScalar.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGExprScalar.cpp?rev=120884&r1=120883&r2=120884&view=diff
> ==============================================================================
> --- cfe/trunk/lib/CodeGen/CGExprScalar.cpp (original)
> +++ cfe/trunk/lib/CodeGen/CGExprScalar.cpp Fri Dec 3 20:32:38 2010
> @@ -1127,9 +1127,7 @@
> if (E->Classify(CGF.getContext()).isGLValue()) {
> LValue LV = CGF.EmitLValue(E);
> if (LV.isPropertyRef())
> - CGF.EmitLoadOfPropertyRefLValue(LV, E->getType());
> - else if (LV.isKVCRef())
> - CGF.EmitLoadOfKVCRefLValue(LV, E->getType());
> + CGF.EmitLoadOfPropertyRefLValue(LV);
> }
> else
> CGF.EmitAnyExpr(E, AggValueSlot::ignored(), true);
> @@ -1583,7 +1581,7 @@
> return RHS;
>
> // Objective-C property assignment never reloads the value following a store.
> - if (LHS.isPropertyRef() || LHS.isKVCRef())
> + if (LHS.isPropertyRef())
> return RHS;
>
> // If the lvalue is non-volatile, return the computed value of the assignment.
> @@ -2183,7 +2181,7 @@
> return RHS;
>
> // Objective-C property assignment never reloads the value following a store.
> - if (LHS.isPropertyRef() || LHS.isKVCRef())
> + if (LHS.isPropertyRef())
> return RHS;
>
> // If the lvalue is non-volatile, return the computed value of the assignment.
>
> Modified: cfe/trunk/lib/CodeGen/CGObjC.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGObjC.cpp?rev=120884&r1=120883&r2=120884&view=diff
> ==============================================================================
> --- cfe/trunk/lib/CodeGen/CGObjC.cpp (original)
> +++ cfe/trunk/lib/CodeGen/CGObjC.cpp Fri Dec 3 20:32:38 2010
> @@ -528,8 +528,9 @@
>
> }
>
> -RValue CodeGenFunction::EmitObjCPropertyGet(const ObjCPropertyRefExpr *E,
> - ReturnValueSlot Return) {
> +RValue CodeGenFunction::EmitLoadOfPropertyRefLValue(LValue LV,
> + ReturnValueSlot Return) {
> + const ObjCPropertyRefExpr *E = LV.getPropertyRefExpr();
> QualType ResultType;
> Selector S;
> if (E->isExplicitProperty()) {
> @@ -545,14 +546,9 @@
> if (E->isSuperReceiver())
> return EmitObjCSuperPropertyGet(E, S, Return);
>
> - llvm::Value *Receiver;
> - const ObjCInterfaceDecl *ReceiverClass = 0;
> - if (E->isClassReceiver()) {
> - ReceiverClass = E->getClassReceiver();
> - Receiver = CGM.getObjCRuntime().GetClass(Builder, ReceiverClass);
> - } else {
> - Receiver = EmitScalarExpr(E->getBase());
> - }
> + llvm::Value *Receiver = LV.getPropertyRefBaseAddr();
> + const ObjCInterfaceDecl *ReceiverClass
> + = (E->isClassReceiver() ? E->getClassReceiver() : 0);
> return CGM.getObjCRuntime().
> GenerateMessageSend(*this, Return, ResultType, S,
> Receiver, CallArgList(), ReceiverClass);
> @@ -579,8 +575,9 @@
> return;
> }
>
> -void CodeGenFunction::EmitObjCPropertySet(const ObjCPropertyRefExpr *E,
> - RValue Src) {
> +void CodeGenFunction::EmitStoreThroughPropertyRefLValue(RValue Src,
> + LValue Dst) {
> + const ObjCPropertyRefExpr *E = Dst.getPropertyRefExpr();
> Selector S = E->getSetterSelector();
> QualType ArgType;
> if (E->isImplicitProperty()) {
> @@ -596,14 +593,9 @@
> return;
> }
>
> - const ObjCInterfaceDecl *ReceiverClass = 0;
> - llvm::Value *Receiver;
> - if (E->isClassReceiver()) {
> - ReceiverClass = E->getClassReceiver();
> - Receiver = CGM.getObjCRuntime().GetClass(Builder, ReceiverClass);
> - } else {
> - Receiver = EmitScalarExpr(E->getBase());
> - }
> + llvm::Value *Receiver = Dst.getPropertyRefBaseAddr();
> + const ObjCInterfaceDecl *ReceiverClass
> + = (E->isClassReceiver() ? E->getClassReceiver() : 0);
>
> CallArgList Args;
> Args.push_back(std::make_pair(Src, ArgType));
>
> Modified: cfe/trunk/lib/CodeGen/CGValue.h
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGValue.h?rev=120884&r1=120883&r2=120884&view=diff
> ==============================================================================
> --- cfe/trunk/lib/CodeGen/CGValue.h (original)
> +++ cfe/trunk/lib/CodeGen/CGValue.h Fri Dec 3 20:32:38 2010
> @@ -108,10 +108,8 @@
> VectorElt, // This is a vector element l-value (V[i]), use getVector*
> BitField, // This is a bitfield l-value, use getBitfield*.
> ExtVectorElt, // This is an extended vector subset, use getExtVectorComp
> - PropertyRef, // This is an Objective-C property reference, use
> + PropertyRef // This is an Objective-C property reference, use
> // getPropertyRefExpr
> - KVCRef // This is an objective-c 'implicit' property ref,
> - // use getKVCRefExpr
> } LVType;
>
> llvm::Value *V;
> @@ -177,7 +175,6 @@
> bool isBitField() const { return LVType == BitField; }
> bool isExtVectorElt() const { return LVType == ExtVectorElt; }
> bool isPropertyRef() const { return LVType == PropertyRef; }
> - bool isKVCRef() const { return LVType == KVCRef; }
>
> bool isVolatileQualified() const { return Quals.hasVolatile(); }
> bool isRestrictQualified() const { return Quals.hasRestrict(); }
> @@ -245,14 +242,12 @@
> }
>
> // property ref lvalue
> - const ObjCPropertyRefExpr *getPropertyRefExpr() const {
> + llvm::Value *getPropertyRefBaseAddr() const {
> assert(isPropertyRef());
> - return PropertyRefExpr;
> + return V;
> }
> -
> - // 'implicit' property ref lvalue
> - const ObjCPropertyRefExpr *getKVCRefExpr() const {
> - assert(isKVCRef());
> + const ObjCPropertyRefExpr *getPropertyRefExpr() const {
> + assert(isPropertyRef());
> return PropertyRefExpr;
> }
>
> @@ -309,20 +304,12 @@
> // the lvalue. However, this complicates the code a bit, and I haven't figured
> // out how to make it go wrong yet.
> static LValue MakePropertyRef(const ObjCPropertyRefExpr *E,
> - unsigned CVR) {
> + llvm::Value *Base) {
> LValue R;
> R.LVType = PropertyRef;
> + R.V = Base;
> R.PropertyRefExpr = E;
> - R.Initialize(Qualifiers::fromCVRMask(CVR));
> - return R;
> - }
> -
> - static LValue MakeKVCRef(const ObjCPropertyRefExpr *E,
> - unsigned CVR) {
> - LValue R;
> - R.LVType = KVCRef;
> - R.PropertyRefExpr = E;
> - R.Initialize(Qualifiers::fromCVRMask(CVR));
> + R.Initialize(Qualifiers());
> return R;
> }
> };
>
> Modified: cfe/trunk/lib/CodeGen/CodeGenFunction.h
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CodeGenFunction.h?rev=120884&r1=120883&r2=120884&view=diff
> ==============================================================================
> --- cfe/trunk/lib/CodeGen/CodeGenFunction.h (original)
> +++ cfe/trunk/lib/CodeGen/CodeGenFunction.h Fri Dec 3 20:32:38 2010
> @@ -1382,9 +1382,8 @@
> RValue EmitLoadOfLValue(LValue V, QualType LVType);
> RValue EmitLoadOfExtVectorElementLValue(LValue V, QualType LVType);
> RValue EmitLoadOfBitfieldLValue(LValue LV, QualType ExprType);
> - RValue EmitLoadOfPropertyRefLValue(LValue LV, QualType ExprType);
> - RValue EmitLoadOfKVCRefLValue(LValue LV, QualType ExprType);
> -
> + RValue EmitLoadOfPropertyRefLValue(LValue LV,
> + ReturnValueSlot Return = ReturnValueSlot());
>
> /// EmitStoreThroughLValue - Store the specified rvalue into the specified
> /// lvalue, where both are guaranteed to the have the same type, and that type
> @@ -1392,8 +1391,7 @@
> void EmitStoreThroughLValue(RValue Src, LValue Dst, QualType Ty);
> void EmitStoreThroughExtVectorComponentLValue(RValue Src, LValue Dst,
> QualType Ty);
> - void EmitStoreThroughPropertyRefLValue(RValue Src, LValue Dst, QualType Ty);
> - void EmitStoreThroughKVCRefLValue(RValue Src, LValue Dst, QualType Ty);
> + void EmitStoreThroughPropertyRefLValue(RValue Src, LValue Dst);
>
> /// EmitStoreThroughLValue - Store Src into Dst with same constraints as
> /// EmitStoreThroughLValue.
> @@ -1544,11 +1542,8 @@
> llvm::Value *EmitObjCSelectorExpr(const ObjCSelectorExpr *E);
> RValue EmitObjCMessageExpr(const ObjCMessageExpr *E,
> ReturnValueSlot Return = ReturnValueSlot());
> - RValue EmitObjCPropertyGet(const ObjCPropertyRefExpr *E,
> - ReturnValueSlot Return = ReturnValueSlot());
> RValue EmitObjCSuperPropertyGet(const Expr *Exp, const Selector &S,
> ReturnValueSlot Return = ReturnValueSlot());
> - void EmitObjCPropertySet(const ObjCPropertyRefExpr *E, RValue Src);
> void EmitObjCSuperPropertySet(const Expr *E, const Selector &S, RValue Src);
>
>
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
More information about the cfe-commits
mailing list