# 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
