Skip to content

Commit 9e168c3

Browse files
authored
Merge pull request #577 from JDevlieghere/🍒/57ae300562f826e3fee81017d6473a5dec516383
[Dwarf] Complete the list of type tags.
2 parents da57a9c + 7d338d4 commit 9e168c3

File tree

5 files changed

+109
-112
lines changed

5 files changed

+109
-112
lines changed

llvm/include/llvm/BinaryFormat/Dwarf.def

Lines changed: 95 additions & 85 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,17 @@
2626
#endif
2727

2828
#ifndef HANDLE_DW_TAG
29-
#define HANDLE_DW_TAG(ID, NAME, VERSION, VENDOR)
29+
#define HANDLE_DW_TAG(ID, NAME, VERSION, VENDOR, KIND)
30+
#endif
31+
32+
// Note that DW_KIND is not a DWARF concept, but rather a way for us to
33+
// generate a list of tags that belong together.
34+
#ifndef DW_KIND_NONE
35+
#define DW_KIND_NONE 0
36+
#endif
37+
38+
#ifndef DW_KIND_TYPE
39+
#define DW_KIND_TYPE 1
3040
#endif
3141

3242
#ifndef HANDLE_DW_AT
@@ -109,94 +119,94 @@
109119
#define HANDLE_DW_END(ID, NAME)
110120
#endif
111121

