@@ -57,43 +57,58 @@ static_assert(((1.25 + 0.5j) / (0.25 - 0.75j)) == (-0.1 + 1.7j));
57
57
static_assert (((1.25 + 0 .5j) / 0.25) == (5.0 + 2 .0j));
58
58
static_assert ((1.25 / (0.25 - 0 .75j)) == (0.5 + 1 .5j));
59
59
60
- // Test that infinities are preserved, don't turn into NaNs, and do form zeros
61
- // when the divisor.
60
+
62
61
static_assert (__builtin_isinf_sign(__real__((__builtin_inf() + 1.0j) * 1.0)) == 1);
63
- static_assert (__builtin_isinf_sign(__imag__((1.0 + __builtin_inf() * 1.0j) * 1.0)) == 1);
62
+ static_assert (__builtin_isinf_sign(__imag__((1.0 + __builtin_inf() * 1.0j) * 1.0)) == 1); // expected-error {{static assertion}} \
63
+ // expected-note {{produces a NaN}}
64
64
static_assert (__builtin_isinf_sign(__real__(1.0 * (__builtin_inf() + 1.0j))) == 1);
65
- static_assert (__builtin_isinf_sign(__imag__(1.0 * (1.0 + __builtin_inf() * 1.0j))) == 1);
66
-
65
+ static_assert (__builtin_isinf_sign(__imag__(1.0 * (1.0 + __builtin_inf() * 1.0j))) == 1); // expected-error {{static assertion}} \
66
+ // expected-note {{produces a NaN}}
67
67
static_assert (__builtin_isinf_sign(__real__((__builtin_inf() + 1.0j) * (1.0 + 1 .0j))) == 1);
68
68
static_assert (__builtin_isinf_sign(__real__((1.0 + 1 .0j) * (__builtin_inf() + 1.0j))) == 1);
69
69
static_assert (__builtin_isinf_sign(__real__((__builtin_inf() + 1.0j) * (__builtin_inf() + 1.0j))) == 1);
70
-
71
- static_assert (__builtin_isinf_sign(__real__((1.0 + __builtin_inf() * 1.0j) * (1.0 + 1 .0j))) == -1);
72
- static_assert (__builtin_isinf_sign(__imag__((1.0 + __builtin_inf() * 1.0j) * (1.0 + 1 .0j))) == 1);
73
- static_assert (__builtin_isinf_sign(__real__((1.0 + 1 .0j) * (1.0 + __builtin_inf() * 1.0j))) == -1);
74
- static_assert (__builtin_isinf_sign(__imag__((1.0 + 1 .0j) * (1.0 + __builtin_inf() * 1.0j))) == 1);
75
-
76
- static_assert (__builtin_isinf_sign(__real__((1.0 + __builtin_inf() * 1.0j) * (1.0 + __builtin_inf() * 1.0j))) == -1);
77
- static_assert (__builtin_isinf_sign(__real__((__builtin_inf() + __builtin_inf() * 1.0j) * (__builtin_inf() + __builtin_inf() * 1.0j))) == -1);
78
-
70
+ static_assert (__builtin_isinf_sign(__real__((1.0 + __builtin_inf() * 1.0j) * (1.0 + 1 .0j))) == -1); // expected-error {{static assertion}} \
71
+ // expected-note {{produces a NaN}}
72
+ static_assert (__builtin_isinf_sign(__imag__((1.0 + __builtin_inf() * 1.0j) * (1.0 + 1 .0j))) == 1); // expected-error {{static assertion}} \
73
+ // expected-note {{produces a NaN}}
74
+ static_assert (__builtin_isinf_sign(__real__((1.0 + 1 .0j) * (1.0 + __builtin_inf() * 1.0j))) == -1); // expected-error {{static assertion}} \
75
+ // expected-note {{produces a NaN}}
76
+ static_assert (__builtin_isinf_sign(__imag__((1.0 + 1 .0j) * (1.0 + __builtin_inf() * 1.0j))) == 1); // expected-error {{static assertion}} \
77
+ // expected-note {{produces a NaN}}
78
+ static_assert (__builtin_isinf_sign(__real__((1.0 + __builtin_inf() * 1.0j) * (1.0 + __builtin_inf() * 1.0j))) == -1); // expected-error {{static assertion}} \
79
+ // expected-note {{produces a NaN}}
80
+ static_assert (__builtin_isinf_sign(__real__((__builtin_inf() + __builtin_inf() * 1.0j) * (__builtin_inf() + __builtin_inf() * 1.0j))) == -1); // expected-error {{static assertion}} \
81
+ // expected-note {{produces a NaN}}
79
82
static_assert (__builtin_isinf_sign(__real__((__builtin_inf() + 1.0j) / (1.0 + 1 .0j))) == 1);
80
- static_assert (__builtin_isinf_sign(__imag__(1.0 + (__builtin_inf() * 1.0j) / (1.0 + 1 .0j))) == 1);
81
- static_assert (__builtin_isinf_sign(__imag__((__builtin_inf() + __builtin_inf() * 1.0j) / (1.0 + 1 .0j))) == 1);
83
+ static_assert (__builtin_isinf_sign(__imag__(1.0 + (__builtin_inf() * 1.0j) / (1.0 + 1 .0j))) == 1); // expected-error {{static assertion}} \
84
+ // expected-note {{produces a NaN}}
85
+ static_assert (__builtin_isinf_sign(__imag__((__builtin_inf() + __builtin_inf() * 1.0j) / (1.0 + 1 .0j))) == 1); // expected-error {{static assertion}} \
86
+ // expected-note {{produces a NaN}}
82
87
static_assert (__builtin_isinf_sign(__real__((__builtin_inf() + 1.0j) / 1.0)) == 1);
83
- static_assert (__builtin_isinf_sign(__imag__(1.0 + (__builtin_inf() * 1.0j) / 1.0)) == 1);
84
- static_assert (__builtin_isinf_sign(__imag__((__builtin_inf() + __builtin_inf() * 1.0j) / 1.0)) == 1);
85
-
88
+ static_assert (__builtin_isinf_sign(__imag__(1.0 + (__builtin_inf() * 1.0j) / 1.0)) == 1); // expected-error {{static assertion}} \
89
+ // expected-note {{produces a NaN}}
90
+ static_assert (__builtin_isinf_sign(__imag__((__builtin_inf() + __builtin_inf() * 1.0j) / 1.0)) == 1); // expected-error {{static assertion}} \
91
+ // expected-note {{produces a NaN}}
86
92
static_assert (((1.0 + 1 .0j) / (__builtin_inf() + 1.0j)) == (0.0 + 0 .0j));
87
- static_assert (((1.0 + 1 .0j) / (1.0 + __builtin_inf() * 1.0j)) == (0.0 + 0 .0j));
88
- static_assert (((1.0 + 1 .0j) / (__builtin_inf() + __builtin_inf() * 1.0j)) == (0.0 + 0 .0j));
93
+ static_assert (((1.0 + 1 .0j) / (1.0 + __builtin_inf() * 1.0j)) == (0.0 + 0 .0j)); // expected-error {{static assertion}} \
94
+ // expected-note {{produces a NaN}}
95
+ static_assert (((1.0 + 1 .0j) / (__builtin_inf() + __builtin_inf() * 1.0j)) == (0.0 + 0 .0j)); // expected-error {{static assertion}} \
96
+ // expected-note {{produces a NaN}}
89
97
static_assert (((1.0 + 1 .0j) / __builtin_inf()) == (0.0 + 0 .0j));
90
-
98
+ static_assert (1 .0j / 0.0 == 1 ); // expected-error {{static assertion}} \
99
+ // expected-note {{division by zero}}
91
100
static_assert (__builtin_isinf_sign(__real__((1.0 + 1 .0j) / (0.0 + 0 .0j))) == 1);
92
- static_assert (__builtin_isinf_sign(__real__((1.0 + 1 .0j) / 0.0)) == 1);
93
-
101
+ static_assert (__builtin_isinf_sign(__real__((1.0 + 1 .0j) / 0.0)) == 1); // expected-error {{static assertion}} \
102
+ // expected-note {{division by zero}}
94
103
static_assert (__builtin_isinf_sign(__real__((__builtin_inf() + 1.0j) / (0.0 + 0 .0j))) == 1);
95
- static_assert (__builtin_isinf_sign(__imag__((1.0 + __builtin_inf() * 1.0j) / (0.0 + 0 .0j))) == 1);
96
- static_assert (__builtin_isinf_sign(__imag__((__builtin_inf() + __builtin_inf() * 1.0j) / (0.0 + 0 .0j))) == 1);
97
- static_assert (__builtin_isinf_sign(__real__((__builtin_inf() + 1.0j) / 0.0)) == 1);
98
- static_assert (__builtin_isinf_sign(__imag__((1.0 + __builtin_inf() * 1.0j) / 0.0)) == 1);
99
- static_assert (__builtin_isinf_sign(__imag__((__builtin_inf() + __builtin_inf() * 1.0j) / 0.0)) == 1);
104
+ static_assert (__builtin_isinf_sign(__imag__((1.0 + __builtin_inf() * 1.0j) / (0.0 + 0 .0j))) == 1); // expected-error {{static assertion}} \
105
+ // expected-note {{produces a NaN}}
106
+ static_assert (__builtin_isinf_sign(__imag__((__builtin_inf() + __builtin_inf() * 1.0j) / (0.0 + 0 .0j))) == 1); // expected-error {{static assertion}} \
107
+ // expected-note {{produces a NaN}}
108
+ static_assert (__builtin_isinf_sign(__real__((__builtin_inf() + 1.0j) / 0.0)) == 1); // expected-error {{static assertion}} \
109
+ // expected-note {{division by zero}}
110
+ static_assert (__builtin_isinf_sign(__imag__((1.0 + __builtin_inf() * 1.0j) / 0.0)) == 1); // expected-error {{static assertion}} \
111
+ // expected-note {{produces a NaN}}
112
+ static_assert (__builtin_isinf_sign(__imag__((__builtin_inf() + __builtin_inf() * 1.0j) / 0.0)) == 1); // expected-error {{static assertion}} \
113
+ // expected-note {{produces a NaN}}
114
+
0 commit comments