hotspot/src/share/vm/opto/memnode.cpp
changeset 22873 74aaad871363
parent 22872 b6902ee5bc8d
parent 22799 83e58bac7980
child 23210 3dd7a99b8173
--- a/hotspot/src/share/vm/opto/memnode.cpp	Tue Jan 28 12:25:34 2014 -0800
+++ b/hotspot/src/share/vm/opto/memnode.cpp	Tue Jan 28 12:28:17 2014 -0800
@@ -657,7 +657,7 @@
       // disregarding "null"-ness.
       // (We make an exception for TypeRawPtr::BOTTOM, which is a bit bucket.)
       const TypePtr* tp_notnull = tp->join(TypePtr::NOTNULL)->is_ptr();
-      assert(cross_check->meet(tp_notnull) == cross_check,
+      assert(cross_check->meet(tp_notnull) == cross_check->remove_speculative(),
              "real address must not escape from expected memory type");
     }
     #endif
@@ -1685,7 +1685,7 @@
       // t might actually be lower than _type, if _type is a unique
       // concrete subclass of abstract class t.
       if (off_beyond_header) {  // is the offset beyond the header?
-        const Type* jt = t->join(_type);
+        const Type* jt = t->join_speculative(_type);
         // In any case, do not allow the join, per se, to empty out the type.
         if (jt->empty() && !t->empty()) {
           // This can happen if a interface-typed array narrows to a class type.