/* * Copyright (C) 2022 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ public class Main { public static void main(String args[]) { Test227365246 test227365246 = new Test227365246(); test227365246.$noinline$mainTest(args); Test216608614 test216608614 = new Test216608614(); test216608614.$noinline$mainTest(args); Test216629762 test216629762 = new Test216629762(); test216629762.$noinline$mainTest(args); } } class Test227365246 { int N = 400; int iFld; void $noinline$mainTest(String[] strArr1) { int i17, i18 = 5788, i19, i21, i22 = 127, i23; byte[] byArr = new byte[N]; for (i17 = 14; 297 > i17; ++i17) for (int ax$2 = 151430; ax$2 < 235417; ax$2 += 2) {} try { for (i19 = 4; 179 > i19; ++i19) { i18 *= i18; for (i21 = 1; i21 < 58; i21++) for (i23 = i21; 1 + 400 > i23; i23++) { byArr[i23] -= i22; i18 += i23; switch (i19 % 5) { case 107: i19 >>= iFld; } } } } catch (ArrayIndexOutOfBoundsException exc1) { } System.out.println("i17 i18 b = " + i17 + "," + i18 + "," + 0); } } class Test216608614 { int N = 400; long lFld; double dFld; int iArrFld[]=new int[N]; void $noinline$mainTest(String[] strArr1) { // Note: The original bug report started with `l=-1213929899L` but this took // too long when running with interpreter without JIT and we want to allow // this test to run for all configurations. Starting with `l=-1000000L` was // enough to allow JIT to compile the method for OSR and trigger the bug on host. long l=-1000000L; int i19= 46, i20=100, i21, i22=13, i25; try { do for (; i19 < 172; ++i19) lFld = (long) dFld; while (++l < 146); for (i21 = 8;; ++i21) for (i25 = 1; i25 < 2; i25++) { i20 = i22 % 1650388388; i20 = iArrFld[i21]; i22 = 60; } } catch (ArrayIndexOutOfBoundsException exc1) { } finally { } System.out.println("l i19 i20 = " + l + "," + i19 + "," + i20); } } class Test216629762 { static int N = 400; int iFld=29275; volatile double dFld; static long lArrFld[][]=new long[N][N]; void $noinline$mainTest(String[] strArr1) { int i8, i10=181, i11, i12=-57574, i13=69, i15= 6, i16= 186, i17= 227; try { for (i11 = 6; i11 < 278 + 400; ++i11) i12 *= iFld; for (;; i13++) { i10 /= i10; i16 += i15; lArrFld[i13][i15] >>= 31616; for (i17 = 1; i17 < 1 + 400; i17++) dFld += dFld; } } catch (ArrayIndexOutOfBoundsException exc2) { i16 += i12; } System.out.println("i16 b i17 = " + i16 + "," + 0 + "," + i17); } }