[v3] __once_proxy(void) workaround for implicit extern "C" systems
Jonathan Wakely
jwakely.gcc@gmail.com
Mon Nov 7 07:55:00 GMT 2011
This is necessary for systems that treat all system headers as
implicitly extern "C" (at least AIX and OpenBSD) because otherwise the
empty parameter list is treated as declaring void __once_proxy(...)
This has come up recently because we are now enabling <mutex> etc. on
additional platforms.
PR libstdc++/50982
* include/std/mutex (__once_proxy): Use void parameter list to
work on implicit extern "C" systems.
Tested x86_64-linux and with reports of this solving bootstrap
failures on AIX and OpenBSD, committed to trunk.
Index: include/std/mutex
===================================================================
--- include/std/mutex (revision 181054)
+++ include/std/mutex (working copy)
@@ -796,7 +796,7 @@
__get_once_mutex();
#endif
- extern "C" void __once_proxy();
+ extern "C" void __once_proxy(void);
/// call_once
template<typename _Callable, typename... _Args>
More information about the Libstdc++
mailing list