diff -r c6e0ac3339ac -r ae60f551e5c8 hotspot/src/share/vm/opto/memnode.hpp --- a/hotspot/src/share/vm/opto/memnode.hpp Mon Nov 17 12:57:49 2014 +0300 +++ b/hotspot/src/share/vm/opto/memnode.hpp Mon Nov 17 14:02:45 2014 -0800 @@ -730,7 +730,11 @@ virtual int Opcode() const; virtual bool is_CFG() const { return false; } virtual const Type *bottom_type() const {return Type::MEMORY;} - virtual const TypePtr *adr_type() const { return in(0)->in(MemNode::Memory)->adr_type();} + virtual const TypePtr *adr_type() const { + Node* ctrl = in(0); + if (ctrl == NULL) return NULL; // node is dead + return ctrl->in(MemNode::Memory)->adr_type(); + } virtual uint ideal_reg() const { return 0;} // memory projections don't have a register virtual const Type *Value( PhaseTransform *phase ) const; #ifndef PRODUCT