1.class public LB27799205_5; 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-resolvable non-array type. 13.method public static test(Ldo/not/resolve/L;[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 40