74aec53aefb286bb3def54e0a6fd8abdd482854c
[gcc.git] / gcc / testsuite / gcc.dg / dfp / call-by-value.c
1 /* C99 6.9.1(9) Function definitions; parameter has automatic storage.
2
3 Test that actual parameters are passed by value and that modifications
4 made within functions are lost on function return. */
5
6 #include "dfp-dbg.h"
7
8 int foo32 (_Decimal32 z)
9 {
10 z = z + 1.0df;
11 }
12
13 int foo64 (_Decimal64 z)
14 {
15 z = z + 1.0dd;
16 }
17
18 int foo128 (_Decimal128 z)
19 {
20 z = z + 1.0dl;
21 }
22
23 int
24 main ()
25 {
26 _Decimal32 d32 = 1.1df;
27 _Decimal64 d64 = 1.2dd;
28 _Decimal128 d128 = 1.3dl;
29
30 foo32 (d32);
31 if (d32 != 1.1df)
32 FAILURE
33
34 foo64 (d64);
35 if (d64 != 1.2dd)
36 FAILURE
37
38 foo128 (d128);
39 if (d128 != 1.3dl)
40 FAILURE
41
42 FINISH
43 }