7000491: assert(false) failed: should be optimized out in SharedRuntime::g1_wb_pre
Summary: Wrong value type is used for NULL store when clearing the detail message of the preallocated exception object.
Reviewed-by: never, iveresov
--- a/hotspot/src/share/vm/opto/graphKit.cpp Tue Nov 16 15:57:16 2010 -0800
+++ b/hotspot/src/share/vm/opto/graphKit.cpp Thu Nov 18 09:52:48 2010 -0800
@@ -569,7 +569,8 @@
const TypePtr* adr_typ = ex_con->add_offset(offset);
Node *adr = basic_plus_adr(ex_node, ex_node, offset);
- Node *store = store_oop_to_object(control(), ex_node, adr, adr_typ, null(), ex_con, T_OBJECT);
+ const TypeOopPtr* val_type = TypeOopPtr::make_from_klass(env()->String_klass());
+ Node *store = store_oop_to_object(control(), ex_node, adr, adr_typ, null(), val_type, T_OBJECT);
add_exception_state(make_exception_state(ex_node));
return;