51 lines · plain
1// RUN: llvm-mc -triple x86_64-apple-macos10.6 -filetype=obj %s -o %t.o2// RUN: llvm-objdump --macho --unwind-info --dwarf=frames %t.o | FileCheck %s3 4/// For functions whose unwind info cannot be encoded with compact unwind, make5/// sure that we encode them using DWARF unwind, and make sure we emit a compact6/// unwind entry that indicates that a DWARF encoding is being used.7 8_f:9 .cfi_startproc10 ## This encodes DW_CFA_GNU_args_size which cannot be expressed using compact11 ## unwind, so we must use DWARF unwind instead.12 .cfi_escape 0x2e, 0x1013 ret14 .cfi_endproc15 16_g:17 .cfi_startproc18 ## This encodes DW_CFA_GNU_args_size which cannot be expressed using compact19 ## unwind, so we must use DWARF unwind instead.20 .cfi_escape 0x2e, 0x1021 ret22 .cfi_endproc23 24// CHECK: Contents of __compact_unwind section:25// CHECK: Entry at offset 0x0:26// CHECK: start: 0x[[#%x,F:]] _f27// CHECK: length: 0x128// CHECK: compact encoding: 0x0400000029// CHECK: Entry at offset 0x20:30// CHECK: start: 0x[[#%x,G:]] _g31// CHECK: length: 0x132// CHECK: compact encoding: 0x0400000033 34// CHECK: .eh_frame contents:35// CHECK: 00000000 00000014 00000000 CIE36// CHECK: Format: DWARF3237// CHECK: Version: 138// CHECK: Augmentation: "zR"39// CHECK: Code alignment factor: 140// CHECK: Data alignment factor: -841// CHECK: Return address column: 1642// CHECK: Augmentation data: 1043 44// CHECK: FDE cie=00000000 pc=[[#%.8x,F]]...45// CHECK: Format: DWARF3246// CHECK: DW_CFA_GNU_args_size: +1647 48// CHECK: FDE cie=00000000 pc=[[#%.8x,G]]...49// CHECK: Format: DWARF3250// CHECK: DW_CFA_GNU_args_size: +1651