1# RUN: llvm-mc -triple x86_64-pc-linux %s -filetype=obj | \
2# RUN:   not llvm-dwarfdump -verify - | FileCheck %s
3
4# CHECK: Name Index @ 0x0: Name table entries [1, 1] are not covered by the hash table.
5# CHECK: Name Index @ 0x0: Name table entries [4, 4] are not covered by the hash table.
6	.section	.debug_str,"MS",@progbits,1
7.Lstring_foo:
8	.asciz	"foo"
9.Lstring_bar:
10	.asciz	"bar"
11.Lstring_baz:
12	.asciz	"baz"
13.Lstring_barfuz:
14	.asciz	"barfuz"
15.Lstring_producer:
16	.asciz	"Hand-written dwarf"
17
18	.section	.debug_abbrev,"",@progbits
19.Lsection_abbrev:
20	.byte	1                       # Abbreviation Code
21	.byte	17                      # DW_TAG_compile_unit
22	.byte	1                       # DW_CHILDREN_yes
23	.byte	37                      # DW_AT_producer
24	.byte	14                      # DW_FORM_strp
25	.byte	19                      # DW_AT_language
26	.byte	5                       # DW_FORM_data2
27	.byte	0                       # EOM(1)
28	.byte	0                       # EOM(2)
29	.byte	2                       # Abbreviation Code
30	.byte	46                      # DW_TAG_subprogram
31	.byte	0                       # DW_CHILDREN_no
32	.byte	3                       # DW_AT_name
33	.byte	14                      # DW_FORM_strp
34	.byte	63                      # DW_AT_external
35	.byte	25                      # DW_FORM_flag_present
36	.byte	0                       # EOM(1)
37	.byte	0                       # EOM(2)
38	.byte	0                       # EOM(3)
39
40	.section	.debug_info,"",@progbits
41.Lcu_begin0:
42	.long	.Lcu_end0-.Lcu_start0   # Length of Unit
43.Lcu_start0:
44	.short	4                       # DWARF version number
45	.long	.Lsection_abbrev        # Offset Into Abbrev. Section
46	.byte	8                       # Address Size (in bytes)
47	.byte	1                       # Abbrev [1] DW_TAG_compile_unit
48	.long	.Lstring_producer       # DW_AT_producer
49	.short	12                      # DW_AT_language
50.Ldie_foo:
51	.byte	2                       # Abbrev [2] DW_TAG_subprogram
52	.long	.Lstring_foo            # DW_AT_name
53                                        # DW_AT_external
54.Ldie_bar:
55	.byte	2                       # Abbrev [2] DW_TAG_subprogram
56	.long	.Lstring_bar            # DW_AT_name
57                                        # DW_AT_external
58.Ldie_baz:
59	.byte	2                       # Abbrev [2] DW_TAG_subprogram
60	.long	.Lstring_baz            # DW_AT_name
61                                        # DW_AT_external
62.Ldie_barfuz:
63	.byte	2                       # Abbrev [2] DW_TAG_subprogram
64	.long	.Lstring_barfuz         # DW_AT_name
65                                        # DW_AT_external
66	.byte	0                       # End Of Children Mark
67.Lcu_end0:
68
69	.section	.debug_names,"",@progbits
70	.long	.Lnames_end0-.Lnames_start0 # Header: contribution length
71.Lnames_start0:
72	.short	5                       # Header: version
73	.short	0                       # Header: padding
74	.long	1                       # Header: compilation unit count
75	.long	0                       # Header: local type unit count
76	.long	0                       # Header: foreign type unit count
77	.long	2                       # Header: bucket count
78	.long	4                       # Header: name count
79	.long	.Lnames_abbrev_end0-.Lnames_abbrev_start0 # Header: abbreviation table size
80	.long	0                       # Header: augmentation length
81	.long	.Lcu_begin0             # Compilation unit 0
82	.long	2                       # Bucket 0
83	.long	3                       # Bucket 1
84	.long	193491849               # Hash in no Bucket
85	.long	193487034               # Hash in Bucket 0
86	.long	4086570991              # Hash in Bucket 1
87	.long	193487042               # Hash in no Bucket
88	.long	.Lstring_foo            # String in no Bucket
89	.long	.Lstring_bar            # String in Bucket 0
90	.long	.Lstring_barfuz         # String in Bucket 1
91	.long	.Lstring_baz            # String in no Bucket
92	.long	.Lnames0-.Lnames_entries0 # Offset in no Bucket
93	.long	.Lnames1-.Lnames_entries0 # Offset in Bucket 0
94	.long	.Lnames2-.Lnames_entries0 # Offset in Bucket 1
95	.long	.Lnames3-.Lnames_entries0 # Offset in no Bucket
96.Lnames_abbrev_start0:
97	.byte	46                      # Abbrev code
98	.byte	46                      # DW_TAG_subprogram
99	.byte	3                       # DW_IDX_die_offset
100	.byte	19                      # DW_FORM_ref4
101	.byte	0                       # End of abbrev
102	.byte	0                       # End of abbrev
103	.byte	0                       # End of abbrev list
104.Lnames_abbrev_end0:
105.Lnames_entries0:
106.Lnames0:
107	.byte	46                      # Abbrev code
108	.long	.Ldie_foo-.Lcu_begin0   # DW_IDX_die_offset
109	.long	0                       # End of list: foo
110.Lnames1:
111	.byte	46                      # Abbrev code
112	.long	.Ldie_bar-.Lcu_begin0   # DW_IDX_die_offset
113	.long	0                       # End of list: bar
114.Lnames2:
115	.byte	46                      # Abbrev code
116	.long	.Ldie_baz-.Lcu_begin0   # DW_IDX_die_offset
117	.long	0                       # End of list: baz
118.Lnames3:
119	.byte	46                      # Abbrev code
120	.long	.Ldie_barfuz-.Lcu_begin0# DW_IDX_die_offset
121	.long	0                       # End of list: barfuz
122	.p2align	2
123.Lnames_end0:
124