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