[cfe-commits] r66342 - in /cfe/trunk/lib/CodeGen: CGObjCMac.cpp CodeGenModule.cpp

Mike Stump mrs at apple.com
Sat Mar 7 08:33:28 PST 2009


Author: mrs
Date: Sat Mar  7 10:33:28 2009
New Revision: 66342

URL: http://llvm.org/viewvc/llvm-project?rev=66342&view=rev
Log:
Fixup our uses of various linkages to match how llvm now works.  I think they are all
correct, but an extra set of ObjC eyes would be good.

Modified:
    cfe/trunk/lib/CodeGen/CGObjCMac.cpp
    cfe/trunk/lib/CodeGen/CodeGenModule.cpp

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

==============================================================================
--- cfe/trunk/lib/CodeGen/CGObjCMac.cpp (original)
+++ cfe/trunk/lib/CodeGen/CGObjCMac.cpp Sat Mar  7 10:33:28 2009
@@ -3885,7 +3885,9 @@
     return Builder.CreateLoad(PTGV, false, "tmp");
   PTGV = new llvm::GlobalVariable(
                                 Init->getType(), false,
-                                llvm::GlobalValue::WeakLinkage,
+                                // FIXME: review, was WeakLinkage,
+                                // also review all other WeakLinkage changes
+                                llvm::GlobalValue::WeakAnyLinkage,
                                 Init,
                                 ProtocolName,
                                 &CGM.getModule());
@@ -4308,12 +4310,12 @@
   
   if (Entry) {
     // Already created, fix the linkage and update the initializer.
-    Entry->setLinkage(llvm::GlobalValue::WeakLinkage);
+    Entry->setLinkage(llvm::GlobalValue::WeakAnyLinkage);
     Entry->setInitializer(Init);
   } else {
     Entry = 
     new llvm::GlobalVariable(ObjCTypes.ProtocolnfABITy, false,
-                             llvm::GlobalValue::WeakLinkage,
+                             llvm::GlobalValue::WeakAnyLinkage,
                              Init, 
                              std::string("\01l_OBJC_PROTOCOL_$_")+ProtocolName,
                              &CGM.getModule());
@@ -4327,7 +4329,7 @@
   // __DATA, __objc_protolist
   llvm::GlobalVariable *PTGV = new llvm::GlobalVariable(
                                       ObjCTypes.ProtocolnfABIPtrTy, false,
-                                      llvm::GlobalValue::WeakLinkage,
+                                      llvm::GlobalValue::WeakAnyLinkage,
                                       Entry, 
                                       std::string("\01l_OBJC_LABEL_PROTOCOL_$_")
                                                   +ProtocolName,
@@ -4547,7 +4549,7 @@
     Values[1] = GetMethodVarName(Sel);
     llvm::Constant *Init = llvm::ConstantStruct::get(Values);
     GV =  new llvm::GlobalVariable(Init->getType(), false,
-                                   llvm::GlobalValue::WeakLinkage,
+                                   llvm::GlobalValue::WeakAnyLinkage,
                                    Init,
                                    Name,
                                    &CGM.getModule());
@@ -5108,7 +5110,7 @@
 
   Entry = 
     new llvm::GlobalVariable(ObjCTypes.EHTypeTy, false,
-                             llvm::GlobalValue::WeakLinkage,
+                             llvm::GlobalValue::WeakAnyLinkage,
                              Init, 
                              (std::string("OBJC_EHTYPE_$_") + 
                               ID->getIdentifier()->getName()),

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

==============================================================================
--- cfe/trunk/lib/CodeGen/CodeGenModule.cpp (original)
+++ cfe/trunk/lib/CodeGen/CodeGenModule.cpp Sat Mar  7 10:33:28 2009
@@ -270,7 +270,7 @@
                D->getAttr<WeakImportAttr>()) {
       // "extern_weak" is overloaded in LLVM; we probably should have
       // separate linkage types for this. 
-      GV->setLinkage(llvm::Function::ExternalWeakLinkage);
+      GV->setLinkage(llvm::Function::ExternalWeakAnyLinkage);
    }
   } else {
     if (IsInternal) {
@@ -285,7 +285,7 @@
           GV->setLinkage(llvm::Function::DLLExportLinkage);
       } else if (D->getAttr<WeakAttr>() || D->getAttr<WeakImportAttr>() || 
                  IsInline)
-        GV->setLinkage(llvm::Function::WeakLinkage);
+        GV->setLinkage(llvm::Function::WeakAnyLinkage);
     }
   }
 
@@ -611,7 +611,7 @@
       setGlobalVisibility(GV, VisibilityAttr::HiddenVisibility);
 
     if (D->getAttr<WeakAttr>() || D->getAttr<WeakImportAttr>())
-      GV->setLinkage(llvm::GlobalValue::ExternalWeakLinkage);
+      GV->setLinkage(llvm::GlobalValue::ExternalWeakAnyLinkage);
 
     if (const AsmLabelAttr *ALA = D->getAttr<AsmLabelAttr>()) {
       // Prefaced with special LLVM marker to indicate that the name
@@ -746,7 +746,7 @@
   else if (D->getAttr<DLLExportAttr>())
     GV->setLinkage(llvm::Function::DLLExportLinkage);
   else if (D->getAttr<WeakAttr>() || D->getAttr<WeakImportAttr>())
-    GV->setLinkage(llvm::GlobalVariable::WeakLinkage);
+    GV->setLinkage(llvm::GlobalVariable::WeakAnyLinkage);
   else {
     // FIXME: This isn't right.  This should handle common linkage and other
     // stuff.
@@ -757,7 +757,7 @@
       assert(0 && "Can't have auto or register globals");
     case VarDecl::None:
       if (!D->getInit())
-        GV->setLinkage(llvm::GlobalVariable::CommonLinkage);
+        GV->setLinkage(llvm::GlobalVariable::CommonAnyLinkage);
       else
         GV->setLinkage(llvm::GlobalVariable::ExternalLinkage);
       break;





More information about the cfe-commits mailing list