From d5412665e03fbd636cba36dcd19713a9b389b4d9 Mon Sep 17 00:00:00 2001 From: Saleem Abdulrasool Date: Sat, 9 Aug 2025 19:38:26 -0700 Subject: [PATCH] SwiftRemoteMirror: adjust for Windows This cleans up the warnings when building on Windows. It is cleaning up the warnings related to deprecated POSIX APIs. --- .../SwiftRemoteMirror/SwiftRemoteMirror.cpp | 21 +++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/stdlib/public/SwiftRemoteMirror/SwiftRemoteMirror.cpp b/stdlib/public/SwiftRemoteMirror/SwiftRemoteMirror.cpp index f7f65b6f4df..6f76a5c14c8 100644 --- a/stdlib/public/SwiftRemoteMirror/SwiftRemoteMirror.cpp +++ b/stdlib/public/SwiftRemoteMirror/SwiftRemoteMirror.cpp @@ -442,12 +442,19 @@ swift_reflection_copyNameForTypeRef(SwiftReflectionContextRef ContextRef, if (mangled) { auto Mangling = mangleNode(TR->getDemangling(Dem), Mangle::ManglingFlavor::Default); if (Mangling.isSuccess()) { +#if defined(_WIN32) + return _strdup(Mangling.result().c_str()); +#else return strdup(Mangling.result().c_str()); +#endif } - } - else { + } else { auto Name = nodeToString(TR->getDemangling(Dem)); +#if defined(_WIN32) + return _strdup(Name.c_str()); +#else return strdup(Name.c_str()); +#endif } return nullptr; } @@ -462,7 +469,11 @@ swift_reflection_copyDemangledNameForProtocolDescriptor( auto Demangling = Context->readDemanglingForContextDescriptor( RemoteAddress(Proto, RemoteAddress::DefaultAddressSpace), Dem); auto Name = nodeToString(Demangling); +#if defined(_WIN32) + return _strdup(Name.c_str()); +#else return strdup(Name.c_str()); +#endif }); } @@ -845,7 +856,13 @@ size_t swift_reflection_demangle(const char *MangledName, size_t Length, std::string Mangled(MangledName, Length); auto Demangled = Demangle::demangleTypeAsString(Mangled); +#if defined(_WIN32) + errno_t err = strncpy_s(OutDemangledName, MaxLength, + Demangled.c_str(), _TRUNCATE); + static_cast(err); +#else strncpy(OutDemangledName, Demangled.c_str(), MaxLength); +#endif return Demangled.size(); }