https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60637
--- Comment #4 from Jonathan Wakely <redi at gcc dot gnu.org> --- I think we can fix the C++98 std::signbit(_Tp) with: typedef typename __gnu_cxx::__promote<_Tp>::__type __type; return sizeof(__type) == sizeof(long double) ? __builtin_signbitl(__type(__f)) : sizeof(__type) == sizeof(double) ? __builtin_signbit(__type(__f)) : __builtin_signbitf(__type(__f));