[llvm-commits] [llvm] r97984 - in /llvm/trunk: lib/MC/MCAssembler.cpp test/MC/MachO/zerofill-4.s

Daniel Dunbar daniel at zuster.org
Mon Mar 8 13:10:43 PST 2010


Author: ddunbar
Date: Mon Mar  8 15:10:42 2010
New Revision: 97984

URL: http://llvm.org/viewvc/llvm-project?rev=97984&view=rev
Log:
MC/Mach-O: Fix address compution for zero fill sections.

Added:
    llvm/trunk/test/MC/MachO/zerofill-4.s
Modified:
    llvm/trunk/lib/MC/MCAssembler.cpp

Modified: llvm/trunk/lib/MC/MCAssembler.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCAssembler.cpp?rev=97984&r1=97983&r2=97984&view=diff
==============================================================================
--- llvm/trunk/lib/MC/MCAssembler.cpp (original)
+++ llvm/trunk/lib/MC/MCAssembler.cpp Mon Mar  8 15:10:42 2010
@@ -1049,8 +1049,8 @@
 
       // Align the fragment offset; it is safe to adjust the offset freely since
       // this is only in virtual sections.
-      uint64_t Aligned = RoundUpToAlignment(Address, ZFF.getAlignment());
-      F.setOffset(Aligned - SD.getAddress());
+      Address = RoundUpToAlignment(Address, ZFF.getAlignment());
+      F.setOffset(Address - SD.getAddress());
 
       // FIXME: This is misnamed.
       F.setFileSize(ZFF.getSize());

Added: llvm/trunk/test/MC/MachO/zerofill-4.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/MachO/zerofill-4.s?rev=97984&view=auto
==============================================================================
--- llvm/trunk/test/MC/MachO/zerofill-4.s (added)
+++ llvm/trunk/test/MC/MachO/zerofill-4.s Mon Mar  8 15:10:42 2010
@@ -0,0 +1,35 @@
+// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | macho-dump --dump-section-data | FileCheck %s
+
+.zerofill __DATA,__bss,_fill0,1,0
+.zerofill __DATA,__bss,_a,4,2
+.zerofill __DATA,__bss,_fill1,1,0
+.zerofill __DATA,__bss,_b,4,3
+.zerofill __DATA,__bss,_fill2,1,0
+.zerofill __DATA,__bss,_c,4,4
+.zerofill __DATA,__bss,_fill3,1,0
+.zerofill __DATA,__bss,_d,4,5
+
+// CHECK: # Symbol 0
+// CHECK: ('n_value', 0)
+// CHECK: ('_string', '_fill0')
+// CHECK: # Symbol 1
+// CHECK: ('n_value', 4)
+// CHECK: ('_string', '_a')
+// CHECK: # Symbol 2
+// CHECK: ('n_value', 8)
+// CHECK: ('_string', '_fill1')
+// CHECK: # Symbol 3
+// CHECK: ('n_value', 16)
+// CHECK: ('_string', '_b')
+// CHECK: # Symbol 4
+// CHECK: ('n_value', 20)
+// CHECK: ('_string', '_fill2')
+// CHECK: # Symbol 5
+// CHECK: ('n_value', 32)
+// CHECK: ('_string', '_c')
+// CHECK: # Symbol 6
+// CHECK: ('n_value', 36)
+// CHECK: ('_string', '_fill3')
+// CHECK: # Symbol 7
+// CHECK: ('n_value', 64)
+// CHECK: ('_string', '_d')





More information about the llvm-commits mailing list