Compiler projects using llvm
## This test checks that llvm-dwarfdump can dump debug_macro.dwo
## section containing DW_MACRO_*_strx forms present in a dwo object.

# RUN: llvm-mc -triple x86_64-unknown-linux -filetype=obj %s -o -| \
# RUN:   llvm-dwarfdump -debug-macro - | FileCheck -strict-whitespace -match-full-lines %s

#      CHECK:.debug_macro.dwo contents:
# CHECK-NEXT:0x00000000:
# CHECK-NEXT:macro header: version = 0x0005, flags = 0x02, format = DWARF32, debug_line_offset = 0x00000000
# CHECK-NEXT:DW_MACRO_start_file - lineno: 0 filenum: 0
# CHECK-NEXT:  DW_MACRO_define_strx - lineno: 1 macro: DWARF_VERSION 5
# CHECK-NEXT:  DW_MACRO_undef_strx - lineno: 4 macro: DWARF_VERSION
# CHECK-NEXT:DW_MACRO_end_file

	.section	.debug_macro.dwo,"e",@progbits
.Lcu_macro_begin0:
	.short	5                      # Macro information version
	.byte	2                       # Flags: 32 bit, debug_line_offset present
	.long	0                       # debug_line_offset
	.byte	3                       # DW_MACRO_start_file
	.byte	0                       # Line Number
	.byte	0                       # File Number
	.byte	11                      # DW_MACRO_define_strx
	.byte	1                       # Line Number
	.byte	0                       # Macro String Index
	.byte	12                      # DW_MACRO_undef_strx
	.byte	4                       # Line Number
	.byte	1                       # Macro String Index
	.byte	4                       # DW_MACRO_end_file
	.byte	0                       # End Of Macro List Mark

	.section	.debug_str_offsets.dwo,"e",@progbits
	.long   .Lcu_str_off_end0-.Lcu_str_off_start0 # Unit length
	.short	5                                     # Version
	.short	0                                     # Padding
.Lcu_str_off_start0:
	.long	.Linfo_string0-.debug_str.dwo
	.long	.Linfo_string1-.debug_str.dwo
.Lcu_str_off_end0:

	.section	.debug_str.dwo,"eMS",@progbits,1
.Linfo_string0:
	.asciz	"DWARF_VERSION 5"
.Linfo_string1:
	.asciz	"DWARF_VERSION"

	.section	.debug_info.dwo,"e",@progbits
	.long	.Ldebug_info_dwo_end0-.Ldebug_info_dwo_start0 # Length of Unit
.Ldebug_info_dwo_start0:
	.short	5                      # DWARF version number
	.byte	5                       # DWARF Unit Type
	.byte	8                       # Address Size (in bytes)
	.long	0                       # Offset Into Abbrev. Section
	.quad	1536875774479801980
	.byte	1                       # Abbrev [1] 0x14:0x1a DW_TAG_compile_unit
	.long   .Lcu_macro_begin0-.debug_macro.dwo # DW_AT_macros
	.byte	0                       # End Of Children Mark
.Ldebug_info_dwo_end0:

	.section	.debug_abbrev.dwo,"e",@progbits
	.byte	1                       # Abbreviation Code
	.byte	17                      # DW_TAG_compile_unit
	.byte	0                       # DW_CHILDREN_no
	.byte	121                     # DW_AT_macros
	.byte	23                      # DW_FORM_sec_offset
	.byte	0                       # EOM(1)
	.byte	0                       # EOM(2)
	.byte	0                       # EOM(3)