diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2010-10-05 15:43:32 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2010-10-05 15:43:32 +0000 |
commit | 266a69f3753951fb9a928f214d3e654bef5671b5 (patch) | |
tree | f5fc089e130827494b70fa7f84758f9770fed605 /test/MC/ELF/merge.s | |
parent | 644801a199794a74bdc4655f6af5bc05f8153dc8 (diff) | |
download | external_llvm-266a69f3753951fb9a928f214d3e654bef5671b5.zip external_llvm-266a69f3753951fb9a928f214d3e654bef5671b5.tar.gz external_llvm-266a69f3753951fb9a928f214d3e654bef5671b5.tar.bz2 |
Tests that now pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115622 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/MC/ELF/merge.s')
-rw-r--r-- | test/MC/ELF/merge.s | 43 |
1 files changed, 37 insertions, 6 deletions
diff --git a/test/MC/ELF/merge.s b/test/MC/ELF/merge.s index 14828d2..00ffd5e 100644 --- a/test/MC/ELF/merge.s +++ b/test/MC/ELF/merge.s @@ -1,26 +1,57 @@ // RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | elf-dump --dump-section-data | FileCheck %s -// Test that relocations with local symbols in a mergeable section are done +// 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. + + + movsd .Lfoo(%rip), %xmm1 + movl $.Lfoo, %edi + movl $.Lfoo+2, %edi + .section .sec1,"aM",@progbits,16 .Lfoo: - .text - movsd .Lfoo(%rip), %xmm1 -// Symbol number 1 is .Lfoo +// Section 4 is "sec1" +// CHECK: # Section 4 +// CHECK-NEXT: (('sh_name', 18) # '.sec1' +// Symbol number 1 is .Lfoo // CHECK: # Symbol 1 // CHECK-NEXT: (('st_name', 1) # '.Lfoo' -// Relocation refers to symbol 1 +// Symbol number 5 is section 4 +// CHECK: # Symbol 5 +// CHECK-NEXT: (('st_name', 0) # '' +// CHECK-NEXT: ('st_bind', 0) +// CHECK-NEXT: ('st_type', 3) +// CHECK-NEXT: ('st_other', 0) +// CHECK-NEXT: ('st_shndx', 4) +// Relocation 0 refers to symbol 1 // CHECK: ('_relocations', [ // CHECK-NEXT: # Relocation 0 // CHECK-NEXT: (('r_offset', // CHECK-NEXT: ('r_sym', 1) -// CHECK-NEXT: ('r_type', +// CHECK-NEXT: ('r_type', 2 +// CHECK-NEXT: ('r_addend', +// CHECK-NEXT: ), + +// Relocation 1 refers to symbol 5 +// CHECK-NEXT: # Relocation 1 +// CHECK-NEXT: (('r_offset', +// CHECK-NEXT: ('r_sym', 5) +// CHECK-NEXT: ('r_type', 10) +// CHECK-NEXT: ('r_addend', +// CHECK-NEXT: ), + +// Relocation 2 refers to symbol 1 +// CHECK-NEXT: # Relocation 2 +// CHECK-NEXT: (('r_offset', +// CHECK-NEXT: ('r_sym', 1) +// CHECK-NEXT: ('r_type', 10 // CHECK-NEXT: ('r_addend', // CHECK-NEXT: ), // CHECK-NEXT: ]) |