1.class public LB22411633_3; 2.super Ljava/lang/Object; 3 4 5.method public static run(Z)V 6.registers 6 7 # Make v3 & v4 defined, just use null. 8 const v3, 0 9 const v4, 0 10 11 # Allocate a java.lang.Object (do not initialize). 12 new-instance v4, Ljava/lang/Object; 13 14 # Branch forward. 15 if-eqz v5, :LabelMerge 16 17 # Create an initialized Object. 18 new-instance v4, Ljava/lang/Object; 19 invoke-direct {v4}, Ljava/lang/Object;-><init>()V 20 21 # Just some random work. 22 add-int/lit16 v3, v3, 1 23 24:LabelMerge 25 # At this point, an initialized and an uninitialized reference are merged. However, the 26 # merge is only from forward branches. If the conflict isn't used (as here), this should 27 # pass the verifier. 28 29 return-void 30 31.end method 32