Merged revisions 143552,143554,143557,143560,143562,143564-143567,143570-143573,14357...
[official-gcc.git] / gcc / testsuite / gcc.dg / dfp / pr39035.c
blob2d44e06a432c2cc3f2187b17ae39395c691bbfb8
1 /* { dg-do run } */
2 /* { dg-options "-std=gnu99 -O" } */
4 /* DFP TR 24732 == WG14 / N1176, N1312 */
5 /* Based on a test from Fred Tydeman. */
7 extern void abort (void);
8 int failures = 0;
10 #ifdef DBG
11 #include <stdio.h>
12 #define FAILURE(MSG) { printf ("line %d: %s\n", __LINE__, MSG); failures++; }
13 #else
14 #define FAILURE(MSG) failures++;
15 #endif
17 /* Test runtime computations. */
19 void
20 runtime32 (void)
22 volatile _Decimal32 d;
23 d = 0.0DF;
24 if (d)
25 FAILURE ("0.0DF should be zero")
28 void
29 runtime64 (void)
31 volatile _Decimal64 d;
32 d = 0.0DD;
33 if (d)
34 FAILURE ("0.0DD should be zero")
37 void
38 runtime128 (void)
40 volatile _Decimal128 d;
41 d = 0.0DL;
42 if (d)
43 FAILURE ("0.0DL should be zero")
46 void
47 fold32 (void)
49 if (0.0DF)
50 FAILURE ("0.0DF should be zero")
53 void
54 fold64 (void)
56 if (0.0DD)
57 FAILURE ("0.0DD should be zero")
60 void
61 fold128 (void)
63 if (0.0DL)
64 FAILURE ("0.0DL should be zero")
67 int
68 main(void)
70 runtime32 ();
71 runtime64 ();
72 runtime128 ();
74 fold32 ();
75 fold64 ();
76 fold128 ();
78 if (failures != 0)
79 abort ();
80 return 0;