[llvm-commits] [llvm-gcc-4.2] r58569 - /llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp

Anton Korobeynikov asl at math.spbu.ru
Sun Nov 2 08:46:46 PST 2008


Author: asl
Date: Sun Nov  2 10:46:46 2008
New Revision: 58569

URL: http://llvm.org/viewvc/llvm-project?rev=58569&view=rev
Log:
Weak alias does not have DECL_EXTERNAL bit set,
but we still need to emit weak linkage in this case.
This fixes PR2691. Patch by Török Edwin!

Modified:
    llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp

Modified: llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp?rev=58569&r1=58568&r2=58569&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp (original)
+++ llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp Sun Nov  2 10:46:46 2008
@@ -807,14 +807,14 @@
         error ("%J%qD aliased to undefined symbol %qs", decl, decl, AliaseeName);
         timevar_pop(TV_LLVM_GLOBALS);
         return;
-      } 
+      }
     }
   }
-  
+
   GlobalValue::LinkageTypes Linkage;
 
-  // Check for external weak linkage
-  if (DECL_EXTERNAL(decl) && DECL_WEAK(decl))
+  // A weak alias has TREE_PUBLIC set but not the other bits.
+  if (DECL_WEAK(decl))
     Linkage = GlobalValue::WeakLinkage;
   else if (!TREE_PUBLIC(decl))
     Linkage = GlobalValue::InternalLinkage;





More information about the llvm-commits mailing list