[llvm-commits] [llvm] r117585 - in /llvm/trunk: lib/MC/ELFObjectWriter.cpp test/MC/ELF/weak.s

Rafael Espindola rafael.espindola at gmail.com
Thu Oct 28 12:39:57 PDT 2010


Author: rafael
Date: Thu Oct 28 14:39:57 2010
New Revision: 117585

URL: http://llvm.org/viewvc/llvm-project?rev=117585&view=rev
Log:
Defined weak symbols should have non-zero value.

Modified:
    llvm/trunk/lib/MC/ELFObjectWriter.cpp
    llvm/trunk/test/MC/ELF/weak.s

Modified: llvm/trunk/lib/MC/ELFObjectWriter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/ELFObjectWriter.cpp?rev=117585&r1=117584&r2=117585&view=diff
==============================================================================
--- llvm/trunk/lib/MC/ELFObjectWriter.cpp (original)
+++ llvm/trunk/lib/MC/ELFObjectWriter.cpp Thu Oct 28 14:39:57 2010
@@ -438,10 +438,9 @@
   if (!Symbol.isInSection())
     return 0;
 
-  if (!Data.isCommon() && !(Data.getFlags() & ELF_STB_Weak))
-    if (MCFragment *FF = Data.getFragment())
-      return Layout.getSymbolAddress(&Data) -
-             Layout.getSectionAddress(FF->getParent());
+  if (MCFragment *FF = Data.getFragment())
+    return Layout.getSymbolAddress(&Data) -
+      Layout.getSectionAddress(FF->getParent());
 
   return 0;
 }

Modified: llvm/trunk/test/MC/ELF/weak.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/ELF/weak.s?rev=117585&r1=117584&r2=117585&view=diff
==============================================================================
--- llvm/trunk/test/MC/ELF/weak.s (original)
+++ llvm/trunk/test/MC/ELF/weak.s Thu Oct 28 14:39:57 2010
@@ -5,7 +5,7 @@
 	.weak	foo
         .long   foo
 
-// And that bar is after all local symbols
+// And that bar is after all local symbols and has non zero value.
         .weak bar
 bar:
 
@@ -15,7 +15,7 @@
 //CHECK-NEXT:    ('st_type', 0x00000000)
 //CHECK-NEXT:    ('st_other', 0x00000000)
 //CHECK-NEXT:    ('st_shndx', 0x00000001)
-//CHECK-NEXT:    ('st_value', 0x00000000)
+//CHECK-NEXT:    ('st_value', 0x00000004)
 //CHECK-NEXT:    ('st_size', 0x00000000)
 //CHECK-NEXT:   ),
 //CHECK-NEXT:   # Symbol 0x00000005





More information about the llvm-commits mailing list