forked from OSchip/llvm-project
parent
a82042eb4c
commit
9e072d30e5
|
@ -905,7 +905,7 @@ template <class ELFT> static void skipAugP(ArrayRef<uint8_t> &D) {
|
|||
if ((Enc & 0xf0) == DW_EH_PE_aligned)
|
||||
fatal("DW_EH_PE_aligned encoding is not supported");
|
||||
size_t Size = getAugPSize<ELFT>(Enc);
|
||||
if (Size < D.size())
|
||||
if (Size >= D.size())
|
||||
fatal("corrupted CIE");
|
||||
D = D.slice(Size);
|
||||
}
|
||||
|
|
|
@ -0,0 +1,38 @@
|
|||
// REQUIRES: x86
|
||||
// RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t.o
|
||||
// RUN: ld.lld --eh-frame-hdr %t.o -o %t -shared
|
||||
// RUN: llvm-objdump --dwarf=frames %t | FileCheck %s
|
||||
|
||||
// CHECK: .eh_frame contents:
|
||||
|
||||
// CHECK: 00000000 0000001c ffffffff CIE
|
||||
// CHECK-NEXT: Version: 1
|
||||
// CHECK-NEXT: Augmentation: "zPLR"
|
||||
// CHECK-NEXT: Code alignment factor: 1
|
||||
// CHECK-NEXT: Data alignment factor: -8
|
||||
// CHECK-NEXT: Return address column: 16
|
||||
// CHECK-NEXT: Augmentation data:
|
||||
|
||||
// CHECK: DW_CFA_def_cfa: reg7 +8
|
||||
// CHECK-NEXT: DW_CFA_offset: reg16 -8
|
||||
// CHECK-NEXT: DW_CFA_nop:
|
||||
// CHECK-NEXT: DW_CFA_nop:
|
||||
|
||||
// CHECK: 00000020 00000014 00000024 FDE cie=00000024 pc=00000dd8...00000dd8
|
||||
// CHECK-NEXT: DW_CFA_nop:
|
||||
// CHECK-NEXT: DW_CFA_nop:
|
||||
// CHECK-NEXT: DW_CFA_nop:
|
||||
|
||||
.cfi_startproc
|
||||
.cfi_personality 0x9b, g
|
||||
.cfi_lsda 0x1b, h
|
||||
.cfi_endproc
|
||||
|
||||
.global g
|
||||
.hidden g
|
||||
g:
|
||||
|
||||
.global h
|
||||
.hidden h
|
||||
h:
|
||||
|
Loading…
Reference in New Issue