http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50982

--- Comment #36 from Jonathan Wakely <redi at gcc dot gnu.org> 2011-11-05 
16:09:42 UTC ---
(In reply to comment #31)
> Adding the braces removes the first error, but 
> 
> In file included from /farm/dje/src/src/libstdc++-v3/src/atomic.cc:28:0:
> /tmp/20111104/powerpc-ibm-aix5.3.0.0/pthread/libstdc++-v3/include/mutex: In
> function 'void std::call_once(std::once_flag&, _Callable&&, _Args&& ...)':
> /tmp/20111104/powerpc-ibm-aix5.3.0.0/pthread/libstdc++-v3/include/mutex:818:64:
> error: invalid conversion from 'void (*)(...)' to 'void (*)()' [-fpermissive]
> 
> remains.

I can't reproduce that error.

Does this patch make any difference?

Index: include/std/mutex
===================================================================
--- include/std/mutex   (revision 181013)
+++ 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>


It really *shouldn't* make a difference, but it's all I can think of.

Reply via email to