Date: Monday, June 29, 2015 @ 09:58:11 Author: guillaume Revision: 241389
Add hotspot_fix_memory_leak.diff to SVN Added: java7-openjdk/trunk/hotspot_fix_memory_leak.diff ------------------------------+ hotspot_fix_memory_leak.diff | 46 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) Added: hotspot_fix_memory_leak.diff =================================================================== --- hotspot_fix_memory_leak.diff (rev 0) +++ hotspot_fix_memory_leak.diff 2015-06-29 07:58:11 UTC (rev 241389) @@ -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 +--- openjdk/hotspot/src/share/vm/opto/type.cpp Wed Jun 10 20:15:29 2015 -0400 ++++ openjdk/hotspot/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; + } +