OpenJDK / jdk / jdk
changeset 59087:8b9c4a988ab6
Merge
author | coleenp |
---|---|
date | Thu, 30 Apr 2020 06:15:34 -0400 |
parents | 258e2f77ed2f f11d64213575 |
children | d78d27b7009b |
files | |
diffstat | 1 files changed, 16 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/hotspot/share/opto/subtypenode.cpp Thu Apr 30 06:05:53 2020 -0400 +++ b/src/hotspot/share/opto/subtypenode.cpp Thu Apr 30 06:15:34 2020 -0400 @@ -134,7 +134,14 @@ 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 @@ // 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; }