Fix bug in ConstantCanonicalizer causing inconsistent SSA

Change-Id: Ifaeac67e48b4b85a74dd235e2998814c9c559a52
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/ConstantCanonicalizer.java b/src/main/java/com/android/tools/r8/ir/optimize/ConstantCanonicalizer.java
index db5c9dc..4633083 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/ConstantCanonicalizer.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/ConstantCanonicalizer.java
@@ -617,9 +617,7 @@
     assert insertionPoint.isPhi() || instructionIterator.peekPrevious() == insertionPoint;
     newInstruction.setPosition(
         getPositionForCanonicalizationConstantAtInsertionPoint(insertionPoint, newInstruction));
-    if (newInstruction.instructionTypeCanThrow()
-        && insertionPoint.getBlock().hasCatchHandlers()
-        && insertionPoint.getBlock().canThrow()) {
+    if (newInstruction.instructionTypeCanThrow() && insertionPoint.getBlock().hasCatchHandlers()) {
       // Split the block and rewind the block iterator to the insertion block.
       BasicBlock splitBlock =
           instructionIterator.splitCopyCatchHandlers(
@@ -638,7 +636,6 @@
           assert !splitBlock.canThrow();
           splitBlock.listIterator().add(newInstruction);
         } else {
-          assert splitBlock.canThrow();
           instructionIterator.addBeforeAndPositionBeforeNewInstruction(newInstruction);
         }
         instructionIterator.positionAfterPreviousInstruction(insertionPoint.asInstruction());