8152856: Xcode 7.3 -Wshift-negative-value compile failure on Mac OS X
authorgziemski
Tue, 24 May 2016 12:42:43 -0500 (2016-05-24)
changeset 38703 d3906fec707e
parent 38702 e83778acc88a
child 38704 eb96c446c3a5
child 38705 447351211aa7
8152856: Xcode 7.3 -Wshift-negative-value compile failure on Mac OS X Summary: Implement _lh_array_tag_type_value as const, not enum. Reviewed-by: vlivanov, minqi
hotspot/src/share/vm/oops/klass.hpp
hotspot/src/share/vm/opto/library_call.cpp
--- a/hotspot/src/share/vm/oops/klass.hpp	Tue May 24 13:39:18 2016 +0000
+++ b/hotspot/src/share/vm/oops/klass.hpp	Tue May 24 12:42:43 2016 -0500
@@ -309,10 +309,11 @@
     _lh_header_size_mask        = right_n_bits(BitsPerByte),  // shifted mask
     _lh_array_tag_bits          = 2,
     _lh_array_tag_shift         = BitsPerInt - _lh_array_tag_bits,
-    _lh_array_tag_type_value    = ~0x00,  // 0xC0000000 >> 30
     _lh_array_tag_obj_value     = ~0x01   // 0x80000000 >> 30
   };
 
+  static const unsigned int _lh_array_tag_type_value = 0Xffffffff; // ~0x00,  // 0xC0000000 >> 30
+
   static int layout_helper_size_in_bytes(jint lh) {
     assert(lh > (jint)_lh_neutral_value, "must be instance");
     return (int) lh & ~_lh_instance_slow_path_bit;
--- a/hotspot/src/share/vm/opto/library_call.cpp	Tue May 24 13:39:18 2016 +0000
+++ b/hotspot/src/share/vm/opto/library_call.cpp	Tue May 24 12:42:43 2016 -0500
@@ -3740,7 +3740,7 @@
   }
   // Now test the correct condition.
   jint  nval = (obj_array
-                ? ((jint)Klass::_lh_array_tag_type_value
+                ? (jint)(Klass::_lh_array_tag_type_value
                    <<    Klass::_lh_array_tag_shift)
                 : Klass::_lh_neutral_value);
   Node* cmp = _gvn.transform(new CmpINode(layout_val, intcon(nval)));