OSDN Git Service

743411e56cc8e9d8402ad325203a757ac994356d
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.dg / dfp / func-scalar.c
1 /* { dg-do run } */
2 /* { dg-options "-std=gnu99" } */
3
4 /* C99 6.5.2.2 Function calls.
5    Test scalar passing and return values involving decimal floating
6    point types.  */
7
8 extern void abort (void);
9
10 /* A handful of functions that return their Nth _Decimal32
11    argument.  */
12
13 _Decimal32
14 arg0_32 (_Decimal32 arg0, _Decimal32 arg1, _Decimal32 arg2,
15          _Decimal32 arg3, _Decimal32 arg4, _Decimal32 arg5)
16 {
17   return arg0;
18 }
19
20 _Decimal32
21 arg1_32 (_Decimal32 arg0, _Decimal32 arg1, _Decimal32 arg2,
22          _Decimal32 arg3, _Decimal32 arg4, _Decimal32 arg5)
23 {
24   return arg1;
25 }
26         
27 _Decimal32
28 arg2_32 (_Decimal32 arg0, _Decimal32 arg1, _Decimal32 arg2,
29          _Decimal32 arg3, _Decimal32 arg4, _Decimal32 arg5)
30 {
31   return arg2;
32 }
33         
34 _Decimal32
35 arg3_32 (_Decimal32 arg0, _Decimal32 arg1, _Decimal32 arg2,
36          _Decimal32 arg3, _Decimal32 arg4, _Decimal32 arg5)
37 {
38   return arg3;
39 }
40         
41 _Decimal32
42 arg4_32 (_Decimal32 arg0, _Decimal32 arg1, _Decimal32 arg2,
43          _Decimal32 arg3, _Decimal32 arg4, _Decimal32 arg5)
44 {
45   return arg4;
46 }
47         
48 _Decimal32
49 arg5_32 (_Decimal32 arg0, _Decimal32 arg1, _Decimal32 arg2,
50          _Decimal32 arg3, _Decimal32 arg4, _Decimal32 arg5)
51 {
52   return arg5;
53 }
54         
55 \f
56 /* A handful of functions that return their Nth _Decimal64
57    argument.  */
58
59 _Decimal64
60 arg0_64 (_Decimal64 arg0, _Decimal64 arg1, _Decimal64 arg2,
61          _Decimal64 arg3, _Decimal64 arg4, _Decimal64 arg5)
62 {
63   return arg0;
64 }
65         
66 _Decimal64
67 arg1_64 (_Decimal64 arg0, _Decimal64 arg1, _Decimal64 arg2,
68          _Decimal64 arg3, _Decimal64 arg4, _Decimal64 arg5)
69 {
70   return arg1;
71 }
72         
73 _Decimal64
74 arg2_64 (_Decimal64 arg0, _Decimal64 arg1, _Decimal64 arg2,
75          _Decimal64 arg3, _Decimal64 arg4, _Decimal64 arg5)
76 {
77   return arg2;
78 }
79         
80 _Decimal64
81 arg3_64 (_Decimal64 arg0, _Decimal64 arg1, _Decimal64 arg2,
82          _Decimal64 arg3, _Decimal64 arg4, _Decimal64 arg5)
83 {
84   return arg3;
85 }
86         
87 _Decimal64
88 arg4_64 (_Decimal64 arg0, _Decimal64 arg1, _Decimal64 arg2,
89          _Decimal64 arg3, _Decimal64 arg4, _Decimal64 arg5)
90 {
91   return arg4;
92 }
93         
94 _Decimal64
95 arg5_64 (_Decimal64 arg0, _Decimal64 arg1, _Decimal64 arg2,
96          _Decimal64 arg3, _Decimal64 arg4, _Decimal64 arg5)
97 {
98   return arg5;
99 }
100         
101 \f
102 /* A handful of functions that return their Nth _Decimal128
103    argument.  */
104
105 _Decimal128
106 arg0_128 (_Decimal128 arg0, _Decimal128 arg1, _Decimal128 arg2,
107          _Decimal128 arg3, _Decimal128 arg4, _Decimal128 arg5)
108 {
109   return arg0;
110 }
111         
112 _Decimal128
113 arg1_128 (_Decimal128 arg0, _Decimal128 arg1, _Decimal128 arg2,
114          _Decimal128 arg3, _Decimal128 arg4, _Decimal128 arg5)
115 {
116   return arg1;
117 }
118         
119 _Decimal128
120 arg2_128 (_Decimal128 arg0, _Decimal128 arg1, _Decimal128 arg2,
121          _Decimal128 arg3, _Decimal128 arg4, _Decimal128 arg5)
122 {
123   return arg2;
124 }
125         
126 _Decimal128
127 arg3_128 (_Decimal128 arg0, _Decimal128 arg1, _Decimal128 arg2,
128          _Decimal128 arg3, _Decimal128 arg4, _Decimal128 arg5)
129 {
130   return arg3;
131 }
132         
133 _Decimal128
134 arg4_128 (_Decimal128 arg0, _Decimal128 arg1, _Decimal128 arg2,
135          _Decimal128 arg3, _Decimal128 arg4, _Decimal128 arg5)
136 {
137   return arg4;
138 }
139         
140 _Decimal128
141 arg5_128 (_Decimal128 arg0, _Decimal128 arg1, _Decimal128 arg2,
142          _Decimal128 arg3, _Decimal128 arg4, _Decimal128 arg5)
143 {
144   return arg5;
145 }
146
147
148 \f
149 int
150 main ()
151 {
152   /* _Decimal32 variants.  */
153   if (arg0_32 (0.0df, 1.0df, 2.0df, 3.0df, 4.0df, 5.0df) != 0.0df)
154     abort ();
155   if (arg1_32 (0.0df, 1.0df, 2.0df, 3.0df, 4.0df, 5.0df) != 1.0df)
156     abort ();
157   if (arg2_32 (0.0df, 1.0df, 2.0df, 3.0df, 4.0df, 5.0df) != 2.0df)
158     abort ();
159   if (arg3_32 (0.0df, 1.0df, 2.0df, 3.0df, 4.0df, 5.0df) != 3.0df)
160     abort ();
161   if (arg4_32 (0.0df, 1.0df, 2.0df, 3.0df, 4.0df, 5.0df) != 4.0df)
162     abort ();
163   if (arg5_32 (0.0df, 1.0df, 2.0df, 3.0df, 4.0df, 5.0df) != 5.0df)
164     abort ();
165
166   /* _Decimal64 variants.  */
167   if (arg0_64 (0.0dd, 1.0dd, 2.0dd, 3.0dd, 4.0dd, 5.0dd) != 0.0dd)
168     abort ();
169   if (arg1_64 (0.0dd, 1.0dd, 2.0dd, 3.0dd, 4.0dd, 5.0dd) != 1.0dd)
170     abort ();
171   if (arg2_64 (0.0dd, 1.0dd, 2.0dd, 3.0dd, 4.0dd, 5.0dd) != 2.0dd)
172     abort ();
173   if (arg3_64 (0.0dd, 1.0dd, 2.0dd, 3.0dd, 4.0dd, 5.0dd) != 3.0dd)
174     abort ();
175   if (arg4_64 (0.0dd, 1.0dd, 2.0dd, 3.0dd, 4.0dd, 5.0dd) != 4.0dd)
176     abort ();
177   if (arg5_64 (0.0dd, 1.0dd, 2.0dd, 3.0dd, 4.0dd, 5.0dd) != 5.0dd)
178     abort ();
179
180   /* _Decimal128 variants.  */
181   if (arg0_128 (0.0dl, 1.0dl, 2.0dl, 3.0dl, 4.0dl, 5.0dl) != 0.0dl)
182     abort ();
183   if (arg1_128 (0.0dl, 1.0dl, 2.0dl, 3.0dl, 4.0dl, 5.0dl) != 1.0dl)
184     abort ();
185   if (arg2_128 (0.0dl, 1.0dl, 2.0dl, 3.0dl, 4.0dl, 5.0dl) != 2.0dl)
186     abort ();
187   if (arg3_128 (0.0dl, 1.0dl, 2.0dl, 3.0dl, 4.0dl, 5.0dl) != 3.0dl)
188     abort ();
189   if (arg4_128 (0.0dl, 1.0dl, 2.0dl, 3.0dl, 4.0dl, 5.0dl) != 4.0dl)
190     abort ();
191   if (arg5_128 (0.0dl, 1.0dl, 2.0dl, 3.0dl, 4.0dl, 5.0dl) != 5.0dl)
192     abort ();
193
194   return 0;
195 }