From: Rafael Espindola Date: Sat, 1 Jan 2011 19:05:35 +0000 (+0000) Subject: Fix PR8878. X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=7a54997d670d92f7f0ece87911800aa68fcb8c6d;p=oota-llvm.git Fix PR8878. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122658 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/MC/ELFObjectWriter.cpp b/lib/MC/ELFObjectWriter.cpp index c4e2e3f390b..757a56aa6e1 100644 --- a/lib/MC/ELFObjectWriter.cpp +++ b/lib/MC/ELFObjectWriter.cpp @@ -1610,6 +1610,7 @@ unsigned X86ELFObjectWriter::GetRelocType(const MCValue &Target, assert(Modifier == MCSymbolRefExpr::VK_None); Type = ELF::R_X86_64_PC64; break; + case X86::reloc_signed_4byte: case X86::reloc_riprel_4byte_movq_load: case FK_Data_4: // FIXME? case X86::reloc_riprel_4byte: diff --git a/test/MC/ELF/relocation.s b/test/MC/ELF/relocation.s index ea27214b8a9..697e4a6c485 100644 --- a/test/MC/ELF/relocation.s +++ b/test/MC/ELF/relocation.s @@ -16,6 +16,7 @@ bar: leaq foo@DTPOFF(%rax), %rcx # R_X86_64_DTPOFF32 pushq $bar movq foo(%rip), %rdx + leaq foo-bar(%r14),%r14 // CHECK: # Section 0x00000001 @@ -105,3 +106,9 @@ bar: // CHECK-NEXT: ('r_sym', 0x00000006) // CHECK-NEXT: ('r_type', 0x00000002) // CHECK-NEXT: ('r_addend', 0xfffffffc) + +// CHECK: # Relocation 0x0000000d +// CHECK-NEXT: (('r_offset', 0x0000005c) +// CHECK-NEXT: ('r_sym', 0x00000006) +// CHECK-NEXT: ('r_type', 0x00000002) +// CHECK-NEXT: ('r_addend', 0x0000005c)