65 lines · plain
1// REQUIRES: x862 3.cfi_startproc4.cfi_personality 0x1b, bar5.cfi_endproc6 7.global bar8.hidden bar9bar:10 ret11 12// RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t.o13 14// Check the size of the CIE (0x18 + 4) and FDE (0x10 + 4)15// RUN: llvm-readobj -S --section-data %t.o | FileCheck --check-prefix=OBJ %s16 17// OBJ: Name: .eh_frame18// OBJ-NEXT: Type:19// OBJ-NEXT: Flags [20// OBJ-NEXT: SHF_ALLOC21// OBJ-NEXT: ]22// OBJ-NEXT: Address:23// OBJ-NEXT: Offset:24// OBJ-NEXT: Size:25// OBJ-NEXT: Link:26// OBJ-NEXT: Info:27// OBJ-NEXT: AddressAlignment:28// OBJ-NEXT: EntrySize:29// OBJ-NEXT: SectionData (30// OBJ-NEXT: 0000: 18000000 00000000 017A5052 0001781031// OBJ-NEXT: 0010: 061B0000 00001B0C 07089001 1000000032// OBJ-NEXT: 0020: 20000000 00000000 00000000 0000000033// OBJ-NEXT: )34 35// RUN: ld.lld --hash-style=sysv %t.o --no-rosegment -o %t -shared36 37// Check that .eh_frame is in the same segment as .text38// RUN: llvm-readelf -l %t | FileCheck --check-prefix=PHDR %s39 40// PHDR: Segment Sections41// PHDR: .eh_frame {{.*}}.text42 43// Check that the CIE and FDE are padded with 0x00 and not 0xCC when the44// .eh_frame section is placed in the executable segment45// RUN: llvm-readobj -S --section-data %t | FileCheck %s46 47// CHECK: Name: .eh_frame48// CHECK-NEXT: Type:49// CHECK-NEXT: Flags50// CHECK-NEXT: SHF_ALLOC51// CHECK-NEXT: ]52// CHECK-NEXT: Address:53// CHECK-NEXT: Offset:54// CHECK-NEXT: Size:55// CHECK-NEXT: Link:56// CHECK-NEXT: Info:57// CHECK-NEXT: AddressAlignment:58// CHECK-NEXT: EntrySize:59// CHECK-NEXT: SectionData (60// CHECK-NEXT: 0000: 18000000 00000000 017A5052 0001781061// CHECK-NEXT: 0010: 061B2200 00001B0C 07089001 1000000062// CHECK-NEXT: 0020: 20000000 10000000 00000000 0000000063// CHECK-NEXT: 0030: 0000000064// CHECK-NEXT: )65