Skip to content

Commit 5ef6378

Browse files
committed
[lldb] Avoid mangling empty opaque types
1 parent 5bb4cc6 commit 5ef6378

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

lldb/source/Plugins/TypeSystem/Swift/TypeSystemSwiftTypeRef.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2857,6 +2857,13 @@ TypeSystemSwiftTypeRef::RemangleAsType(swift::Demangle::Demangler &dem,
28572857
if (!node)
28582858
return {};
28592859

2860+
// Guard against an empty opaque type. This can happen when demangling an
2861+
// OpaqueTypeRef (ex `$sBpD`). An empty opaque will assert when mangled.
2862+
if (auto *opaque_type =
2863+
swift_demangle::ChildAtPath(node, {Node::Kind::OpaqueType}))
2864+
if (!opaque_type->hasChildren())
2865+
return {};
2866+
28602867
using namespace swift::Demangle;
28612868
if (node->getKind() != Node::Kind::Global) {
28622869
auto global = dem.createNode(Node::Kind::Global);

0 commit comments

Comments
 (0)