Skip to content

Commit dff30c0

Browse files
committed
avoid direct union casting, bad
1 parent 3d0ebed commit dff30c0

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

quaddtype/numpy_quaddtype/src/umath/comparison_ops.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -121,15 +121,19 @@ quad_generic_comp_strided_loop_aligned(PyArrayMethod_Context *context, char *con
121121
QuadPrecDTypeObject *descr = (QuadPrecDTypeObject *)context->descriptors[0];
122122
QuadBackendType backend = descr->backend;
123123
while (N--) {
124-
quad_value in1 = *(quad_value *)in1_ptr;
125-
quad_value in2 = *(quad_value *)in2_ptr;
124+
quad_value in1;
125+
quad_value in2;
126126

127127
npy_bool result;
128128

129129
if (backend == BACKEND_SLEEF) {
130+
in1.sleef_value = *(Sleef_quad *)in1_ptr;
131+
in2.sleef_value = *(Sleef_quad *)in2_ptr;
130132
result = sleef_comp(&in1.sleef_value, &in2.sleef_value);
131133
}
132134
else {
135+
in1.longdouble_value = *(long double *)in1_ptr;
136+
in2.longdouble_value = *(long double *)in2_ptr;
133137
result = ld_comp(&in1.longdouble_value, &in2.longdouble_value);
134138
}
135139

0 commit comments

Comments
 (0)