• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# RUN: llvm-mc -triple x86_64-pc-linux %s -filetype=obj -o - | not llvm-dwarfdump -verify - | FileCheck %s
2
3# CHECK: error: Name Index @ 0x0: Entry for DIE @ 0x10 (DW_TAG_namespace) with name namesp missing.
4# CHECK: error: Name Index @ 0x0: Entry for DIE @ 0x15 (DW_TAG_variable) with name var_block_addr missing.
5# CHECK: error: Name Index @ 0x0: Entry for DIE @ 0x25 (DW_TAG_namespace) with name (anonymous namespace) missing.
6# CHECK: error: Name Index @ 0x0: Entry for DIE @ 0x26 (DW_TAG_variable) with name var_loc_addr missing.
7# CHECK: error: Name Index @ 0x0: Entry for DIE @ 0x30 (DW_TAG_variable) with name var_loc_tls missing.
8# CHECK: error: Name Index @ 0x0: Entry for DIE @ 0x37 (DW_TAG_variable) with name var_loc_gnu_tls missing.
9# CHECK: error: Name Index @ 0x0: Entry for DIE @ 0x3e (DW_TAG_subprogram) with name fun_name missing.
10# CHECK: error: Name Index @ 0x0: Entry for DIE @ 0x3e (DW_TAG_subprogram) with name _Z8fun_name missing.
11# CHECK: error: Name Index @ 0x0: Entry for DIE @ 0x4f (DW_TAG_inlined_subroutine) with name fun_inline missing.
12# CHECK: error: Name Index @ 0x0: Entry for DIE @ 0x64 (DW_TAG_label) with name label missing.
13
14	.section	.debug_str,"MS",@progbits,1
15.Linfo_producer:
16	.asciz	"hand-written DWARF"
17.Lname_var_block_addr:
18	.asciz	"var_block_addr"
19.Lname_var_loc_addr:
20	.asciz	"var_loc_addr"
21.Lname_var_loc_tls:
22	.asciz	"var_loc_tls"
23.Lname_var_loc_gnu_tls:
24	.asciz	"var_loc_gnu_tls"
25.Lname_fun_name:
26	.asciz	"fun_name"
27.Lname_fun_link_name:
28	.asciz	"_Z8fun_name"
29.Lname_fun_inline:
30	.asciz	"fun_inline"
31.Lnamespace:
32	.asciz	"namesp"
33.Lname_label:
34	.asciz	"label"
35
36	.section	.debug_loc,"",@progbits
37.Ldebug_loc0:
38	.quad	0
39	.quad	1
40	.short	.Lloc0_end-.Lloc0_start # Loc expr size
41.Lloc0_start:
42	.byte	3                       # DW_OP_addr
43        .quad 0x47
44.Lloc0_end:
45	.quad	0
46	.quad	0
47
48	.section	.debug_abbrev,"",@progbits
49	.byte	1                       # Abbreviation Code
50	.byte	17                      # DW_TAG_compile_unit
51	.byte	1                       # DW_CHILDREN_yes
52	.byte	37                      # DW_AT_producer
53	.byte	14                      # DW_FORM_strp
54	.byte	0                       # EOM(1)
55	.byte	0                       # EOM(2)
56
57	.byte	2                       # Abbreviation Code
58	.byte	52                      # DW_TAG_variable
59	.byte	0                       # DW_CHILDREN_no
60	.byte	3                       # DW_AT_name
61	.byte	14                      # DW_FORM_strp
62	.byte	2                       # DW_AT_location
63	.byte	24                      # DW_FORM_exprloc
64	.byte	0                       # EOM(1)
65	.byte	0                       # EOM(2)
66
67	.byte	3                       # Abbreviation Code
68	.byte	46                      # DW_TAG_subprogram
69	.byte	1                       # DW_CHILDREN_yes
70	.byte	3                       # DW_AT_name
71	.byte	14                      # DW_FORM_strp
72	.byte	110                     # DW_AT_linkage_name
73	.byte	14                      # DW_FORM_strp
74	.byte	82                      # DW_AT_entry_pc
75	.byte	1                       # DW_FORM_addr
76	.byte	0                       # EOM(1)
77	.byte	0                       # EOM(2)
78
79	.byte	4                       # Abbreviation Code
80	.byte	57                      # DW_TAG_namespace
81	.byte	1                       # DW_CHILDREN_yes
82	.byte	3                       # DW_AT_name
83	.byte	14                      # DW_FORM_strp
84	.byte	0                       # EOM(1)
85	.byte	0                       # EOM(2)
86
87	.byte	5                       # Abbreviation Code
88	.byte	52                      # DW_TAG_variable
89	.byte	0                       # DW_CHILDREN_no
90	.byte	3                       # DW_AT_name
91	.byte	14                      # DW_FORM_strp
92	.byte	2                       # DW_AT_location
93	.byte	23                      # DW_FORM_sec_offset
94	.byte	0                       # EOM(1)
95	.byte	0                       # EOM(2)
96
97	.byte	6                       # Abbreviation Code
98	.byte	57                      # DW_TAG_namespace
99	.byte	1                       # DW_CHILDREN_yes
100	.byte	0                       # EOM(1)
101	.byte	0                       # EOM(2)
102
103	.byte	7                       # Abbreviation Code
104	.byte	29                      # DW_TAG_inlined_subroutine
105	.byte	0                       # DW_CHILDREN_no
106	.byte	3                       # DW_AT_name
107	.byte	14                      # DW_FORM_strp
108	.byte	17                      # DW_AT_low_pc
109	.byte	1                       # DW_FORM_addr
110	.byte	18                      # DW_AT_high_pc
111	.byte	1                       # DW_FORM_addr
112	.byte	0                       # EOM(1)
113	.byte	0                       # EOM(2)
114
115	.byte	8                       # Abbreviation Code
116	.byte	10                      # DW_TAG_label
117	.byte	0                       # DW_CHILDREN_no
118	.byte	3                       # DW_AT_name
119	.byte	14                      # DW_FORM_strp
120	.byte	82                      # DW_AT_entry_pc
121	.byte	1                       # DW_FORM_addr
122	.byte	0                       # EOM(1)
123	.byte	0                       # EOM(2)
124
125	.byte	0                       # EOM(3)
126	.section	.debug_info,"",@progbits
127.Lcu_begin0:
128	.long	.Lcu_end0-.Lcu_start0   # Length of Unit
129.Lcu_start0:
130	.short	4                       # DWARF version number
131	.long	.debug_abbrev           # Offset Into Abbrev. Section
132	.byte	8                       # Address Size (in bytes)
133	.byte	1                       # Abbrev [1] DW_TAG_compile_unit
134	.long	.Linfo_producer         # DW_AT_producer
135
136	.byte	4                       # Abbrev [4] DW_TAG_namespace
137	.long	.Lnamespace             # DW_AT_name
138	.byte	2                       # Abbrev [2] DW_TAG_variable
139	.long	.Lname_var_block_addr   # DW_AT_name
140	.byte	9                       # DW_AT_location
141	.byte	3                       # DW_OP_addr
142	.quad	0x47
143	.byte	0                       # End Of Children Mark
144
145	.byte	6                       # Abbrev [6] DW_TAG_namespace
146	.byte	5                       # Abbrev [5] DW_TAG_variable
147	.long	.Lname_var_loc_addr     # DW_AT_name
148	.long	.Ldebug_loc0            # DW_AT_location
149	.byte	0                       # End Of Children Mark
150
151	.byte	2                       # Abbrev [2] DW_TAG_variable
152	.long	.Lname_var_loc_tls      # DW_AT_name
153	.byte	1                       # DW_AT_location
154	.byte	0x9b                    # DW_OP_form_tls_address
155
156	.byte	2                       # Abbrev [2] DW_TAG_variable
157	.long	.Lname_var_loc_gnu_tls  # DW_AT_name
158	.byte	1                       # DW_AT_location
159	.byte	0xe0                    # DW_OP_GNU_push_tls_address
160
161	.byte	3                       # Abbrev [3] DW_TAG_subprogram
162	.long	.Lname_fun_name         # DW_AT_name
163	.long	.Lname_fun_link_name    # DW_AT_linkage_name
164	.quad	0x47                    # DW_AT_entry_pc
165	.byte	7                       # Abbrev [7] DW_TAG_inlined_subroutine
166	.long	.Lname_fun_inline       # DW_AT_name
167	.quad	0x48                    # DW_AT_low_pc
168	.quad	0x49                    # DW_AT_high_pc
169	.byte	8                       # Abbrev [8] DW_TAG_label
170	.long	.Lname_label            # DW_AT_name
171	.quad	0x4a                    # DW_AT_entry_pc
172	.byte	0                       # End Of Children Mark
173
174	.byte	0                       # End Of Children Mark
175.Lcu_end0:
176
177	.section	.debug_names,"",@progbits
178	.long	.Lnames_end0-.Lnames_start0 # Header: contribution length
179.Lnames_start0:
180	.short	5                       # Header: version
181	.short	0                       # Header: padding
182	.long	1                       # Header: compilation unit count
183	.long	0                       # Header: local type unit count
184	.long	0                       # Header: foreign type unit count
185	.long	0                       # Header: bucket count
186	.long	0                       # Header: name count
187	.long	.Lnames_abbrev_end0-.Lnames_abbrev_start0 # Header: abbreviation table size
188	.long	0                       # Header: augmentation length
189	.long	.Lcu_begin0             # Compilation unit 0
190.Lnames_abbrev_start0:
191	.byte	0                       # End of abbrev list
192.Lnames_abbrev_end0:
193.Lnames_entries0:
194.Lnames_end0:
195
196