--- old/src/share/vm/opto/addnode.cpp 2017-02-13 17:39:01.135392585 +0100 +++ new/src/share/vm/opto/addnode.cpp 2017-02-13 17:39:01.051392589 +0100 @@ -681,11 +681,11 @@ if (p2->is_con()) { // Left input is an add of a constant? p2offset = p2->get_con(); } - if (t1->isa_aryptr()) { + if (p1->isa_aryptr()) { // In the case of a flattened value type array, each field has its // own slice so we need to extract the field being accessed from // the address computation - return t1->is_aryptr()->with_field_offset_and_offset(p2offset); + return p1->is_aryptr()->with_field_offset_and_offset(p2offset); } return p1->add_offset(p2offset); }