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