diff --git a/llvm/test/tools/yaml2obj/ELF/DWARF/debug-addr.yaml b/llvm/test/tools/yaml2obj/ELF/DWARF/debug-addr.yaml --- a/llvm/test/tools/yaml2obj/ELF/DWARF/debug-addr.yaml +++ b/llvm/test/tools/yaml2obj/ELF/DWARF/debug-addr.yaml @@ -368,3 +368,309 @@ ## | +--- version (2-byte) ## +------- a9) unit_length (4-byte) # DWARF32-BE-NEXT: ) + +## Generate and verify a little endian DWARF64 .debug_addr section. + +# RUN: yaml2obj --docnum=1 -DENDIAN=ELFDATA2LSB -DFORMAT=DWARF64 %s -o %t1.dwarf64.le.o +# RUN: llvm-readobj --sections --section-data %t1.dwarf64.le.o | \ +# RUN: FileCheck %s -DSIZE=344 -DADDRALIGN=1 --check-prefixes=SHDR,DWARF64-LE + +# DWARF64-LE-NEXT: SectionData ( +# DWARF64-LE-NEXT: 0000: FFFFFFFF 0C000000 00000000 05000400 +## | | | | +## | | | +- segment_selector_size (1-byte) +## | | +- address_size (1-byte) +## | +--- version (2-byte) +## +------------------------- a1) unit_length (DWARF64, 12-byte) +## +# DWARF64-LE-NEXT: 0010: 34120000 78560000 FFFFFFFF 14000000 +## | | | +## | | +---------------- a2) unit_length (DWARF64, 12-byte) +## | +------- address (4-byte) +## +------- address (4-byte) +## +# DWARF64-LE-NEXT: 0020: 00000000 05000800 21430000 00000000 +## | | | | | +## | | | | +---------------- address (8-byte) +## | | | +- segment_selector_size (1-byte) +## | | +- address_size (1-byte) +## | +--- version (2-byte) +## +------- higher bytes of unit_length +## +# DWARF64-LE-NEXT: 0030: 65870000 00000000 FFFFFFFF 0C000000 +## | | +## | +---------------- a3) unit_length (DWARF64, 12-byte) +## +---------------- address (8-byte) +## +# DWARF64-LE-NEXT: 0040: 00000000 05000004 34120000 78560000 +## | | | | | | +## | | | | | +------- segment (4-byte) +## | | | | +------- segment (4-byte) +## | | | +- segment_selector_size (1-byte) +## | | +- address_size (1-byte) +## | +--- version (2-byte) +## +------- higher bytes of unit_length +## +# DWARF64-LE-NEXT: 0050: FFFFFFFF 14000000 00000000 05000008 +## | | | | +## | | | +- segment_selector_size (1-byte) +## | | +- address_size (1-byte) +## | +--- version (2-byte) +## +------------------------- a4) unit_length (DWARF64, 12-byte) +## +# DWARF64-LE-NEXT: 0060: 21430000 00000000 65870000 00000000 +## | | +## | +---------------- segment (8-byte) +## +---------------- segment (8-byte) +## +# DWARF64-LE-NEXT: 0070: FFFFFFFF 1C000000 00000000 05000404 +## | | | | +## | | | +- segment_selector_size (1-byte) +## | | +- address_size (1-byte) +## | +--- version (2-byte) +## +------------------------- a5) unit_length (DWARF64, 12-byte) +## +# DWARF64-LE-NEXT: 0080: 34120000 78560000 21430000 00000000 +## | | | | +## | | | +------- address (4-byte) +## | | +------- segment (4-byte) +## | +------- address (4-byte) +## +------- segment (4-byte) +## +# DWARF64-LE-NEXT: 0090: 00000000 21430000 FFFFFFFF 34000000 +## | | | +## | | +---------------- a6) unit_length (DWARF64, 12-byte) +## | +------- address (4-byte) +## +------- segment (4-byte) +## +# DWARF64-LE-NEXT: 00A0: 00000000 05000808 34120000 00000000 +## | | | | | +## | | | | +---------------- segment (8-byte) +## | | | +- segment_selector_size (1-byte) +## | | +- address_size (1-byte) +## | +--- version (2-byte) +## +------- higher bytes of unit_length +## +# DWARF64-LE-NEXT: 00B0: 78560000 00000000 21430000 00000000 +## | | +## | +---------------- segment (8-byte) +## +---------------- address (8-byte) +## +# DWARF64-LE-NEXT: 00C0: 00000000 00000000 00000000 00000000 +## | | +## | +---------------- segment (8-byte) +## +---------------- address (8-byte) +## +# DWARF64-LE-NEXT: 00D0: 21430000 00000000 FFFFFFFF 28000000 +## | | +## | +---------------- a7) unit_length (DWARF64, 12-byte) +## +---------------- address (8-byte) +## +# DWARF64-LE-NEXT: 00E0: 00000000 05000408 34120000 00000000 +## | | | | | +## | | | | +---------------- segment (8-byte) +## | | | +- segment_selector_size (1-byte) +## | | +- address_size (1-byte) +## | +--- version (2-byte) +## +------- higher bytes of unit_length +## +# DWARF64-LE-NEXT: 00F0: 78560000 21430000 00000000 00000000 +## | | | +## | | +------- address (4-byte) +## | +---------------- segment (8-byte) +## +------- address (4-byte) +## +# DWARF64-LE-NEXT: 0100: 00000000 00000000 21430000 FFFFFFFF +## | | | +## | | +------- a8) unit_length (DWARF64, 12-byte) +## | +------- address (4-byte) +## +---------------- segment (8-byte) +## +# DWARF64-LE-NEXT: 0110: 28000000 00000000 05000804 34120000 +## | | | | | +## | | | | +------- segment (4-byte) +## | | | +- segment_selector_size (1-byte) +## | | +- address_size (1-byte) +## | +--- version (2-byte) +## +---------------- higher bytes of unit_length +## +# DWARF64-LE-NEXT: 0120: 78560000 00000000 21430000 00000000 +## | | | +## | | +------- address (8-byte) +## | +------- segment (4-byte) +## +---------------- address (8-byte) +## +# DWARF64-LE-NEXT: 0130: 00000000 00000000 21430000 00000000 +## | | | +## | | +---------------- address (8-byte) +## | +------- segment (4-byte) +## +------- higher bytes of address +## +# DWARF64-LE-NEXT: 0140: 04000000 05000400 FFFFFFFF 34120000 +## | | | | | +## | | | | +---------------- a10) unit_length (DWARF64, 12-byte) +## | | | +- segment_selector_size (1-byte) +## | | +- address_size (1-byte) +## | +--- version (2-byte) +## +------- a9) unit_length (DWARF32, 4-byte) +## +# DWARF64-LE-NEXT: 0150: 00000000 02000400 +## | | | | +## | | | +- segment_selector_size (1-byte) +## | | +- address_size (1-byte) +## | +--- version (2-byte) +## +------- higher bytes of unit_length +# DWARF64-LE-NEXT: ) + +## Generate and verify a big endian DWARF64 .debug_addr section. + +# RUN: yaml2obj --docnum=1 -DENDIAN=ELFDATA2MSB -DFORMAT=DWARF64 %s -o %t1.dwarf64.be.o +# RUN: llvm-readobj --sections --section-data %t1.dwarf64.be.o | \ +# RUN: FileCheck %s -DSIZE=344 -DADDRALIGN=1 --check-prefixes=SHDR,DWARF64-BE + +# DWARF64-BE-NEXT: SectionData ( +# DWARF64-BE-NEXT: 0000: FFFFFFFF 00000000 0000000C 00050400 +## | | | | +## | | | +- segment_selector_size (1-byte) +## | | +- address_size (1-byte) +## | +--- version (2-byte) +## +------------------------- a1) unit_length (DWARF64, 12-byte) +## +# DWARF64-BE-NEXT: 0010: 00001234 00005678 FFFFFFFF 00000000 +## | | | +## | | +---------------- a2) unit_length (DWARF64, 12-byte) +## | +------- address (4-byte) +## +------- address (4-byte) +## +# DWARF64-BE-NEXT: 0020: 00000014 00050800 00000000 00004321 +## | | | | | +## | | | | +---------------- address (8-byte) +## | | | +- segment_selector_size (1-byte) +## | | +- address_size (1-byte) +## | +--- version (2-byte) +## +------- lower bytes of unit_length +## +# DWARF64-BE-NEXT: 0030: 00000000 00008765 FFFFFFFF 00000000 +## | | +## | +---------------- a3) unit_length (DWARF64, 12-byte) +## +---------------- address (8-byte) +## +# DWARF64-BE-NEXT: 0040: 0000000C 00050004 00001234 00005678 +## | | | | | | +## | | | | | +------- segment (4-byte) +## | | | | +------- segment (4-byte) +## | | | +- segment_selector_size (1-byte) +## | | +- address_size (1-byte) +## | +--- version (2-byte) +## +------- lower bytes of unit_length +## +# DWARF64-BE-NEXT: 0050: FFFFFFFF 00000000 00000014 00050008 +## | | | | +## | | | +- segment_selector_size (1-byte) +## | | +- address_size (1-byte) +## | +--- version (2-byte) +## +------------------------- a4) unit_length (DWARF64, 12-byte) +## +# DWARF64-BE-NEXT: 0060: 00000000 00004321 00000000 00008765 +## | | +## | +---------------- segment (8-byte) +## +---------------- segment (8-byte) +## +# DWARF64-BE-NEXT: 0070: FFFFFFFF 00000000 0000001C 00050404 +## | | | | +## | | | +- segment_selector_size (1-byte) +## | | +- address_size (1-byte) +## | +--- version (2-byte) +## +------------------------- a5) unit_length (DWARF64, 12-byte) +## +# DWARF64-BE-NEXT: 0080: 00001234 00005678 00004321 00000000 +## | | | | +## | | | +------- address (4-byte) +## | | +------- segment (4-byte) +## | +------- address (4-byte) +## +------- segment (4-byte) +## +# DWARF64-BE-NEXT: 0090: 00000000 00004321 FFFFFFFF 00000000 +## | | | +## | | +---------------- a6) unit_length (DWARF64, 12-byte) +## | +------- address (4-byte) +## +------- segment (4-byte) +## +# DWARF64-BE-NEXT: 00A0: 00000034 00050808 00000000 00001234 +## | | | | | +## | | | | +---------------- segment (8-byte) +## | | | +- segment_selector_size (1-byte) +## | | +- address_size (1-byte) +## | +--- version (2-byte) +## +------- lower bytes of unit_length +## +# DWARF64-BE-NEXT: 00B0: 00000000 00005678 00000000 00004321 +## | | +## | +---------------- segment (8-byte) +## +---------------- address (8-byte) +## +# DWARF64-BE-NEXT: 00C0: 00000000 00000000 00000000 00000000 +## | | +## | +---------------- segment (8-byte) +## +---------------- address (8-byte) +## +# DWARF64-BE-NEXT: 00D0: 00000000 00004321 FFFFFFFF 00000000 +## | | +## | +---------------- a7) unit_length (DWARF64, 12-byte) +## +---------------- address (8-byte) +## +# DWARF64-BE-NEXT: 00E0: 00000028 00050408 00000000 00001234 +## | | | | | +## | | | | +---------------- segment (8-byte) +## | | | +- segment_selector_size (1-byte) +## | | +- address_size (1-byte) +## | +--- version (2-byte) +## +------- lower bytes of unit_length +## +# DWARF64-BE-NEXT: 00F0: 00005678 00000000 00004321 00000000 +## | | | +## | | +------- address (4-byte) +## | +---------------- segment (8-byte) +## +------- address (4-byte) +## +# DWARF64-BE-NEXT: 0100: 00000000 00000000 00004321 FFFFFFFF +## | | | +## | | +------- a8) unit_length (DWARF64, 12-byte) +## | +------- address (4-byte) +## +---------------- segment (8-byte) +## +# DWARF64-BE-NEXT: 0110: 00000000 00000028 00050804 00001234 +## | | | | | +## | | | | +------- segment (4-byte) +## | | | +- segment_selector_size (1-byte) +## | | +- address_size (1-byte) +## | +--- version (2-byte) +## +---------------- lower bytes of unit_length +## +# DWARF64-BE-NEXT: 0120: 00000000 00005678 00004321 00000000 +## | | | +## | | +------- address (8-byte) +## | +------- segment (4-byte) +## +---------------- address (8-byte) +## +# DWARF64-BE-NEXT: 0130: 00000000 00000000 00000000 00004321 +## | | | +## | | +---------------- address (8-byte) +## | +------- segment (4-byte) +## +------- lower bytes of address +## +# DWARF64-BE-NEXT: 0140: 00000004 00050400 FFFFFFFF 00000000 +## | | | | | +## | | | | +---------------- a10) unit_length (DWARF64, 12-byte) +## | | | +- segment_selector_size (1-byte) +## | | +- address_size (1-byte) +## | +--- version (2-byte) +## +------- a9) unit_length (DWARF32, 4-byte) +## +# DWARF64-BE-NEXT: 0150: 00001234 00020400 +## | | | | +## | | | +- segment_selector_size (1-byte) +## | | +- address_size (1-byte) +## | +--- version (2-byte) +## +------- lower bytes of unit_length +# DWARF64-BE-NEXT: )