/* { dg-do link } */ /* { dg-options "-O2 -ffast-math" } */ /* { dg-require-effective-target c99_runtime } */ extern int ilogbf (float); extern float logbf (float); extern int ilogb (double); extern double logb (double); extern int ilogbl (long double); extern long double logbl (long double); extern void link_error(void); void testf(float x) { if ((int) logbf (x) != ilogbf (x)) link_error (); } void test(double x) { if ((int) logb (x) != ilogb (x)) link_error (); } void testl(long double x) { if ((int) logbl (x) != ilogbl (x)) link_error (); } int main() { testf (2.0f); test (2.0); testl (2.0l); return 0; }