Remove hack to support Cts test

Cts test updated in https://android-review.googlesource.com/2937060

Fixes: b/322478366
Change-Id: I9422659f011876b7fb94cbcd6a43727ea898813f
diff --git a/src/main/java/com/android/tools/r8/ir/code/NewArrayEmpty.java b/src/main/java/com/android/tools/r8/ir/code/NewArrayEmpty.java
index a7c3397..1bd40d4 100644
--- a/src/main/java/com/android/tools/r8/ir/code/NewArrayEmpty.java
+++ b/src/main/java/com/android/tools/r8/ir/code/NewArrayEmpty.java
@@ -88,11 +88,7 @@
       AbstractValueSupplier abstractValueSupplier,
       SideEffectAssumption assumption) {
     assert type.isArrayType();
-    return isArrayTypeInaccessible(appView, context)
-        || isArraySizeMaybeNegative()
-        // Cts test relying on dead array allocations of size Integer.MAX_VALUE not getting
-        // removed See b/322478366.
-        || (appView.options().debug && sizeIfConst() == Integer.MAX_VALUE);
+    return isArrayTypeInaccessible(appView, context) || isArraySizeMaybeNegative();
   }
 
   private boolean isArrayTypeInaccessible(AppView<?> appView, ProgramMethod context) {
diff --git a/src/test/java/com/android/tools/r8/rewrite/arrays/B322478366RegressionTest.java b/src/test/java/com/android/tools/r8/rewrite/arrays/B322478366RegressionTest.java
index d4b1d3d..5ff2b8b 100644
--- a/src/test/java/com/android/tools/r8/rewrite/arrays/B322478366RegressionTest.java
+++ b/src/test/java/com/android/tools/r8/rewrite/arrays/B322478366RegressionTest.java
@@ -64,19 +64,20 @@
       MethodSubject m1 = inspector.clazz(Main.class).uniqueMethodWithOriginalName("m1");
       assertEquals(0, m1.streamInstructions().filter(InstructionSubject::isNewArray).count());
       MethodSubject m2 = inspector.clazz(Main.class).uniqueMethodWithOriginalName("m2");
-      // TODO(b/322478366): Cts test CtsPerfettoTestCases.HeapprofdJavaCtsTest#DebuggableAppOom
-      //  requires that the array allocation stays.
-      assertEquals(
-          mode.isDebug() ? 1 : 0,
-          m2.streamInstructions().filter(InstructionSubject::isNewArray).count());
+      assertEquals(0, m2.streamInstructions().filter(InstructionSubject::isNewArray).count());
       MethodSubject m3 = inspector.clazz(Main.class).uniqueMethodWithOriginalName("m3");
       assertEquals(
           mode.isDebug() ? 1 : 0,
           m3.streamInstructions().filter(InstructionSubject::isNewArray).count());
+      MethodSubject m4 = inspector.clazz(Main.class).uniqueMethodWithOriginalName("m4");
+      assertEquals(
+          mode.isDebug() ? 1 : 0,
+          m4.streamInstructions().filter(InstructionSubject::isNewArray).count());
     } else {
       assertThat(inspector.clazz(Main.class).uniqueMethodWithOriginalName("m1"), isAbsent());
       assertThat(inspector.clazz(Main.class).uniqueMethodWithOriginalName("m2"), isAbsent());
       assertThat(inspector.clazz(Main.class).uniqueMethodWithOriginalName("m3"), isAbsent());
+      assertThat(inspector.clazz(Main.class).uniqueMethodWithOriginalName("m4"), isAbsent());
     }
   }
 
@@ -110,10 +111,22 @@
       }
     }
 
+    @NeverInline
+    public static void m4() {
+      try {
+        byte[] bytes = new byte[Integer.MAX_VALUE];
+        // Local information from javac for bytes, as the return statement makes it observable
+        // in a debugger.
+        return;
+      } catch (OutOfMemoryError e) {
+      }
+    }
+
     public static void main(String[] args) {
       m1();
       m2();
       m3();
+      m4();
     }
   }
 }