Commit 1ff5b4b9 authored by Colin Cross's avatar Colin Cross
Browse files

Don't use ACC_SUPER to select invoke-super

All modern Java compilers should set ACC_SUPER on all classes, but
ACC_SUPER is never set on interfaces.  Java 8 may contain method
implementations in interfaces through default or static methods.
Always use invoke-super to call methods on super classes instead
of gating on ACC_SUPER.

Fixes dex2oat verification issue with call to a super method in an
interface default method:
Soft verification failures in java.time.chrono.ChronoLocalDateTime java.time.chrono.ChronoLocalDateTime.minus(long, java.time.temporal.TemporalUnit)
java.time.chrono.ChronoLocalDateTime java.time.chrono.ChronoLocalDateTime.minus(long, java.time.temporal.TemporalUnit): [0x4] invoke type (METHOD_DIRECT) does not match method type of java.time.temporal.Temporal java.time.temporal.Temporal.mi

Test: m -j checkbuild, boots
Change-Id: Id327bbcc5f33b1315f53f57673da1d5b49a4de58
parent fb30f5f3
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment