| // Copyright (c) 2017, the R8 project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| package regress_37726195; |
| |
| public class Regress { |
| |
| // Regression test for issue where aput instructions for different primitive array types |
| // were joined. The art verifier doesn't allow that. |
| public static void set(Object array, int index, byte value) { |
| if (array instanceof float[]) { |
| float[] floats = (float[]) array; |
| floats[index] = value; |
| } else if (array instanceof int[]) { |
| int[] ints = (int[]) array; |
| ints[index] = value; |
| } |
| } |
| |
| // Regression test for issue where aget instructions for different primitive array types |
| // were joined. The art verifier doesn't allow that. |
| public static void get(Object array, int index) { |
| if (array instanceof float[]) { |
| float[] floats = (float[]) array; |
| float f = floats[index]; |
| } else if (array instanceof int[]) { |
| int[] ints = (int[]) array; |
| int i = ints[index]; |
| } |
| } |
| |
| public static void main(String[] args) { |
| int[] ints = { 0 }; |
| float[] floats = { 0.0f }; |
| set(ints, 0, (byte) 4); |
| System.out.println(ints[0]); |
| set(floats, 0, (byte) 4); |
| System.out.println(floats[0]); |
| get(ints, 0); |
| get(floats, 0); |
| } |
| } |