(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.c-torture/
compile/
pr89663-2.c
       1  /* PR middle-end/89663 */
       2  /* { dg-require-effective-target indirect_calls } */
       3  /* { dg-require-effective-target non_strict_prototype } */
       4  
       5  int irint (double);
       6  long lrint (double);
       7  long long llrint (double);
       8  int iround (double);
       9  long lround (double);
      10  long long llround (double);
      11  int iceil (double);
      12  long lceil (double);
      13  long long llceil (double);
      14  int ifloor (double);
      15  long lfloor (double);
      16  long long llfloor (double);
      17  int irintf (float);
      18  long lrintf (float);
      19  long long llrintf (float);
      20  int iroundf (float);
      21  long lroundf (float);
      22  long long llroundf (float);
      23  int iceilf (float);
      24  long lceilf (float);
      25  long long llceilf (float);
      26  int ifloorf (float);
      27  long lfloorf (float);
      28  long long llfloorf (float);
      29  int irintl (long double);
      30  long lrintl (long double);
      31  long long llrintl (long double);
      32  int iroundl (long double);
      33  long lroundl (long double);
      34  long long llroundl (long double);
      35  int iceill (long double);
      36  long lceill (long double);
      37  long long llceill (long double);
      38  int ifloorl (long double);
      39  long lfloorl (long double);
      40  long long llfloorl (long double);
      41  
      42  void
      43  foo (long long *p)
      44  {
      45    int (*fn) (int);
      46    int n = 0;
      47  #define T(f) fn = (int (*) (int)) f; p[n++] = fn (1);
      48    T (irint)
      49    T (lrint)
      50    T (llrint)
      51    T (iround)
      52    T (lround)
      53    T (llround)
      54    T (iceil)
      55    T (lceil)
      56    T (llceil)
      57    T (ifloor)
      58    T (lfloor)
      59    T (llfloor)
      60    T (irintf)
      61    T (lrintf)
      62    T (llrintf)
      63    T (iroundf)
      64    T (lroundf)
      65    T (llroundf)
      66    T (iceilf)
      67    T (lceilf)
      68    T (llceilf)
      69    T (ifloorf)
      70    T (lfloorf)
      71    T (llfloorf)
      72    T (irintl)
      73    T (lrintl)
      74    T (llrintl)
      75    T (iroundl)
      76    T (lroundl)
      77    T (llroundl)
      78    T (iceill)
      79    T (lceill)
      80    T (llceill)
      81    T (ifloorl)
      82    T (lfloorl)
      83    T (llfloorl)
      84  }