You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

61 lines
1.3 KiB

.class public LB134061982;
.super Ljava/lang/Object;
.method public constructor <init>()V
.registers 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static run(I)V
.registers 4
# Registers:
# * v0 = 0/null
# * v1 = "outer" catch value to operate on
# * v2 = exception value for inner catch
# * v3 = p0 = input for two legs.
const v0, 0
# Start with r1 == null
const v1, 0
if-eqz p0, :direct_leg
goto :indirect_leg
:direct_leg
throw v0
:indirect_leg
# Make r1 not-reference.
const v1, 1
throw v0
:end
return-void
:catch_inner
move-exception v2
# r2 should not be primitive, so this should hard-fail if reached.
add-int/lit8 v2, v2, 0x1
goto :end
:catch_outer
# Just some random call.
invoke-virtual {v1}, Ljava/io/PrintStream;->println()V
goto :end
# Direct leg is directly covered by catch_outer.
.catchall {:direct_leg .. :indirect_leg} :catch_outer
# Indirect leg is directly covered by catch_inner.
# * Covered by unresolved exception class -> unreachable.
.catch Ldoes/not/ResolveException; {:indirect_leg .. :end} :catch_inner
# catch_inner is covered by catch_outer.
.catchall {:catch_inner .. :catch_outer} :catch_outer
.end method