src/share/vm/opto/memnode.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File hotspot Cdiff src/share/vm/opto/memnode.hpp

src/share/vm/opto/memnode.hpp

Print this page
rev 7259 : 8062258: compiler/debug/TraceIterativeGVN.java segfaults in trace_PhaseIterGVN
Reviewed-by: ?

*** 720,730 **** enum {SCMEMPROJCON = (uint)-2}; SCMemProjNode( Node *src) : ProjNode( src, SCMEMPROJCON) { } 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 uint ideal_reg() const { return 0;} // memory projections don't have a register virtual const Type *Value( PhaseTransform *phase ) const; #ifndef PRODUCT virtual void dump_spec(outputStream *st) const {}; #endif --- 720,734 ---- enum {SCMEMPROJCON = (uint)-2}; SCMemProjNode( Node *src) : ProjNode( src, SCMEMPROJCON) { } 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 { ! 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 virtual void dump_spec(outputStream *st) const {}; #endif
src/share/vm/opto/memnode.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File