/* Verify whether math functions are simplified. */ /* { dg-require-effective-target c99_runtime } */ /* { dg-require-weak "" } */ void abort(void); double sin(double); double floor(double); float t(float a) { return sin(a); } float q(float a) { return floor(a); } double q1(float a) { return floor(a); } int main(void) { #ifdef __OPTIMIZE__ if (t(0)!=0) abort (); if (q(0)!=0) abort (); if (q1(0)!=0) abort (); #endif return 0; } __attribute__ ((weak)) double floor(double a) { abort (); } __attribute__ ((weak)) float floorf(float a) { return a; } __attribute__ ((weak)) double sin(double a) { return a; } __attribute__ ((weak)) float sinf(float a) { abort (); }