112-
HANDLE_DW_TAG(0x0000, null, 2, DWARF)
113-
HANDLE_DW_TAG(0x0001, array_type, 2, DWARF)
114-
HANDLE_DW_TAG(0x0002, class_type, 2, DWARF)
115-
HANDLE_DW_TAG(0x0003, entry_point, 2, DWARF)
116-
HANDLE_DW_TAG(0x0004, enumeration_type, 2, DWARF)
117-
HANDLE_DW_TAG(0x0005, formal_parameter, 2, DWARF)
118-
HANDLE_DW_TAG(0x0008, imported_declaration, 2, DWARF)
119-
HANDLE_DW_TAG(0x000a, label, 2, DWARF)
120-
HANDLE_DW_TAG(0x000b, lexical_block, 2, DWARF)
121-
HANDLE_DW_TAG(0x000d, member, 2, DWARF)
122-
HANDLE_DW_TAG(0x000f, pointer_type, 2, DWARF)
123-
HANDLE_DW_TAG(0x0010, reference_type, 2, DWARF)
124-
HANDLE_DW_TAG(0x0011, compile_unit, 2, DWARF)
125-
HANDLE_DW_TAG(0x0012, string_type, 2, DWARF)
126-
HANDLE_DW_TAG(0x0013, structure_type, 2, DWARF)
127-
HANDLE_DW_TAG(0x0015, subroutine_type, 2, DWARF)
128-
HANDLE_DW_TAG(0x0016, typedef, 2, DWARF)
129-
HANDLE_DW_TAG(0x0017, union_type, 2, DWARF)
130-
HANDLE_DW_TAG(0x0018, unspecified_parameters, 2, DWARF)
131-
HANDLE_DW_TAG(0x0019, variant, 2, DWARF)
132-
HANDLE_DW_TAG(0x001a, common_block, 2, DWARF)
133-
HANDLE_DW_TAG(0x001b, common_inclusion, 2, DWARF)
134-
HANDLE_DW_TAG(0x001c, inheritance, 2, DWARF)
135-
HANDLE_DW_TAG(0x001d, inlined_subroutine, 2, DWARF)
136-
HANDLE_DW_TAG(0x001e, module, 2, DWARF)
137-
HANDLE_DW_TAG(0x001f, ptr_to_member_type, 2, DWARF)
138-
HANDLE_DW_TAG(0x0020, set_type, 2, DWARF)
139-
HANDLE_DW_TAG(0x0021, subrange_type, 2, DWARF)
140-
HANDLE_DW_TAG(0x0022, with_stmt, 2, DWARF)
141-
HANDLE_DW_TAG(0x0023, access_declaration, 2, DWARF)
142-
HANDLE_DW_TAG(0x0024, base_type, 2, DWARF)
143-
HANDLE_DW_TAG(0x0025, catch_block, 2, DWARF)
144-
HANDLE_DW_TAG(0x0026, const_type, 2, DWARF)
145-
HANDLE_DW_TAG(0x0027, constant, 2, DWARF)
146-
HANDLE_DW_TAG(0x0028, enumerator, 2, DWARF)
147-
HANDLE_DW_TAG(0x0029, file_type, 2, DWARF)
148-
HANDLE_DW_TAG(0x002a, friend, 2, DWARF)
149-
HANDLE_DW_TAG(0x002b, namelist, 2, DWARF)
150-
HANDLE_DW_TAG(0x002c, namelist_item, 2, DWARF)
151-
HANDLE_DW_TAG(0x002d, packed_type, 2, DWARF)
152-
HANDLE_DW_TAG(0x002e, subprogram, 2, DWARF)
153-
HANDLE_DW_TAG(0x002f, template_type_parameter, 2, DWARF)
154-
HANDLE_DW_TAG(0x0030, template_value_parameter, 2, DWARF)
155-
HANDLE_DW_TAG(0x0031, thrown_type, 2, DWARF)
156-
HANDLE_DW_TAG(0x0032, try_block, 2, DWARF)
157-
HANDLE_DW_TAG(0x0033, variant_part, 2, DWARF)
158-
HANDLE_DW_TAG(0x0034, variable, 2, DWARF)
159-
HANDLE_DW_TAG(0x0035, volatile_type, 2, DWARF)
122+
HANDLE_DW_TAG(0x0000, null, 2, DWARF, DW_KIND_NONE)
123+
HANDLE_DW_TAG(0x0001, array_type, 2, DWARF, DW_KIND_TYPE)
124+
HANDLE_DW_TAG(0x0002, class_type, 2, DWARF, DW_KIND_TYPE)
125+
HANDLE_DW_TAG(0x0003, entry_point, 2, DWARF, DW_KIND_NONE)
126+
HANDLE_DW_TAG(0x0004, enumeration_type, 2, DWARF, DW_KIND_TYPE)
127+
HANDLE_DW_TAG(0x0005, formal_parameter, 2, DWARF, DW_KIND_NONE)
128+
HANDLE_DW_TAG(0x0008, imported_declaration, 2, DWARF, DW_KIND_NONE)
129+
HANDLE_DW_TAG(0x000a, label, 2, DWARF, DW_KIND_NONE)
130+
HANDLE_DW_TAG(0x000b, lexical_block, 2, DWARF, DW_KIND_NONE)
131+
HANDLE_DW_TAG(0x000d, member, 2, DWARF, DW_KIND_NONE)
132+
HANDLE_DW_TAG(0x000f, pointer_type, 2, DWARF, DW_KIND_TYPE)
133+
HANDLE_DW_TAG(0x0010, reference_type, 2, DWARF, DW_KIND_TYPE)
134+
HANDLE_DW_TAG(0x0011, compile_unit, 2, DWARF, DW_KIND_NONE)
135+
HANDLE_DW_TAG(0x0012, string_type, 2, DWARF, DW_KIND_TYPE)
136+
HANDLE_DW_TAG(0x0013, structure_type, 2, DWARF, DW_KIND_TYPE)
137+
HANDLE_DW_TAG(0x0015, subroutine_type, 2, DWARF, DW_KIND_TYPE)
138+
HANDLE_DW_TAG(0x0016, typedef, 2, DWARF, DW_KIND_TYPE)
139+
HANDLE_DW_TAG(0x0017, union_type, 2, DWARF, DW_KIND_TYPE)
140+
HANDLE_DW_TAG(0x0018, unspecified_parameters, 2, DWARF, DW_KIND_NONE)
141+
HANDLE_DW_TAG(0x0019, variant, 2, DWARF, DW_KIND_NONE)
142+
HANDLE_DW_TAG(0x001a, common_block, 2, DWARF, DW_KIND_NONE)
143+
HANDLE_DW_TAG(0x001b, common_inclusion, 2, DWARF, DW_KIND_NONE)
144+
HANDLE_DW_TAG(0x001c, inheritance, 2, DWARF, DW_KIND_NONE)
145+
HANDLE_DW_TAG(0x001d, inlined_subroutine, 2, DWARF, DW_KIND_NONE)
146+
HANDLE_DW_TAG(0x001e, module, 2, DWARF, DW_KIND_NONE)
147+
HANDLE_DW_TAG(0x001f, ptr_to_member_type, 2, DWARF, DW_KIND_TYPE)
148+
HANDLE_DW_TAG(0x0020, set_type, 2, DWARF, DW_KIND_NONE)
149+
HANDLE_DW_TAG(0x0021, subrange_type, 2, DWARF, DW_KIND_TYPE)
150+
HANDLE_DW_TAG(0x0022, with_stmt, 2, DWARF, DW_KIND_NONE)
151+
HANDLE_DW_TAG(0x0023, access_declaration, 2, DWARF, DW_KIND_NONE)
152+
HANDLE_DW_TAG(0x0024, base_type, 2, DWARF, DW_KIND_TYPE)
153+
HANDLE_DW_TAG(0x0025, catch_block, 2, DWARF, DW_KIND_NONE)
154+
HANDLE_DW_TAG(0x0026, const_type, 2, DWARF, DW_KIND_TYPE)
155+
HANDLE_DW_TAG(0x0027, constant, 2, DWARF, DW_KIND_NONE)
156+
HANDLE_DW_TAG(0x0028, enumerator, 2, DWARF, DW_KIND_NONE)
157+
HANDLE_DW_TAG(0x0029, file_type, 2, DWARF, DW_KIND_TYPE)
158+
HANDLE_DW_TAG(0x002a, friend, 2, DWARF, DW_KIND_NONE)
159+
HANDLE_DW_TAG(0x002b, namelist, 2, DWARF, DW_KIND_NONE)
160+
HANDLE_DW_TAG(0x002c, namelist_item, 2, DWARF, DW_KIND_NONE)
161+
HANDLE_DW_TAG(0x002d, packed_type, 2, DWARF, DW_KIND_TYPE)
162+
HANDLE_DW_TAG(0x002e, subprogram, 2, DWARF, DW_KIND_NONE)
163+
HANDLE_DW_TAG(0x002f, template_type_parameter, 2, DWARF, DW_KIND_NONE)
164+
HANDLE_DW_TAG(0x0030, template_value_parameter, 2, DWARF, DW_KIND_NONE)
165+
HANDLE_DW_TAG(0x0031, thrown_type, 2, DWARF, DW_KIND_TYPE)
166+
HANDLE_DW_TAG(0x0032, try_block, 2, DWARF, DW_KIND_NONE)
167+
HANDLE_DW_TAG(0x0033, variant_part, 2, DWARF, DW_KIND_NONE)
168+
HANDLE_DW_TAG(0x0034, variable, 2, DWARF, DW_KIND_NONE)
169+
HANDLE_DW_TAG(0x0035, volatile_type, 2, DWARF, DW_KIND_TYPE)
160170
// New in DWARF v3:
161-
HANDLE_DW_TAG(0x0036, dwarf_procedure, 3, DWARF)
162-
HANDLE_DW_TAG(0x0037, restrict_type, 3, DWARF)
163-
HANDLE_DW_TAG(0x0038, interface_type, 3, DWARF)
164-
HANDLE_DW_TAG(0x0039, namespace, 3, DWARF)
165-
HANDLE_DW_TAG(0x003a, imported_module, 3, DWARF)
166-
HANDLE_DW_TAG(0x003b, unspecified_type, 3, DWARF)
167-
HANDLE_DW_TAG(0x003c, partial_unit, 3, DWARF)
168-
HANDLE_DW_TAG(0x003d, imported_unit, 3, DWARF)
169-
HANDLE_DW_TAG(0x003f, condition, 3, DWARF)
170-
HANDLE_DW_TAG(0x0040, shared_type, 3, DWARF)
171+
HANDLE_DW_TAG(0x0036, dwarf_procedure, 3, DWARF, DW_KIND_NONE)
172+
HANDLE_DW_TAG(0x0037, restrict_type, 3, DWARF, DW_KIND_TYPE)
173+
HANDLE_DW_TAG(0x0038, interface_type, 3, DWARF, DW_KIND_TYPE)
174+
HANDLE_DW_TAG(0x0039, namespace, 3, DWARF, DW_KIND_NONE)
175+
HANDLE_DW_TAG(0x003a, imported_module, 3, DWARF, DW_KIND_NONE)
176+
HANDLE_DW_TAG(0x003b, unspecified_type, 3, DWARF, DW_KIND_TYPE)
177+
HANDLE_DW_TAG(0x003c, partial_unit, 3, DWARF, DW_KIND_NONE)
178+
HANDLE_DW_TAG(0x003d, imported_unit, 3, DWARF, DW_KIND_NONE)
179+
HANDLE_DW_TAG(0x003f, condition, 3, DWARF, DW_KIND_NONE)
180+
HANDLE_DW_TAG(0x0040, shared_type, 3, DWARF, DW_KIND_TYPE)
171181
// New in DWARF v4:
172-
HANDLE_DW_TAG(0x0041, type_unit, 4, DWARF)
173-
HANDLE_DW_TAG(0x0042, rvalue_reference_type, 4, DWARF)
174-
HANDLE_DW_TAG(0x0043, template_alias, 4, DWARF)
182+
HANDLE_DW_TAG(0x0041, type_unit, 4, DWARF, DW_KIND_NONE)
183+
HANDLE_DW_TAG(0x0042, rvalue_reference_type, 4, DWARF, DW_KIND_TYPE)
184+
HANDLE_DW_TAG(0x0043, template_alias, 4, DWARF, DW_KIND_NONE)
175185
// New in DWARF v5:
176-
HANDLE_DW_TAG(0x0044, coarray_type, 5, DWARF)
177-
HANDLE_DW_TAG(0x0045, generic_subrange, 5, DWARF)
178-
HANDLE_DW_TAG(0x0046, dynamic_type, 5, DWARF)
179-
HANDLE_DW_TAG(0x0047, atomic_type, 5, DWARF)
180-
HANDLE_DW_TAG(0x0048, call_site, 5, DWARF)
181-
HANDLE_DW_TAG(0x0049, call_site_parameter, 5, DWARF)
182-
HANDLE_DW_TAG(0x004a, skeleton_unit, 5, DWARF)
183-
HANDLE_DW_TAG(0x004b, immutable_type, 5, DWARF)
186+
HANDLE_DW_TAG(0x0044, coarray_type, 5, DWARF, DW_KIND_TYPE)
187+
HANDLE_DW_TAG(0x0045, generic_subrange, 5, DWARF, DW_KIND_NONE)
188+
HANDLE_DW_TAG(0x0046, dynamic_type, 5, DWARF, DW_KIND_TYPE)
189+
HANDLE_DW_TAG(0x0047, atomic_type, 5, DWARF, DW_KIND_TYPE)
190+
HANDLE_DW_TAG(0x0048, call_site, 5, DWARF, DW_KIND_NONE)
191+
HANDLE_DW_TAG(0x0049, call_site_parameter, 5, DWARF, DW_KIND_NONE)
192+
HANDLE_DW_TAG(0x004a, skeleton_unit, 5, DWARF, DW_KIND_NONE)
193+
HANDLE_DW_TAG(0x004b, immutable_type, 5, DWARF, DW_KIND_TYPE)
184194
// Vendor extensions:
185-
HANDLE_DW_TAG(0x4081, MIPS_loop, 0, MIPS)
186-
HANDLE_DW_TAG(0x4101, format_label, 0, GNU)
187-
HANDLE_DW_TAG(0x4102, function_template, 0, GNU)
188-
HANDLE_DW_TAG(0x4103, class_template, 0, GNU)
189-
HANDLE_DW_TAG(0x4106, GNU_template_template_param, 0, GNU)
190-
HANDLE_DW_TAG(0x4107, GNU_template_parameter_pack, 0, GNU)
191-
HANDLE_DW_TAG(0x4108, GNU_formal_parameter_pack, 0, GNU)
192-
HANDLE_DW_TAG(0x4109, GNU_call_site, 0, GNU)
193-
HANDLE_DW_TAG(0x410a, GNU_call_site_parameter, 0, GNU)
194-
HANDLE_DW_TAG(0x4200, APPLE_property, 0, APPLE)
195-
HANDLE_DW_TAG(0xb000, BORLAND_property, 0, BORLAND)
196-
HANDLE_DW_TAG(0xb001, BORLAND_Delphi_string, 0, BORLAND)
197-
HANDLE_DW_TAG(0xb002, BORLAND_Delphi_dynamic_array, 0, BORLAND)
198-
HANDLE_DW_TAG(0xb003, BORLAND_Delphi_set, 0, BORLAND)
199-
HANDLE_DW_TAG(0xb004, BORLAND_Delphi_variant, 0, BORLAND)
195+
HANDLE_DW_TAG(0x4081, MIPS_loop, 0, MIPS, DW_KIND_NONE)
196+
HANDLE_DW_TAG(0x4101, format_label, 0, GNU, DW_KIND_NONE)
197+
HANDLE_DW_TAG(0x4102, function_template, 0, GNU, DW_KIND_NONE)
198+
HANDLE_DW_TAG(0x4103, class_template, 0, GNU, DW_KIND_NONE)
199+
HANDLE_DW_TAG(0x4106, GNU_template_template_param, 0, GNU, DW_KIND_NONE)
200+
HANDLE_DW_TAG(0x4107, GNU_template_parameter_pack, 0, GNU, DW_KIND_NONE)
201+
HANDLE_DW_TAG(0x4108, GNU_formal_parameter_pack, 0, GNU, DW_KIND_NONE)
202+
HANDLE_DW_TAG(0x4109, GNU_call_site, 0, GNU, DW_KIND_NONE)
203+
HANDLE_DW_TAG(0x410a, GNU_call_site_parameter, 0, GNU, DW_KIND_NONE)
204+
HANDLE_DW_TAG(0x4200, APPLE_property, 0, APPLE, DW_KIND_NONE)
205+
HANDLE_DW_TAG(0xb000, BORLAND_property, 0, BORLAND, DW_KIND_NONE)
206+
HANDLE_DW_TAG(0xb001, BORLAND_Delphi_string, 0, BORLAND, DW_KIND_TYPE)
207+
HANDLE_DW_TAG(0xb002, BORLAND_Delphi_dynamic_array, 0, BORLAND, DW_KIND_TYPE)
208+
HANDLE_DW_TAG(0xb003, BORLAND_Delphi_set, 0, BORLAND, DW_KIND_TYPE)
209+
HANDLE_DW_TAG(0xb004, BORLAND_Delphi_variant, 0, BORLAND, DW_KIND_TYPE)
200210

