diff options
Diffstat (limited to 'modules/fdlibm/patches/16_use_safer_strict_assign_on_visual_studio.patch')
-rw-r--r-- | modules/fdlibm/patches/16_use_safer_strict_assign_on_visual_studio.patch | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/modules/fdlibm/patches/16_use_safer_strict_assign_on_visual_studio.patch b/modules/fdlibm/patches/16_use_safer_strict_assign_on_visual_studio.patch new file mode 100644 index 0000000000..9f834149c6 --- /dev/null +++ b/modules/fdlibm/patches/16_use_safer_strict_assign_on_visual_studio.patch @@ -0,0 +1,22 @@ +diff --git a/math_private.h b/math_private.h +--- a/math_private.h ++++ b/math_private.h +@@ -309,17 +309,17 @@ do { \ + /* The above works on non-i386 too, but we use this to check v. */ + #define LD80C(m, ex, v) { .e = (v), } + #endif + + #ifdef FLT_EVAL_METHOD + /* + * Attempt to get strict C99 semantics for assignment with non-C99 compilers. + */ +-#if FLT_EVAL_METHOD == 0 || __GNUC__ == 0 ++#if !defined(_MSC_VER) && (FLT_EVAL_METHOD == 0 || __GNUC__ == 0) + #define STRICT_ASSIGN(type, lval, rval) ((lval) = (rval)) + #else + #define STRICT_ASSIGN(type, lval, rval) do { \ + volatile type __lval; \ + \ + if (sizeof(type) >= sizeof(long double)) \ + (lval) = (rval); \ + else { \ |