blob: eeb5beb47eb493c06a34523ddb1fdc257c7fa964 [file] [log] [blame]
/* PR middle-end/89663 */
/* { dg-require-effective-target indirect_calls } */
/* { dg-require-effective-target non_strict_prototype } */
int irint (double);
long lrint (double);
long long llrint (double);
int iround (double);
long lround (double);
long long llround (double);
int iceil (double);
long lceil (double);
long long llceil (double);
int ifloor (double);
long lfloor (double);
long long llfloor (double);
int irintf (float);
long lrintf (float);
long long llrintf (float);
int iroundf (float);
long lroundf (float);
long long llroundf (float);
int iceilf (float);
long lceilf (float);
long long llceilf (float);
int ifloorf (float);
long lfloorf (float);
long long llfloorf (float);
int irintl (long double);
long lrintl (long double);
long long llrintl (long double);
int iroundl (long double);
long lroundl (long double);
long long llroundl (long double);
int iceill (long double);
long lceill (long double);
long long llceill (long double);
int ifloorl (long double);
long lfloorl (long double);
long long llfloorl (long double);
void
foo (long long *p)
{
int (*fn) (int);
int n = 0;
#define T(f) fn = (int (*) (int)) f; p[n++] = fn (1);
T (irint)
T (lrint)
T (llrint)
T (iround)
T (lround)
T (llround)
T (iceil)
T (lceil)
T (llceil)
T (ifloor)
T (lfloor)
T (llfloor)
T (irintf)
T (lrintf)
T (llrintf)
T (iroundf)
T (lroundf)
T (llroundf)
T (iceilf)
T (lceilf)
T (llceilf)
T (ifloorf)
T (lfloorf)
T (llfloorf)
T (irintl)
T (lrintl)
T (llrintl)
T (iroundl)
T (lroundl)
T (llroundl)
T (iceill)
T (lceill)
T (llceill)
T (ifloorl)
T (lfloorl)
T (llfloorl)
}