xref: /llvm-project/llvm/test/tools/llvm-dwarfdump/X86/debug-names-verify-cu-lists.s (revision b136c3934e1ec2d5c955ceedaa9c178fd6f80bf5)
1# RUN: llvm-mc -triple x86_64-pc-linux %s -filetype=obj | \
2# RUN:   not llvm-dwarfdump -verify - | FileCheck %s
3
4# CHECK: error: Name Index @ 0x0 does not index any CU
5# CHECK: error: Name Index @ 0x28 references a non-existing CU @ 0x1
6# CHECK: error: Name Index @ 0x58 references a CU @ 0x0, but this CU is already indexed by Name Index @ 0x28
7# CHECK: warning: CU @ 0x13 not covered by any Name Index
8
9	.section	.debug_str,"MS",@progbits,1
10.Lstring_foo:
11	.asciz	"foo"
12.Lstring_foo_mangled:
13	.asciz	"_Z3foov"
14.Lstring_bar:
15	.asciz	"bar"
16.Lstring_producer:
17	.asciz	"Hand-written dwarf"
18
19	.section	.debug_abbrev,"",@progbits
20.Lsection_abbrev:
21	.byte	1                       # Abbreviation Code
22	.byte	17                      # DW_TAG_compile_unit
23	.byte	1                       # DW_CHILDREN_yes
24	.byte	37                      # DW_AT_producer
25	.byte	14                      # DW_FORM_strp
26	.byte	19                      # DW_AT_language
27	.byte	5                       # DW_FORM_data2
28	.byte	0                       # EOM(1)
29	.byte	0                       # EOM(2)
30	.byte	0                       # EOM(3)
31
32	.section	.debug_info,"",@progbits
33.Lcu_begin0:
34	.long	.Lcu_end0-.Lcu_start0   # Length of Unit
35.Lcu_start0:
36	.short	4                       # DWARF version number
37	.long	.Lsection_abbrev        # Offset Into Abbrev. Section
38	.byte	8                       # Address Size (in bytes)
39	.byte	1                       # Abbrev [1] DW_TAG_compile_unit
40	.long	.Lstring_producer       # DW_AT_producer
41	.short	12                      # DW_AT_language
42	.byte	0                       # End Of Children Mark
43.Lcu_end0:
44
45.Lcu_begin1:
46	.long	.Lcu_end1-.Lcu_start1   # Length of Unit
47.Lcu_start1:
48	.short	4                       # DWARF version number
49	.long	.Lsection_abbrev        # Offset Into Abbrev. Section
50	.byte	8                       # Address Size (in bytes)
51	.byte	1                       # Abbrev [1] DW_TAG_compile_unit
52	.long	.Lstring_producer       # DW_AT_producer
53	.short	12                      # DW_AT_language
54	.byte	0                       # End Of Children Mark
55.Lcu_end1:
56
57	.section	.debug_names,"",@progbits
58	.long	.Lnames_end0-.Lnames_start0 # Header: contribution length
59.Lnames_start0:
60	.short	5                       # Header: version
61	.short	0                       # Header: padding
62	.long	0                       # Header: compilation unit count
63	.long	0                       # Header: local type unit count
64	.long	0                       # Header: foreign type unit count
65	.long	0                       # Header: bucket count
66	.long	0                       # Header: name count
67	.long	.Lnames_abbrev_end0-.Lnames_abbrev_start0 # Header: abbreviation table size
68	.long	0                       # Header: augmentation length
69.Lnames_abbrev_start0:
70	.byte	0                       # End of abbrev list
71.Lnames_abbrev_end0:
72.p2align 2
73.Lnames_end0:
74
75	.long	.Lnames_end1-.Lnames_start1 # Header: contribution length
76.Lnames_start1:
77	.short	5                       # Header: version
78	.short	0                       # Header: padding
79	.long	2                       # Header: compilation unit count
80	.long	0                       # Header: local type unit count
81	.long	0                       # Header: foreign type unit count
82	.long	0                       # Header: bucket count
83	.long	0                       # Header: name count
84	.long	.Lnames_abbrev_end1-.Lnames_abbrev_start1 # Header: abbreviation table size
85	.long	0                       # Header: augmentation length
86	.long	.Lcu_begin0             # Compilation unit 0
87	.long	.Lcu_begin0+1           # Compilation unit 0
88.Lnames_abbrev_start1:
89	.byte	0                       # End of abbrev list
90.Lnames_abbrev_end1:
91.p2align 2
92.Lnames_end1:
93
94	.long	.Lnames_end2-.Lnames_start2 # Header: contribution length
95.Lnames_start2:
96	.short	5                       # Header: version
97	.short	0                       # Header: padding
98	.long	1                       # Header: compilation unit count
99	.long	0                       # Header: local type unit count
100	.long	0                       # Header: foreign type unit count
101	.long	0                       # Header: bucket count
102	.long	0                       # Header: name count
103	.long	.Lnames_abbrev_end2-.Lnames_abbrev_start2 # Header: abbreviation table size
104	.long	0                       # Header: augmentation length
105	.long	.Lcu_begin0             # Compilation unit 0
106.Lnames_abbrev_start2:
107	.byte	0                       # End of abbrev list
108.Lnames_abbrev_end2:
109.p2align 2
110.Lnames_end2:
111