1! { dg-do compile { target { i?86-*-* x86_64-*-* } } }
2! { dg-options "-Wall" }
3! Code contributed by Manfred Schwarb <manfred99 at gmx dot ch>
4! PR fortran/91497
5!
6! Prior to applying the patch for this PR, the following code
7! would generate numerous conversion warnings.
8!
9program foo
10
11      real*4 a,aa
12      real*8 b,bb
13      real*10 c,cc
14      real*16 d
15      integer*2 e,ee
16      integer*4 f,ff
17      integer*8 g,gg
18      PARAMETER(a=3.1415927_4)
19      PARAMETER(b=3.1415927_8)
20      PARAMETER(c=3.1415927_10)
21      PARAMETER(d=3.1415927_16)
22      PARAMETER(e=123_2)
23      PARAMETER(f=123_4)
24      PARAMETER(g=123_8)
25
26      aa=REAL(b)
27      aa=REAL(c)
28      aa=REAL(d)
29      aa=REAL(e)
30      aa=REAL(f)
31      aa=REAL(g)
32      aa=FLOAT(f)
33      aa=FLOOR(b)
34      aa=FLOOR(c)
35      aa=FLOOR(d)
36      aa=CEILING(b)
37      aa=CEILING(c)
38      aa=CEILING(d)
39      !---unknown but documented type conversions:
40      !!aa=FLOATI(e)
41      !!aa=FLOATJ(f)
42      !!aa=FLOATK(g)
43      !---documentation is wrong for sngl:
44      aa=SNGL(c)
45      aa=SNGL(d)
46      bb=REAL(c, kind=8)
47      bb=REAL(d, kind=8)
48      bb=DBLE(c)
49      bb=DBLE(d)
50      bb=DFLOAT(g)
51      bb=FLOOR(c)
52      bb=FLOOR(d)
53      bb=CEILING(c)
54      bb=CEILING(d)
55      cc=REAL(d, kind=10)
56      cc=FLOOR(d)
57      cc=CEILING(d)
58
59      aa=AINT(b)
60      aa=ANINT(b)
61      aa=AINT(c)
62      aa=ANINT(c)
63      aa=AINT(d)
64      aa=ANINT(d)
65      bb=DINT(b)
66      bb=DNINT(b)
67
68      ee=INT(a, kind=2)
69      ee=NINT(a, kind=2)
70      ee=INT(b, kind=2)
71      ee=NINT(b, kind=2)
72      ee=INT(c, kind=2)
73      ee=NINT(c, kind=2)
74      ee=INT(d, kind=2)
75      ee=NINT(d, kind=2)
76      ee=INT(f, kind=2)
77      ee=INT(g, kind=2)
78      ee=IFIX(a)
79      ee=IDINT(b)
80      ee=IDNINT(b)
81      ee=INT2(a)
82      ee=INT2(b)
83      ee=INT2(c)
84      ee=INT2(d)
85      ee=INT2(f)
86      ee=INT2(g)
87
88      ff=INT(a, kind=4)
89      ff=NINT(a, kind=4)
90      ff=INT(b, kind=4)
91      ff=NINT(b, kind=4)
92      ff=INT(c, kind=4)
93      ff=NINT(c, kind=4)
94      ff=INT(d, kind=4)
95      ff=NINT(d, kind=4)
96      ff=INT(f, kind=4)
97      ff=INT(g, kind=4)
98      ff=IFIX(a)
99      ff=IDINT(b)
100      ff=IDNINT(b)
101      !---LONG not allowed anymore in gfortran 10 (?):
102      !!ff=LONG(a)
103      !!ff=LONG(b)
104      !!ff=LONG(c)
105      !!ff=LONG(d)
106      !!ff=LONG(g)
107
108      gg=INT(a, kind=8)
109      gg=NINT(a, kind=8)
110      gg=INT(b, kind=8)
111      gg=NINT(b, kind=8)
112      gg=INT(c, kind=8)
113      gg=NINT(c, kind=8)
114      gg=INT(d, kind=8)
115      gg=NINT(d, kind=8)
116      gg=INT(f, kind=8)
117      gg=INT(g, kind=8)
118      gg=IFIX(a)
119      gg=IDINT(b)
120      gg=IDNINT(b)
121      gg=INT8(a)
122      gg=INT8(b)
123      gg=INT8(c)
124      gg=INT8(d)
125      gg=INT8(g)
126end
127
128