class ArrayNegativeSize { private static final int VAL1 = -10; private static int VAL2 = -10; private static final int VAL3 = -10 * 2; private static final short VAL4 = -10 * 2; public static void main(String[] args) { if (Math.random() > 0.5) { int[] array1 = new int[-10]; } if (Math.random() > 0.5) { int[] array2 = createArray(); } if (Math.random() > 0.5) { int[] array3 = new int[]{}; } if (Math.random() > 0.5) { int[] array4 = new int[10 - 100]; } if (Math.random() > 0.5) { int[] array5 = new int[((int) (Integer.valueOf(Integer.MAX_VALUE).longValue() - 100)) + 100 - 10]; } if (Math.random() > 0.5) { int[] array5 = new int[((int) (Integer.valueOf(Integer.MAX_VALUE).longValue() - 100L)) + 100 + 10]; } if (Math.random() > 0.5) { int[] array6 = new int[((int) (Integer.valueOf(Integer.MAX_VALUE).longValue() - 100)) + 99]; } if (Math.random() > 0.5) { int[] array7 = new int[(int) (((long) ((Integer.MAX_VALUE - 100)) + 100) * 2)]; } if (Math.random() > 0.5) { int[] array8 = new int[num()]; } if (Math.random() > 0.5) { int[] array9 = new int[VAL1]; } if (Math.random() > 0.5) { int[] array10 = new int[VAL2]; } if (Math.random() > 0.5) { int[] array11 = new int[VAL3]; } if (Math.random() > 0.5) { int[] array12 = new int[VAL4]; } if (Math.random() > 0.5) { int[][] array13 = new int[0][-1]; } if (Math.random() > 0.5) { int[][][] array14 = new int[0][0][-1]; } if (Math.random() > 0.5) { int[][][] array15 = new int[-1][-2][-3]; } if (Math.random() > 0.5) { int[][][] array15 = new int[-1][-2][3]; } if (Math.random() > 0.5) { int[][][] array15 = new int[-1][2][3]; } if (Math.random() > 0.5) { int[] array16 = new int[-07]; } if (Math.random() > 0.5) { int[] array17 = new int[100 * -077]; } if (Math.random() > 0.5) { int[] array18 = new int[0x7fffffff]; } if (Math.random() > 0.5) { int[] array19 = new int[0x7fffffff + 1]; } if (Math.random() > 0.5) { int[] array20 = new int[0b1111111111111111111111111111111]; } if (Math.random() > 0.5) { int[] array21 = new int[0b1111111111111111111111111111111 + 1]; } if (Math.random() > 0.5) { action(new int[-1000000000]); } if (Math.random() > 0.5) { action(new int[-0xcafe]); } if (Math.random() > 0.5) { action(new int[(int) -10000000000000L]); } if (Math.random() > 0.5) { action(new int[2147483647 + 1]); } if (Math.random() > 0.5) { action(new int["".length() + 456]); } if (Math.random() > 0.5) { action(new int["".length() - 456]); } VAL2++; } private static int[] createArray() { return new int[0]; } private static void action(Object obj) { } private static int num() { return -123; } final int[] array1 = new int[-10]; void foo(int size) { int[] data = new int[size]; if (size < 0) { System.out.println("Impossible"); } } void tryCatch(int size) { try { int[] arr = new int[size]; } catch (NegativeArraySizeException e) { if (size >= 0) { System.out.println("impossible"); } } } void testUnboxing(Integer len) { int[] arr = new int[len]; long l = len.longValue(); if (l < 0) {} } }