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  }