Exercise a method containing a `try' statement with several instructions with a `finally' clause but without any `catch' block, enclosed in a loop. When dx processes an integer division (or modulo) enclosing a `try' block and whose result is assigned to a local value, it is smart enough not to emit a `div-int' (or `rem-int') instruction when the divisor is non-null, as it wouldn't be used. However, dx is not that clever regarding exception handling: if the divisor is known to be non-null at compile-time (as is the case in this test), it will still emit a block with the exception catching and rethrowing mechanism, even if it is not used. This used to be a problem for a `try' block followed by a `finally' clause but with no `catch' block: in that case, the generated Dex code item would list zero catch block for this method (see art::CodeItem::tries_size_) and the optimizing compiler would have no clue that it contains a `try' statement, which it cannot optimize (yet). With no hint that this method might contain one (or several) special block(s) related to `catch'-less `try' statement(s), the optimizing compiler considered this (these) as dead block(s) and improperly tried to remove its (their) instructions, sometimes removing instructions used by others instructions, thus triggering assertions. The optimizing compiler was thus adjusted to remove these instructions in a proper fashion, by removing them as users first, and then by suppressing them for good.