Print this page
rev 6883 : 8057622: java/util/stream/test/org/openjdk/tests/java/util/stream/InfiniteStreamWithLimitOpTest: SEGV inside compiled code (sparc)
Summary: In Parse::array_store_check(), add control edge FROM IfTrue branch of runtime type check of the destination array TO loading _element_klass from destination array.
Reviewed-by: kvn, roland, anoll
Contributed-by: Zoltan Majo <zoltan.majo@oracle.com>

Split Split Close
Expand all
Collapse all
          --- old/hotspot/src/share/vm/opto/macro.cpp
          +++ new/hotspot/src/share/vm/opto/macro.cpp
↓ open down ↓ 2186 lines elided ↑ open up ↑
2187 2187      // fast_lock_region->in(1) is set to slow path.
2188 2188      fast_lock_mem_phi->init_req(1, mem);
2189 2189  
2190 2190      // Now check that the lock is biased to the current thread and has
2191 2191      // the same epoch and bias as Klass::_prototype_header.
2192 2192  
2193 2193      // Special-case a fresh allocation to avoid building nodes:
2194 2194      Node* klass_node = AllocateNode::Ideal_klass(obj, &_igvn);
2195 2195      if (klass_node == NULL) {
2196 2196        Node* k_adr = basic_plus_adr(obj, oopDesc::klass_offset_in_bytes());
2197      -      klass_node = transform_later( LoadKlassNode::make(_igvn, mem, k_adr, _igvn.type(k_adr)->is_ptr()) );
     2197 +      klass_node = transform_later(LoadKlassNode::make(_igvn, NULL, mem, k_adr, _igvn.type(k_adr)->is_ptr()));
2198 2198  #ifdef _LP64
2199 2199        if (UseCompressedClassPointers && klass_node->is_DecodeNKlass()) {
2200 2200          assert(klass_node->in(1)->Opcode() == Op_LoadNKlass, "sanity");
2201 2201          klass_node->in(1)->init_req(0, ctrl);
2202 2202        } else
2203 2203  #endif
2204 2204        klass_node->init_req(0, ctrl);
2205 2205      }
2206 2206      Node *proto_node = make_load(ctrl, mem, klass_node, in_bytes(Klass::prototype_header_offset()), TypeX_X, TypeX_X->basic_type());
2207 2207  
↓ open down ↓ 369 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX