diff options
Diffstat (limited to 'libre/java8-openjdk/JVM_fastdebug_build_compiled_with_GCC_5_asserts_with_widen_increases.patch')
-rw-r--r-- | libre/java8-openjdk/JVM_fastdebug_build_compiled_with_GCC_5_asserts_with_widen_increases.patch | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/libre/java8-openjdk/JVM_fastdebug_build_compiled_with_GCC_5_asserts_with_widen_increases.patch b/libre/java8-openjdk/JVM_fastdebug_build_compiled_with_GCC_5_asserts_with_widen_increases.patch new file mode 100644 index 000000000..f6bd4ae98 --- /dev/null +++ b/libre/java8-openjdk/JVM_fastdebug_build_compiled_with_GCC_5_asserts_with_widen_increases.patch @@ -0,0 +1,46 @@ + +# HG changeset patch +# User sgehwolf +# Date 1430335428 25200 +# Node ID 2a55e4998f0d28c7003a8a0f43d2c7602d89f54b +# Parent cd8fe1a9205aedb6b5a1fc16e664412e48aee565 +8078666: JVM fastdebug build compiled with GCC 5 asserts with "widen increases" +Summary: do the math on the unsigned type where overflows are well defined +Reviewed-by: kvn, aph + +diff -r cd8fe1a9205a -r 2a55e4998f0d src/share/vm/opto/type.cpp +--- a/src/share/vm/opto/type.cpp Wed Jun 10 20:15:29 2015 -0400 ++++ b/src/share/vm/opto/type.cpp Wed Apr 29 12:23:48 2015 -0700 +@@ -1180,11 +1180,11 @@ + // Certain normalizations keep us sane when comparing types. + // The 'SMALLINT' covers constants and also CC and its relatives. + if (lo <= hi) { +- if ((juint)(hi - lo) <= SMALLINT) w = Type::WidenMin; +- if ((juint)(hi - lo) >= max_juint) w = Type::WidenMax; // TypeInt::INT ++ if (((juint)hi - lo) <= SMALLINT) w = Type::WidenMin; ++ if (((juint)hi - lo) >= max_juint) w = Type::WidenMax; // TypeInt::INT + } else { +- if ((juint)(lo - hi) <= SMALLINT) w = Type::WidenMin; +- if ((juint)(lo - hi) >= max_juint) w = Type::WidenMin; // dual TypeInt::INT ++ if (((juint)lo - hi) <= SMALLINT) w = Type::WidenMin; ++ if (((juint)lo - hi) >= max_juint) w = Type::WidenMin; // dual TypeInt::INT + } + return w; + } +@@ -1438,11 +1438,11 @@ + // Certain normalizations keep us sane when comparing types. + // The 'SMALLINT' covers constants. + if (lo <= hi) { +- if ((julong)(hi - lo) <= SMALLINT) w = Type::WidenMin; +- if ((julong)(hi - lo) >= max_julong) w = Type::WidenMax; // TypeLong::LONG ++ if (((julong)hi - lo) <= SMALLINT) w = Type::WidenMin; ++ if (((julong)hi - lo) >= max_julong) w = Type::WidenMax; // TypeLong::LONG + } else { +- if ((julong)(lo - hi) <= SMALLINT) w = Type::WidenMin; +- if ((julong)(lo - hi) >= max_julong) w = Type::WidenMin; // dual TypeLong::LONG ++ if (((julong)lo - hi) <= SMALLINT) w = Type::WidenMin; ++ if (((julong)lo - hi) >= max_julong) w = Type::WidenMin; // dual TypeLong::LONG + } + return w; + } + |