blob: 1cb025ed79f2f909bb51e533a6172fb23388240e [file] [log] [blame]
Andreas Gampebb18a032016-03-22 20:34:25 -07001.class public LB27799205_3;
2.super Ljava/lang/Object;
3
4# A class with an unresolved array type should not fail hard (unless it's a primitive-type access).
5# Make sure that merging is pro-active.
6
7.method public static run()V
8.registers 1
9 return-void
10.end method
11
12# Use some non-object non-array input (non-Object because the merge should be Object).
13.method public static test(Ljava/lang/Integer;[Ldo/not/resolve/K;Z)V
14.registers 6
15 # Make v0, v1 and v2 null. We'll use v0 as a merge of the inputs, v1 as null, and v2 as 0.
16 const v0, 0
17 const v1, 0
18 const v2, 0
19
20 # Conditional jump so we have a merge point.
21 if-eqz v5, :LabelSelectUnresolved
22
23:LabelSelectResolved
24 move-object v0, v3
25 goto :LabelMerged
26
27:LabelSelectUnresolved
28 move-object v0, v4
29 goto :LabelMerged
30
31:LabelMerged
32 # At this point, v0 should be Object.
33
34 # Test aput-object: v0[v2] = v1. Should fail for v0 not being an array.
35 aput-object v1, v0, v2
36
37 return-void
38
39.end method