http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50982
--- Comment #26 from Jonathan Wakely <redi at gcc dot gnu.org> 2011-11-05 12:52:51 UTC --- (In reply to comment #7) > /tmp/20111103/powerpc-ibm-aix5.3.0.0/pthread/libstdc++-v3/include/mutex: In > func > tion 'void std::call_once(std::once_flag&, _Callable&&, _Args&& ...)': > /tmp/20111103/powerpc-ibm-aix5.3.0.0/pthread/libstdc++-v3/include/mutex:818:64: > > error: invalid conversion from 'void (*)(...)' to 'void (*)()' [-fpermissive] > make[9]: *** [atomic.lo] Error 1 I'm not sure what is happening here, the relevant lines are: extern "C" void __once_proxy(); int __e = __gthread_once(&(__once._M_once), &__once_proxy); The function pointer is of type void(*)() so I don't know why the error mentions a varargs function.