[Bug libstdc++/57691] freestanding libstdc++ has compile error
redi at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Mon Jun 24 11:57:00 GMT 2013
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57691
--- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> ---
I think this is due to a horrible hack in the front end which adds implicit
extern "C" blocks around system headers, and a side-effect is that function
prototypes of the form 'T f()' are treated as 'T f(...)' as in C, not 'T
f(void)' as C++ requires.
See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50982#c40 for another case
where this bit us.
This is a terrible terrible hack IMHO, and should be disabled in libstdc++
headers, because when we write void(*)() we damn well mean it, we don't mean
something different. Having to use void(*)(void) is an abomination.
More information about the Gcc-bugs
mailing list