diff src/share/vm/opto/macro.cpp @ 20452:f8afcfbdbf1c

8046698: assert(false) failed: only Initialize or AddP expected macro.cpp:943 Summary: PhiNode inserted between AllocateNode and Initialization node confuses allocation elimination Reviewed-by: kvn
author roland
date Sat, 02 Aug 2014 07:06:08 +0200
parents 62c54fcc0a35
children e7b3d177adda
line wrap: on
line diff
--- a/src/share/vm/opto/macro.cpp	Wed Sep 10 16:06:53 2014 -0700
+++ b/src/share/vm/opto/macro.cpp	Sat Aug 02 07:06:08 2014 +0200
@@ -699,6 +699,7 @@
   ciType* elem_type;
 
   Node* res = alloc->result_cast();
+  assert(res == NULL || res->is_CheckCastPP(), "unexpected AllocateNode result");
   const TypeOopPtr* res_type = NULL;
   if (res != NULL) { // Could be NULL when there are no users
     res_type = _igvn.type(res)->isa_oopptr();
@@ -1031,6 +1032,8 @@
     return false;
   }
 
+  assert(boxing->result_cast() == NULL, "unexpected boxing node result");
+
   extract_call_projections(boxing);
 
   const TypeTuple* r = boxing->tf()->range();