[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