[llvm-commits] [llvm] r119073 - in /llvm/trunk: lib/MC/MCELFStreamer.cpp test/MC/ELF/common.s
Rafael Espindola
rafael.espindola at gmail.com
Sun Nov 14 13:11:16 PST 2010
Author: rafael
Date: Sun Nov 14 15:11:16 2010
New Revision: 119073
URL: http://llvm.org/viewvc/llvm-project?rev=119073&view=rev
Log:
Fix another case of a .comm directive without a corresponding .type
directive.
Modified:
llvm/trunk/lib/MC/MCELFStreamer.cpp
llvm/trunk/test/MC/ELF/common.s
Modified: llvm/trunk/lib/MC/MCELFStreamer.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCELFStreamer.cpp?rev=119073&r1=119072&r2=119073&view=diff
==============================================================================
--- llvm/trunk/lib/MC/MCELFStreamer.cpp (original)
+++ llvm/trunk/lib/MC/MCELFStreamer.cpp Sun Nov 14 15:11:16 2010
@@ -409,9 +409,10 @@
if (!BindingExplicitlySet.count(Symbol)) {
SetBinding(SD, ELF::STB_GLOBAL);
SD.setExternal(true);
- SetType(SD, ELF::STT_OBJECT);
}
+ SetType(SD, ELF::STT_OBJECT);
+
if (GetBinding(SD) == ELF_STB_Local) {
const MCSection *Section = getAssembler().getContext().getELFSection(".bss",
MCSectionELF::SHT_NOBITS,
Modified: llvm/trunk/test/MC/ELF/common.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/ELF/common.s?rev=119073&r1=119072&r2=119073&view=diff
==============================================================================
--- llvm/trunk/test/MC/ELF/common.s (original)
+++ llvm/trunk/test/MC/ELF/common.s Sun Nov 14 15:11:16 2010
@@ -30,11 +30,24 @@
// CHECK-NEXT: ('st_value', 0x00000001)
// CHECK-NEXT: ('st_size', 0x00000001)
+ .local common6
+ .comm common6,8,16
+
+// CHECK: # Symbol 0x00000003
+// CHECK-NEXT: (('st_name', 0x00000011) # 'common6'
+// CHECK-NEXT: ('st_bind', 0x00000000)
+// CHECK-NEXT: ('st_type', 0x00000001)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x00000003)
+// CHECK-NEXT: ('st_value', 0x00000010)
+// CHECK-NEXT: ('st_size', 0x00000008)
+// CHECK-NEXT: ),
+
// Test that without an explicit .local we produce a global.
.type common3, at object
.comm common3,4,4
-// CHECK: ('st_name', 0x00000011) # 'common3'
+// CHECK: ('st_name', 0x00000019) # 'common3'
// CHECK-NEXT: ('st_bind', 0x00000001)
// CHECK-NEXT: ('st_type', 0x00000001)
// CHECK-NEXT: ('st_other', 0x00000000)
@@ -54,7 +67,7 @@
.type common4, at object
.comm common4,40,16
-// CHECK: ('st_name', 0x0000001d) # 'common4'
+// CHECK: ('st_name', 0x00000025) # 'common4'
// CHECK-NEXT: ('st_bind', 0x00000001)
// CHECK-NEXT: ('st_type', 0x00000001)
// CHECK-NEXT: ('st_other', 0x00000000)
@@ -64,8 +77,8 @@
.comm common5,4,4
-// CHECK: # Symbol 0x00000008
-// CHECK-NEXT: (('st_name', 0x00000025) # 'common5'
+// CHECK: # Symbol 0x00000009
+// CHECK-NEXT: (('st_name', 0x0000002d) # 'common5'
// CHECK-NEXT: ('st_bind', 0x00000001)
// CHECK-NEXT: ('st_type', 0x00000001)
// CHECK-NEXT: ('st_other', 0x00000000)
More information about the llvm-commits
mailing list