Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit a4e68f4

Browse files
robberphexjuliantaylor
authored andcommitted
BUG: fix build error with MSVC 2013 caused by C99 complex support
closes gh-4896
1 parent 0ddb8e3 commit a4e68f4

File tree

2 files changed

+30
-6
lines changed

2 files changed

+30
-6
lines changed

numpy/core/src/npymath/npy_math_complex.c.src

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -247,7 +247,8 @@
247247
#ifdef HAVE_@KIND@@C@
248248
@type@ npy_@kind@@c@(@ctype@ z)
249249
{
250-
__@ctype@_to_c99_cast z1 = {z};
250+
__@ctype@_to_c99_cast z1;
251+
z1.npy_z = z;
251252
return @kind@@c@(z1.c99_z);
252253
}
253254
#endif
@@ -260,8 +261,9 @@
260261
#ifdef HAVE_@KIND@@C@
261262
@ctype@ npy_@kind@@c@(@ctype@ z)
262263
{
263-
__@ctype@_to_c99_cast z1 = {z};
264+
__@ctype@_to_c99_cast z1;
264265
__@ctype@_to_c99_cast ret;
266+
z1.npy_z = z;
265267
ret.c99_z = @kind@@c@(z1.c99_z);
266268
return ret.npy_z;
267269
}
@@ -275,9 +277,11 @@
275277
#ifdef HAVE_@KIND@@C@
276278
@ctype@ npy_@kind@@c@(@ctype@ x, @ctype@ y)
277279
{
278-
__@ctype@_to_c99_cast xcast = {x};
279-
__@ctype@_to_c99_cast ycast = {y};
280+
__@ctype@_to_c99_cast xcast;
281+
__@ctype@_to_c99_cast ycast;
280282
__@ctype@_to_c99_cast ret;
283+
xcast.npy_z = x;
284+
ycast.npy_z = y;
281285
ret.c99_z = @kind@@c@(xcast.c99_z, ycast.c99_z);
282286
return ret.npy_z;
283287
}

numpy/core/src/npymath/npy_math_private.h

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -485,6 +485,24 @@ do { \
485485
* support is available
486486
*/
487487
#ifdef NPY_USE_C99_COMPLEX
488+
489+
/* Microsoft C defines _MSC_VER */
490+
#ifdef _MSC_VER
491+
typedef union {
492+
npy_cdouble npy_z;
493+
_Dcomplex c99_z;
494+
} __npy_cdouble_to_c99_cast;
495+
496+
typedef union {
497+
npy_cfloat npy_z;
498+
_Fcomplex c99_z;
499+
} __npy_cfloat_to_c99_cast;
500+
501+
typedef union {
502+
npy_clongdouble npy_z;
503+
_Lcomplex c99_z;
504+
} __npy_clongdouble_to_c99_cast;
505+
#else /* !_MSC_VER */
488506
typedef union {
489507
npy_cdouble npy_z;
490508
complex double c99_z;
@@ -499,7 +517,9 @@ typedef union {
499517
npy_clongdouble npy_z;
500518
complex long double c99_z;
501519
} __npy_clongdouble_to_c99_cast;
502-
#else
520+
#endif /* !_MSC_VER */
521+
522+
#else /* !NPY_USE_C99_COMPLEX */
503523
typedef union {
504524
npy_cdouble npy_z;
505525
npy_cdouble c99_z;
@@ -514,6 +534,6 @@ typedef union {
514534
npy_clongdouble npy_z;
515535
npy_clongdouble c99_z;
516536
} __npy_clongdouble_to_c99_cast;
517-
#endif
537+
#endif /* !NPY_USE_C99_COMPLEX */
518538

519539
#endif /* !_NPY_MATH_PRIVATE_H_ */

0 commit comments

Comments
 (0)