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.
40 lines
1.0 KiB
40 lines
1.0 KiB
.class public LB27799205_3;
|
|
.super Ljava/lang/Object;
|
|
|
|
# A class with an unresolved array type should not fail hard (unless it's a primitive-type access).
|
|
# Make sure that merging is pro-active.
|
|
|
|
.method public static run()V
|
|
.registers 1
|
|
return-void
|
|
.end method
|
|
|
|
# Use some non-object non-array input (non-Object because the merge should be Object).
|
|
.method public static test(Ljava/lang/Integer;[Ldo/not/resolve/K;Z)V
|
|
.registers 6
|
|
# Make v0, v1 and v2 null. We'll use v0 as a merge of the inputs, v1 as null, and v2 as 0.
|
|
const v0, 0
|
|
const v1, 0
|
|
const v2, 0
|
|
|
|
# Conditional jump so we have a merge point.
|
|
if-eqz v5, :LabelSelectUnresolved
|
|
|
|
:LabelSelectResolved
|
|
move-object v0, v3
|
|
goto :LabelMerged
|
|
|
|
:LabelSelectUnresolved
|
|
move-object v0, v4
|
|
goto :LabelMerged
|
|
|
|
:LabelMerged
|
|
# At this point, v0 should be Object.
|
|
|
|
# Test aput-object: v0[v2] = v1. Should fail for v0 not being an array.
|
|
aput-object v1, v0, v2
|
|
|
|
return-void
|
|
|
|
.end method
|