[docs] Add LICENSE.txt to the root of the mono-repo
[llvm-project.git] / llvm / test / DebugInfo / Inputs / typeunit-header.s
blob802eb01c552c6307cba0041f83d52e9ad64fd8c3
1 # Test object with an artifically constructed type unit header to verify
2 # that the length field is correctly used to verify the validity of the
3 # type_offset field.
5 # To generate the test object:
6 # llvm-mc -triple x86_64-unknown-linux typeunit-header.s -filetype=obj \
7 # -o typeunit-header.elf-x86-64
9 # We only have an abbreviation for the type unit die which is all we need.
10 # Real type unit dies have quite different attributes of course, but we
11 # just need to demonstrate an issue with validating length, so we just give it
12 # a single visibility attribute.
13 .section .debug_abbrev,"",@progbits
14 .byte 0x01 # Abbrev code
15 .byte 0x41 # DW_TAG_type_unit
16 .byte 0x01 # DW_CHILDREN_yes
17 .byte 0x17 # DW_AT_visibility
18 .byte 0x0b # DW_FORM_data1
19 .byte 0x00 # EOM(1)
20 .byte 0x00 # EOM(2)
21 .byte 0x02 # Abbrev code
22 .byte 0x13 # DW_TAG_structure_type
23 .byte 0x00 # DW_CHILDREN_no (no members)
24 .byte 0x17 # DW_AT_visibility
25 .byte 0x0b # DW_FORM_data1
26 .byte 0x00 # EOM(1)
27 .byte 0x00 # EOM(2)
28 .byte 0x00 # EOM(3)
30 .section .debug_types,"",@progbits
31 # DWARF v4 Type unit header - DWARF32 format.
32 TU_4_32_start:
33 .long TU_4_32_end-TU_4_32_version # Length of Unit
34 TU_4_32_version:
35 .short 4 # DWARF version number
36 .long .debug_abbrev # Offset Into Abbrev. Section
37 .byte 8 # Address Size (in bytes)
38 .quad 0x0011223344556677 # Type Signature
39 .long TU_4_32_type-TU_4_32_start # Type offset
40 # The type-unit DIE, which has just a visibility attribute.
41 .byte 1 # Abbreviation code
42 .byte 1 # DW_VIS_local
43 # The type DIE, which also just has a one-byte visibility attribute.
44 TU_4_32_type:
45 .byte 2 # Abbreviation code
46 .byte 1 # DW_VIS_local
47 .byte 0 # NULL
48 .byte 0 # NULL
49 TU_4_32_end: