38
38
39
39
using namespace lldb ;
40
40
using namespace lldb_private ;
41
- using namespace lldb_private ::dwarf;
42
41
using namespace lldb_private ::plugin::dwarf;
43
42
44
43
DWARFASTParserSwift::DWARFASTParserSwift (
@@ -49,9 +48,10 @@ DWARFASTParserSwift::DWARFASTParserSwift(
49
48
DWARFASTParserSwift::~DWARFASTParserSwift () {}
50
49
51
50
static llvm::StringRef GetTypedefName (const DWARFDIE &die) {
52
- if (die.Tag () != DW_TAG_typedef)
51
+ if (die.Tag () != llvm::dwarf:: DW_TAG_typedef)
53
52
return {};
54
- DWARFDIE type_die = die.GetAttributeValueAsReferenceDIE (DW_AT_type);
53
+ DWARFDIE type_die =
54
+ die.GetAttributeValueAsReferenceDIE (llvm::dwarf::DW_AT_type);
55
55
if (!type_die.IsValid ())
56
56
return {};
57
57
if (!type_die.GetName ())
@@ -85,30 +85,31 @@ lldb::TypeSP DWARFASTParserSwift::ParseTypeFromDWARF(const SymbolContext &sc,
85
85
DWARFFormValue form_value;
86
86
if (attributes.ExtractFormValueAtIndex (i, form_value)) {
87
87
switch (attr) {
88
- case DW_AT_decl_file:
88
+ case llvm::dwarf:: DW_AT_decl_file:
89
89
decl.SetFile (sc.comp_unit ->GetSupportFiles ().GetFileSpecAtIndex (
90
90
form_value.Unsigned ()));
91
91
break ;
92
- case DW_AT_decl_line:
92
+ case llvm::dwarf:: DW_AT_decl_line:
93
93
decl.SetLine (form_value.Unsigned ());
94
94
break ;
95
- case DW_AT_decl_column:
95
+ case llvm::dwarf:: DW_AT_decl_column:
96
96
decl.SetColumn (form_value.Unsigned ());
97
97
break ;
98
- case DW_AT_name:
98
+ case llvm::dwarf:: DW_AT_name:
99
99
name.SetCString (form_value.AsCString ());
100
100
break ;
101
- case DW_AT_specification:
101
+ case llvm::dwarf:: DW_AT_specification:
102
102
has_specification_of = true ;
103
103
break ;
104
- case DW_AT_linkage_name:
105
- case DW_AT_MIPS_linkage_name: {
104
+ case llvm::dwarf:: DW_AT_linkage_name:
105
+ case llvm::dwarf:: DW_AT_MIPS_linkage_name: {
106
106
mangled_name.SetCString (form_value.AsCString ());
107
107
auto HasSpecificationOf = [&](){
108
108
if (has_specification_of)
109
109
return true ;
110
110
for (uint32_t j = i+1 ; j < num_attributes; ++j)
111
- if (attributes.AttributeAtIndex (j) == DW_AT_specification)
111
+ if (attributes.AttributeAtIndex (j) ==
112
+ llvm::dwarf::DW_AT_specification)
112
113
return true ;
113
114
return false ;
114
115
};
@@ -118,24 +119,25 @@ lldb::TypeSP DWARFASTParserSwift::ParseTypeFromDWARF(const SymbolContext &sc,
118
119
// type. The child contains the linkage name of the
119
120
// specialized type. We should define appropriate DWARF for
120
121
// this instead of relying on this heuristic.
121
- if (die.Tag () == DW_TAG_structure_type && die. HasChildren () &&
122
- HasSpecificationOf ()) {
122
+ if (die.Tag () == llvm::dwarf:: DW_TAG_structure_type &&
123
+ die. HasChildren () && HasSpecificationOf ()) {
123
124
DWARFDIE member_die = die.GetFirstChild ();
124
- if (member_die.Tag () != DW_TAG_member || member_die.GetName ())
125
+ if (member_die.Tag () != llvm::dwarf::DW_TAG_member ||
126
+ member_die.GetName ())
125
127
break ;
126
128
if (DWARFDIE inner_type_die =
127
- member_die.GetAttributeValueAsReferenceDIE (DW_AT_type))
129
+ member_die.GetAttributeValueAsReferenceDIE (
130
+ llvm::dwarf::DW_AT_type))
128
131
if (const char *s = inner_type_die.GetAttributeValueAsString (
129
- DW_AT_name, nullptr ))
132
+ llvm::dwarf:: DW_AT_name, nullptr ))
130
133
mangled_name.SetCString (s);
131
134
}
132
- }
133
- break ;
134
- case DW_AT_byte_size:
135
+ } break ;
136
+ case llvm::dwarf::DW_AT_byte_size:
135
137
dwarf_byte_size = form_value.Unsigned ();
136
138
break ;
137
- case DW_AT_type:
138
- if (die.Tag () == DW_TAG_const_type)
139
+ case llvm::dwarf:: DW_AT_type:
140
+ if (die.Tag () == llvm::dwarf:: DW_TAG_const_type)
139
141
// This is how let bindings are represented. This doesn't
140
142
// change the underlying Swift type.
141
143
return ParseTypeFromDWARF (sc, form_value.Reference (),
@@ -150,12 +152,14 @@ lldb::TypeSP DWARFASTParserSwift::ParseTypeFromDWARF(const SymbolContext &sc,
150
152
151
153
// Helper to retrieve the DW_AT_type as a lldb::TypeSP.
152
154
auto get_type = [&](DWARFDIE die) -> TypeSP {
153
- if (DWARFDIE type_die = die.GetAttributeValueAsReferenceDIE (DW_AT_type))
155
+ if (DWARFDIE type_die =
156
+ die.GetAttributeValueAsReferenceDIE (llvm::dwarf::DW_AT_type))
154
157
return ParseTypeFromDWARF (sc, type_die, type_is_new_ptr);
155
158
return {};
156
159
};
157
160
158
- if (!name && !mangled_name && die.Tag () == DW_TAG_structure_type) {
161
+ if (!name && !mangled_name &&
162
+ die.Tag () == llvm::dwarf::DW_TAG_structure_type) {
159
163
// This is a sized container for a bound generic.
160
164
return get_type (die.GetFirstChild ());
161
165
}
@@ -171,7 +175,7 @@ lldb::TypeSP DWARFASTParserSwift::ParseTypeFromDWARF(const SymbolContext &sc,
171
175
}
172
176
if (SwiftLanguageRuntime::IsSwiftMangledName (name.GetStringRef ())) {
173
177
mangled_name = name;
174
- if (die.Tag () == DW_TAG_typedef)
178
+ if (die.Tag () == llvm::dwarf:: DW_TAG_typedef)
175
179
if (TypeSP desugared_type = get_type (die)) {
176
180
// For a typedef, store the once desugared type as the name.
177
181
CompilerType type = desugared_type->GetForwardCompilerType ();
@@ -198,7 +202,7 @@ lldb::TypeSP DWARFASTParserSwift::ParseTypeFromDWARF(const SymbolContext &sc,
198
202
m_swift_typesystem.GetTypeFromMangledTypename (mangled_name);
199
203
}
200
204
201
- if (!compiler_type && die.Tag () == DW_TAG_typedef) {
205
+ if (!compiler_type && die.Tag () == llvm::dwarf:: DW_TAG_typedef) {
202
206
// Handle Archetypes, which are typedefs to RawPointerType.
203
207
llvm::StringRef typedef_name = GetTypedefName (die);
204
208
if (typedef_name.starts_with (" $sBp" )) {
@@ -215,9 +219,9 @@ lldb::TypeSP DWARFASTParserSwift::ParseTypeFromDWARF(const SymbolContext &sc,
215
219
}
216
220
217
221
switch (die.Tag ()) {
218
- case DW_TAG_inlined_subroutine:
219
- case DW_TAG_subprogram:
220
- case DW_TAG_subroutine_type:
222
+ case llvm::dwarf:: DW_TAG_inlined_subroutine:
223
+ case llvm::dwarf:: DW_TAG_subprogram:
224
+ case llvm::dwarf:: DW_TAG_subroutine_type:
221
225
if (!compiler_type || !compiler_type.IsFunctionType ()) {
222
226
// Make sure we at least have some function type. The mangling for
223
227
// the "top_level_code" is returning the empty tuple type "()",
@@ -268,7 +272,7 @@ Function *DWARFASTParserSwift::ParseFunctionFromDWARF(
268
272
std::optional<int > call_column = 0 ;
269
273
DWARFExpressionList frame_base;
270
274
271
- if (die.Tag () != DW_TAG_subprogram)
275
+ if (die.Tag () != llvm::dwarf:: DW_TAG_subprogram)
272
276
return NULL ;
273
277
274
278
if (die.GetDIENamesAndRanges (name, mangled, unused_ranges, decl_file,
@@ -293,7 +297,7 @@ Function *DWARFASTParserSwift::ParseFunctionFromDWARF(
293
297
294
298
DWARFDebugInfoEntry *child (die.GetFirstChild ().GetDIE ());
295
299
while (child) {
296
- if (child->Tag () == DW_TAG_thrown_type) {
300
+ if (child->Tag () == llvm::dwarf:: DW_TAG_thrown_type) {
297
301
can_throw = true ;
298
302
break ;
299
303
}
0 commit comments