https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89855
Jonathan Wakely <redi at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2019-03-27 Ever confirmed|0 |1 --- Comment #3 from Jonathan Wakely <redi at gcc dot gnu.org> --- Libc++ avoids the problem by adding the additional overloads to the global namespace in the C++ versions of <math.h> and <stdlib.h>, then having the <cxxx> headers include the <xxx.h> headers. We do it the other way around, so that the original libc function is in the global namespace, and the additional overloads are in namespace std, and that difference is the root cause.