xref: /llvm-project/llvm/test/DebugInfo/X86/debug-macro-gnu.s (revision 91bd9db2cdbc12176c3a058d407ef58ced30ea23)
1*91bd9db2SDavid Stenberg## This test checks that llvm-dwarfdump can dump a .debug_macro section
2*91bd9db2SDavid Stenberg## with the GNU extension format.
3*91bd9db2SDavid Stenberg
4*91bd9db2SDavid Stenberg# RUN: llvm-mc -triple x86_64-unknown-linux -filetype=obj %s -o -| \
5*91bd9db2SDavid Stenberg# RUN:   llvm-dwarfdump -debug-macro - | FileCheck -strict-whitespace -match-full-lines %s
6*91bd9db2SDavid Stenberg
7*91bd9db2SDavid Stenberg#      CHECK:.debug_macro contents:
8*91bd9db2SDavid Stenberg# CHECK-NEXT:0x00000000:
9*91bd9db2SDavid Stenberg# CHECK-NEXT:macro header: version = 0x0004, flags = 0x02, format = DWARF32, debug_line_offset = 0x00000000
10*91bd9db2SDavid Stenberg# CHECK-NEXT:DW_MACRO_GNU_start_file - lineno: 0 filenum: 0
11*91bd9db2SDavid Stenberg# CHECK-NEXT:  DW_MACRO_GNU_start_file - lineno: 1 filenum: 6
12*91bd9db2SDavid Stenberg# CHECK-NEXT:    DW_MACRO_GNU_define_indirect - lineno: 1 macro: FOO 5
13*91bd9db2SDavid Stenberg# CHECK-NEXT:  DW_MACRO_GNU_end_file
14*91bd9db2SDavid Stenberg# CHECK-NEXT:  DW_MACRO_GNU_undef_indirect - lineno: 8 macro: WORLD1
15*91bd9db2SDavid Stenberg# CHECK-NEXT:  DW_MACRO_GNU_transparent_include - import offset: 0x[[OFFSET:[0-9]+]]
16*91bd9db2SDavid Stenberg# CHECK-NEXT:DW_MACRO_GNU_end_file
17*91bd9db2SDavid Stenberg
18*91bd9db2SDavid Stenberg#      CHECK:0x[[OFFSET]]:
19*91bd9db2SDavid Stenberg# CHECK-NEXT:macro header: version = 0x0004, flags = 0x00, format = DWARF32
20*91bd9db2SDavid Stenberg# CHECK-NEXT:DW_MACRO_GNU_define_indirect - lineno: 0 macro: WORLD 2
21*91bd9db2SDavid Stenberg
22*91bd9db2SDavid Stenberg	.section	.debug_macro,"",@progbits
23*91bd9db2SDavid Stenberg.Lcu_macro_begin0:
24*91bd9db2SDavid Stenberg	.short	4                      # Macro information version
25*91bd9db2SDavid Stenberg	.byte	2                       # Flags: 32 bit, debug_line_offset present
26*91bd9db2SDavid Stenberg	.long	0                       # debug_line_offset
27*91bd9db2SDavid Stenberg	.byte	3                       # DW_MACRO_GNU_start_file
28*91bd9db2SDavid Stenberg	.byte	0                       # Line Number
29*91bd9db2SDavid Stenberg	.byte	0                       # File Number
30*91bd9db2SDavid Stenberg	.byte	3                       # DW_MACRO_GNU_start_file
31*91bd9db2SDavid Stenberg	.byte	1                       # Line Number
32*91bd9db2SDavid Stenberg	.byte	6                       # File Number
33*91bd9db2SDavid Stenberg	.byte	5                       # DW_MACRO_GNU_define_indirect
34*91bd9db2SDavid Stenberg	.byte	1                       # Line Number
35*91bd9db2SDavid Stenberg	.long	.Linfo_string0          # Macro String
36*91bd9db2SDavid Stenberg	.byte	4                       # DW_MACRO_GNU_end_file
37*91bd9db2SDavid Stenberg	.byte	6                       # DW_MACRO_GNU_undef_indirect
38*91bd9db2SDavid Stenberg	.byte	8                       # Line Number
39*91bd9db2SDavid Stenberg	.long	.Linfo_string1          # Macro String
40*91bd9db2SDavid Stenberg	.byte	7                       # DW_MACRO_GNU_transparent_include
41*91bd9db2SDavid Stenberg	.long	.Lmacro1                # Macro Unit Offset
42*91bd9db2SDavid Stenberg	.byte	4                       # DW_MACRO_GNU_end_file
43*91bd9db2SDavid Stenberg	.byte	0                       # End Of Macro List Mark
44*91bd9db2SDavid Stenberg
45*91bd9db2SDavid Stenberg.Lmacro1:
46*91bd9db2SDavid Stenberg	.short	4                      # Macro information version
47*91bd9db2SDavid Stenberg	.byte	0                       # Flags: 32 bit
48*91bd9db2SDavid Stenberg	.byte	5                       # DW_MACRO_GNU_define_indirect
49*91bd9db2SDavid Stenberg	.byte	0                       # Line Number
50*91bd9db2SDavid Stenberg	.long	.Linfo_string2          # Macro String
51*91bd9db2SDavid Stenberg	.byte	0                       # End Of Macro List Mark
52*91bd9db2SDavid Stenberg
53*91bd9db2SDavid Stenberg	.section	.debug_str,"MS",@progbits,1
54*91bd9db2SDavid Stenberg.Linfo_string0:
55*91bd9db2SDavid Stenberg	.asciz	"FOO 5"
56*91bd9db2SDavid Stenberg.Linfo_string1:
57*91bd9db2SDavid Stenberg	.asciz	"WORLD1"
58*91bd9db2SDavid Stenberg.Linfo_string2:
59*91bd9db2SDavid Stenberg	.asciz	"WORLD 2"
60