< prev index next >

src/hotspot/share/opto/parseHelper.cpp

Print this page

        

*** 347,356 **** --- 347,367 ---- //------------------------------do_defaultvalue--------------------------------- void Parse::do_defaultvalue() { bool will_link; ciValueKlass* vk = iter().get_klass(will_link)->as_value_klass(); assert(will_link, "defaultvalue: typeflow responsibility"); + + // Should initialize, or throw an InstantiationError? + if (!vk->is_initialized() && !vk->is_being_initialized()) { + uncommon_trap(Deoptimization::Reason_uninitialized, + Deoptimization::Action_reinterpret, + vk); + return; + } else if (vk->is_being_initialized()) { + emit_guard_for_new(vk); + } + // Create and push a new default ValueTypeNode push(ValueTypeNode::make_default(_gvn, vk)); } //------------------------------do_withfield------------------------------------
< prev index next >