1# RUN: rm -rf %t
2# RUN: mkdir -p %t
3# RUN: llc -filetype=obj %p/../Inputs/frame-dw2.ll -o %t/frame-dw2.o
4# RUN: llc -filetype=obj %p/../Inputs/frame-dw4.ll -o %t/frame-dw4.o
5# RUN: dsymutil -f -oso-prepend-path=%t -y %s -o - | llvm-dwarfdump -debug-frame - | FileCheck %s
6
7# Check the handling of multiple different CIEs. To have CIEs that
8# appear to be different, use a dwarf2 version of the file along with
9# a dwarf 4 version. The CIE header version (and layout) will be different.
10---
11triple:          'i386-apple-darwin'
12objects:
13  - filename: frame-dw2.o
14    symbols:
15      - { sym: _bar, objAddr: 0x0, binAddr: 0x1000, size: 0x12 }
16      - { sym: _baz, objAddr: 0x0, binAddr: 0x2000, size: 0x12 }
17  - filename: frame-dw4.o
18    symbols:
19      - { sym: _baz, objAddr: 0x0, binAddr: 0x3000, size: 0x12 }
20  - filename: frame-dw2.o
21    symbols:
22      - { sym: _bar, objAddr: 0x0, binAddr: 0x4000, size: 0x12 }
23...
24
25# CHECK: .debug_frame contents:
26# CHECK: 00000000 {{[0-9a-f]*}} ffffffff CIE
27# CHECK-NEXT: Format: DWARF32
28# CHECK-NEXT: Version:{{.*}}1
29# CHECK-NOT: FDE
30# CHECK:  FDE cie=00000000 pc=00001000...00001
31# CHECK-NOT: FDE
32# CHECK:  FDE cie=00000000 pc=00002000...00002
33# CHECK-NOT: FDE
34# CHECK: [[CIEDW4:[0-9a-f]*]] 00000010 ffffffff CIE
35# CHECK-NEXT: Format: DWARF32
36# CHECK-NEXT: Version:{{.*}}4
37# CHECK-NOT: FDE
38# CHECK:  FDE cie=[[CIEDW4]] pc=00003000...00003
39# CHECK:  FDE cie=00000000 pc=00004000...00004
40# CHECK-NOT: FDE
41# CHECK: .eh_frame contents:
42