@@ -214,7 +214,7 @@ LLDBMemoryReader::resolvePointerAsSymbol(swift::remote::RemoteAddress address) {
214214 // aware of local symbols, so avoid returning those.
215215 using namespace swift ::Demangle;
216216 if (isSwiftSymbol (mangledName) && !isOldFunctionTypeMangling (mangledName))
217- return {{ mangledName, 0 } };
217+ return swift::remote::RemoteAbsolutePointer{ mangledName, 0 , address };
218218 }
219219
220220 return {};
@@ -228,15 +228,16 @@ LLDBMemoryReader::resolvePointer(swift::remote::RemoteAddress address,
228228 // We may have gotten a pointer to a process address, try to map it back
229229 // to a tagged address so further memory reads originating from it benefit
230230 // from the file-cache optimization.
231- swift::remote::RemoteAbsolutePointer process_pointer (" " , readValue);
231+ swift::remote::RemoteAbsolutePointer process_pointer{
232+ swift::remote::RemoteAddress{readValue}};
232233
233234 if (!readMetadataFromFileCacheEnabled ())
234235 return process_pointer;
235236
236237 // Try to strip the pointer before checking if we have it mapped.
237238 auto strippedPointer = signedPointerStripper (process_pointer);
238- if (strippedPointer.isResolved ())
239- readValue = strippedPointer. getOffset ();
239+ if (auto resolved = strippedPointer.getResolvedAddress ())
240+ readValue = resolved. getAddressData ();
240241
241242 auto &target = m_process.GetTarget ();
242243 Address addr;
@@ -293,9 +294,12 @@ LLDBMemoryReader::resolvePointer(swift::remote::RemoteAddress address,
293294 return process_pointer;
294295 }
295296
296- swift::remote::RemoteAbsolutePointer tagged_pointer (" " , tagged_address);
297- if (tagged_address !=
298- (uint64_t )signedPointerStripper (tagged_pointer).getOffset ()) {
297+ swift::remote::RemoteAbsolutePointer tagged_pointer{
298+ swift::remote::RemoteAddress{tagged_address}};
299+
300+ if (tagged_address != (uint64_t )signedPointerStripper (tagged_pointer)
301+ .getResolvedAddress ()
302+ .getAddressData ()) {
299303 lldbassert (false &&
300304 " Tagged pointer runs into pointer authentication mask!" );
301305 return process_pointer;
@@ -534,9 +538,11 @@ LLDBMemoryReader::addModuleToAddressMap(ModuleSP module,
534538 auto module_end_address = module_start_address + size;
535539
536540 if (module_end_address !=
537- (uint64_t )signedPointerStripper (
538- swift::remote::RemoteAbsolutePointer (" " , module_end_address))
539- .getOffset ()) {
541+ signedPointerStripper (
542+ swift::remote::RemoteAbsolutePointer{
543+ swift::remote::RemoteAddress{module_end_address}})
544+ .getResolvedAddress ()
545+ .getAddressData ()) {
540546 LLDB_LOG (GetLog (LLDBLog::Types),
541547 " [MemoryReader] module to address map ran into pointer "
542548 " authentication mask!" );
0 commit comments