8036898: assert(t != NULL) failed: must set before get
authoranoll
Thu, 10 Apr 2014 09:26:24 +0200
changeset 24001 d0eea05381dd
parent 23849 b826a16346da
child 24002 4e6a72032a99
8036898: assert(t != NULL) failed: must set before get Summary: Ignore nodes without a type when checking for speculative types in Compile::remove_speculative_types(...). Reviewed-by: kvn, roland Contributed-by: Tobias Hartmann <tobias.hartmann@oracle.com>
hotspot/src/share/vm/opto/compile.cpp
--- a/hotspot/src/share/vm/opto/compile.cpp	Wed Apr 09 19:45:59 2014 +0000
+++ b/hotspot/src/share/vm/opto/compile.cpp	Thu Apr 10 09:26:24 2014 +0200
@@ -4048,8 +4048,8 @@
     worklist.push(root());
     for (uint next = 0; next < worklist.size(); ++next) {
       Node *n  = worklist.at(next);
-      const Type* t = igvn.type(n);
-      assert(t == t->remove_speculative(), "no more speculative types");
+      const Type* t = igvn.type_or_null(n);
+      assert((t == NULL) || (t == t->remove_speculative()), "no more speculative types");
       if (n->is_Type()) {
         t = n->as_Type()->type();
         assert(t == t->remove_speculative(), "no more speculative types");