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;
   }