[8] RFR: Fix Windows build after LRB backports

Aleksey Shipilev shade at redhat.com
Wed Oct 23 19:07:28 UTC 2019


Current sh/jdk8 build fails on Windows with:

...windows\worker\shenandoah-jdk8-windows\build\hotspot\src\share\vm\gc_implementation\shenandoah\shenandoahRuntime.cpp(32)
: error C2220: warning treated as error - no 'object' file generated

Fix:

diff -r 04fce1bceb31 src/share/vm/gc_implementation/shenandoah/shenandoahRuntime.cpp
--- a/src/share/vm/gc_implementation/shenandoah/shenandoahRuntime.cpp   Wed May 22 10:11:04 2019 +0200
+++ b/src/share/vm/gc_implementation/shenandoah/shenandoahRuntime.cpp   Wed Oct 23 20:57:12 2019 +0200
@@ -27,16 +27,18 @@
 #include "runtime/interfaceSupport.hpp"
 #include "oops/oop.inline.hpp"

 void ShenandoahRuntime::write_ref_array_pre_oop_entry(oop* dst, size_t length) {
   ShenandoahBarrierSet *bs = ShenandoahBarrierSet::barrier_set();
-  bs->write_ref_array_pre(dst, length, false);
+  assert(length <= INT_MAX, err_msg("sanity: " SIZE_FORMAT, length));
+  bs->write_ref_array_pre(dst, (int)length, false);
 }

 void ShenandoahRuntime::write_ref_array_pre_narrow_oop_entry(narrowOop* dst, size_t length) {
   ShenandoahBarrierSet *bs = ShenandoahBarrierSet::barrier_set();
-  bs->write_ref_array_pre(dst, length, false);
+  assert(length <= INT_MAX, err_msg("sanity: " SIZE_FORMAT, length));
+  bs->write_ref_array_pre(dst, (int)length, false);
 }

 void ShenandoahRuntime::write_ref_array_post_entry(HeapWord* dst, size_t length) {
   ShenandoahBarrierSet *bs = ShenandoahBarrierSet::barrier_set();
   bs->ShenandoahBarrierSet::write_ref_array(dst, length);


Testing: build (Linux, Windows); hotspot_gc_shenandoah (Linux)

-- 
Thanks,
-Aleksey



More information about the shenandoah-dev mailing list