Skip to content

Commit 461119b

Browse files
charles-zablitaugusto2112
authored andcommitted
use correct DemangleMode value
1 parent 080d4cf commit 461119b

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
@@ -1917,24 +1917,28 @@ GetAndValidateInfo(const SymbolContext &sc) {
19171917
if (!mangled)
19181918
return llvm::createStringError("Function does not have a mangled name.");
19191919

1920-
auto demangled_name = mangled.GetDemangledName().GetStringRef();
1920+
const char *mangled_name = mangled.GetMangledName().AsCString("");
1921+
auto [demangled_name, info] =
1922+
SwiftLanguageRuntime::TrackedDemangleSymbolAsString(
1923+
mangled_name, SwiftLanguageRuntime::eSimplified, &sc);
1924+
info.PrefixRange.second =
1925+
std::min(info.BasenameRange.first, info.ArgumentsRange.first);
1926+
info.SuffixRange.first =
1927+
std::max(info.BasenameRange.second, info.ArgumentsRange.second);
1928+
info.SuffixRange.second = demangled_name.length();
1929+
19211930
if (demangled_name.empty())
19221931
return llvm::createStringError(
19231932
"Function '%s' does not have a demangled name.",
19241933
mangled.GetMangledName().AsCString(""));
19251934

1926-
const std::optional<DemangledNameInfo> &info = mangled.GetDemangledInfo();
1927-
if (!info)
1928-
return llvm::createStringError(
1929-
"Function '%s' does not have demangled info.", demangled_name.data());
1930-
19311935
// Function without a basename is nonsense.
1932-
if (!info->hasBasename())
1936+
if (!info.hasBasename())
19331937
return llvm::createStringError(
19341938
"DemangledInfo for '%s does not have basename range.",
19351939
demangled_name.data());
19361940

1937-
return std::make_pair(demangled_name, *info);
1941+
return std::make_pair(demangled_name, info);
19381942
}
19391943

19401944
static llvm::Expected<llvm::StringRef>

0 commit comments

Comments
 (0)