Skip to content

[lldb] Various changes to get building on next #8888

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 6 commits into from
Jun 20, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8,251 changes: 7,238 additions & 1,013 deletions lldb/bindings/python/static-binding/LLDBWrapPython.cpp

Large diffs are not rendered by default.

1,360 changes: 1,155 additions & 205 deletions lldb/bindings/python/static-binding/lldb.py

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion lldb/source/Host/macosx/objcxx/HostInfoMacOSXSwift.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ static XcodeSDK::Type GetSDKType(const llvm::Triple &target,

auto is_simulator = [&]() -> bool {
return target.getEnvironment() == llvm::Triple::Simulator ||
!target.getArchName().startswith("arm");
!target.getArchName().starts_with("arm");
};

switch (target.getOS()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -210,7 +210,7 @@ void SwiftASTManipulator::FindSpecialNames(
if (auto *UDRE = llvm::dyn_cast<swift::UnresolvedDeclRefExpr>(E)) {
swift::Identifier name = UDRE->getName().getBaseIdentifier();

if (m_prefix.empty() || name.str().startswith(m_prefix))
if (m_prefix.empty() || name.str().starts_with(m_prefix))
m_names.push_back(name);
}

Expand Down Expand Up @@ -540,7 +540,7 @@ void SwiftASTManipulator::FindVariableDeclarations(
if (m_repl) {
for (swift::Decl *decl : m_source_file.getTopLevelDecls()) {
if (swift::VarDecl *var_decl = llvm::dyn_cast<swift::VarDecl>(decl)) {
if (!var_decl->getName().str().startswith("$")) {
if (!var_decl->getName().str().starts_with("$")) {
register_one_var(var_decl);
}
}
Expand All @@ -562,7 +562,7 @@ void SwiftASTManipulator::FindVariableDeclarations(
{
swift::Identifier name = var_decl->getName();

if (name.str().startswith("$")) {
if (name.str().starts_with("$")) {
var_decl->setDebuggerVar(true);
register_one_var(var_decl);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -109,15 +109,15 @@ class SwiftASTManipulatorBase {
swift::VarDecl *GetDecl() const { return m_decl; }
swift::VarDecl::Introducer GetVarIntroducer() const;
bool IsCaptureList() const;
bool IsMetadataPointer() const { return m_name.str().startswith("$τ"); }
bool IsMetadataPointer() const { return m_name.str().starts_with("$τ"); }
bool IsOutermostMetadataPointer() const {
return m_name.str().startswith("$τ_0_");
return m_name.str().starts_with("$τ_0_");
}
bool IsSelf() const {
return m_name.str().equals("$__lldb_injected_self");
}
bool IsPackCount() const {
return m_name.str().startswith("$pack_count_");
return m_name.str().starts_with("$pack_count_");
}
bool IsUnboundPack() const { return m_is_unbound_pack; }

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1349,7 +1349,7 @@ SwiftExpressionParser::ParseAndImport(
if (enable_bare_slash_regex_literals) {
lang_opts.enableFeature(swift::Feature::BareSlashRegexLiterals);
}
if (uint32_t version = m_expr.Language().version) {
if (uint32_t version = m_expr.Language().version)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This change looks scary.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

But I think it's correct.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Heh, yeah. I was going to add the } instead but this matches what was... somewhere (stable/20230725 I assume?)

lang_opts.EffectiveLanguageVersion =
llvm::VersionTuple(version / 100, version % 100);
if (lang_opts.EffectiveLanguageVersion >= swift::version::Version({6}))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -597,7 +597,7 @@ Status SwiftExpressionSourceCode::GetText(
if (auto process_sp = exe_ctx.GetProcessSP()) {
os_vers << getAvailabilityName(triple) << " ";
auto platform = target->GetPlatform();
bool is_simulator = platform->GetPluginName().endswith("-simulator");
bool is_simulator = platform->GetPluginName().ends_with("-simulator");
if (is_simulator) {
// The simulators look like the host OS to Process, but Platform
// can the version out of an environment variable.
Expand Down
16 changes: 8 additions & 8 deletions lldb/source/Plugins/Language/Swift/SwiftArray.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -297,8 +297,8 @@ SwiftArrayBufferHandler::CreateBufferHandler(ValueObject &static_valobj) {

// For now we have to keep the old mangled name since the Objc->Swift bindings
// that are in Foundation don't get the new mangling.
if (valobj_typename.startswith("_TtCs23_ContiguousArrayStorage") ||
valobj_typename.startswith("Swift._ContiguousArrayStorage")) {
if (valobj_typename.starts_with("_TtCs23_ContiguousArrayStorage") ||
valobj_typename.starts_with("Swift._ContiguousArrayStorage")) {
CompilerType anyobject_type = clang_ts_sp->GetBasicType(
lldb::eBasicTypeObjCID);
auto handler = std::unique_ptr<SwiftArrayBufferHandler>(
Expand All @@ -310,8 +310,8 @@ SwiftArrayBufferHandler::CreateBufferHandler(ValueObject &static_valobj) {
return nullptr;
}

if (valobj_typename.startswith("_TtCs22__SwiftDeferredNSArray") ||
valobj_typename.startswith("Swift.__SwiftDeferredNSArray")) {
if (valobj_typename.starts_with("_TtCs22__SwiftDeferredNSArray") ||
valobj_typename.starts_with("Swift.__SwiftDeferredNSArray")) {
ProcessSP process_sp(valobj.GetProcessSP());
if (!process_sp)
return nullptr;
Expand Down Expand Up @@ -357,7 +357,7 @@ SwiftArrayBufferHandler::CreateBufferHandler(ValueObject &static_valobj) {

ExecutionContext exe_ctx(valobj.GetExecutionContextRef());
ExecutionContextScope *exe_scope = exe_ctx.GetBestExecutionContextScope();
if (valobj_typename.startswith("Swift.ContiguousArray<")) {
if (valobj_typename.starts_with("Swift.ContiguousArray<")) {
// Swift.NativeArray
static ConstString g__buffer("_buffer");
static ConstString g__storage("_storage");
Expand All @@ -378,9 +378,9 @@ SwiftArrayBufferHandler::CreateBufferHandler(ValueObject &static_valobj) {
if (handler && handler->IsValid())
return handler;
return nullptr;
} else if (valobj_typename.startswith("Swift.ArraySlice<") ||
(valobj_typename.startswith("Swift.Array<") &&
valobj_typename.endswith(">.SubSequence"))) {
} else if (valobj_typename.starts_with("Swift.ArraySlice<") ||
(valobj_typename.starts_with("Swift.Array<") &&
valobj_typename.ends_with(">.SubSequence"))) {
// ArraySlice or Array<T>.SubSequence, which is a typealias to ArraySlice.
static ConstString g_buffer("_buffer");

Expand Down
30 changes: 15 additions & 15 deletions lldb/source/Plugins/Language/Swift/SwiftFormatters.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -205,11 +205,11 @@ static bool makeStringGutsSummary(
llvm::StringRef variantCase = variant_sp->GetValueAsCString();

ValueObjectSP payload_sp;
if (variantCase.startswith("immortal")) {
if (variantCase.starts_with("immortal")) {
payload_sp = variant_sp->GetChildAtNamePath({g_immortal, g__value});
} else if (variantCase.startswith("native")) {
} else if (variantCase.starts_with("native")) {
payload_sp = variant_sp->GetChildAtNamePath({g_immortal, g__value});
} else if (variantCase.startswith("bridged")) {
} else if (variantCase.starts_with("bridged")) {
static ConstString g_bridged("bridged");
auto anyobject_sp = variant_sp->GetChildMemberWithName(g_bridged, true);
if (!anyobject_sp)
Expand Down Expand Up @@ -1211,27 +1211,27 @@ bool lldb_private::formatters::swift::LegacySIMD_SummaryProvider(
ConstString full_type_name = valobj.GetTypeName();

llvm::StringRef type_name = full_type_name.GetStringRef();
if (type_name.startswith("simd."))
if (type_name.starts_with("simd."))
type_name = type_name.drop_front(5);
if (type_name.startswith("simd_"))
if (type_name.starts_with("simd_"))
type_name = type_name.drop_front(5);

// Get the type of object this is.
bool is_quaternion = type_name.startswith("quat");
bool is_quaternion = type_name.starts_with("quat");
bool is_matrix = type_name[type_name.size() - 2] == 'x';
bool is_vector = !is_matrix && !is_quaternion;

// Get the kind of SIMD element inside of this object.
std::optional<SIMDElementKind> kind = std::nullopt;
if (type_name.startswith("int"))
if (type_name.starts_with("int"))
kind = SIMDElementKind::Int32;
else if (type_name.startswith("uint"))
else if (type_name.starts_with("uint"))
kind = SIMDElementKind::UInt32;
else if ((is_quaternion && type_name.endswith("f")) ||
type_name.startswith("float"))
else if ((is_quaternion && type_name.ends_with("f")) ||
type_name.starts_with("float"))
kind = SIMDElementKind::Float32;
else if ((is_quaternion && type_name.endswith("d")) ||
type_name.startswith("double"))
else if ((is_quaternion && type_name.ends_with("d")) ||
type_name.starts_with("double"))
kind = SIMDElementKind::Float64;
if (!kind)
return false;
Expand Down Expand Up @@ -1290,13 +1290,13 @@ bool lldb_private::formatters::swift::GLKit_SummaryProvider(
// Get the type name without the "GLKit." prefix.
ConstString full_type_name = valobj.GetTypeName();
llvm::StringRef type_name = full_type_name.GetStringRef();
if (type_name.startswith("GLKit."))
if (type_name.starts_with("GLKit."))
type_name = type_name.drop_front(6);

// Get the type of object this is.
bool is_quaternion = type_name == "GLKQuaternion";
bool is_matrix = type_name.startswith("GLKMatrix");
bool is_vector = type_name.startswith("GLKVector");
bool is_matrix = type_name.starts_with("GLKMatrix");
bool is_vector = type_name.starts_with("GLKVector");

if (!(is_quaternion || is_matrix || is_vector))
return false;
Expand Down
6 changes: 3 additions & 3 deletions lldb/source/Plugins/Language/Swift/SwiftHashedContainer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -254,7 +254,7 @@ bool
HashedCollectionConfig::IsNativeStorageName(ConstString name) const {
assert(m_nativeStorage_demangledPrefix);
auto n = name.GetStringRef();
return n.startswith(m_nativeStorage_demangledPrefix.GetStringRef());
return n.starts_with(m_nativeStorage_demangledPrefix.GetStringRef());
}

bool
Expand All @@ -267,7 +267,7 @@ bool
HashedCollectionConfig::IsDeferredBridgedStorageName(ConstString name) const {
assert(m_deferredBridgedStorage_demangledPrefix);
auto n = name.GetStringRef();
return n.startswith(m_deferredBridgedStorage_demangledPrefix.GetStringRef());
return n.starts_with(m_deferredBridgedStorage_demangledPrefix.GetStringRef());
}

HashedStorageHandlerUP
Expand Down Expand Up @@ -365,7 +365,7 @@ HashedCollectionConfig::CreateNativeHandler(
return CreateEmptyHandler();
}

if (typeName.startswith(m_nativeStorage_demangledPrefix.GetStringRef())) {
if (typeName.starts_with(m_nativeStorage_demangledPrefix.GetStringRef())) {
auto type_system = type.GetTypeSystem().dyn_cast_or_null<TypeSystemSwift>();
if (!type_system)
return nullptr;
Expand Down
4 changes: 2 additions & 2 deletions lldb/source/Plugins/Language/Swift/SwiftLanguage.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -720,7 +720,7 @@ SwiftLanguage::GetHardcodedSummaries() {
}
llvm::StringRef tau_ = u8"$\u03C4_";
if (valobj.GetName().GetLength() > 12 &&
valobj.GetName().GetStringRef().startswith(tau_) &&
valobj.GetName().GetStringRef().starts_with(tau_) &&
type.GetTypeName() == g_RawPointerType) {
if (!swift_metatype_summary_sp.get()) {
TypeSummaryImpl::Flags flags;
Expand Down Expand Up @@ -1204,7 +1204,7 @@ SwiftLanguage::GetHardcodedSynthetics() {
}

bool SwiftLanguage::IsSourceFile(llvm::StringRef file_path) const {
return file_path.endswith(".swift");
return file_path.ends_with(".swift");
}

std::vector<FormattersMatchCandidate>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -664,9 +664,9 @@ GetLikelySwiftImageNamesForModule(ModuleSP module) {
module->GetFileSpec().GetFileNameStrippingExtension().GetStringRef();
if (name == "libswiftCore")
name = "Swift";
if (name.startswith("libswift"))
if (name.starts_with("libswift"))
name = name.drop_front(8);
if (name.startswith("lib"))
if (name.starts_with("lib"))
name = name.drop_front(3);
return {name};
}
Expand Down Expand Up @@ -1142,7 +1142,7 @@ static bool IsSwiftResultVariable(ConstString name) {
if (name) {
llvm::StringRef name_sr(name.GetStringRef());
if (name_sr.size() > 2 &&
(name_sr.startswith("$R") || name_sr.startswith("$E")) &&
(name_sr.starts_with("$R") || name_sr.starts_with("$E")) &&
::isdigit(name_sr[2]))
return true;
}
Expand Down Expand Up @@ -2191,7 +2191,7 @@ class CommandObjectSwift_Demangle : public CommandObjectParsed {
NodePointer node_ptr = nullptr;
// Match the behavior of swift-demangle and accept Swift symbols without
// the leading `$`. This makes symbol copy & paste more convenient.
if (name.startswith("S") || name.startswith("s")) {
if (name.starts_with("S") || name.starts_with("s")) {
std::string correctedName = std::string("$") + name.str();
node_ptr =
SwiftLanguageRuntime::DemangleSymbolAsNode(correctedName, ctx);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -994,7 +994,7 @@ SwiftLanguageRuntimeImpl::GetIndexOfChildMemberWithName(
// An existential is a three-word buffer followed by value metadata...
// The buffer is exposed as children named `payload_data_{0,1,2}`, and
// the number of fields are increased to match.
if (name.startswith("payload_data_")) {
if (name.starts_with("payload_data_")) {
uint32_t index;
if (name.take_back().getAsInteger(10, index) && index < 3) {
child_indexes.push_back(index);
Expand Down Expand Up @@ -1776,8 +1776,8 @@ static bool IsPrivateNSClass(NodePointer node) {
return false;
for (NodePointer child : *classNode)
if (child->getKind() == Node::Kind::Identifier && child->hasText())
return child->getText().startswith("__NS") ||
child->getText().startswith("NSTaggedPointer");
return child->getText().starts_with("__NS") ||
child->getText().starts_with("NSTaggedPointer");
return false;
}

Expand Down Expand Up @@ -2609,7 +2609,7 @@ bool SwiftLanguageRuntimeImpl::GetDynamicTypeAndAddress_ClangType(
StringRef dyn_name = dyn_class_type_or_name.GetName().GetStringRef();
// If this is an Objective-C runtime value, skip; this is handled elsewhere.
if (swift::Demangle::isOldFunctionTypeMangling(dyn_name) ||
dyn_name.startswith("__NS"))
dyn_name.starts_with("__NS"))
return false;

SwiftNominalType swift_class;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -635,9 +635,9 @@ bool SwiftLanguageRuntime::IsSwiftMangledName(llvm::StringRef name) {
// ObjC classes and protocols. Classes are prefixed with either "_TtC" or
// "_TtGC" (generic classes). Protocols are prefixed with "_TtP". Other "_T"
// prefixed symbols are not considered to be Swift symbols.
if (name.startswith("_T"))
return name.startswith("_TtC") || name.startswith("_TtGC") ||
name.startswith("_TtP");
if (name.starts_with("_T"))
return name.starts_with("_TtC") || name.starts_with("_TtGC") ||
name.starts_with("_TtP");
return swift::Demangle::isSwiftSymbol(name);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,7 @@ lldb::TypeSP DWARFASTParserSwift::ParseTypeFromDWARF(const SymbolContext &sc,
if (!compiler_type && die.Tag() == DW_TAG_typedef) {
// Handle Archetypes, which are typedefs to RawPointerType.
llvm::StringRef typedef_name = GetTypedefName(die);
if (typedef_name.startswith("$sBp")) {
if (typedef_name.starts_with("$sBp")) {
preferred_name = name;
compiler_type = m_swift_typesystem.GetTypeFromMangledTypename(
ConstString(typedef_name));
Expand Down
16 changes: 8 additions & 8 deletions lldb/source/Plugins/TypeSystem/Swift/SwiftASTContext.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1519,7 +1519,7 @@ bool ConsumeIncludeOption(StringRef &arg, StringRef &prefix) {

// We need special handling for -fmodule-file as we need to
// split on the final = after the module name.
if (arg.startswith("-fmodule-file=")) {
if (arg.starts_with("-fmodule-file=")) {
prefix = arg.substr(0, arg.rfind("=") + 1);
arg.consume_front(prefix);
return true;
Expand All @@ -1543,14 +1543,14 @@ bool IsMultiArgClangFlag(StringRef arg) {

bool IsMacroDefinition(StringRef arg) {
for (auto &flag : macro_flags)
if (arg.startswith(flag))
if (arg.starts_with(flag))
return true;
return false;
}

bool ShouldUnique(StringRef arg) {
for (auto &flag : args_to_unique)
if (arg.startswith(flag))
if (arg.starts_with(flag))
return true;
return false;
}
Expand Down Expand Up @@ -1765,7 +1765,7 @@ void SwiftASTContext::ApplyWorkingDir(
// Ignore the option part of a double-arg include option.
if (arg.empty())
return;
} else if (arg.startswith("-")) {
} else if (arg.starts_with("-")) {
// Assume this is a compiler arg and not a path starting with "-".
return;
}
Expand Down Expand Up @@ -1853,7 +1853,7 @@ void SwiftASTContext::FilterClangImporterOptions(
// is not found. Since the Xcode build system tends to create a
// lot of VFS overlays by default, stat them and emit a warning if
// the yaml file couldn't be found.
if (arg_sr.startswith("-ivfs")) {
if (arg_sr.starts_with("-ivfs")) {
// Stash the argument.
ivfs_arg = arg;
continue;
Expand Down Expand Up @@ -2053,10 +2053,10 @@ ProcessModule(Module &module, std::string m_description,

// Never add framework paths pointing into the system. These
// modules must be imported from the SDK instead.
if (!p.startswith("/System/Library") && !IsDeviceSupport(p) &&
!p.startswith(
if (!p.starts_with("/System/Library") && !IsDeviceSupport(p) &&
!p.starts_with(
"/Library/Apple/System/Library/PrivateFrameworks") &&
!p.startswith("/System/iOSSupport/System/Library/Frameworks")) {
!p.starts_with("/System/iOSSupport/System/Library/Frameworks")) {
LOG_PRINTF(GetLog(LLDBLog::Types),
"adding framework path \"%s\"/.. .",
framework_path.c_str());
Expand Down
14 changes: 14 additions & 0 deletions lldb/source/Plugins/TypeSystem/Swift/TypeSystemSwift.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,20 @@ lldb::Format TypeSystemSwift::GetFormat(opaque_compiler_type_t type) {
return eFormatBytes;
}

unsigned TypeSystemSwift::GetPtrAuthKey(lldb::opaque_compiler_type_t type) {
return 0;
}

unsigned
TypeSystemSwift::GetPtrAuthDiscriminator(lldb::opaque_compiler_type_t type) {
return 0;
}

bool TypeSystemSwift::GetPtrAuthAddressDiversity(
lldb::opaque_compiler_type_t type) {
return false;
}

namespace llvm {
llvm::raw_ostream &
operator<<(llvm::raw_ostream &os,
Expand Down
Loading