Use _snwprintf to address a compile error due to the changed swprintf signature in recent versions of MinGW.
diff --git a/asio/include/asio/detail/impl/win_static_mutex.ipp b/asio/include/asio/detail/impl/win_static_mutex.ipp
index ebfb459..6580d3f 100644
--- a/asio/include/asio/detail/impl/win_static_mutex.ipp
+++ b/asio/include/asio/detail/impl/win_static_mutex.ipp
@@ -42,11 +42,11 @@
   using namespace std; // For sprintf.
   wchar_t mutex_name[128];
 #if BOOST_WORKAROUND(BOOST_MSVC, >= 1400) && !defined(UNDER_CE)
-  swprintf_s(mutex_name, 128,
+  swprintf_s(
 #else // BOOST_WORKAROUND(BOOST_MSVC, >= 1400) && !defined(UNDER_CE)
-  swprintf(mutex_name,
+  _snwprintf(
 #endif // BOOST_WORKAROUND(BOOST_MSVC, >= 1400) && !defined(UNDER_CE)
-      L"asio-58CCDC44-6264-4842-90C2-F3C545CB8AA7-%u-%p",
+      mutex_name, 128, L"asio-58CCDC44-6264-4842-90C2-F3C545CB8AA7-%u-%p",
       static_cast<unsigned int>(::GetCurrentProcessId()), this);
 
   HANDLE mutex = ::CreateMutexW(0, TRUE, mutex_name);