177520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle/* 277520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle * Copyright (C) 2015 The Android Open Source Project 377520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle * 477520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle * Licensed under the Apache License, Version 2.0 (the "License"); 577520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle * you may not use this file except in compliance with the License. 677520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle * You may obtain a copy of the License at 777520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle * 877520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle * http://www.apache.org/licenses/LICENSE-2.0 977520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle * 1077520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle * Unless required by applicable law or agreed to in writing, software 1177520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle * distributed under the License is distributed on an "AS IS" BASIS, 1277520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1377520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle * See the License for the specific language governing permissions and 1477520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle * limitations under the License. 1577520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle */ 1677520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle 1777520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravlepublic class Main { 18953437bd51059801d92079295f728d0260efca31Vladimir Marko public static boolean doThrow = false; 1977520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle 20953437bd51059801d92079295f728d0260efca31Vladimir Marko private Object objectField; 21953437bd51059801d92079295f728d0260efca31Vladimir Marko private int intField; 22953437bd51059801d92079295f728d0260efca31Vladimir Marko private float floatField; 23953437bd51059801d92079295f728d0260efca31Vladimir Marko private long longField; 24953437bd51059801d92079295f728d0260efca31Vladimir Marko private double doubleField; 25953437bd51059801d92079295f728d0260efca31Vladimir Marko private byte byteField; 26953437bd51059801d92079295f728d0260efca31Vladimir Marko private boolean booleanField; 27953437bd51059801d92079295f728d0260efca31Vladimir Marko private char charField; 28953437bd51059801d92079295f728d0260efca31Vladimir Marko private short shortField; 29953437bd51059801d92079295f728d0260efca31Vladimir Marko 30953437bd51059801d92079295f728d0260efca31Vladimir Marko private volatile Object volatileObjectField; 31953437bd51059801d92079295f728d0260efca31Vladimir Marko private volatile int volatileIntField; 32953437bd51059801d92079295f728d0260efca31Vladimir Marko private volatile float volatileFloatField; 33953437bd51059801d92079295f728d0260efca31Vladimir Marko private volatile long volatileLongField; 34953437bd51059801d92079295f728d0260efca31Vladimir Marko private volatile double volatileDoubleField; 35953437bd51059801d92079295f728d0260efca31Vladimir Marko private volatile byte volatileByteField; 36953437bd51059801d92079295f728d0260efca31Vladimir Marko private volatile boolean volatileBooleanField; 37953437bd51059801d92079295f728d0260efca31Vladimir Marko private volatile char volatileCharField; 38953437bd51059801d92079295f728d0260efca31Vladimir Marko private volatile short volatileShortField; 39953437bd51059801d92079295f728d0260efca31Vladimir Marko 40953437bd51059801d92079295f728d0260efca31Vladimir Marko public static void $opt$noinline$setObjectField(Main m) { 41953437bd51059801d92079295f728d0260efca31Vladimir Marko if (doThrow) { throw new Error(); } 4277520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle m.objectField = null; 4377520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 4477520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle 45953437bd51059801d92079295f728d0260efca31Vladimir Marko public static void $opt$noinline$setIntField(Main m) { 46953437bd51059801d92079295f728d0260efca31Vladimir Marko if (doThrow) { throw new Error(); } 4777520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle m.intField = 0; 4877520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 4977520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle 50953437bd51059801d92079295f728d0260efca31Vladimir Marko public static void $opt$noinline$setFloatField(Main m) { 51953437bd51059801d92079295f728d0260efca31Vladimir Marko if (doThrow) { throw new Error(); } 5277520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle m.floatField = 0; 5377520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 5477520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle 55953437bd51059801d92079295f728d0260efca31Vladimir Marko public static void $opt$noinline$setLongField(Main m) { 56953437bd51059801d92079295f728d0260efca31Vladimir Marko if (doThrow) { throw new Error(); } 5777520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle m.longField = 0; 5877520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 5977520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle 60953437bd51059801d92079295f728d0260efca31Vladimir Marko public static void $opt$noinline$setDoubleField(Main m) { 61953437bd51059801d92079295f728d0260efca31Vladimir Marko if (doThrow) { throw new Error(); } 6277520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle m.doubleField = 0; 6377520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 6477520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle 65953437bd51059801d92079295f728d0260efca31Vladimir Marko public static void $opt$noinline$setByteField(Main m) { 66953437bd51059801d92079295f728d0260efca31Vladimir Marko if (doThrow) { throw new Error(); } 6777520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle m.byteField = 0; 6877520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 6977520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle 70953437bd51059801d92079295f728d0260efca31Vladimir Marko public static void $opt$noinline$setBooleanField(Main m) { 71953437bd51059801d92079295f728d0260efca31Vladimir Marko if (doThrow) { throw new Error(); } 7277520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle m.booleanField = false; 7377520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 7477520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle 75953437bd51059801d92079295f728d0260efca31Vladimir Marko public static void $opt$noinline$setCharField(Main m) { 76953437bd51059801d92079295f728d0260efca31Vladimir Marko if (doThrow) { throw new Error(); } 7777520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle m.charField = 0; 7877520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 7977520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle 80953437bd51059801d92079295f728d0260efca31Vladimir Marko public static void $opt$noinline$setShortField(Main m) { 81953437bd51059801d92079295f728d0260efca31Vladimir Marko if (doThrow) { throw new Error(); } 8277520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle m.shortField = 0; 8377520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 8477520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle 85953437bd51059801d92079295f728d0260efca31Vladimir Marko public static Object $opt$noinline$getObjectField(Main m) { 86953437bd51059801d92079295f728d0260efca31Vladimir Marko if (doThrow) { throw new Error(); } 8777520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle return m.objectField; 8877520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 8977520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle 90953437bd51059801d92079295f728d0260efca31Vladimir Marko public static int $opt$noinline$getIntField(Main m) { 91953437bd51059801d92079295f728d0260efca31Vladimir Marko if (doThrow) { throw new Error(); } 9277520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle return m.intField; 9377520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 9477520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle 95953437bd51059801d92079295f728d0260efca31Vladimir Marko public static float $opt$noinline$getFloatField(Main m) { 96953437bd51059801d92079295f728d0260efca31Vladimir Marko if (doThrow) { throw new Error(); } 9777520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle return m.floatField; 9877520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 9977520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle 100953437bd51059801d92079295f728d0260efca31Vladimir Marko public static long $opt$noinline$getLongField(Main m) { 101953437bd51059801d92079295f728d0260efca31Vladimir Marko if (doThrow) { throw new Error(); } 10277520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle return m.longField; 10377520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 10477520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle 105953437bd51059801d92079295f728d0260efca31Vladimir Marko public static double $opt$noinline$getDoubleField(Main m) { 106953437bd51059801d92079295f728d0260efca31Vladimir Marko if (doThrow) { throw new Error(); } 10777520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle return m.doubleField; 10877520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 10977520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle 110953437bd51059801d92079295f728d0260efca31Vladimir Marko public static byte $opt$noinline$getByteField(Main m) { 111953437bd51059801d92079295f728d0260efca31Vladimir Marko if (doThrow) { throw new Error(); } 11277520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle return m.byteField; 11377520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 11477520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle 115953437bd51059801d92079295f728d0260efca31Vladimir Marko public static boolean $opt$noinline$getBooleanField(Main m) { 116953437bd51059801d92079295f728d0260efca31Vladimir Marko if (doThrow) { throw new Error(); } 11777520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle return m.booleanField; 11877520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 11977520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle 120953437bd51059801d92079295f728d0260efca31Vladimir Marko public static char $opt$noinline$getCharField(Main m) { 121953437bd51059801d92079295f728d0260efca31Vladimir Marko if (doThrow) { throw new Error(); } 12277520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle return m.charField; 12377520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 12477520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle 125953437bd51059801d92079295f728d0260efca31Vladimir Marko public static short $opt$noinline$getShortField(Main m) { 126953437bd51059801d92079295f728d0260efca31Vladimir Marko if (doThrow) { throw new Error(); } 12777520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle return m.shortField; 12877520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 12977520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle 130953437bd51059801d92079295f728d0260efca31Vladimir Marko public static void $opt$noinline$setVolatileObjectField(Main m) { 131953437bd51059801d92079295f728d0260efca31Vladimir Marko if (doThrow) { throw new Error(); } 132953437bd51059801d92079295f728d0260efca31Vladimir Marko m.volatileObjectField = null; 133953437bd51059801d92079295f728d0260efca31Vladimir Marko } 134953437bd51059801d92079295f728d0260efca31Vladimir Marko 135953437bd51059801d92079295f728d0260efca31Vladimir Marko public static void $opt$noinline$setVolatileIntField(Main m) { 136953437bd51059801d92079295f728d0260efca31Vladimir Marko if (doThrow) { throw new Error(); } 137953437bd51059801d92079295f728d0260efca31Vladimir Marko m.volatileIntField = 0; 138953437bd51059801d92079295f728d0260efca31Vladimir Marko } 139953437bd51059801d92079295f728d0260efca31Vladimir Marko 140953437bd51059801d92079295f728d0260efca31Vladimir Marko public static void $opt$noinline$setVolatileFloatField(Main m) { 141953437bd51059801d92079295f728d0260efca31Vladimir Marko if (doThrow) { throw new Error(); } 142953437bd51059801d92079295f728d0260efca31Vladimir Marko m.volatileFloatField = 0; 143953437bd51059801d92079295f728d0260efca31Vladimir Marko } 144953437bd51059801d92079295f728d0260efca31Vladimir Marko 145953437bd51059801d92079295f728d0260efca31Vladimir Marko public static void $opt$noinline$setVolatileLongField(Main m) { 146953437bd51059801d92079295f728d0260efca31Vladimir Marko if (doThrow) { throw new Error(); } 147953437bd51059801d92079295f728d0260efca31Vladimir Marko m.volatileLongField = 0; 148953437bd51059801d92079295f728d0260efca31Vladimir Marko } 149953437bd51059801d92079295f728d0260efca31Vladimir Marko 150953437bd51059801d92079295f728d0260efca31Vladimir Marko public static void $opt$noinline$setVolatileDoubleField(Main m) { 151953437bd51059801d92079295f728d0260efca31Vladimir Marko if (doThrow) { throw new Error(); } 152953437bd51059801d92079295f728d0260efca31Vladimir Marko m.volatileDoubleField = 0; 153953437bd51059801d92079295f728d0260efca31Vladimir Marko } 154953437bd51059801d92079295f728d0260efca31Vladimir Marko 155953437bd51059801d92079295f728d0260efca31Vladimir Marko public static void $opt$noinline$setVolatileByteField(Main m) { 156953437bd51059801d92079295f728d0260efca31Vladimir Marko if (doThrow) { throw new Error(); } 157953437bd51059801d92079295f728d0260efca31Vladimir Marko m.volatileByteField = 0; 158953437bd51059801d92079295f728d0260efca31Vladimir Marko } 159953437bd51059801d92079295f728d0260efca31Vladimir Marko 160953437bd51059801d92079295f728d0260efca31Vladimir Marko public static void $opt$noinline$setVolatileBooleanField(Main m) { 161953437bd51059801d92079295f728d0260efca31Vladimir Marko if (doThrow) { throw new Error(); } 162953437bd51059801d92079295f728d0260efca31Vladimir Marko m.volatileBooleanField = false; 163953437bd51059801d92079295f728d0260efca31Vladimir Marko } 164953437bd51059801d92079295f728d0260efca31Vladimir Marko 165953437bd51059801d92079295f728d0260efca31Vladimir Marko public static void $opt$noinline$setVolatileCharField(Main m) { 166953437bd51059801d92079295f728d0260efca31Vladimir Marko if (doThrow) { throw new Error(); } 167953437bd51059801d92079295f728d0260efca31Vladimir Marko m.volatileCharField = 0; 168953437bd51059801d92079295f728d0260efca31Vladimir Marko } 169953437bd51059801d92079295f728d0260efca31Vladimir Marko 170953437bd51059801d92079295f728d0260efca31Vladimir Marko public static void $opt$noinline$setVolatileShortField(Main m) { 171953437bd51059801d92079295f728d0260efca31Vladimir Marko if (doThrow) { throw new Error(); } 172953437bd51059801d92079295f728d0260efca31Vladimir Marko m.volatileShortField = 0; 173953437bd51059801d92079295f728d0260efca31Vladimir Marko } 174953437bd51059801d92079295f728d0260efca31Vladimir Marko 175953437bd51059801d92079295f728d0260efca31Vladimir Marko public static Object $opt$noinline$getVolatileObjectField(Main m) { 176953437bd51059801d92079295f728d0260efca31Vladimir Marko if (doThrow) { throw new Error(); } 177953437bd51059801d92079295f728d0260efca31Vladimir Marko return m.volatileObjectField; 178953437bd51059801d92079295f728d0260efca31Vladimir Marko } 179953437bd51059801d92079295f728d0260efca31Vladimir Marko 180953437bd51059801d92079295f728d0260efca31Vladimir Marko public static int $opt$noinline$getVolatileIntField(Main m) { 181953437bd51059801d92079295f728d0260efca31Vladimir Marko if (doThrow) { throw new Error(); } 182953437bd51059801d92079295f728d0260efca31Vladimir Marko return m.volatileIntField; 183953437bd51059801d92079295f728d0260efca31Vladimir Marko } 184953437bd51059801d92079295f728d0260efca31Vladimir Marko 185953437bd51059801d92079295f728d0260efca31Vladimir Marko public static float $opt$noinline$getVolatileFloatField(Main m) { 186953437bd51059801d92079295f728d0260efca31Vladimir Marko if (doThrow) { throw new Error(); } 187953437bd51059801d92079295f728d0260efca31Vladimir Marko return m.volatileFloatField; 188953437bd51059801d92079295f728d0260efca31Vladimir Marko } 189953437bd51059801d92079295f728d0260efca31Vladimir Marko 190953437bd51059801d92079295f728d0260efca31Vladimir Marko public static long $opt$noinline$getVolatileLongField(Main m) { 191953437bd51059801d92079295f728d0260efca31Vladimir Marko if (doThrow) { throw new Error(); } 192953437bd51059801d92079295f728d0260efca31Vladimir Marko return m.volatileLongField; 193953437bd51059801d92079295f728d0260efca31Vladimir Marko } 194953437bd51059801d92079295f728d0260efca31Vladimir Marko 195953437bd51059801d92079295f728d0260efca31Vladimir Marko public static double $opt$noinline$getVolatileDoubleField(Main m) { 196953437bd51059801d92079295f728d0260efca31Vladimir Marko if (doThrow) { throw new Error(); } 197953437bd51059801d92079295f728d0260efca31Vladimir Marko return m.volatileDoubleField; 198953437bd51059801d92079295f728d0260efca31Vladimir Marko } 199953437bd51059801d92079295f728d0260efca31Vladimir Marko 200953437bd51059801d92079295f728d0260efca31Vladimir Marko public static byte $opt$noinline$getVolatileByteField(Main m) { 201953437bd51059801d92079295f728d0260efca31Vladimir Marko if (doThrow) { throw new Error(); } 202953437bd51059801d92079295f728d0260efca31Vladimir Marko return m.volatileByteField; 203953437bd51059801d92079295f728d0260efca31Vladimir Marko } 204953437bd51059801d92079295f728d0260efca31Vladimir Marko 205953437bd51059801d92079295f728d0260efca31Vladimir Marko public static boolean $opt$noinline$getVolatileBooleanField(Main m) { 206953437bd51059801d92079295f728d0260efca31Vladimir Marko if (doThrow) { throw new Error(); } 207953437bd51059801d92079295f728d0260efca31Vladimir Marko return m.volatileBooleanField; 208953437bd51059801d92079295f728d0260efca31Vladimir Marko } 209953437bd51059801d92079295f728d0260efca31Vladimir Marko 210953437bd51059801d92079295f728d0260efca31Vladimir Marko public static char $opt$noinline$getVolatileCharField(Main m) { 211953437bd51059801d92079295f728d0260efca31Vladimir Marko if (doThrow) { throw new Error(); } 212953437bd51059801d92079295f728d0260efca31Vladimir Marko return m.volatileCharField; 213953437bd51059801d92079295f728d0260efca31Vladimir Marko } 214953437bd51059801d92079295f728d0260efca31Vladimir Marko 215953437bd51059801d92079295f728d0260efca31Vladimir Marko public static short $opt$noinline$getVolatileShortField(Main m) { 216953437bd51059801d92079295f728d0260efca31Vladimir Marko if (doThrow) { throw new Error(); } 217953437bd51059801d92079295f728d0260efca31Vladimir Marko return m.volatileShortField; 218953437bd51059801d92079295f728d0260efca31Vladimir Marko } 219953437bd51059801d92079295f728d0260efca31Vladimir Marko 220953437bd51059801d92079295f728d0260efca31Vladimir Marko public static void $opt$noinline$setObjectElement(Object[] a) { 221953437bd51059801d92079295f728d0260efca31Vladimir Marko if (doThrow) { throw new Error(); } 222953437bd51059801d92079295f728d0260efca31Vladimir Marko a[0] = null; 223953437bd51059801d92079295f728d0260efca31Vladimir Marko } 224953437bd51059801d92079295f728d0260efca31Vladimir Marko 225953437bd51059801d92079295f728d0260efca31Vladimir Marko public static void $opt$noinline$setIntElement(int[] a) { 226953437bd51059801d92079295f728d0260efca31Vladimir Marko if (doThrow) { throw new Error(); } 227953437bd51059801d92079295f728d0260efca31Vladimir Marko a[0] = 0; 228953437bd51059801d92079295f728d0260efca31Vladimir Marko } 229953437bd51059801d92079295f728d0260efca31Vladimir Marko 230953437bd51059801d92079295f728d0260efca31Vladimir Marko public static void $opt$noinline$setFloatElement(float[] a) { 231953437bd51059801d92079295f728d0260efca31Vladimir Marko if (doThrow) { throw new Error(); } 232953437bd51059801d92079295f728d0260efca31Vladimir Marko a[0] = 0; 233953437bd51059801d92079295f728d0260efca31Vladimir Marko } 234953437bd51059801d92079295f728d0260efca31Vladimir Marko 235953437bd51059801d92079295f728d0260efca31Vladimir Marko public static void $opt$noinline$setLongElement(long[] a) { 236953437bd51059801d92079295f728d0260efca31Vladimir Marko if (doThrow) { throw new Error(); } 237953437bd51059801d92079295f728d0260efca31Vladimir Marko a[0] = 0; 238953437bd51059801d92079295f728d0260efca31Vladimir Marko } 239953437bd51059801d92079295f728d0260efca31Vladimir Marko 240953437bd51059801d92079295f728d0260efca31Vladimir Marko public static void $opt$noinline$setDoubleElement(double[] a) { 241953437bd51059801d92079295f728d0260efca31Vladimir Marko if (doThrow) { throw new Error(); } 242953437bd51059801d92079295f728d0260efca31Vladimir Marko a[0] = 0; 243953437bd51059801d92079295f728d0260efca31Vladimir Marko } 244953437bd51059801d92079295f728d0260efca31Vladimir Marko 245953437bd51059801d92079295f728d0260efca31Vladimir Marko public static void $opt$noinline$setByteElement(byte[] a) { 246953437bd51059801d92079295f728d0260efca31Vladimir Marko if (doThrow) { throw new Error(); } 247953437bd51059801d92079295f728d0260efca31Vladimir Marko a[0] = 0; 248953437bd51059801d92079295f728d0260efca31Vladimir Marko } 249953437bd51059801d92079295f728d0260efca31Vladimir Marko 250953437bd51059801d92079295f728d0260efca31Vladimir Marko public static void $opt$noinline$setBooleanElement(boolean[] a) { 251953437bd51059801d92079295f728d0260efca31Vladimir Marko if (doThrow) { throw new Error(); } 252953437bd51059801d92079295f728d0260efca31Vladimir Marko a[0] = false; 253953437bd51059801d92079295f728d0260efca31Vladimir Marko } 254953437bd51059801d92079295f728d0260efca31Vladimir Marko 255953437bd51059801d92079295f728d0260efca31Vladimir Marko public static void $opt$noinline$setCharElement(char[] a) { 256953437bd51059801d92079295f728d0260efca31Vladimir Marko if (doThrow) { throw new Error(); } 257953437bd51059801d92079295f728d0260efca31Vladimir Marko a[0] = 0; 258953437bd51059801d92079295f728d0260efca31Vladimir Marko } 259953437bd51059801d92079295f728d0260efca31Vladimir Marko 260953437bd51059801d92079295f728d0260efca31Vladimir Marko public static void $opt$noinline$setShortElement(short[] a) { 261953437bd51059801d92079295f728d0260efca31Vladimir Marko if (doThrow) { throw new Error(); } 262953437bd51059801d92079295f728d0260efca31Vladimir Marko a[0] = 0; 263953437bd51059801d92079295f728d0260efca31Vladimir Marko } 264953437bd51059801d92079295f728d0260efca31Vladimir Marko 265953437bd51059801d92079295f728d0260efca31Vladimir Marko public static Object $opt$noinline$getObjectElement(Object[] a) { 266953437bd51059801d92079295f728d0260efca31Vladimir Marko if (doThrow) { throw new Error(); } 267953437bd51059801d92079295f728d0260efca31Vladimir Marko return a[0]; 268953437bd51059801d92079295f728d0260efca31Vladimir Marko } 269953437bd51059801d92079295f728d0260efca31Vladimir Marko 270953437bd51059801d92079295f728d0260efca31Vladimir Marko public static int $opt$noinline$getIntElement(int[] a) { 271953437bd51059801d92079295f728d0260efca31Vladimir Marko if (doThrow) { throw new Error(); } 272953437bd51059801d92079295f728d0260efca31Vladimir Marko return a[0]; 273953437bd51059801d92079295f728d0260efca31Vladimir Marko } 274953437bd51059801d92079295f728d0260efca31Vladimir Marko 275953437bd51059801d92079295f728d0260efca31Vladimir Marko public static float $opt$noinline$getFloatElement(float[] a) { 276953437bd51059801d92079295f728d0260efca31Vladimir Marko if (doThrow) { throw new Error(); } 277953437bd51059801d92079295f728d0260efca31Vladimir Marko return a[0]; 278953437bd51059801d92079295f728d0260efca31Vladimir Marko } 279953437bd51059801d92079295f728d0260efca31Vladimir Marko 280953437bd51059801d92079295f728d0260efca31Vladimir Marko public static long $opt$noinline$getLongElement(long[] a) { 281953437bd51059801d92079295f728d0260efca31Vladimir Marko if (doThrow) { throw new Error(); } 282953437bd51059801d92079295f728d0260efca31Vladimir Marko return a[0]; 283953437bd51059801d92079295f728d0260efca31Vladimir Marko } 284953437bd51059801d92079295f728d0260efca31Vladimir Marko 285953437bd51059801d92079295f728d0260efca31Vladimir Marko public static double $opt$noinline$getDoubleElement(double[] a) { 286953437bd51059801d92079295f728d0260efca31Vladimir Marko if (doThrow) { throw new Error(); } 287953437bd51059801d92079295f728d0260efca31Vladimir Marko return a[0]; 288953437bd51059801d92079295f728d0260efca31Vladimir Marko } 289953437bd51059801d92079295f728d0260efca31Vladimir Marko 290953437bd51059801d92079295f728d0260efca31Vladimir Marko public static byte $opt$noinline$getByteElement(byte[] a) { 291953437bd51059801d92079295f728d0260efca31Vladimir Marko if (doThrow) { throw new Error(); } 292953437bd51059801d92079295f728d0260efca31Vladimir Marko return a[0]; 293953437bd51059801d92079295f728d0260efca31Vladimir Marko } 294953437bd51059801d92079295f728d0260efca31Vladimir Marko 295953437bd51059801d92079295f728d0260efca31Vladimir Marko public static boolean $opt$noinline$getBooleanElement(boolean[] a) { 296953437bd51059801d92079295f728d0260efca31Vladimir Marko if (doThrow) { throw new Error(); } 297953437bd51059801d92079295f728d0260efca31Vladimir Marko return a[0]; 298953437bd51059801d92079295f728d0260efca31Vladimir Marko } 299953437bd51059801d92079295f728d0260efca31Vladimir Marko 300953437bd51059801d92079295f728d0260efca31Vladimir Marko public static char $opt$noinline$getCharElement(char[] a) { 301953437bd51059801d92079295f728d0260efca31Vladimir Marko if (doThrow) { throw new Error(); } 302953437bd51059801d92079295f728d0260efca31Vladimir Marko return a[0]; 303953437bd51059801d92079295f728d0260efca31Vladimir Marko } 304953437bd51059801d92079295f728d0260efca31Vladimir Marko 305953437bd51059801d92079295f728d0260efca31Vladimir Marko public static short $opt$noinline$getShortElement(short[] a) { 306953437bd51059801d92079295f728d0260efca31Vladimir Marko if (doThrow) { throw new Error(); } 307953437bd51059801d92079295f728d0260efca31Vladimir Marko return a[0]; 308953437bd51059801d92079295f728d0260efca31Vladimir Marko } 309953437bd51059801d92079295f728d0260efca31Vladimir Marko 31077520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle public static void main(String[] args) { 311953437bd51059801d92079295f728d0260efca31Vladimir Marko int methodLine = 42; 312953437bd51059801d92079295f728d0260efca31Vladimir Marko int thisLine = 312; 313953437bd51059801d92079295f728d0260efca31Vladimir Marko try { 314953437bd51059801d92079295f728d0260efca31Vladimir Marko $opt$noinline$setObjectField(null); 315953437bd51059801d92079295f728d0260efca31Vladimir Marko throw new RuntimeException("Failed to throw NullPointerException."); 316953437bd51059801d92079295f728d0260efca31Vladimir Marko } catch (NullPointerException npe) { 317953437bd51059801d92079295f728d0260efca31Vladimir Marko check(npe, thisLine += 2, methodLine, "$opt$noinline$setObjectField"); 318953437bd51059801d92079295f728d0260efca31Vladimir Marko } 319953437bd51059801d92079295f728d0260efca31Vladimir Marko try { 320953437bd51059801d92079295f728d0260efca31Vladimir Marko $opt$noinline$setIntField(null); 321953437bd51059801d92079295f728d0260efca31Vladimir Marko throw new RuntimeException("Failed to throw NullPointerException."); 322953437bd51059801d92079295f728d0260efca31Vladimir Marko } catch (NullPointerException npe) { 323953437bd51059801d92079295f728d0260efca31Vladimir Marko check(npe, thisLine += 6, methodLine += 5, "$opt$noinline$setIntField"); 324953437bd51059801d92079295f728d0260efca31Vladimir Marko } 325953437bd51059801d92079295f728d0260efca31Vladimir Marko try { 326953437bd51059801d92079295f728d0260efca31Vladimir Marko $opt$noinline$setFloatField(null); 327953437bd51059801d92079295f728d0260efca31Vladimir Marko throw new RuntimeException("Failed to throw NullPointerException."); 328953437bd51059801d92079295f728d0260efca31Vladimir Marko } catch (NullPointerException npe) { 329953437bd51059801d92079295f728d0260efca31Vladimir Marko check(npe, thisLine += 6, methodLine += 5, "$opt$noinline$setFloatField"); 330953437bd51059801d92079295f728d0260efca31Vladimir Marko } 331953437bd51059801d92079295f728d0260efca31Vladimir Marko try { 332953437bd51059801d92079295f728d0260efca31Vladimir Marko $opt$noinline$setLongField(null); 333953437bd51059801d92079295f728d0260efca31Vladimir Marko throw new RuntimeException("Failed to throw NullPointerException."); 334953437bd51059801d92079295f728d0260efca31Vladimir Marko } catch (NullPointerException npe) { 335953437bd51059801d92079295f728d0260efca31Vladimir Marko check(npe, thisLine += 6, methodLine += 5, "$opt$noinline$setLongField"); 336953437bd51059801d92079295f728d0260efca31Vladimir Marko } 337953437bd51059801d92079295f728d0260efca31Vladimir Marko try { 338953437bd51059801d92079295f728d0260efca31Vladimir Marko $opt$noinline$setDoubleField(null); 339953437bd51059801d92079295f728d0260efca31Vladimir Marko throw new RuntimeException("Failed to throw NullPointerException."); 340953437bd51059801d92079295f728d0260efca31Vladimir Marko } catch (NullPointerException npe) { 341953437bd51059801d92079295f728d0260efca31Vladimir Marko check(npe, thisLine += 6, methodLine += 5, "$opt$noinline$setDoubleField"); 342953437bd51059801d92079295f728d0260efca31Vladimir Marko } 343953437bd51059801d92079295f728d0260efca31Vladimir Marko try { 344953437bd51059801d92079295f728d0260efca31Vladimir Marko $opt$noinline$setByteField(null); 345953437bd51059801d92079295f728d0260efca31Vladimir Marko throw new RuntimeException("Failed to throw NullPointerException."); 346953437bd51059801d92079295f728d0260efca31Vladimir Marko } catch (NullPointerException npe) { 347953437bd51059801d92079295f728d0260efca31Vladimir Marko check(npe, thisLine += 6, methodLine += 5, "$opt$noinline$setByteField"); 348953437bd51059801d92079295f728d0260efca31Vladimir Marko } 349953437bd51059801d92079295f728d0260efca31Vladimir Marko try { 350953437bd51059801d92079295f728d0260efca31Vladimir Marko $opt$noinline$setBooleanField(null); 351953437bd51059801d92079295f728d0260efca31Vladimir Marko throw new RuntimeException("Failed to throw NullPointerException."); 352953437bd51059801d92079295f728d0260efca31Vladimir Marko } catch (NullPointerException npe) { 353953437bd51059801d92079295f728d0260efca31Vladimir Marko check(npe, thisLine += 6, methodLine += 5, "$opt$noinline$setBooleanField"); 354953437bd51059801d92079295f728d0260efca31Vladimir Marko } 355953437bd51059801d92079295f728d0260efca31Vladimir Marko try { 356953437bd51059801d92079295f728d0260efca31Vladimir Marko $opt$noinline$setCharField(null); 357953437bd51059801d92079295f728d0260efca31Vladimir Marko throw new RuntimeException("Failed to throw NullPointerException."); 358953437bd51059801d92079295f728d0260efca31Vladimir Marko } catch (NullPointerException npe) { 359953437bd51059801d92079295f728d0260efca31Vladimir Marko check(npe, thisLine += 6, methodLine += 5, "$opt$noinline$setCharField"); 360953437bd51059801d92079295f728d0260efca31Vladimir Marko } 361953437bd51059801d92079295f728d0260efca31Vladimir Marko try { 362953437bd51059801d92079295f728d0260efca31Vladimir Marko $opt$noinline$setShortField(null); 363953437bd51059801d92079295f728d0260efca31Vladimir Marko throw new RuntimeException("Failed to throw NullPointerException."); 364953437bd51059801d92079295f728d0260efca31Vladimir Marko } catch (NullPointerException npe) { 365953437bd51059801d92079295f728d0260efca31Vladimir Marko check(npe, thisLine += 6, methodLine += 5, "$opt$noinline$setShortField"); 366953437bd51059801d92079295f728d0260efca31Vladimir Marko } 367953437bd51059801d92079295f728d0260efca31Vladimir Marko try { 368953437bd51059801d92079295f728d0260efca31Vladimir Marko $opt$noinline$getObjectField(null); 369953437bd51059801d92079295f728d0260efca31Vladimir Marko throw new RuntimeException("Failed to throw NullPointerException."); 370953437bd51059801d92079295f728d0260efca31Vladimir Marko } catch (NullPointerException npe) { 371953437bd51059801d92079295f728d0260efca31Vladimir Marko check(npe, thisLine += 6, methodLine += 5, "$opt$noinline$getObjectField"); 372953437bd51059801d92079295f728d0260efca31Vladimir Marko } 373953437bd51059801d92079295f728d0260efca31Vladimir Marko try { 374953437bd51059801d92079295f728d0260efca31Vladimir Marko $opt$noinline$getIntField(null); 375953437bd51059801d92079295f728d0260efca31Vladimir Marko throw new RuntimeException("Failed to throw NullPointerException."); 376953437bd51059801d92079295f728d0260efca31Vladimir Marko } catch (NullPointerException npe) { 377953437bd51059801d92079295f728d0260efca31Vladimir Marko check(npe, thisLine += 6, methodLine += 5, "$opt$noinline$getIntField"); 378953437bd51059801d92079295f728d0260efca31Vladimir Marko } 379953437bd51059801d92079295f728d0260efca31Vladimir Marko try { 380953437bd51059801d92079295f728d0260efca31Vladimir Marko $opt$noinline$getFloatField(null); 381953437bd51059801d92079295f728d0260efca31Vladimir Marko throw new RuntimeException("Failed to throw NullPointerException."); 382953437bd51059801d92079295f728d0260efca31Vladimir Marko } catch (NullPointerException npe) { 383953437bd51059801d92079295f728d0260efca31Vladimir Marko check(npe, thisLine += 6, methodLine += 5, "$opt$noinline$getFloatField"); 384953437bd51059801d92079295f728d0260efca31Vladimir Marko } 385953437bd51059801d92079295f728d0260efca31Vladimir Marko try { 386953437bd51059801d92079295f728d0260efca31Vladimir Marko $opt$noinline$getLongField(null); 387953437bd51059801d92079295f728d0260efca31Vladimir Marko throw new RuntimeException("Failed to throw NullPointerException."); 388953437bd51059801d92079295f728d0260efca31Vladimir Marko } catch (NullPointerException npe) { 389953437bd51059801d92079295f728d0260efca31Vladimir Marko check(npe, thisLine += 6, methodLine += 5, "$opt$noinline$getLongField"); 390953437bd51059801d92079295f728d0260efca31Vladimir Marko } 391953437bd51059801d92079295f728d0260efca31Vladimir Marko try { 392953437bd51059801d92079295f728d0260efca31Vladimir Marko $opt$noinline$getDoubleField(null); 393953437bd51059801d92079295f728d0260efca31Vladimir Marko throw new RuntimeException("Failed to throw NullPointerException."); 394953437bd51059801d92079295f728d0260efca31Vladimir Marko } catch (NullPointerException npe) { 395953437bd51059801d92079295f728d0260efca31Vladimir Marko check(npe, thisLine += 6, methodLine += 5, "$opt$noinline$getDoubleField"); 396953437bd51059801d92079295f728d0260efca31Vladimir Marko } 397953437bd51059801d92079295f728d0260efca31Vladimir Marko try { 398953437bd51059801d92079295f728d0260efca31Vladimir Marko $opt$noinline$getByteField(null); 399953437bd51059801d92079295f728d0260efca31Vladimir Marko throw new RuntimeException("Failed to throw NullPointerException."); 400953437bd51059801d92079295f728d0260efca31Vladimir Marko } catch (NullPointerException npe) { 401953437bd51059801d92079295f728d0260efca31Vladimir Marko check(npe, thisLine += 6, methodLine += 5, "$opt$noinline$getByteField"); 402953437bd51059801d92079295f728d0260efca31Vladimir Marko } 403953437bd51059801d92079295f728d0260efca31Vladimir Marko try { 404953437bd51059801d92079295f728d0260efca31Vladimir Marko $opt$noinline$getBooleanField(null); 405953437bd51059801d92079295f728d0260efca31Vladimir Marko throw new RuntimeException("Failed to throw NullPointerException."); 406953437bd51059801d92079295f728d0260efca31Vladimir Marko } catch (NullPointerException npe) { 407953437bd51059801d92079295f728d0260efca31Vladimir Marko check(npe, thisLine += 6, methodLine += 5, "$opt$noinline$getBooleanField"); 408953437bd51059801d92079295f728d0260efca31Vladimir Marko } 409953437bd51059801d92079295f728d0260efca31Vladimir Marko try { 410953437bd51059801d92079295f728d0260efca31Vladimir Marko $opt$noinline$getCharField(null); 411953437bd51059801d92079295f728d0260efca31Vladimir Marko throw new RuntimeException("Failed to throw NullPointerException."); 412953437bd51059801d92079295f728d0260efca31Vladimir Marko } catch (NullPointerException npe) { 413953437bd51059801d92079295f728d0260efca31Vladimir Marko check(npe, thisLine += 6, methodLine += 5, "$opt$noinline$getCharField"); 414953437bd51059801d92079295f728d0260efca31Vladimir Marko } 415953437bd51059801d92079295f728d0260efca31Vladimir Marko try { 416953437bd51059801d92079295f728d0260efca31Vladimir Marko $opt$noinline$getShortField(null); 417953437bd51059801d92079295f728d0260efca31Vladimir Marko throw new RuntimeException("Failed to throw NullPointerException."); 418953437bd51059801d92079295f728d0260efca31Vladimir Marko } catch (NullPointerException npe) { 419953437bd51059801d92079295f728d0260efca31Vladimir Marko check(npe, thisLine += 6, methodLine += 5, "$opt$noinline$getShortField"); 420953437bd51059801d92079295f728d0260efca31Vladimir Marko } 421953437bd51059801d92079295f728d0260efca31Vladimir Marko try { 422953437bd51059801d92079295f728d0260efca31Vladimir Marko $opt$noinline$setVolatileObjectField(null); 423953437bd51059801d92079295f728d0260efca31Vladimir Marko throw new RuntimeException("Failed to throw NullPointerException."); 424953437bd51059801d92079295f728d0260efca31Vladimir Marko } catch (NullPointerException npe) { 425953437bd51059801d92079295f728d0260efca31Vladimir Marko check(npe, thisLine += 6, methodLine += 5, "$opt$noinline$setVolatileObjectField"); 426953437bd51059801d92079295f728d0260efca31Vladimir Marko } 427953437bd51059801d92079295f728d0260efca31Vladimir Marko try { 428953437bd51059801d92079295f728d0260efca31Vladimir Marko $opt$noinline$setVolatileIntField(null); 429953437bd51059801d92079295f728d0260efca31Vladimir Marko throw new RuntimeException("Failed to throw NullPointerException."); 430953437bd51059801d92079295f728d0260efca31Vladimir Marko } catch (NullPointerException npe) { 431953437bd51059801d92079295f728d0260efca31Vladimir Marko check(npe, thisLine += 6, methodLine += 5, "$opt$noinline$setVolatileIntField"); 432953437bd51059801d92079295f728d0260efca31Vladimir Marko } 433953437bd51059801d92079295f728d0260efca31Vladimir Marko try { 434953437bd51059801d92079295f728d0260efca31Vladimir Marko $opt$noinline$setVolatileFloatField(null); 435953437bd51059801d92079295f728d0260efca31Vladimir Marko throw new RuntimeException("Failed to throw NullPointerException."); 436953437bd51059801d92079295f728d0260efca31Vladimir Marko } catch (NullPointerException npe) { 437953437bd51059801d92079295f728d0260efca31Vladimir Marko check(npe, thisLine += 6, methodLine += 5, "$opt$noinline$setVolatileFloatField"); 438953437bd51059801d92079295f728d0260efca31Vladimir Marko } 439953437bd51059801d92079295f728d0260efca31Vladimir Marko try { 440953437bd51059801d92079295f728d0260efca31Vladimir Marko $opt$noinline$setVolatileLongField(null); 441953437bd51059801d92079295f728d0260efca31Vladimir Marko throw new RuntimeException("Failed to throw NullPointerException."); 442953437bd51059801d92079295f728d0260efca31Vladimir Marko } catch (NullPointerException npe) { 443953437bd51059801d92079295f728d0260efca31Vladimir Marko check(npe, thisLine += 6, methodLine += 5, "$opt$noinline$setVolatileLongField"); 444953437bd51059801d92079295f728d0260efca31Vladimir Marko } 445953437bd51059801d92079295f728d0260efca31Vladimir Marko try { 446953437bd51059801d92079295f728d0260efca31Vladimir Marko $opt$noinline$setVolatileDoubleField(null); 447953437bd51059801d92079295f728d0260efca31Vladimir Marko throw new RuntimeException("Failed to throw NullPointerException."); 448953437bd51059801d92079295f728d0260efca31Vladimir Marko } catch (NullPointerException npe) { 449953437bd51059801d92079295f728d0260efca31Vladimir Marko check(npe, thisLine += 6, methodLine += 5, "$opt$noinline$setVolatileDoubleField"); 450953437bd51059801d92079295f728d0260efca31Vladimir Marko } 451953437bd51059801d92079295f728d0260efca31Vladimir Marko try { 452953437bd51059801d92079295f728d0260efca31Vladimir Marko $opt$noinline$setVolatileByteField(null); 453953437bd51059801d92079295f728d0260efca31Vladimir Marko throw new RuntimeException("Failed to throw NullPointerException."); 454953437bd51059801d92079295f728d0260efca31Vladimir Marko } catch (NullPointerException npe) { 455953437bd51059801d92079295f728d0260efca31Vladimir Marko check(npe, thisLine += 6, methodLine += 5, "$opt$noinline$setVolatileByteField"); 456953437bd51059801d92079295f728d0260efca31Vladimir Marko } 457953437bd51059801d92079295f728d0260efca31Vladimir Marko try { 458953437bd51059801d92079295f728d0260efca31Vladimir Marko $opt$noinline$setVolatileBooleanField(null); 459953437bd51059801d92079295f728d0260efca31Vladimir Marko throw new RuntimeException("Failed to throw NullPointerException."); 460953437bd51059801d92079295f728d0260efca31Vladimir Marko } catch (NullPointerException npe) { 461953437bd51059801d92079295f728d0260efca31Vladimir Marko check(npe, thisLine += 6, methodLine += 5, "$opt$noinline$setVolatileBooleanField"); 462953437bd51059801d92079295f728d0260efca31Vladimir Marko } 463953437bd51059801d92079295f728d0260efca31Vladimir Marko try { 464953437bd51059801d92079295f728d0260efca31Vladimir Marko $opt$noinline$setVolatileCharField(null); 465953437bd51059801d92079295f728d0260efca31Vladimir Marko throw new RuntimeException("Failed to throw NullPointerException."); 466953437bd51059801d92079295f728d0260efca31Vladimir Marko } catch (NullPointerException npe) { 467953437bd51059801d92079295f728d0260efca31Vladimir Marko check(npe, thisLine += 6, methodLine += 5, "$opt$noinline$setVolatileCharField"); 468953437bd51059801d92079295f728d0260efca31Vladimir Marko } 469953437bd51059801d92079295f728d0260efca31Vladimir Marko try { 470953437bd51059801d92079295f728d0260efca31Vladimir Marko $opt$noinline$setVolatileShortField(null); 471953437bd51059801d92079295f728d0260efca31Vladimir Marko throw new RuntimeException("Failed to throw NullPointerException."); 472953437bd51059801d92079295f728d0260efca31Vladimir Marko } catch (NullPointerException npe) { 473953437bd51059801d92079295f728d0260efca31Vladimir Marko check(npe, thisLine += 6, methodLine += 5, "$opt$noinline$setVolatileShortField"); 474953437bd51059801d92079295f728d0260efca31Vladimir Marko } 475953437bd51059801d92079295f728d0260efca31Vladimir Marko try { 476953437bd51059801d92079295f728d0260efca31Vladimir Marko $opt$noinline$getVolatileObjectField(null); 477953437bd51059801d92079295f728d0260efca31Vladimir Marko throw new RuntimeException("Failed to throw NullPointerException."); 478953437bd51059801d92079295f728d0260efca31Vladimir Marko } catch (NullPointerException npe) { 479953437bd51059801d92079295f728d0260efca31Vladimir Marko check(npe, thisLine += 6, methodLine += 5, "$opt$noinline$getVolatileObjectField"); 480953437bd51059801d92079295f728d0260efca31Vladimir Marko } 481953437bd51059801d92079295f728d0260efca31Vladimir Marko try { 482953437bd51059801d92079295f728d0260efca31Vladimir Marko $opt$noinline$getVolatileIntField(null); 483953437bd51059801d92079295f728d0260efca31Vladimir Marko throw new RuntimeException("Failed to throw NullPointerException."); 484953437bd51059801d92079295f728d0260efca31Vladimir Marko } catch (NullPointerException npe) { 485953437bd51059801d92079295f728d0260efca31Vladimir Marko check(npe, thisLine += 6, methodLine += 5, "$opt$noinline$getVolatileIntField"); 486953437bd51059801d92079295f728d0260efca31Vladimir Marko } 487953437bd51059801d92079295f728d0260efca31Vladimir Marko try { 488953437bd51059801d92079295f728d0260efca31Vladimir Marko $opt$noinline$getVolatileFloatField(null); 489953437bd51059801d92079295f728d0260efca31Vladimir Marko throw new RuntimeException("Failed to throw NullPointerException."); 490953437bd51059801d92079295f728d0260efca31Vladimir Marko } catch (NullPointerException npe) { 491953437bd51059801d92079295f728d0260efca31Vladimir Marko check(npe, thisLine += 6, methodLine += 5, "$opt$noinline$getVolatileFloatField"); 492953437bd51059801d92079295f728d0260efca31Vladimir Marko } 493953437bd51059801d92079295f728d0260efca31Vladimir Marko try { 494953437bd51059801d92079295f728d0260efca31Vladimir Marko $opt$noinline$getVolatileLongField(null); 495953437bd51059801d92079295f728d0260efca31Vladimir Marko throw new RuntimeException("Failed to throw NullPointerException."); 496953437bd51059801d92079295f728d0260efca31Vladimir Marko } catch (NullPointerException npe) { 497953437bd51059801d92079295f728d0260efca31Vladimir Marko check(npe, thisLine += 6, methodLine += 5, "$opt$noinline$getVolatileLongField"); 498953437bd51059801d92079295f728d0260efca31Vladimir Marko } 499953437bd51059801d92079295f728d0260efca31Vladimir Marko try { 500953437bd51059801d92079295f728d0260efca31Vladimir Marko $opt$noinline$getVolatileDoubleField(null); 501953437bd51059801d92079295f728d0260efca31Vladimir Marko throw new RuntimeException("Failed to throw NullPointerException."); 502953437bd51059801d92079295f728d0260efca31Vladimir Marko } catch (NullPointerException npe) { 503953437bd51059801d92079295f728d0260efca31Vladimir Marko check(npe, thisLine += 6, methodLine += 5, "$opt$noinline$getVolatileDoubleField"); 504953437bd51059801d92079295f728d0260efca31Vladimir Marko } 505953437bd51059801d92079295f728d0260efca31Vladimir Marko try { 506953437bd51059801d92079295f728d0260efca31Vladimir Marko $opt$noinline$getVolatileByteField(null); 507953437bd51059801d92079295f728d0260efca31Vladimir Marko throw new RuntimeException("Failed to throw NullPointerException."); 508953437bd51059801d92079295f728d0260efca31Vladimir Marko } catch (NullPointerException npe) { 509953437bd51059801d92079295f728d0260efca31Vladimir Marko check(npe, thisLine += 6, methodLine += 5, "$opt$noinline$getVolatileByteField"); 510953437bd51059801d92079295f728d0260efca31Vladimir Marko } 511953437bd51059801d92079295f728d0260efca31Vladimir Marko try { 512953437bd51059801d92079295f728d0260efca31Vladimir Marko $opt$noinline$getVolatileBooleanField(null); 513953437bd51059801d92079295f728d0260efca31Vladimir Marko throw new RuntimeException("Failed to throw NullPointerException."); 514953437bd51059801d92079295f728d0260efca31Vladimir Marko } catch (NullPointerException npe) { 515953437bd51059801d92079295f728d0260efca31Vladimir Marko check(npe, thisLine += 6, methodLine += 5, "$opt$noinline$getVolatileBooleanField"); 516953437bd51059801d92079295f728d0260efca31Vladimir Marko } 517953437bd51059801d92079295f728d0260efca31Vladimir Marko try { 518953437bd51059801d92079295f728d0260efca31Vladimir Marko $opt$noinline$getVolatileCharField(null); 519953437bd51059801d92079295f728d0260efca31Vladimir Marko throw new RuntimeException("Failed to throw NullPointerException."); 520953437bd51059801d92079295f728d0260efca31Vladimir Marko } catch (NullPointerException npe) { 521953437bd51059801d92079295f728d0260efca31Vladimir Marko check(npe, thisLine += 6, methodLine += 5, "$opt$noinline$getVolatileCharField"); 522953437bd51059801d92079295f728d0260efca31Vladimir Marko } 523953437bd51059801d92079295f728d0260efca31Vladimir Marko try { 524953437bd51059801d92079295f728d0260efca31Vladimir Marko $opt$noinline$getVolatileShortField(null); 525953437bd51059801d92079295f728d0260efca31Vladimir Marko throw new RuntimeException("Failed to throw NullPointerException."); 526953437bd51059801d92079295f728d0260efca31Vladimir Marko } catch (NullPointerException npe) { 527953437bd51059801d92079295f728d0260efca31Vladimir Marko check(npe, thisLine += 6, methodLine += 5, "$opt$noinline$getVolatileShortField"); 528953437bd51059801d92079295f728d0260efca31Vladimir Marko } 52977520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle try { 530953437bd51059801d92079295f728d0260efca31Vladimir Marko $opt$noinline$setObjectElement(null); 53177520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle throw new RuntimeException("Failed to throw NullPointerException."); 53277520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } catch (NullPointerException npe) { 533953437bd51059801d92079295f728d0260efca31Vladimir Marko check(npe, thisLine += 6, methodLine += 5, "$opt$noinline$setObjectElement"); 53477520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 53577520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle try { 536953437bd51059801d92079295f728d0260efca31Vladimir Marko $opt$noinline$setIntElement(null); 53777520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle throw new RuntimeException("Failed to throw NullPointerException."); 53877520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } catch (NullPointerException npe) { 539953437bd51059801d92079295f728d0260efca31Vladimir Marko check(npe, thisLine += 6, methodLine += 5, "$opt$noinline$setIntElement"); 54077520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 54177520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle try { 542953437bd51059801d92079295f728d0260efca31Vladimir Marko $opt$noinline$setFloatElement(null); 54377520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle throw new RuntimeException("Failed to throw NullPointerException."); 54477520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } catch (NullPointerException npe) { 545953437bd51059801d92079295f728d0260efca31Vladimir Marko check(npe, thisLine += 6, methodLine += 5, "$opt$noinline$setFloatElement"); 54677520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 54777520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle try { 548953437bd51059801d92079295f728d0260efca31Vladimir Marko $opt$noinline$setLongElement(null); 54977520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle throw new RuntimeException("Failed to throw NullPointerException."); 55077520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } catch (NullPointerException npe) { 551953437bd51059801d92079295f728d0260efca31Vladimir Marko check(npe, thisLine += 6, methodLine += 5, "$opt$noinline$setLongElement"); 55277520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 55377520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle try { 554953437bd51059801d92079295f728d0260efca31Vladimir Marko $opt$noinline$setDoubleElement(null); 55577520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle throw new RuntimeException("Failed to throw NullPointerException."); 55677520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } catch (NullPointerException npe) { 557953437bd51059801d92079295f728d0260efca31Vladimir Marko check(npe, thisLine += 6, methodLine += 5, "$opt$noinline$setDoubleElement"); 55877520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 55977520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle try { 560953437bd51059801d92079295f728d0260efca31Vladimir Marko $opt$noinline$setByteElement(null); 56177520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle throw new RuntimeException("Failed to throw NullPointerException."); 56277520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } catch (NullPointerException npe) { 563953437bd51059801d92079295f728d0260efca31Vladimir Marko check(npe, thisLine += 6, methodLine += 5, "$opt$noinline$setByteElement"); 56477520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 56577520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle try { 566953437bd51059801d92079295f728d0260efca31Vladimir Marko $opt$noinline$setBooleanElement(null); 56777520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle throw new RuntimeException("Failed to throw NullPointerException."); 56877520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } catch (NullPointerException npe) { 569953437bd51059801d92079295f728d0260efca31Vladimir Marko check(npe, thisLine += 6, methodLine += 5, "$opt$noinline$setBooleanElement"); 57077520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 57177520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle try { 572953437bd51059801d92079295f728d0260efca31Vladimir Marko $opt$noinline$setCharElement(null); 57377520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle throw new RuntimeException("Failed to throw NullPointerException."); 57477520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } catch (NullPointerException npe) { 575953437bd51059801d92079295f728d0260efca31Vladimir Marko check(npe, thisLine += 6, methodLine += 5, "$opt$noinline$setCharElement"); 57677520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 57777520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle try { 578953437bd51059801d92079295f728d0260efca31Vladimir Marko $opt$noinline$setShortElement(null); 57977520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle throw new RuntimeException("Failed to throw NullPointerException."); 58077520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } catch (NullPointerException npe) { 581953437bd51059801d92079295f728d0260efca31Vladimir Marko check(npe, thisLine += 6, methodLine += 5, "$opt$noinline$setShortElement"); 58277520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 58377520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle try { 584953437bd51059801d92079295f728d0260efca31Vladimir Marko $opt$noinline$getObjectElement(null); 58577520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle throw new RuntimeException("Failed to throw NullPointerException."); 58677520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } catch (NullPointerException npe) { 587953437bd51059801d92079295f728d0260efca31Vladimir Marko check(npe, thisLine += 6, methodLine += 5, "$opt$noinline$getObjectElement"); 58877520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 58977520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle try { 590953437bd51059801d92079295f728d0260efca31Vladimir Marko $opt$noinline$getIntElement(null); 59177520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle throw new RuntimeException("Failed to throw NullPointerException."); 59277520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } catch (NullPointerException npe) { 593953437bd51059801d92079295f728d0260efca31Vladimir Marko check(npe, thisLine += 6, methodLine += 5, "$opt$noinline$getIntElement"); 59477520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 59577520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle try { 596953437bd51059801d92079295f728d0260efca31Vladimir Marko $opt$noinline$getFloatElement(null); 59777520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle throw new RuntimeException("Failed to throw NullPointerException."); 59877520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } catch (NullPointerException npe) { 599953437bd51059801d92079295f728d0260efca31Vladimir Marko check(npe, thisLine += 6, methodLine += 5, "$opt$noinline$getFloatElement"); 60077520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 60177520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle try { 602953437bd51059801d92079295f728d0260efca31Vladimir Marko $opt$noinline$getLongElement(null); 60377520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle throw new RuntimeException("Failed to throw NullPointerException."); 60477520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } catch (NullPointerException npe) { 605953437bd51059801d92079295f728d0260efca31Vladimir Marko check(npe, thisLine += 6, methodLine += 5, "$opt$noinline$getLongElement"); 60677520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 60777520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle try { 608953437bd51059801d92079295f728d0260efca31Vladimir Marko $opt$noinline$getDoubleElement(null); 60977520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle throw new RuntimeException("Failed to throw NullPointerException."); 61077520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } catch (NullPointerException npe) { 611953437bd51059801d92079295f728d0260efca31Vladimir Marko check(npe, thisLine += 6, methodLine += 5, "$opt$noinline$getDoubleElement"); 61277520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 61377520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle try { 614953437bd51059801d92079295f728d0260efca31Vladimir Marko $opt$noinline$getByteElement(null); 61577520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle throw new RuntimeException("Failed to throw NullPointerException."); 61677520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } catch (NullPointerException npe) { 617953437bd51059801d92079295f728d0260efca31Vladimir Marko check(npe, thisLine += 6, methodLine += 5, "$opt$noinline$getByteElement"); 61877520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 61977520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle try { 620953437bd51059801d92079295f728d0260efca31Vladimir Marko $opt$noinline$getBooleanElement(null); 62177520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle throw new RuntimeException("Failed to throw NullPointerException."); 62277520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } catch (NullPointerException npe) { 623953437bd51059801d92079295f728d0260efca31Vladimir Marko check(npe, thisLine += 6, methodLine += 5, "$opt$noinline$getBooleanElement"); 62477520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 62577520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle try { 626953437bd51059801d92079295f728d0260efca31Vladimir Marko $opt$noinline$getCharElement(null); 62777520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle throw new RuntimeException("Failed to throw NullPointerException."); 62877520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } catch (NullPointerException npe) { 629953437bd51059801d92079295f728d0260efca31Vladimir Marko check(npe, thisLine += 6, methodLine += 5, "$opt$noinline$getCharElement"); 63077520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 63177520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle try { 632953437bd51059801d92079295f728d0260efca31Vladimir Marko $opt$noinline$getShortElement(null); 63377520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle throw new RuntimeException("Failed to throw NullPointerException."); 63477520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } catch (NullPointerException npe) { 635953437bd51059801d92079295f728d0260efca31Vladimir Marko check(npe, thisLine += 6, methodLine += 5, "$opt$noinline$getShortElement"); 63677520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 63777520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle 6383b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko $opt$noinline$testRegisterRetrieval(); 6393b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko } 6403b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko 6413b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko static void $opt$noinline$testRegisterRetrieval() { 6423b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko Main[] array = $noinline$PrepareArray(); 6433b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko int i0 = 0; 6443b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko int i1 = 1; 6453b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko int i2 = 2; 6463b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko int i3 = 3; 6473b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko int i4 = 4; 6483b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko int i5 = 5; 6493b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko int i6 = 6; 6503b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko int i7 = 7; 6513b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko int i8 = 8; 6523b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko int i9 = 9; 6533b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko int i10 = 10; 6543b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko int i11 = 11; 6553b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko int i12 = 12; 6563b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko int i13 = 13; 6573b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko int i14 = 14; 6583b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko int i15 = 15; 6593b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko long l0 = 20L; 6603b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko long l1 = 21L; 6613b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko long l2 = 22L; 6623b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko long l3 = 23L; 6633b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko long l4 = 24L; 6643b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko long l5 = 25L; 6653b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko long l6 = 26L; 6663b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko long l7 = 27L; 6673b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko long l8 = 28L; 6683b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko long l9 = 29L; 6693b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko long l10 = 30L; 6703b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko long l11 = 31L; 6713b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko long l12 = 32L; 6723b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko long l13 = 33L; 6733b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko long l14 = 34L; 6743b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko long l15 = 35L; 6753b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko float f0 = 40.0f; 6763b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko float f1 = 41.0f; 6773b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko float f2 = 42.0f; 6783b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko float f3 = 43.0f; 6793b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko float f4 = 44.0f; 6803b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko float f5 = 45.0f; 6813b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko float f6 = 46.0f; 6823b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko float f7 = 47.0f; 6833b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko float f8 = 48.0f; 6843b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko float f9 = 49.0f; 6853b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko float f10 = 50.0f; 6863b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko float f11 = 51.0f; 6873b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko float f12 = 52.0f; 6883b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko float f13 = 53.0f; 6893b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko float f14 = 54.0f; 6903b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko float f15 = 55.0f; 6913b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko double d0 = 60.0; 6923b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko double d1 = 61.0; 6933b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko double d2 = 62.0; 6943b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko double d3 = 63.0; 6953b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko double d4 = 64.0; 6963b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko double d5 = 65.0; 6973b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko double d6 = 66.0; 6983b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko double d7 = 67.0; 6993b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko double d8 = 68.0; 7003b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko double d9 = 69.0; 7013b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko double d10 = 70.0; 7023b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko double d11 = 71.0; 7033b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko double d12 = 72.0; 7043b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko double d13 = 73.0; 7053b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko double d14 = 74.0; 7063b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko double d15 = 75.0; 7073b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko int addInt = -1; 7083b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko long addLong = -2L; 7093b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko float addFloat = -3.0f; 7103b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko double addDouble = -4.0; 7113b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko Main m = null; 7123b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko int i = 0; 7133b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko try { 7143b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko for (i = 0; i < array.length; ++i) { 7153b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko m = array[i]; 7163b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko // We have 16 ints, 16 longs, 16 floats, 16 doubles and a few helper variables here, 7173b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko // none of them anonymous. Hopefully, all available physical registers will be allocated 7183b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko // to these variables, so that when `m.intField` throws NPE during the third iteration, 7193b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko // we will fully test retrieval of values from all physical registers. 7203b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko addInt = m.intField; 7213b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko addLong = m.longField; 7223b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko addFloat = m.floatField; 7233b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko addDouble = m.doubleField; 7243b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko i0 += i1; 7253b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko i1 += i2; 7263b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko i2 += i3; 7273b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko i3 += i4; 7283b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko i4 += i5; 7293b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko i5 += i6; 7303b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko i6 += i7; 7313b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko i7 += i8; 7323b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko i8 += i9; 7333b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko i9 += i10; 7343b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko i10 += i11; 7353b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko i11 += i12; 7363b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko i12 += i13; 7373b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko i13 += i14; 7383b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko i14 += i15; 7393b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko i15 += addInt; 7403b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko l0 += l1; 7413b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko l1 += l2; 7423b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko l2 += l3; 7433b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko l3 += l4; 7443b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko l4 += l5; 7453b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko l5 += l6; 7463b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko l6 += l7; 7473b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko l7 += l8; 7483b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko l8 += l9; 7493b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko l9 += l10; 7503b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko l10 += l11; 7513b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko l11 += l12; 7523b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko l12 += l13; 7533b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko l13 += l14; 7543b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko l14 += l15; 7553b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko l15 += addLong; 7563b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko f0 += f1; 7573b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko f1 += f2; 7583b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko f2 += f3; 7593b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko f3 += f4; 7603b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko f4 += f5; 7613b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko f5 += f6; 7623b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko f6 += f7; 7633b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko f7 += f8; 7643b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko f8 += f9; 7653b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko f9 += f10; 7663b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko f10 += f11; 7673b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko f11 += f12; 7683b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko f12 += f13; 7693b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko f13 += f14; 7703b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko f14 += f15; 7713b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko f15 += addFloat; 7723b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko d0 += d1; 7733b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko d1 += d2; 7743b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko d2 += d3; 7753b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko d3 += d4; 7763b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko d4 += d5; 7773b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko d5 += d6; 7783b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko d6 += d7; 7793b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko d7 += d8; 7803b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko d8 += d9; 7813b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko d9 += d10; 7823b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko d10 += d11; 7833b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko d11 += d12; 7843b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko d12 += d13; 7853b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko d13 += d14; 7863b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko d14 += d15; 7873b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko d15 += addDouble; 7883b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko } 7893b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko } catch (NullPointerException npe) { 7903b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko System.out.println("i0=" + i0); 7913b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko System.out.println("i1=" + i1); 7923b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko System.out.println("i2=" + i2); 7933b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko System.out.println("i3=" + i3); 7943b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko System.out.println("i4=" + i4); 7953b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko System.out.println("i5=" + i5); 7963b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko System.out.println("i6=" + i6); 7973b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko System.out.println("i7=" + i7); 7983b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko System.out.println("i8=" + i8); 7993b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko System.out.println("i9=" + i9); 8003b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko System.out.println("i10=" + i10); 8013b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko System.out.println("i11=" + i11); 8023b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko System.out.println("i12=" + i12); 8033b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko System.out.println("i13=" + i13); 8043b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko System.out.println("i14=" + i14); 8053b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko System.out.println("i15=" + i15); 8063b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko System.out.println("l0=" + l0); 8073b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko System.out.println("l1=" + l1); 8083b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko System.out.println("l2=" + l2); 8093b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko System.out.println("l3=" + l3); 8103b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko System.out.println("l4=" + l4); 8113b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko System.out.println("l5=" + l5); 8123b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko System.out.println("l6=" + l6); 8133b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko System.out.println("l7=" + l7); 8143b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko System.out.println("l8=" + l8); 8153b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko System.out.println("l9=" + l9); 8163b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko System.out.println("l10=" + l10); 8173b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko System.out.println("l11=" + l11); 8183b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko System.out.println("l12=" + l12); 8193b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko System.out.println("l13=" + l13); 8203b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko System.out.println("l14=" + l14); 8213b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko System.out.println("l15=" + l15); 8223b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko System.out.println("f0=" + f0); 8233b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko System.out.println("f1=" + f1); 8243b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko System.out.println("f2=" + f2); 8253b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko System.out.println("f3=" + f3); 8263b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko System.out.println("f4=" + f4); 8273b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko System.out.println("f5=" + f5); 8283b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko System.out.println("f6=" + f6); 8293b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko System.out.println("f7=" + f7); 8303b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko System.out.println("f8=" + f8); 8313b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko System.out.println("f9=" + f9); 8323b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko System.out.println("f10=" + f10); 8333b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko System.out.println("f11=" + f11); 8343b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko System.out.println("f12=" + f12); 8353b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko System.out.println("f13=" + f13); 8363b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko System.out.println("f14=" + f14); 8373b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko System.out.println("f15=" + f15); 8383b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko System.out.println("d0=" + d0); 8393b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko System.out.println("d1=" + d1); 8403b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko System.out.println("d2=" + d2); 8413b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko System.out.println("d3=" + d3); 8423b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko System.out.println("d4=" + d4); 8433b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko System.out.println("d5=" + d5); 8443b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko System.out.println("d6=" + d6); 8453b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko System.out.println("d7=" + d7); 8463b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko System.out.println("d8=" + d8); 8473b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko System.out.println("d9=" + d9); 8483b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko System.out.println("d10=" + d10); 8493b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko System.out.println("d11=" + d11); 8503b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko System.out.println("d12=" + d12); 8513b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko System.out.println("d13=" + d13); 8523b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko System.out.println("d14=" + d14); 8533b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko System.out.println("d15=" + d15); 8543b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko System.out.println("addInt=" + addInt); 8553b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko System.out.println("addLong=" + addLong); 8563b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko System.out.println("addFloat=" + addFloat); 8573b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko System.out.println("addDouble=" + addDouble); 8583b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko System.out.println("m=" + m); 8593b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko System.out.println("i=" + i); 8603b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko } 8613b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko } 8623b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko 8633b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko static Main[] $noinline$PrepareArray() { 8643b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko if (doThrow) { throw new Error(); } 8653b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko Main[] array = new Main[] { new Main(), new Main(), null, new Main() }; 8663b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko array[1].intField = 42; 8673b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko array[1].longField = 111L; 8683b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko array[1].floatField = 0.5f; 8693b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko array[1].doubleField = 0.125; 8703b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko return array; 8713b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko } 8723b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko 8733b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko static void check(NullPointerException npe, int mainLine, int methodLine, String methodName) { 87477520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle System.out.println(methodName); 87577520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle StackTraceElement[] trace = npe.getStackTrace(); 8763b7537bfc5a6b7ccb18b3970d8edf14b72464af7Vladimir Marko checkElement(trace[0], "Main", methodName, "Main.java", methodLine); 87777520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle checkElement(trace[1], "Main", "main", "Main.java", mainLine); 87877520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 87977520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle 88077520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle static void checkElement(StackTraceElement element, 88177520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle String declaringClass, String methodName, 88277520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle String fileName, int lineNumber) { 88377520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle assertEquals(declaringClass, element.getClassName()); 88477520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle assertEquals(methodName, element.getMethodName()); 88577520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle assertEquals(fileName, element.getFileName()); 88677520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle assertEquals(lineNumber, element.getLineNumber()); 88777520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 88877520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle 88977520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle static void assertEquals(Object expected, Object actual) { 89077520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle if (!expected.equals(actual)) { 89177520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle String msg = "Expected \"" + expected + "\" but got \"" + actual + "\""; 89277520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle throw new AssertionError(msg); 89377520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 89477520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 89577520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle 89677520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle static void assertEquals(int expected, int actual) { 89777520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle if (expected != actual) { 89877520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle throw new AssertionError("Expected " + expected + " got " + actual); 89977520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 90077520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 90177520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle 90277520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle} 903