From e9e7a5e601bb6c2794094c871f150e04b5d135da Mon Sep 17 00:00:00 2001 From: gziemski Date: Tue, 24 May 2016 12:42:43 -0500 Subject: [PATCH] 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 --- src/share/vm/oops/klass.hpp | 3 ++- src/share/vm/opto/library_call.cpp | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/share/vm/oops/klass.hpp b/src/share/vm/oops/klass.hpp index 9f612c3e7..df018923c 100644 --- a/src/share/vm/oops/klass.hpp +++ b/src/share/vm/oops/klass.hpp @@ -335,10 +335,11 @@ protected: _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; diff --git a/src/share/vm/opto/library_call.cpp b/src/share/vm/opto/library_call.cpp index db36fb349..4bb5ca886 100644 --- a/src/share/vm/opto/library_call.cpp +++ b/src/share/vm/opto/library_call.cpp @@ -3803,7 +3803,7 @@ Node* LibraryCallKit::generate_array_guard_common(Node* kls, RegionNode* region, } // 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(C) CmpINode(layout_val, intcon(nval))); -- GitLab