1*795d594fSAndroid Build Coastguard Worker /* 2*795d594fSAndroid Build Coastguard Worker * Copyright (C) 2020 The Android Open Source Project 3*795d594fSAndroid Build Coastguard Worker * 4*795d594fSAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License"); 5*795d594fSAndroid Build Coastguard Worker * you may not use this file except in compliance with the License. 6*795d594fSAndroid Build Coastguard Worker * You may obtain a copy of the License at 7*795d594fSAndroid Build Coastguard Worker * 8*795d594fSAndroid Build Coastguard Worker * http://www.apache.org/licenses/LICENSE-2.0 9*795d594fSAndroid Build Coastguard Worker * 10*795d594fSAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software 11*795d594fSAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS, 12*795d594fSAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*795d594fSAndroid Build Coastguard Worker * See the License for the specific language governing permissions and 14*795d594fSAndroid Build Coastguard Worker * limitations under the License. 15*795d594fSAndroid Build Coastguard Worker */ 16*795d594fSAndroid Build Coastguard Worker 17*795d594fSAndroid Build Coastguard Worker import java.lang.reflect.Method; 18*795d594fSAndroid Build Coastguard Worker 19*795d594fSAndroid Build Coastguard Worker // An interface with enough methods to trigger a conflict. 20*795d594fSAndroid Build Coastguard Worker interface Itf { method0a()21*795d594fSAndroid Build Coastguard Worker public void method0a(); method0b()22*795d594fSAndroid Build Coastguard Worker public void method0b(); method0c()23*795d594fSAndroid Build Coastguard Worker public void method0c(); method0d()24*795d594fSAndroid Build Coastguard Worker public void method0d(); method0e()25*795d594fSAndroid Build Coastguard Worker public void method0e(); method0f()26*795d594fSAndroid Build Coastguard Worker public void method0f(); method0g()27*795d594fSAndroid Build Coastguard Worker public void method0g(); method0h()28*795d594fSAndroid Build Coastguard Worker public void method0h(); method0i()29*795d594fSAndroid Build Coastguard Worker public void method0i(); method0j()30*795d594fSAndroid Build Coastguard Worker public void method0j(); method0k()31*795d594fSAndroid Build Coastguard Worker public void method0k(); method0l()32*795d594fSAndroid Build Coastguard Worker public void method0l(); method0m()33*795d594fSAndroid Build Coastguard Worker public void method0m(); method0n()34*795d594fSAndroid Build Coastguard Worker public void method0n(); method0o()35*795d594fSAndroid Build Coastguard Worker public void method0o(); method0p()36*795d594fSAndroid Build Coastguard Worker public void method0p(); method0q()37*795d594fSAndroid Build Coastguard Worker public void method0q(); method0r()38*795d594fSAndroid Build Coastguard Worker public void method0r(); method0s()39*795d594fSAndroid Build Coastguard Worker public void method0s(); method0t()40*795d594fSAndroid Build Coastguard Worker public void method0t(); method0u()41*795d594fSAndroid Build Coastguard Worker public void method0u(); method0v()42*795d594fSAndroid Build Coastguard Worker public void method0v(); method0w()43*795d594fSAndroid Build Coastguard Worker public void method0w(); method0x()44*795d594fSAndroid Build Coastguard Worker public void method0x(); method0y()45*795d594fSAndroid Build Coastguard Worker public void method0y(); method0z()46*795d594fSAndroid Build Coastguard Worker public void method0z(); method1a()47*795d594fSAndroid Build Coastguard Worker public void method1a(); method1b()48*795d594fSAndroid Build Coastguard Worker public void method1b(); method1c()49*795d594fSAndroid Build Coastguard Worker public void method1c(); method1d()50*795d594fSAndroid Build Coastguard Worker public void method1d(); method1e()51*795d594fSAndroid Build Coastguard Worker public void method1e(); method1f()52*795d594fSAndroid Build Coastguard Worker public void method1f(); method1g()53*795d594fSAndroid Build Coastguard Worker public void method1g(); method1h()54*795d594fSAndroid Build Coastguard Worker public void method1h(); method1i()55*795d594fSAndroid Build Coastguard Worker public void method1i(); method1j()56*795d594fSAndroid Build Coastguard Worker public void method1j(); method1k()57*795d594fSAndroid Build Coastguard Worker public void method1k(); method1l()58*795d594fSAndroid Build Coastguard Worker public void method1l(); method1m()59*795d594fSAndroid Build Coastguard Worker public void method1m(); method1n()60*795d594fSAndroid Build Coastguard Worker public void method1n(); method1o()61*795d594fSAndroid Build Coastguard Worker public void method1o(); method1p()62*795d594fSAndroid Build Coastguard Worker public void method1p(); method1q()63*795d594fSAndroid Build Coastguard Worker public void method1q(); method1r()64*795d594fSAndroid Build Coastguard Worker public void method1r(); method1s()65*795d594fSAndroid Build Coastguard Worker public void method1s(); method1t()66*795d594fSAndroid Build Coastguard Worker public void method1t(); method1u()67*795d594fSAndroid Build Coastguard Worker public void method1u(); method1v()68*795d594fSAndroid Build Coastguard Worker public void method1v(); method1w()69*795d594fSAndroid Build Coastguard Worker public void method1w(); method1x()70*795d594fSAndroid Build Coastguard Worker public void method1x(); method1y()71*795d594fSAndroid Build Coastguard Worker public void method1y(); method1z()72*795d594fSAndroid Build Coastguard Worker public void method1z(); method2a()73*795d594fSAndroid Build Coastguard Worker public void method2a(); method2b()74*795d594fSAndroid Build Coastguard Worker public void method2b(); method2c()75*795d594fSAndroid Build Coastguard Worker public void method2c(); method2d()76*795d594fSAndroid Build Coastguard Worker public void method2d(); method2e()77*795d594fSAndroid Build Coastguard Worker public void method2e(); method2f()78*795d594fSAndroid Build Coastguard Worker public void method2f(); method2g()79*795d594fSAndroid Build Coastguard Worker public void method2g(); method2h()80*795d594fSAndroid Build Coastguard Worker public void method2h(); method2i()81*795d594fSAndroid Build Coastguard Worker public void method2i(); method2j()82*795d594fSAndroid Build Coastguard Worker public void method2j(); method2k()83*795d594fSAndroid Build Coastguard Worker public void method2k(); method2l()84*795d594fSAndroid Build Coastguard Worker public void method2l(); method2m()85*795d594fSAndroid Build Coastguard Worker public void method2m(); method2n()86*795d594fSAndroid Build Coastguard Worker public void method2n(); method2o()87*795d594fSAndroid Build Coastguard Worker public void method2o(); method2p()88*795d594fSAndroid Build Coastguard Worker public void method2p(); method2q()89*795d594fSAndroid Build Coastguard Worker public void method2q(); method2r()90*795d594fSAndroid Build Coastguard Worker public void method2r(); method2s()91*795d594fSAndroid Build Coastguard Worker public void method2s(); method2t()92*795d594fSAndroid Build Coastguard Worker public void method2t(); method2u()93*795d594fSAndroid Build Coastguard Worker public void method2u(); method2v()94*795d594fSAndroid Build Coastguard Worker public void method2v(); method2w()95*795d594fSAndroid Build Coastguard Worker public void method2w(); method2x()96*795d594fSAndroid Build Coastguard Worker public void method2x(); method2y()97*795d594fSAndroid Build Coastguard Worker public void method2y(); method2z()98*795d594fSAndroid Build Coastguard Worker public void method2z(); 99*795d594fSAndroid Build Coastguard Worker } 100*795d594fSAndroid Build Coastguard Worker 101*795d594fSAndroid Build Coastguard Worker public class Main implements Itf { 102*795d594fSAndroid Build Coastguard Worker public static Itf main; main(String[] args)103*795d594fSAndroid Build Coastguard Worker public static void main(String[] args) throws Exception { 104*795d594fSAndroid Build Coastguard Worker System.loadLibrary(args[0]); 105*795d594fSAndroid Build Coastguard Worker ensureJitCompiled(Main.class, "$noinline$callInterfaceMethods"); 106*795d594fSAndroid Build Coastguard Worker $noinline$callInterfaceMethods(new Main()); 107*795d594fSAndroid Build Coastguard Worker } 108*795d594fSAndroid Build Coastguard Worker ensureJitCompiled(Class<?> cls, String name)109*795d594fSAndroid Build Coastguard Worker public static native void ensureJitCompiled(Class<?> cls, String name); 110*795d594fSAndroid Build Coastguard Worker $noinline$callInterfaceMethods(Itf itf)111*795d594fSAndroid Build Coastguard Worker public static void $noinline$callInterfaceMethods(Itf itf) { 112*795d594fSAndroid Build Coastguard Worker itf.method0a(); 113*795d594fSAndroid Build Coastguard Worker itf.method0b(); 114*795d594fSAndroid Build Coastguard Worker itf.method0c(); 115*795d594fSAndroid Build Coastguard Worker itf.method0d(); 116*795d594fSAndroid Build Coastguard Worker itf.method0e(); 117*795d594fSAndroid Build Coastguard Worker itf.method0f(); 118*795d594fSAndroid Build Coastguard Worker itf.method0g(); 119*795d594fSAndroid Build Coastguard Worker itf.method0h(); 120*795d594fSAndroid Build Coastguard Worker itf.method0i(); 121*795d594fSAndroid Build Coastguard Worker itf.method0j(); 122*795d594fSAndroid Build Coastguard Worker itf.method0k(); 123*795d594fSAndroid Build Coastguard Worker itf.method0l(); 124*795d594fSAndroid Build Coastguard Worker itf.method0m(); 125*795d594fSAndroid Build Coastguard Worker itf.method0n(); 126*795d594fSAndroid Build Coastguard Worker itf.method0o(); 127*795d594fSAndroid Build Coastguard Worker itf.method0p(); 128*795d594fSAndroid Build Coastguard Worker itf.method0q(); 129*795d594fSAndroid Build Coastguard Worker itf.method0r(); 130*795d594fSAndroid Build Coastguard Worker itf.method0s(); 131*795d594fSAndroid Build Coastguard Worker itf.method0t(); 132*795d594fSAndroid Build Coastguard Worker itf.method0u(); 133*795d594fSAndroid Build Coastguard Worker itf.method0v(); 134*795d594fSAndroid Build Coastguard Worker itf.method0w(); 135*795d594fSAndroid Build Coastguard Worker itf.method0x(); 136*795d594fSAndroid Build Coastguard Worker itf.method0y(); 137*795d594fSAndroid Build Coastguard Worker itf.method0z(); 138*795d594fSAndroid Build Coastguard Worker 139*795d594fSAndroid Build Coastguard Worker itf.method1a(); 140*795d594fSAndroid Build Coastguard Worker itf.method1b(); 141*795d594fSAndroid Build Coastguard Worker itf.method1c(); 142*795d594fSAndroid Build Coastguard Worker itf.method1d(); 143*795d594fSAndroid Build Coastguard Worker itf.method1e(); 144*795d594fSAndroid Build Coastguard Worker itf.method1f(); 145*795d594fSAndroid Build Coastguard Worker itf.method1g(); 146*795d594fSAndroid Build Coastguard Worker itf.method1h(); 147*795d594fSAndroid Build Coastguard Worker itf.method1i(); 148*795d594fSAndroid Build Coastguard Worker itf.method1j(); 149*795d594fSAndroid Build Coastguard Worker itf.method1k(); 150*795d594fSAndroid Build Coastguard Worker itf.method1l(); 151*795d594fSAndroid Build Coastguard Worker itf.method1m(); 152*795d594fSAndroid Build Coastguard Worker itf.method1n(); 153*795d594fSAndroid Build Coastguard Worker itf.method1o(); 154*795d594fSAndroid Build Coastguard Worker itf.method1p(); 155*795d594fSAndroid Build Coastguard Worker itf.method1q(); 156*795d594fSAndroid Build Coastguard Worker itf.method1r(); 157*795d594fSAndroid Build Coastguard Worker itf.method1s(); 158*795d594fSAndroid Build Coastguard Worker itf.method1t(); 159*795d594fSAndroid Build Coastguard Worker itf.method1u(); 160*795d594fSAndroid Build Coastguard Worker itf.method1v(); 161*795d594fSAndroid Build Coastguard Worker itf.method1w(); 162*795d594fSAndroid Build Coastguard Worker itf.method1x(); 163*795d594fSAndroid Build Coastguard Worker itf.method1y(); 164*795d594fSAndroid Build Coastguard Worker itf.method1z(); 165*795d594fSAndroid Build Coastguard Worker } 166*795d594fSAndroid Build Coastguard Worker method0a()167*795d594fSAndroid Build Coastguard Worker public void method0a() {} method0b()168*795d594fSAndroid Build Coastguard Worker public void method0b() {} method0c()169*795d594fSAndroid Build Coastguard Worker public void method0c() {} method0d()170*795d594fSAndroid Build Coastguard Worker public void method0d() {} method0e()171*795d594fSAndroid Build Coastguard Worker public void method0e() {} method0f()172*795d594fSAndroid Build Coastguard Worker public void method0f() {} method0g()173*795d594fSAndroid Build Coastguard Worker public void method0g() {} method0h()174*795d594fSAndroid Build Coastguard Worker public void method0h() {} method0i()175*795d594fSAndroid Build Coastguard Worker public void method0i() {} method0j()176*795d594fSAndroid Build Coastguard Worker public void method0j() {} method0k()177*795d594fSAndroid Build Coastguard Worker public void method0k() {} method0l()178*795d594fSAndroid Build Coastguard Worker public void method0l() {} method0m()179*795d594fSAndroid Build Coastguard Worker public void method0m() {} method0n()180*795d594fSAndroid Build Coastguard Worker public void method0n() {} method0o()181*795d594fSAndroid Build Coastguard Worker public void method0o() {} method0p()182*795d594fSAndroid Build Coastguard Worker public void method0p() {} method0q()183*795d594fSAndroid Build Coastguard Worker public void method0q() {} method0r()184*795d594fSAndroid Build Coastguard Worker public void method0r() {} method0s()185*795d594fSAndroid Build Coastguard Worker public void method0s() {} method0t()186*795d594fSAndroid Build Coastguard Worker public void method0t() {} method0u()187*795d594fSAndroid Build Coastguard Worker public void method0u() {} method0v()188*795d594fSAndroid Build Coastguard Worker public void method0v() {} method0w()189*795d594fSAndroid Build Coastguard Worker public void method0w() {} method0x()190*795d594fSAndroid Build Coastguard Worker public void method0x() {} method0y()191*795d594fSAndroid Build Coastguard Worker public void method0y() {} method0z()192*795d594fSAndroid Build Coastguard Worker public void method0z() {} method1a()193*795d594fSAndroid Build Coastguard Worker public void method1a() {} method1b()194*795d594fSAndroid Build Coastguard Worker public void method1b() {} method1c()195*795d594fSAndroid Build Coastguard Worker public void method1c() {} method1d()196*795d594fSAndroid Build Coastguard Worker public void method1d() {} method1e()197*795d594fSAndroid Build Coastguard Worker public void method1e() {} method1f()198*795d594fSAndroid Build Coastguard Worker public void method1f() {} method1g()199*795d594fSAndroid Build Coastguard Worker public void method1g() {} method1h()200*795d594fSAndroid Build Coastguard Worker public void method1h() {} method1i()201*795d594fSAndroid Build Coastguard Worker public void method1i() {} method1j()202*795d594fSAndroid Build Coastguard Worker public void method1j() {} method1k()203*795d594fSAndroid Build Coastguard Worker public void method1k() {} method1l()204*795d594fSAndroid Build Coastguard Worker public void method1l() {} method1m()205*795d594fSAndroid Build Coastguard Worker public void method1m() {} method1n()206*795d594fSAndroid Build Coastguard Worker public void method1n() {} method1o()207*795d594fSAndroid Build Coastguard Worker public void method1o() {} method1p()208*795d594fSAndroid Build Coastguard Worker public void method1p() {} method1q()209*795d594fSAndroid Build Coastguard Worker public void method1q() {} method1r()210*795d594fSAndroid Build Coastguard Worker public void method1r() {} method1s()211*795d594fSAndroid Build Coastguard Worker public void method1s() {} method1t()212*795d594fSAndroid Build Coastguard Worker public void method1t() {} method1u()213*795d594fSAndroid Build Coastguard Worker public void method1u() {} method1v()214*795d594fSAndroid Build Coastguard Worker public void method1v() {} method1w()215*795d594fSAndroid Build Coastguard Worker public void method1w() {} method1x()216*795d594fSAndroid Build Coastguard Worker public void method1x() {} method1y()217*795d594fSAndroid Build Coastguard Worker public void method1y() {} method1z()218*795d594fSAndroid Build Coastguard Worker public void method1z() {} method2a()219*795d594fSAndroid Build Coastguard Worker public void method2a() {} method2b()220*795d594fSAndroid Build Coastguard Worker public void method2b() {} method2c()221*795d594fSAndroid Build Coastguard Worker public void method2c() {} method2d()222*795d594fSAndroid Build Coastguard Worker public void method2d() {} method2e()223*795d594fSAndroid Build Coastguard Worker public void method2e() {} method2f()224*795d594fSAndroid Build Coastguard Worker public void method2f() {} method2g()225*795d594fSAndroid Build Coastguard Worker public void method2g() {} method2h()226*795d594fSAndroid Build Coastguard Worker public void method2h() {} method2i()227*795d594fSAndroid Build Coastguard Worker public void method2i() {} method2j()228*795d594fSAndroid Build Coastguard Worker public void method2j() {} method2k()229*795d594fSAndroid Build Coastguard Worker public void method2k() {} method2l()230*795d594fSAndroid Build Coastguard Worker public void method2l() {} method2m()231*795d594fSAndroid Build Coastguard Worker public void method2m() {} method2n()232*795d594fSAndroid Build Coastguard Worker public void method2n() {} method2o()233*795d594fSAndroid Build Coastguard Worker public void method2o() {} method2p()234*795d594fSAndroid Build Coastguard Worker public void method2p() {} method2q()235*795d594fSAndroid Build Coastguard Worker public void method2q() {} method2r()236*795d594fSAndroid Build Coastguard Worker public void method2r() {} method2s()237*795d594fSAndroid Build Coastguard Worker public void method2s() {} method2t()238*795d594fSAndroid Build Coastguard Worker public void method2t() {} method2u()239*795d594fSAndroid Build Coastguard Worker public void method2u() {} method2v()240*795d594fSAndroid Build Coastguard Worker public void method2v() {} method2w()241*795d594fSAndroid Build Coastguard Worker public void method2w() {} method2x()242*795d594fSAndroid Build Coastguard Worker public void method2x() {} method2y()243*795d594fSAndroid Build Coastguard Worker public void method2y() {} method2z()244*795d594fSAndroid Build Coastguard Worker public void method2z() {} 245*795d594fSAndroid Build Coastguard Worker } 246