diff options
Diffstat (limited to 'lib/CodeGen/CGValue.h')
-rw-r--r-- | lib/CodeGen/CGValue.h | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/lib/CodeGen/CGValue.h b/lib/CodeGen/CGValue.h index 318ee55ac9..96e4224f61 100644 --- a/lib/CodeGen/CGValue.h +++ b/lib/CodeGen/CGValue.h @@ -182,11 +182,10 @@ public: R.Ivar = iValue; } - static void SetObjCType(bool isWeak, bool isStrong, LValue& R) { - assert(!(isWeak == true && isStrong == true)); - if (isWeak) + static void SetObjCType(QualType::GCAttrTypes GCAttrs, LValue& R) { + if (GCAttrs == QualType::Weak) R.ObjCType = Weak; - else if (isStrong) + else if (GCAttrs == QualType::Strong) R.ObjCType = Strong; } @@ -227,11 +226,13 @@ public: return KVCRefExpr; } - static LValue MakeAddr(llvm::Value *V, unsigned Qualifiers) { + static LValue MakeAddr(llvm::Value *V, unsigned Qualifiers, + QualType::GCAttrTypes GCAttrs = QualType::GCNone) { LValue R; R.LVType = Simple; R.V = V; SetQualifiers(Qualifiers,R); + SetObjCType(GCAttrs, R); return R; } |