[cfe-commits] r86410 - /cfe/trunk/lib/CodeGen/CGExpr.cpp

Anders Carlsson andersca at mac.com
Sat Nov 7 14:43:34 PST 2009


Author: andersca
Date: Sat Nov  7 16:43:34 2009
New Revision: 86410

URL: http://llvm.org/viewvc/llvm-project?rev=86410&view=rev
Log:
We only need to call SetObjCNonGC for local variables. No functionality change.

Modified:
    cfe/trunk/lib/CodeGen/CGExpr.cpp

Modified: cfe/trunk/lib/CodeGen/CGExpr.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGExpr.cpp?rev=86410&r1=86409&r2=86410&view=diff

==============================================================================
--- cfe/trunk/lib/CodeGen/CGExpr.cpp (original)
+++ cfe/trunk/lib/CodeGen/CGExpr.cpp Sat Nov  7 16:43:34 2009
@@ -819,14 +819,14 @@
   if (VD && (VD->isBlockVarDecl() || isa<ParmVarDecl>(VD) ||
         isa<ImplicitParamDecl>(VD))) {
     LValue LV;
-    bool NonGCable = VD->hasLocalStorage() &&
-      !VD->hasAttr<BlocksAttr>();
     if (VD->hasExternalStorage()) {
       llvm::Value *V = CGM.GetAddrOfGlobalVar(VD);
       if (VD->getType()->isReferenceType())
         V = Builder.CreateLoad(V, "tmp");
       LV = LValue::MakeAddr(V, MakeQualifiers(E->getType()));
     } else {
+      bool NonGCable = VD->hasLocalStorage() && !VD->hasAttr<BlocksAttr>();
+
       llvm::Value *V = LocalDeclMap[VD];
       assert(V && "DeclRefExpr not entered in LocalDeclMap?");
 
@@ -844,8 +844,8 @@
       if (VD->getType()->isReferenceType())
         V = Builder.CreateLoad(V, "tmp");
       LV = LValue::MakeAddr(V, Quals);
+      LValue::SetObjCNonGC(LV, NonGCable);
     }
-    LValue::SetObjCNonGC(LV, NonGCable);
     setObjCGCLValueClass(getContext(), E, LV);
     return LV;
   }





More information about the cfe-commits mailing list