http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49813
--- Comment #7 from Paolo Carlini <paolo.carlini at oracle dot com> 2011-07-22 11:02:01 UTC --- I just tried. This: #include <math.h> int main() { double ds = sinh(1.0); double das = asinh(1.0); } this compiles fine with -std=c++0x for me. On Linux of course, other targets have specific issues not relevant here. Or, for that matter: #include <cmath> int main() { double ds = std::sinh(1.0); double das = std::asinh(1.0); } we *really* want the latter to work fine both with -std=c++0x and -std=gnu++0x.