# HG changeset patch # User never # Date 1283214455 25200 # Node ID 02f0a9b6f654b36c9f3f1020cce9cb8f6914259b # Parent 114e6b93e9e140cbd50b7a27cad56e3bc0b1711f 6969586: OptimizeStringConcat: SIGSEGV in LoadNode::Value() Reviewed-by: kvn diff -r 114e6b93e9e1 -r 02f0a9b6f654 src/share/vm/opto/memnode.cpp --- a/src/share/vm/opto/memnode.cpp Mon Aug 30 11:02:53 2010 -0700 +++ b/src/share/vm/opto/memnode.cpp Mon Aug 30 17:27:35 2010 -0700 @@ -1547,8 +1547,8 @@ adr->is_AddP() && off != Type::OffsetBot) { // For constant Strings treat the fields as compile time constants. Node* base = adr->in(AddPNode::Base); - if (base->Opcode() == Op_ConP) { - const TypeOopPtr* t = phase->type(base)->isa_oopptr(); + const TypeOopPtr* t = phase->type(base)->isa_oopptr(); + if (t != NULL && t->singleton()) { ciObject* string = t->const_oop(); ciConstant constant = string->as_instance()->field_value_by_offset(off); if (constant.basic_type() == T_INT) {