16_use_safer_strict_assign_on_visual_studio.patch (696B)
1 diff --git a/math_private.h b/math_private.h 2 --- a/math_private.h 3 +++ b/math_private.h 4 @@ -309,17 +309,17 @@ do { \ 5 /* The above works on non-i386 too, but we use this to check v. */ 6 #define LD80C(m, ex, v) { .e = (v), } 7 #endif 8 9 #ifdef FLT_EVAL_METHOD 10 /* 11 * Attempt to get strict C99 semantics for assignment with non-C99 compilers. 12 */ 13 -#if FLT_EVAL_METHOD == 0 || __GNUC__ == 0 14 +#if !defined(_MSC_VER) && (FLT_EVAL_METHOD == 0 || __GNUC__ == 0) 15 #define STRICT_ASSIGN(type, lval, rval) ((lval) = (rval)) 16 #else 17 #define STRICT_ASSIGN(type, lval, rval) do { \ 18 volatile type __lval; \ 19 \ 20 if (sizeof(type) >= sizeof(long double)) \ 21 (lval) = (rval); \ 22 else { \