diff -r e27564cd10e3 -r 08a5148e7c4e src/hotspot/share/gc/shenandoah/c2/shenandoahBarrierSetC2.cpp --- a/src/hotspot/share/gc/shenandoah/c2/shenandoahBarrierSetC2.cpp Mon Sep 23 14:39:11 2019 -0400 +++ b/src/hotspot/share/gc/shenandoah/c2/shenandoahBarrierSetC2.cpp Mon Sep 23 14:49:04 2019 -0400 @@ -754,7 +754,7 @@ } bool ShenandoahBarrierSetC2::array_copy_requires_gc_barriers(bool tightly_coupled_alloc, BasicType type, bool is_clone, ArrayCopyPhase phase) const { - bool is_oop = type == T_OBJECT || type == T_ARRAY; + bool is_oop = is_reference_type(type); if (!is_oop) { return false; } @@ -787,7 +787,7 @@ } } else if (src_type->isa_aryptr()) { BasicType src_elem = src_type->klass()->as_array_klass()->element_type()->basic_type(); - if (src_elem == T_OBJECT || src_elem == T_ARRAY) { + if (is_reference_type(src_elem)) { return true; } } else {