Re: (M) RFR: 8200167: Validate more special case invocations

2018-04-27 Thread Tobias Hartmann
Hi David, On 27.04.2018 00:04, David Holmes wrote: >> src/hotspot/share/c1/c1_Canonicalizer.cpp >> ... >>   void Canonicalizer::do_CheckCast  (CheckCast*   x) { >> -  if (x->klass()->is_loaded()) { >> +  if (x->klass()->is_loaded() && !x->is_invokespecial_receiver_check()) >> >> It seems

Re: (M) RFR: 8200167: Validate more special case invocations

2018-04-26 Thread David Holmes
Thanks Karen! Once my re-testing has completed I'll look at pushing this. David On 27/04/2018 7:21 AM, Karen Kinnear wrote: Looks good! Thank you so much David and Vladimir for all the work to cover the corner cases. thanks, Karen On Apr 26, 2018, at 12:12 AM, David Holmes

Re: (M) RFR: 8200167: Validate more special case invocations

2018-04-26 Thread David Holmes
Hi Vladimir, On 27/04/2018 7:07 AM, Vladimir Ivanov wrote: David, thanks for taking care of the bug! Thanks for all the help! src/hotspot/share/c1/c1_Canonicalizer.cpp ...  void Canonicalizer::do_CheckCast  (CheckCast*   x) { -  if (x->klass()->is_loaded()) { +  if

Re: (M) RFR: 8200167: Validate more special case invocations

2018-04-26 Thread Karen Kinnear
Looks good! Thank you so much David and Vladimir for all the work to cover the corner cases. thanks, Karen > On Apr 26, 2018, at 12:12 AM, David Holmes wrote: > > Revised webrev: http://cr.openjdk.java.net/~dholmes/8200167/webrev.v2/ > > Karen formulated an

Re: (M) RFR: 8200167: Validate more special case invocations

2018-04-26 Thread Vladimir Ivanov
David, thanks for taking care of the bug! src/hotspot/share/c1/c1_Canonicalizer.cpp ... void Canonicalizer::do_CheckCast (CheckCast* x) { - if (x->klass()->is_loaded()) { + if (x->klass()->is_loaded() && !x->is_invokespecial_receiver_check()) It seems like it's not something

Re: (M) RFR: 8200167: Validate more special case invocations

2018-04-25 Thread David Holmes
Revised webrev: http://cr.openjdk.java.net/~dholmes/8200167/webrev.v2/ Karen formulated an additional test scenario invoking Object methods through an interface reference, which when turned into a new testcase demonstrated that the receiver typecheck was also missing in that case for

(M) RFR: 8200167: Validate more special case invocations

2018-04-17 Thread David Holmes
Bug: https://bugs.openjdk.java.net/browse/JDK-8200167 webrev: http://cr.openjdk.java.net/~dholmes/8200167/webrev/ Credit to John Rose and Vladimir Ivanov for the form of the MH fix; and to Tobias Hartmann for the C1 fix. Their help was very much appreciated (and needed!). tl;dr version: