[Bug libstdc++/69657] [6 Regression] abs() not inlined after including math.h
redi at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Feb 3 22:36:00 GMT 2016
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69657
--- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> ---
This exhibits the same problem:
namespace foo
{
inline double
abs(double __x)
{ return __builtin_fabs(__x); }
}
using foo::abs;
#include <cstdlib>
int
wrap_abs (int x)
{
return std::abs (x) + std::abs(x);
}
This doesn't seem like a libstdc++ issue, firstly because <math.h> is required
to define additional overloads, secondly because adding an overload should not
affect how calls to ::abs(int) get compiled, and thirdly because the same thing
happens with the foo::abs(double) overload above and that's nothing to do with
libstdc++.
Also, the code above gives the same result for GCC 5 and GCC 6, so all that
changed in libstdc++ is that we started defining the overloads in <math.h> that
are required by the standard, which for some reason trigger whatever is
happening here.
More information about the Gcc-bugs
mailing list