@@ -150,9 +150,9 @@ void Mangled::SetValue(ConstString name) {
150
150
151
151
// BEGIN SWIFT
152
152
#ifdef LLDB_ENABLE_SWIFT
153
- static ConstString GetSwiftDemangledStr (ConstString m_mangled,
154
- const SymbolContext *sc,
155
- ConstString &m_demangled) {
153
+ std::pair< ConstString, DemangledNameInfo>
154
+ GetSwiftDemangledStr (ConstString m_mangled, const SymbolContext *sc,
155
+ ConstString &m_demangled) {
156
156
const char *mangled_name = m_mangled.AsCString (" " );
157
157
Log *log = GetLog (LLDBLog::Demangle);
158
158
LLDB_LOGF (log, " demangle swift: %s" , mangled_name);
@@ -168,7 +168,7 @@ static ConstString GetSwiftDemangledStr(ConstString m_mangled,
168
168
if (!sc || !sc->function ) {
169
169
LLDB_LOGF (log, " demangle swift: %s -> \" %s\" (not cached)" , mangled_name,
170
170
demangled.c_str ());
171
- return ConstString (demangled);
171
+ return std::make_pair ( ConstString (demangled), info );
172
172
}
173
173
if (demangled.empty ()) {
174
174
LLDB_LOGF (log, " demangle swift: %s -> error: failed to demangle" ,
@@ -178,7 +178,7 @@ static ConstString GetSwiftDemangledStr(ConstString m_mangled,
178
178
demangled.c_str ());
179
179
m_demangled.SetStringWithMangledCounterpart (demangled, m_mangled);
180
180
}
181
- return m_demangled;
181
+ return std::make_pair ( m_demangled, info) ;
182
182
}
183
183
#endif // LLDB_ENABLE_SWIFT
184
184
// END SWIFT
@@ -384,7 +384,11 @@ ConstString Mangled::GetDemangledNameImpl(bool force, // BEGIN SWIFT
384
384
// Demangling a swift name requires the swift compiler. This is
385
385
// explicitly unsupported on llvm.org.
386
386
#ifdef LLDB_ENABLE_SWIFT
387
- return GetSwiftDemangledStr (m_mangled, sc, m_demangled);
387
+ {
388
+ auto demangled = GetSwiftDemangledStr (m_mangled, sc, m_demangled);
389
+ m_demangled_info.emplace (std::move (demangled.second ));
390
+ return demangled.first ;
391
+ }
388
392
#endif // LLDB_ENABLE_SWIFT
389
393
break ;
390
394
case eManglingSchemeNone:
0 commit comments