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