hotspot/src/share/vm/opto/superword.cpp
changeset 4428 d1617f46285d
parent 3906 6767b0c66883
child 5547 f4b087cbb361
--- a/hotspot/src/share/vm/opto/superword.cpp	Thu Oct 29 16:57:55 2009 -0700
+++ b/hotspot/src/share/vm/opto/superword.cpp	Fri Oct 30 10:12:52 2009 -0700
@@ -1921,6 +1921,11 @@
   }
   // Match AddP(base, AddP(ptr, k*iv [+ invariant]), constant)
   Node* base = adr->in(AddPNode::Base);
+  //unsafe reference could not be aligned appropriately without runtime checking
+  if (base == NULL || base->bottom_type() == Type::TOP) {
+    assert(!valid(), "unsafe access");
+    return;
+  }
   for (int i = 0; i < 3; i++) {
     if (!scaled_iv_plus_offset(adr->in(AddPNode::Offset))) {
       assert(!valid(), "too complex");