summaryrefslogtreecommitdiff
path: root/test/ELF/eh-frame-negative-pcrel-sdata2.s
diff options
context:
space:
mode:
Diffstat (limited to 'test/ELF/eh-frame-negative-pcrel-sdata2.s')
-rw-r--r--test/ELF/eh-frame-negative-pcrel-sdata2.s85
1 files changed, 0 insertions, 85 deletions
diff --git a/test/ELF/eh-frame-negative-pcrel-sdata2.s b/test/ELF/eh-frame-negative-pcrel-sdata2.s
deleted file mode 100644
index 30ee8560f0a39..0000000000000
--- a/test/ELF/eh-frame-negative-pcrel-sdata2.s
+++ /dev/null
@@ -1,85 +0,0 @@
-# REQUIRES: x86
-
-# Test handling of FDE pc negative relative addressing with DW_EH_PE_sdata2.
-# This situation can arise when .eh_frame is placed after .text.
-
-# RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t.o
-# RUN: echo "SECTIONS { .text : { *(.text) } .eh_frame : { *(.eh_frame) } }" > %t.script
-# RUN: ld.lld --eh-frame-hdr --script %t.script --section-start .text=0x1000 %t.o -o %t
-# RUN: llvm-readobj -s -section-data %t | FileCheck %s
-
-# CHECK: Section {
-# CHECK: Index:
-# CHECK: Name: .eh_frame
-# CHECK-NEXT: Type: SHT_PROGBITS
-# CHECK-NEXT: Flags [
-# CHECK-NEXT: SHF_ALLOC
-# CHECK-NEXT: ]
-# CHECK-NEXT: Address: 0x1001
-# CHECK-NEXT: Offset: 0x1001
-# CHECK-NEXT: Size:
-# CHECK-NEXT: Link:
-# CHECK-NEXT: Info:
-# CHECK-NEXT: AddressAlignment:
-# CHECK-NEXT: EntrySize:
-# CHECK-NEXT: SectionData (
-# CHECK-NEXT: 0000: 14000000 00000000 017A5200 01010101
-# CHECK-NEXT: 0010: 1A000000 00000000 0C000000 1C000000
-# CHECK-NEXT: 0020: DFFFFFFF
-# ^
-# DFFFFFFF = _start(0x1000) - PC(.eh_frame(0x1001) + 0x20)
-
-# CHECK: Section {
-# CHECK: Index:
-# CHECK: Name: .eh_frame_hdr
-# CHECK-NEXT: Type: SHT_PROGBITS
-# CHECK-NEXT: Flags [
-# CHECK-NEXT: SHF_ALLOC
-# CHECK-NEXT: ]
-# CHECK-NEXT: Address: 0x1030
-# CHECK-NEXT: Offset: 0x1030
-# CHECK-NEXT: Size: 20
-# CHECK-NEXT: Link: 0
-# CHECK-NEXT: Info: 0
-# CHECK-NEXT: AddressAlignment: 4
-# CHECK-NEXT: EntrySize: 0
-# CHECK-NEXT: SectionData (
-# CHECK-NEXT: 0000: 011B033B CDFFFFFF 01000000 D0FFFFFF
-# CHECK-NEXT: 0010: E9FFFFFF
-# Header (always 4 bytes): 011B033B
-# CDFFFFFF = .eh_frame(0x1001) - .eh_frame_hdr(0x1030) - 4
-# 01000000 = 1 = the number of FDE pointers in the table.
-# D0FFFFFF = _start(0x1000) - .eh_frame_hdr(0x1030)
-# E9FFFFFF = FDE(.eh_frame(0x1001) + 0x18) - .eh_frame_hdr(0x1030)
-
-.text
-.global _start
-_start:
- nop
-
-.section .eh_frame, "a"
- .long 16 # Size
- .long 0x00 # ID
- .byte 0x01 # Version.
-
- .byte 0x7A # Augmentation string: "zR"
- .byte 0x52
- .byte 0x00
-
- .byte 0x01
-
- .byte 0x01 # LEB128
- .byte 0x01 # LEB128
-
- .byte 0x01 # LEB128
- .byte 0x1A # DW_EH_PE_pcrel | DW_EH_PE_sdata2
-
- .byte 0x00
- .byte 0x00
- .byte 0x00
-
- .long 10 # Size
- .long 24 # ID
-fde:
- .long _start - fde
- .word 0