1 /* Test C23 constexpr. Valid code, compilation tests, DFP. */
2 /* { dg-do compile } */
3 /* { dg-options "-std=c23 -pedantic-errors" } */
5 constexpr _Decimal32 v1
= __DEC32_MIN__
;
6 constexpr _Decimal32 v2
= __DEC32_SUBNORMAL_MIN__
;
7 constexpr _Decimal32 v3
= -__DEC32_MAX__
;
8 constexpr _Decimal64 v4
= __DEC32_MIN__
;
9 constexpr _Decimal64 v5
= __DEC32_SUBNORMAL_MIN__
;
10 constexpr _Decimal64 v6
= -__DEC32_MAX__
;
11 constexpr _Decimal64 v7
= __DEC64_MIN__
;
12 constexpr _Decimal64 v8
= __DEC64_SUBNORMAL_MIN__
;
13 constexpr _Decimal64 v9
= -__DEC64_MAX__
;
14 constexpr _Decimal128 v10
= __DEC32_MIN__
;
15 constexpr _Decimal128 v11
= __DEC32_SUBNORMAL_MIN__
;
16 constexpr _Decimal128 v12
= -__DEC32_MAX__
;
17 constexpr _Decimal128 v13
= __DEC64_MIN__
;
18 constexpr _Decimal128 v14
= __DEC64_SUBNORMAL_MIN__
;
19 constexpr _Decimal128 v15
= -__DEC64_MAX__
;
20 constexpr _Decimal128 v16
= __DEC128_MIN__
;
21 constexpr _Decimal128 v17
= __DEC128_SUBNORMAL_MIN__
;
22 constexpr _Decimal128 v18
= -__DEC128_MAX__
;
23 constexpr _Decimal32 v19
= 1234567L;
24 constexpr _Decimal32 v20
= -123456700000LL;
25 constexpr _Decimal64 v21
= 1234567890123456LL;
26 constexpr _Decimal64 v22
= -123456789012345600LL;
27 constexpr _Decimal128 v23
= (unsigned long long) -1;
28 constexpr _Decimal32 v24
= 1e-101DL
;
29 constexpr _Decimal64 v25
= 1e-398DL
;
30 constexpr _Decimal32 v26
= __builtin_infd128 ();
31 constexpr _Decimal128 v27
= __builtin_infd32 ();
32 constexpr _Decimal64 v28
= __builtin_nand128 ("");
33 constexpr _Decimal128 v29
= __builtin_nand32 ("");
34 constexpr _Decimal32 v30
= __builtin_nansd32 ("");
35 constexpr _Decimal64 v31
= __builtin_nansd64 ("");
36 constexpr _Decimal128 v32
= __builtin_nansd128 ("");
37 constexpr _Decimal32 v33
= {};
38 constexpr _Decimal64 v34
= {};
39 constexpr _Decimal128 v35
= {};
40 constexpr _Decimal32 v36
= 0.0;
41 constexpr _Decimal32 v37
= 0.0009765625;
42 constexpr _Decimal64 v38
= 6.103515625e-05;
43 constexpr _Decimal32 v39
= __builtin_inf ();
44 constexpr _Decimal32 v40
= __builtin_nan ("");
49 (constexpr _Decimal32
) { __DEC32_MIN__
};
50 (constexpr _Decimal32
) { __DEC32_SUBNORMAL_MIN__
};
51 (constexpr _Decimal32
) { -__DEC32_MAX__
};
52 (constexpr _Decimal64
) { __DEC32_MIN__
};
53 (constexpr _Decimal64
) { __DEC32_SUBNORMAL_MIN__
};
54 (constexpr _Decimal64
) { -__DEC32_MAX__
};
55 (constexpr _Decimal64
) { __DEC64_MIN__
};
56 (constexpr _Decimal64
) { __DEC64_SUBNORMAL_MIN__
};
57 (constexpr _Decimal64
) { -__DEC64_MAX__
};
58 (constexpr _Decimal128
) { __DEC32_MIN__
};
59 (constexpr _Decimal128
) { __DEC32_SUBNORMAL_MIN__
};
60 (constexpr _Decimal128
) { -__DEC32_MAX__
};
61 (constexpr _Decimal128
) { __DEC64_MIN__
};
62 (constexpr _Decimal128
) { __DEC64_SUBNORMAL_MIN__
};
63 (constexpr _Decimal128
) { -__DEC64_MAX__
};
64 (constexpr _Decimal128
) { __DEC128_MIN__
};
65 (constexpr _Decimal128
) { __DEC128_SUBNORMAL_MIN__
};
66 (constexpr _Decimal128
) { -__DEC128_MAX__
};
67 (constexpr _Decimal32
) { 1234567L };
68 (constexpr _Decimal32
) { -123456700000LL };
69 (constexpr _Decimal64
) { 1234567890123456LL };
70 (constexpr _Decimal64
) { -123456789012345600LL };
71 (constexpr _Decimal128
) { (unsigned long long) -1 };
72 (constexpr _Decimal32
) { 1e-101DL
};
73 (constexpr _Decimal64
) { 1e-398DL
};
74 (constexpr _Decimal32
) { __builtin_infd128 () };
75 (constexpr _Decimal128
) { __builtin_infd32 () };
76 (constexpr _Decimal64
) { __builtin_nand128 ("") };
77 (constexpr _Decimal128
) { __builtin_nand32 ("") };
78 (constexpr _Decimal32
) { __builtin_nansd32 ("") };
79 (constexpr _Decimal64
) { __builtin_nansd64 ("") };
80 (constexpr _Decimal128
) { __builtin_nansd128 ("") };
81 (constexpr _Decimal32
) {};
82 (constexpr _Decimal64
) {};
83 (constexpr _Decimal128
) {};
84 (constexpr _Decimal32
) { 0.0 };
85 (constexpr _Decimal32
) { 0.0009765625 };
86 (constexpr _Decimal64
) { 6.103515625e-05 };
87 (constexpr _Decimal32
) { __builtin_inf () };
88 (constexpr _Decimal32
) { __builtin_nan ("") };