Skip to content

Commit 5390223

Browse files
use correct DemangleMode value
1 parent 9abe314 commit 5390223

File tree

1 file changed

+12
-8
lines changed

1 file changed

+12
-8
lines changed

lldb/source/Plugins/Language/Swift/SwiftLanguage.cpp

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1912,24 +1912,28 @@ GetAndValidateInfo(const SymbolContext &sc) {
19121912
if (!mangled)
19131913
return llvm::createStringError("Function does not have a mangled name.");
19141914

1915-
auto demangled_name = mangled.GetDemangledName().GetStringRef();
1915+
const char *mangled_name = mangled.GetMangledName().AsCString("");
1916+
auto [demangled_name, info] =
1917+
SwiftLanguageRuntime::TrackedDemangleSymbolAsString(
1918+
mangled_name, SwiftLanguageRuntime::eSimplified, &sc);
1919+
info.PrefixRange.second =
1920+
std::min(info.BasenameRange.first, info.ArgumentsRange.first);
1921+
info.SuffixRange.first =
1922+
std::max(info.BasenameRange.second, info.ArgumentsRange.second);
1923+
info.SuffixRange.second = demangled_name.length();
1924+
19161925
if (demangled_name.empty())
19171926
return llvm::createStringError(
19181927
"Function '%s' does not have a demangled name.",
19191928
mangled.GetMangledName().AsCString(""));
19201929

1921-
const std::optional<DemangledNameInfo> &info = mangled.GetDemangledInfo();
1922-
if (!info)
1923-
return llvm::createStringError(
1924-
"Function '%s' does not have demangled info.", demangled_name.data());
1925-
19261930
// Function without a basename is nonsense.
1927-
if (!info->hasBasename())
1931+
if (!info.hasBasename())
19281932
return llvm::createStringError(
19291933
"DemangledInfo for '%s does not have basename range.",
19301934
demangled_name.data());
19311935

1932-
return std::make_pair(demangled_name, *info);
1936+
return std::make_pair(demangled_name, info);
19331937
}
19341938

19351939
static llvm::Expected<llvm::StringRef>

0 commit comments

Comments
 (0)