201211
// Attributes.
202212
HANDLE_DW_AT(0x01, sibling, 2, DWARF)

llvm/include/llvm/BinaryFormat/Dwarf.h

Lines changed: 5 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ const uint64_t DW64_CIE_ID = UINT64_MAX;
8080
const uint32_t DW_INVALID_OFFSET = UINT32_MAX;
8181

8282
enum Tag : uint16_t {
83-
#define HANDLE_DW_TAG(ID, NAME, VERSION, VENDOR) DW_TAG_##NAME = ID,
83+
#define HANDLE_DW_TAG(ID, NAME, VERSION, VENDOR, KIND) DW_TAG_##NAME = ID,
8484
#include "llvm/BinaryFormat/Dwarf.def"
8585
DW_TAG_lo_user = 0x4080,
8686
DW_TAG_hi_user = 0xffff,
@@ -89,29 +89,12 @@ enum Tag : uint16_t {
8989

9090
inline bool isType(Tag T) {
9191
switch (T) {
92-
case DW_TAG_array_type:
93-
case DW_TAG_class_type:
94-
case DW_TAG_interface_type:
95-
case DW_TAG_enumeration_type:
96-
case DW_TAG_pointer_type:
97-
case DW_TAG_reference_type:
98-
case DW_TAG_rvalue_reference_type:
99-
case DW_TAG_string_type:
100-
case DW_TAG_structure_type:
101-
case DW_TAG_subroutine_type:
102-
case DW_TAG_union_type:
103-
case DW_TAG_ptr_to_member_type:
104-
case DW_TAG_set_type:
105-
case DW_TAG_subrange_type:
106-
case DW_TAG_base_type:
107-
case DW_TAG_const_type:
108-
case DW_TAG_file_type:
109-
case DW_TAG_packed_type:
110-
case DW_TAG_volatile_type:
111-
case DW_TAG_typedef:
112-
return true;
11392
default:
11493
return false;
94+
#define HANDLE_DW_TAG(ID, NAME, VERSION, VENDOR, KIND) \
95+
case DW_TAG_##NAME: \
96+
return (KIND == DW_KIND_TYPE);
97+
#include "llvm/BinaryFormat/Dwarf.def"
11598
}
11699
}
117100

llvm/include/llvm/ObjectYAML/DWARFYAML.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -234,7 +234,7 @@ template <> struct MappingTraits<DWARFYAML::InitialLength> {
234234
static void mapping(IO &IO, DWARFYAML::InitialLength &DWARF);
235235
};
236236

237-
#define HANDLE_DW_TAG(unused, name, unused2, unused3) \
237+
#define HANDLE_DW_TAG(unused, name, unused2, unused3, unused4) \
238238
io.enumCase(value, "DW_TAG_" #name, dwarf::DW_TAG_##name);
239239

240240
template <> struct ScalarEnumerationTraits<dwarf::Tag> {

llvm/lib/BinaryFormat/Dwarf.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ StringRef llvm::dwarf::TagString(unsigned Tag) {
2222
switch (Tag) {
2323
default:
2424
return StringRef();
25-
#define HANDLE_DW_TAG(ID, NAME, VERSION, VENDOR) \
25+
#define HANDLE_DW_TAG(ID, NAME, VERSION, VENDOR, KIND) \
2626
case DW_TAG_##NAME: \
2727
return "DW_TAG_" #NAME;
2828
#include "llvm/BinaryFormat/Dwarf.def"
@@ -31,7 +31,7 @@ StringRef llvm::dwarf::TagString(unsigned Tag) {
3131

3232
unsigned llvm::dwarf::getTag(StringRef TagString) {
3333
return StringSwitch<unsigned>(TagString)
34-
#define HANDLE_DW_TAG(ID, NAME, VERSION, VENDOR) \
34+
#define HANDLE_DW_TAG(ID, NAME, VERSION, VENDOR, KIND) \
3535
.Case("DW_TAG_" #NAME, DW_TAG_##NAME)
3636
#include "llvm/BinaryFormat/Dwarf.def"
3737
.Default(DW_TAG_invalid);
@@ -41,7 +41,7 @@ unsigned llvm::dwarf::TagVersion(dwarf::Tag Tag) {
4141
switch (Tag) {
4242
default:
4343
return 0;
44-
#define HANDLE_DW_TAG(ID, NAME, VERSION, VENDOR) \
44+
#define HANDLE_DW_TAG(ID, NAME, VERSION, VENDOR, KIND) \
4545
case DW_TAG_##NAME: \
4646
return VERSION;
4747
#include "llvm/BinaryFormat/Dwarf.def"
@@ -52,7 +52,7 @@ unsigned llvm::dwarf::TagVendor(dwarf::Tag Tag) {
5252
switch (Tag) {
5353
default:
5454
return 0;
55-
#define HANDLE_DW_TAG(ID, NAME, VERSION, VENDOR) \
55+
#define HANDLE_DW_TAG(ID, NAME, VERSION, VENDOR, KIND) \
5656
case DW_TAG_##NAME: \
5757
return DWARF_VENDOR_##VENDOR;
5858
#include "llvm/BinaryFormat/Dwarf.def"

llvm/test/DebugInfo/X86/template.ll

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
; REQUIRES: object-emission
22

33
; RUN: llc -mtriple=x86_64-linux -O0 -filetype=obj < %s | llvm-dwarfdump -v -debug-info - | FileCheck %s
4+
; RUN: llc -mtriple=x86_64-linux -O0 -filetype=obj < %s | not llvm-dwarfdump -verify - | FileCheck %s --check-prefix VERIFY
45

56
; IR generated with `clang++ -g -emit-llvm -S` from the following code:
67
; template<int x, int*, template<typename> class y, decltype(nullptr) n, int ...z> int func() {
@@ -11,6 +12,9 @@
1112
; int glbl = func<3, &glbl, y_impl, nullptr, 1, 2>();
1213
; y_impl<int>::nested n;
1314

15+
; VERIFY-NOT: error: DIE has DW_AT_type with incompatible tag DW_TAG_unspecified_type
16+
; VERIFY: error: DIEs have overlapping address ranges
17+
1418
; CHECK: [[INT:0x[0-9a-f]*]]:{{ *}}DW_TAG_base_type
1519
; CHECK-NEXT: DW_AT_name{{.*}} = "int"
1620

0 commit comments

Comments
 (0)