changeset 23747:4da0ab22649c

8157758: JDK9 does not compile on Linux with GCC 6.1 because left-shifting a negative number has undefined behavior Summary: Replace shifts of -1 with shifts of ~0u. Reviewed-by: kbarrett, mockner Contributed-by: alexhenrie24@gmail.com
author kbarrett
date Thu, 23 Jun 2016 16:46:41 -0400
parents 0dceb4846c8c
children 3e551611f1fc
files src/share/vm/code/dependencies.hpp src/share/vm/oops/cpCache.hpp
diffstat 2 files changed, 2 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/share/vm/code/dependencies.hpp	Fri Aug 26 13:37:53 2016 -0700
+++ b/src/share/vm/code/dependencies.hpp	Thu Jun 23 16:46:41 2016 -0400
@@ -166,7 +166,7 @@
     LG2_TYPE_LIMIT = 4,  // assert(TYPE_LIMIT <= (1<<LG2_TYPE_LIMIT))
 
     // handy categorizations of dependency types:
-    all_types           = ((1 << TYPE_LIMIT) - 1) & ((-1) << FIRST_TYPE),
+    all_types           = ((1 << TYPE_LIMIT) - 1) & ((~0u) << FIRST_TYPE),
 
     non_klass_types     = (1 << call_site_target_value),
     klass_types         = all_types & ~non_klass_types,
--- a/src/share/vm/oops/cpCache.hpp	Fri Aug 26 13:37:53 2016 -0700
+++ b/src/share/vm/oops/cpCache.hpp	Thu Jun 23 16:46:41 2016 -0400
@@ -192,7 +192,7 @@
     field_index_mask           = right_n_bits(field_index_bits),
     parameter_size_bits        = 8,  // subset of field_index_mask, range is 0..255
     parameter_size_mask        = right_n_bits(parameter_size_bits),
-    option_bits_mask           = ~(((-1) << tos_state_shift) | (field_index_mask | parameter_size_mask))
+    option_bits_mask           = ~(((~0u) << tos_state_shift) | (field_index_mask | parameter_size_mask))
   };
 
   // specific bit definitions for the indices field: