Completely rewrite ELFObjectWriter::RecordRelocation.
[oota-llvm.git] / test / MC / ELF / merge.s
index 0e92583192d4fd2fed39ff813efc1579ad2d428e..d6e0b7c4b7dc169325ff4e45cdc2b3a9625fbfbd 100644 (file)
@@ -1,10 +1,7 @@
 // RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | llvm-readobj -r | FileCheck  %s
 
-// Test that PIC relocations with local symbols in a mergeable section are done
-// with a reference to the symbol. Not sure if this is a linker limitation,
-// but this matches the behavior of gas.
-
-// Non-PIC relocations with 0 offset don't use the symbol.
+// Test that relocations with local symbols in a mergeable section are done
+// with a reference to the symbol if the offset is non zero.
 
 
         movsd   .Lfoo(%rip), %xmm1
@@ -13,6 +10,7 @@
         jmp    foo@PLT
         movq   foo@GOTPCREL, %rax
         movq    zed, %rax
+        movsd   .Lfoo+4(%rip), %xmm1
 
         .section        .sec1,"aM",@progbits,16
 .Lfoo:
@@ -30,5 +28,6 @@ foo:
 // CHECK-NEXT:     0x{{[^ ]+}} R_X86_64_PLT32    foo  0x{{[^ ]+}}
 // CHECK-NEXT:     0x{{[^ ]+}} R_X86_64_GOTPCREL foo  0x{{[^ ]+}}
 // CHECK-NEXT:     0x{{[^ ]+}} R_X86_64_32S      zed  0x{{[^ ]+}}
+// CHECK-NEXT:     0x{{[^ ]+}} R_X86_64_PC32    .sec1 0x{{[^ ]+}}
 // CHECK-NEXT:   }
 // CHECK-NEXT: ]