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
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
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
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
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
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
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: