Skip to content

Commit 8b9897e

Browse files
Merge pull request #11144 from swiftlang/jepa-stable2
[stable/21.x][Swift] lldb: Fix build failure after #11142
2 parents 221cd17 + a289bc9 commit 8b9897e

File tree

2 files changed

+40
-37
lines changed

2 files changed

+40
-37
lines changed

lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserSwift.cpp

Lines changed: 34 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@
3838

3939
using namespace lldb;
4040
using namespace lldb_private;
41-
using namespace lldb_private::dwarf;
4241
using namespace lldb_private::plugin::dwarf;
4342

4443
DWARFASTParserSwift::DWARFASTParserSwift(
@@ -49,9 +48,10 @@ DWARFASTParserSwift::DWARFASTParserSwift(
4948
DWARFASTParserSwift::~DWARFASTParserSwift() {}
5049

5150
static llvm::StringRef GetTypedefName(const DWARFDIE &die) {
52-
if (die.Tag() != DW_TAG_typedef)
51+
if (die.Tag() != llvm::dwarf::DW_TAG_typedef)
5352
return {};
54-
DWARFDIE type_die = die.GetAttributeValueAsReferenceDIE(DW_AT_type);
53+
DWARFDIE type_die =
54+
die.GetAttributeValueAsReferenceDIE(llvm::dwarf::DW_AT_type);
5555
if (!type_die.IsValid())
5656
return {};
5757
if (!type_die.GetName())
@@ -85,30 +85,31 @@ lldb::TypeSP DWARFASTParserSwift::ParseTypeFromDWARF(const SymbolContext &sc,
8585
DWARFFormValue form_value;
8686
if (attributes.ExtractFormValueAtIndex(i, form_value)) {
8787
switch (attr) {
88-
case DW_AT_decl_file:
88+
case llvm::dwarf::DW_AT_decl_file:
8989
decl.SetFile(sc.comp_unit->GetSupportFiles().GetFileSpecAtIndex(
9090
form_value.Unsigned()));
9191
break;
92-
case DW_AT_decl_line:
92+
case llvm::dwarf::DW_AT_decl_line:
9393
decl.SetLine(form_value.Unsigned());
9494
break;
95-
case DW_AT_decl_column:
95+
case llvm::dwarf::DW_AT_decl_column:
9696
decl.SetColumn(form_value.Unsigned());
9797
break;
98-
case DW_AT_name:
98+
case llvm::dwarf::DW_AT_name:
9999
name.SetCString(form_value.AsCString());
100100
break;
101-
case DW_AT_specification:
101+
case llvm::dwarf::DW_AT_specification:
102102
has_specification_of = true;
103103
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: {
106106
mangled_name.SetCString(form_value.AsCString());
107107
auto HasSpecificationOf = [&](){
108108
if (has_specification_of)
109109
return true;
110110
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)
112113
return true;
113114
return false;
114115
};
@@ -118,24 +119,25 @@ lldb::TypeSP DWARFASTParserSwift::ParseTypeFromDWARF(const SymbolContext &sc,
118119
// type. The child contains the linkage name of the
119120
// specialized type. We should define appropriate DWARF for
120121
// 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()) {
123124
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())
125127
break;
126128
if (DWARFDIE inner_type_die =
127-
member_die.GetAttributeValueAsReferenceDIE(DW_AT_type))
129+
member_die.GetAttributeValueAsReferenceDIE(
130+
llvm::dwarf::DW_AT_type))
128131
if (const char *s = inner_type_die.GetAttributeValueAsString(
129-
DW_AT_name, nullptr))
132+
llvm::dwarf::DW_AT_name, nullptr))
130133
mangled_name.SetCString(s);
131134
}
132-
}
133-
break;
134-
case DW_AT_byte_size:
135+
} break;
136+
case llvm::dwarf::DW_AT_byte_size:
135137
dwarf_byte_size = form_value.Unsigned();
136138
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)
139141
// This is how let bindings are represented. This doesn't
140142
// change the underlying Swift type.
141143
return ParseTypeFromDWARF(sc, form_value.Reference(),
@@ -150,12 +152,14 @@ lldb::TypeSP DWARFASTParserSwift::ParseTypeFromDWARF(const SymbolContext &sc,
150152

151153
// Helper to retrieve the DW_AT_type as a lldb::TypeSP.
152154
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))
154157
return ParseTypeFromDWARF(sc, type_die, type_is_new_ptr);
155158
return {};
156159
};
157160

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) {
159163
// This is a sized container for a bound generic.
160164
return get_type(die.GetFirstChild());
161165
}
@@ -171,7 +175,7 @@ lldb::TypeSP DWARFASTParserSwift::ParseTypeFromDWARF(const SymbolContext &sc,
171175
}
172176
if (SwiftLanguageRuntime::IsSwiftMangledName(name.GetStringRef())) {
173177
mangled_name = name;
174-
if (die.Tag() == DW_TAG_typedef)
178+
if (die.Tag() == llvm::dwarf::DW_TAG_typedef)
175179
if (TypeSP desugared_type = get_type(die)) {
176180
// For a typedef, store the once desugared type as the name.
177181
CompilerType type = desugared_type->GetForwardCompilerType();
@@ -198,7 +202,7 @@ lldb::TypeSP DWARFASTParserSwift::ParseTypeFromDWARF(const SymbolContext &sc,
198202
m_swift_typesystem.GetTypeFromMangledTypename(mangled_name);
199203
}
200204

201-
if (!compiler_type && die.Tag() == DW_TAG_typedef) {
205+
if (!compiler_type && die.Tag() == llvm::dwarf::DW_TAG_typedef) {
202206
// Handle Archetypes, which are typedefs to RawPointerType.
203207
llvm::StringRef typedef_name = GetTypedefName(die);
204208
if (typedef_name.starts_with("$sBp")) {
@@ -215,9 +219,9 @@ lldb::TypeSP DWARFASTParserSwift::ParseTypeFromDWARF(const SymbolContext &sc,
215219
}
216220

217221
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:
221225
if (!compiler_type || !compiler_type.IsFunctionType()) {
222226
// Make sure we at least have some function type. The mangling for
223227
// the "top_level_code" is returning the empty tuple type "()",
@@ -268,7 +272,7 @@ Function *DWARFASTParserSwift::ParseFunctionFromDWARF(
268272
std::optional<int> call_column = 0;
269273
DWARFExpressionList frame_base;
270274

271-
if (die.Tag() != DW_TAG_subprogram)
275+
if (die.Tag() != llvm::dwarf::DW_TAG_subprogram)
272276
return NULL;
273277

274278
if (die.GetDIENamesAndRanges(name, mangled, unused_ranges, decl_file,
@@ -293,7 +297,7 @@ Function *DWARFASTParserSwift::ParseFunctionFromDWARF(
293297

294298
DWARFDebugInfoEntry *child(die.GetFirstChild().GetDIE());
295299
while (child) {
296-
if (child->Tag() == DW_TAG_thrown_type) {
300+
if (child->Tag() == llvm::dwarf::DW_TAG_thrown_type) {
297301
can_throw = true;
298302
break;
299303
}

lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserSwiftDescriptorFinder.cpp

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030

3131
using namespace lldb;
3232
using namespace lldb_private;
33-
using namespace lldb_private::dwarf;
3433
using namespace lldb_private::plugin::dwarf;
3534

3635
/// Given a die to a substituted generic Swift type, return the analogous
@@ -214,7 +213,7 @@ class DWARFFieldDescriptorImpl : public swift::reflection::FieldDescriptorBase {
214213
std::vector<std::unique_ptr<swift::reflection::FieldRecordBase>> fields;
215214
for (DWARFDIE child_die : die.children()) {
216215
auto tag = child_die.Tag();
217-
if (tag != DW_TAG_member)
216+
if (tag != llvm::dwarf::DW_TAG_member)
218217
continue;
219218
const auto *member_field_name =
220219
child_die.GetAttributeValueAsString(llvm::dwarf::DW_AT_name, "");
@@ -310,20 +309,20 @@ DWARFASTParserSwift::getBuiltinTypeDescriptor(
310309
return nullptr;
311310
}
312311

313-
auto byte_size =
314-
die.GetAttributeValueAsUnsigned(DW_AT_byte_size, LLDB_INVALID_ADDRESS);
312+
auto byte_size = die.GetAttributeValueAsUnsigned(llvm::dwarf::DW_AT_byte_size,
313+
LLDB_INVALID_ADDRESS);
315314
if (byte_size == LLDB_INVALID_ADDRESS)
316315
return {};
317316

318-
auto alignment = die.GetAttributeValueAsUnsigned(DW_AT_alignment,
317+
auto alignment = die.GetAttributeValueAsUnsigned(llvm::dwarf::DW_AT_alignment,
319318
byte_size ? byte_size : 8);
320319

321320
// TODO: this seems simple to calculate but maybe we should encode the stride
322321
// in DWARF? That's what reflection metadata does.
323322
unsigned stride = ((byte_size + alignment - 1) & ~(alignment - 1));
324323

325-
auto num_extra_inhabitants =
326-
die.GetAttributeValueAsUnsigned(DW_AT_LLVM_num_extra_inhabitants, 0);
324+
auto num_extra_inhabitants = die.GetAttributeValueAsUnsigned(
325+
llvm::dwarf::DW_AT_LLVM_num_extra_inhabitants, 0);
327326

328327
auto is_bitwise_takable = true; // TODO: encode it in DWARF
329328

0 commit comments

Comments
 (0)