summaryrefslogtreecommitdiff
path: root/libre/java8-openjdk/JVM_fastdebug_build_compiled_with_GCC_5_asserts_with_widen_increases.patch
diff options
context:
space:
mode:
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.patch46
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;
+ }
+