New test.
* tests/regression/jasmin/test_verify_fail_new_in_local_within_try.j:
Likewise.
* tests/regression/jasmin/test_verify_fail_double_local_index.j:
Likewise.
* tests/regression/jasmin/test_verify_fail_backward_with_new_on_stack.j:
Likewise.
--HG--
branch : unified_variables
--- /dev/null
+.class public test_verify_fail_backward_with_new_in_local
+.super java/lang/Object
+
+; ======================================================================
+
+.method public <init>()V
+ aload_0
+ invokenonvirtual java/lang/Object/<init>()V
+ return
+.end method
+
+; ======================================================================
+
+.method public static main([Ljava/lang/String;)V
+ .limit stack 2
+ .limit locals 3
+
+ ldc 1
+ istore 1
+
+backward:
+ new test_verify_fail_backward_with_new_in_local
+ astore 2
+
+ iload 1
+ ifeq backward
+ ; ERROR: VerifyError
+
+ aload 2
+ dup
+ invokespecial test_verify_fail_backward_with_new_in_local/<init>()V
+
+ getstatic java/lang/System/out Ljava/io/PrintStream;
+ swap
+ invokevirtual java/io/PrintStream/println(Ljava/lang/Object;)V
+
+ return
+.end method
--- /dev/null
+.class public test_verify_fail_backward_with_new_on_stack
+.super java/lang/Object
+
+; ======================================================================
+
+.method public <init>()V
+ aload_0
+ invokenonvirtual java/lang/Object/<init>()V
+ return
+.end method
+
+; ======================================================================
+
+.method public static main([Ljava/lang/String;)V
+ .limit stack 2
+ .limit locals 3
+
+ ldc 1
+ istore 1
+
+ aconst_null
+
+backward:
+ pop
+ new test_verify_fail_backward_with_new_in_local
+
+ iload 1
+ ifeq backward
+ ; ERROR: VerifyError
+
+ dup
+ invokespecial test_verify_fail_backward_with_new_in_local/<init>()V
+
+ getstatic java/lang/System/out Ljava/io/PrintStream;
+ swap
+ invokevirtual java/io/PrintStream/println(Ljava/lang/Object;)V
+
+ return
+.end method
--- /dev/null
+.class public test_verify_fail_double_local_index
+.super java/lang/Object
+
+; ======================================================================
+
+.method public <init>()V
+ aload_0
+ invokenonvirtual java/lang/Object/<init>()V
+ return
+.end method
+
+; ======================================================================
+
+.method public static main([Ljava/lang/String;)V
+ .limit stack 2
+ .limit locals 2
+
+ ldc 42
+ istore 1
+
+ aload 0
+ ifnull force_basic_block_boundary
+
+ ; --------------------------------------------------
+
+ ldc2_w 123.456
+ dstore 1
+ ; ERROR: VerifyError
+
+ ; --------------------------------------------------
+
+force_basic_block_boundary:
+
+ return
+.end method
--- /dev/null
+.class public test_verify_fail_new_in_local_within_try
+.super java/lang/Object
+
+; ======================================================================
+
+.method public <init>()V
+ aload_0
+ invokenonvirtual java/lang/Object/<init>()V
+ return
+.end method
+
+; ======================================================================
+
+.method public static main([Ljava/lang/String;)V
+ .limit stack 2
+ .limit locals 3
+
+ .catch java/lang/Throwable from start_try to end_try using handler
+
+ ldc 1
+ istore 1
+
+ new test_verify_fail_backward_with_new_in_local
+start_try:
+ astore 2
+ ; ERROR: VerifyError
+
+ aload 2
+ dup
+ invokespecial test_verify_fail_backward_with_new_in_local/<init>()V
+end_try:
+
+ getstatic java/lang/System/out Ljava/io/PrintStream;
+ swap
+ invokevirtual java/io/PrintStream/println(Ljava/lang/Object;)V
+
+ return
+
+handler:
+ return
+.end method