Do not check for maxStack when desugaring CfMultiNewArray

Bug: 181835354
Bug: 181185068
Change-Id: I663e5ffc35812aed6c321ddf16561e08b80f2bc1
diff --git a/src/main/java/com/android/tools/r8/graph/LazyCfCode.java b/src/main/java/com/android/tools/r8/graph/LazyCfCode.java
index ba22b16..08bc5f0 100644
--- a/src/main/java/com/android/tools/r8/graph/LazyCfCode.java
+++ b/src/main/java/com/android/tools/r8/graph/LazyCfCode.java
@@ -336,6 +336,7 @@
     private final DebugParsingOptions debugParsingOptions;
     private int maxStack;
     private int maxLocals;
+    private boolean desugaredVisitMultiANewArrayInstruction;
     private List<CfInstruction> instructions;
     private List<CfTryCatch> tryCatchRanges;
     private List<LocalVariableInfo> localVariables;
@@ -386,7 +387,12 @@
       }
       code.setCode(
           new CfCode(
-              method.holder, maxStack, maxLocals, instructions, tryCatchRanges, localVariables));
+              method.holder,
+              desugaredVisitMultiANewArrayInstruction ? Integer.MAX_VALUE : maxStack,
+              maxLocals,
+              instructions,
+              tryCatchRanges,
+              localVariables));
     }
 
     @Override
@@ -948,6 +954,7 @@
       // ..., ref
       visitTypeInsn(Opcodes.CHECKCAST, desc);
       // ..., arrayref(of type : desc)
+      desugaredVisitMultiANewArrayInstruction = true;
     }
 
     @Override