modernc.org/ccgo/v3@v3.16.14/lib/testdata/gcc-9.1.0/gcc/testsuite/gcc.c-torture/execute/20030125-1.c (about) 1 /* Verify whether math functions are simplified. */ 2 /* { dg-require-effective-target c99_runtime } */ 3 /* { dg-require-weak } */ 4 double sin(double); 5 double floor(double); 6 float 7 t(float a) 8 { 9 return sin(a); 10 } 11 float 12 q(float a) 13 { 14 return floor(a); 15 } 16 double 17 q1(float a) 18 { 19 return floor(a); 20 } 21 main() 22 { 23 #ifdef __OPTIMIZE__ 24 if (t(0)!=0) 25 abort (); 26 if (q(0)!=0) 27 abort (); 28 if (q1(0)!=0) 29 abort (); 30 #endif 31 return 0; 32 } 33 __attribute__ ((weak)) 34 double 35 floor(double a) 36 { 37 abort (); 38 } 39 __attribute__ ((weak)) 40 float 41 floorf(float a) 42 { 43 return a; 44 } 45 __attribute__ ((weak)) 46 double 47 sin(double a) 48 { 49 return a; 50 } 51 __attribute__ ((weak)) 52 float 53 sinf(float a) 54 { 55 abort (); 56 }