| # Test objective to verify warning is printed if DWO secton has relocations. |
| # |
| # RUN: llvm-mc -triple x86_64-unknown-linux %s -filetype=obj -o %t.o |
| # RUN: llvm-dwarfdump --debug-info %t.o | FileCheck %s |
| # RUN: llvm-dwarfdump --debug-info %t.o 2> %t.txt |
| # RUN: FileCheck --input-file=%t.txt %s --check-prefix=PART2 --implicit-check-not=warning: |
| |
| .section .debug_str.dwo,"MSe",@progbits,1 |
| .dwo_producer: |
| .asciz "Handmade DWO producer" |
| .dwo_CU_5: |
| .asciz "V5_dwo_compile_unit" |
| |
| .section .debug_str_offsets.dwo,"e",@progbits |
| .long Lstr_offsets_end-Lstr_offsets_start # Length of String Offsets Set |
| Lstr_offsets_start: |
| .short 5 |
| .short 0 |
| .long .dwo_producer-.debug_str.dwo |
| .long .dwo_CU_5-.debug_str.dwo |
| Lstr_offsets_end: |
| |
| # And a .dwo copy for the .dwo sections. |
| .section .debug_abbrev.dwo,"e",@progbits |
| .byte 0x01 # Abbrev code |
| .byte 0x11 # DW_TAG_compile_unit |
| .byte 0x00 # DW_CHILDREN_no |
| .byte 0x25 # DW_AT_producer |
| .byte 0x0e # DW_FORM_strp |
| .byte 0x03 # DW_AT_name |
| .byte 0x25 # DW_FORM_strx1 |
| .byte 0x00 # EOM(1) |
| .byte 0x00 # EOM(2) |
| .byte 0x00 # EOM(3) |
| |
| # PART2: warning: unexpected relocations for dwo section '.debug_abbrev.dwo' |
| .reloc ., R_X86_64_NONE, 0 |
| |
| .section .debug_info.dwo,"e",@progbits |
| # CHECK-LABEL: .debug_info.dwo |
| |
| # DWARF v5 split CU header. |
| .long CU_split_5_end-CU_split_5_version # Length of Unit |
| CU_split_5_version: |
| .short 5 # DWARF version number |
| .byte 5 # DWARF Unit Type |
| .byte 8 # Address Size (in bytes) |
| .long 0 # Offset Into Abbrev. Section |
| .quad 0x5a # DWO ID |
| # The split compile-unit DIE, with DW_AT_producer, DW_AT_name, DW_AT_stmt_list. |
| .byte 1 |
| .long .dwo_producer |
| .byte 1 |
| .byte 0 # NULL |
| CU_split_5_end: |
| |
| # CHECK: 0x00000000: Compile Unit: length = 0x00000017, format = DWARF32, version = 0x0005, unit_type = DW_UT_split_compile, abbr_offset = 0x0000, addr_size = 0x08, DWO_id = 0x000000000000005a (next unit at 0x0000001b) |
| # CHECK: 0x00000014: DW_TAG_compile_unit |
| # CHECK-NEXT: DW_AT_producer ("Handmade DWO producer") |
| # CHECK-NEXT: DW_AT_name ("V5_dwo_compile_unit") |
| # PART2: warning: unexpected relocations for dwo section '.debug_info.dwo' |
| |
| ## No warning, even if their names end with ".dwo". |
| .section .rodata.dwo,"a" |
| .long ext |
| .section .foo.dwo,"" |
| .long .dwo_producer |