This commit is contained in:
Coleen Phillimore 2020-04-30 06:15:34 -04:00
commit 5b86c4aa68

@ -134,7 +134,14 @@ Node *SubTypeCheckNode::Ideal(PhaseGVN *phase, bool can_reshape) {
intptr_t con = 0;
Node* obj = AddPNode::Ideal_base_and_offset(addr, phase, con);
if (con == oopDesc::klass_offset_in_bytes() && obj != NULL) {
assert(phase->type(obj)->isa_oopptr(), "only for oop input");
#ifdef ASSERT
const Type* obj_t = phase->type(obj);
if (!obj_t->isa_oopptr() && obj_t != Type::TOP) {
obj->dump();
obj_t->dump(); tty->cr();
fatal("only for oop input");
}
#endif
set_req(ObjOrSubKlass, obj);
return this;
}
@ -143,7 +150,14 @@ Node *SubTypeCheckNode::Ideal(PhaseGVN *phase, bool can_reshape) {
// AllocateNode might have more accurate klass input
Node* allocated_klass = AllocateNode::Ideal_klass(obj_or_subklass, phase);
if (allocated_klass != NULL) {
assert(phase->type(obj_or_subklass)->isa_oopptr(), "only for oop input");
#ifdef ASSERT
const Type* obj_or_subklass_t = phase->type(obj_or_subklass);
if (!obj_or_subklass_t->isa_oopptr() && obj_or_subklass_t != Type::TOP) {
obj_or_subklass->dump();
obj_or_subklass_t->dump(); tty->cr();
fatal("only for oop input");
}
#endif
set_req(ObjOrSubKlass, allocated_klass);
return this;
}