http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49762
--- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> 2011-07-16 12:37:53 UTC --- the standard has been changed to accept the fact that C++ implementations cannot control the C library headers, and so <cmath> is permitted to declare names in both the global namespace and nmespace std see http://www.open-std.org/JTC1/SC22/WG21/docs/lwg-defects.html#456