[MC] Convert other MachO tests from macho-dump to llvm-readobj.
[oota-llvm.git] / test / MC / MachO / debug_frame.s
1 // RUN: llvm-mc -triple i386-apple-darwin %s -filetype=obj -o - | llvm-readobj -s -sd -r | FileCheck %s
2
3 // Make sure MC can handle file level .cfi_startproc and .cfi_endproc that creates
4 // an empty frame.
5 // rdar://10017184
6 _proc:
7 .cfi_startproc
8 .cfi_endproc
9
10 // Check that we don't produce a relocation for the CIE pointer and therefore
11 // we have only one relocation in __debug_frame.
12
13         .section        __TEXT,__text,regular,pure_instructions
14         .globl  _f
15         .align  4, 0x90
16 _f:                                     ## @f
17 Ltmp0:
18         .cfi_startproc
19 ## BB#0:                                ## %entry
20         movl    $42, %eax
21         ret
22 Ltmp1:
23         .cfi_endproc
24 Leh_func_end0:
25
26         .cfi_sections .debug_frame
27 Ltext_end:
28
29 // CHECK: Section {
30 // CHECK:     Index: 1
31 // CHECK:     Name: __debug_frame (5F 5F 64 65 62 75 67 5F 66 72 61 6D 65 00 00 00)
32 // CHECK:     Segment: __DWARF (5F 5F 44 57 41 52 46 00 00 00 00 00 00 00 00 00)
33 // CHECK:     Address: 0x8
34 // CHECK:     Size: 0x34
35 // CHECK:     Offset: 332
36 // CHECK:     Alignment: 2
37 // CHECK:     RelocationOffset: 0x180
38 // CHECK:     RelocationCount: 2
39 // CHECK:     Type: 0x0
40 // CHECK:     Attributes [ (0x20000)
41 // CHECK:       Debug (0x20000)
42 // CHECK:     ]
43 // CHECK:     Reserved1: 0x0
44 // CHECK:     Reserved2: 0x0
45 // CHECK:     SectionData (
46 // CHECK:       0000: 10000000 FFFFFFFF 04000400 017C080C  |.............|..|
47 // CHECK:       0010: 04048801 0C000000 00000000 00000000  |................|
48 // CHECK:       0020: 00000000 0C000000 00000000 00000000  |................|
49 // CHECK:       0030: 06000000                             |....|
50 // CHECK:     )
51 // CHECK:   }
52 // CHECK: ]
53 // CHECK: Relocations [
54 // CHECK:   Section __debug_frame {
55 // CHECK:     0x2C 0 2 0 GENERIC_RELOC_VANILLA 0 __text
56 // CHECK:     0x1C 0 2 0 GENERIC_RELOC_VANILLA 0 __text
57 // CHECK:   }
58 // CHECK: ]