Added comment.
* tests/regression/jasmin/test_verify_fail_double_overwritten.j:
New test.
* tests/regression/jasmin/test_verify_fail_invoke_basic_type.j:
New test.
* tests/regression/jasmin/test_verify_fail_long_overwritten.j:
New test.
--HG--
branch : unified_variables
--- /dev/null
+.class public test_verify_fail_double_overwritten
+.super java/lang/Object
+
+; test: second half of double is overwritten by an int
+
+; ======================================================================
+
+.method public <init>()V
+ aload_0
+ invokenonvirtual java/lang/Object/<init>()V
+ return
+.end method
+
+; ======================================================================
+
+.method public static check(D)V
+ .limit locals 2
+ .limit stack 10
+ getstatic java/lang/System/out Ljava/io/PrintStream;
+ dload_0
+ invokevirtual java/io/PrintStream/println(D)V
+ return
+.end method
+
+; ======================================================================
+
+.method public static main([Ljava/lang/String;)V
+ .limit stack 2
+ .limit locals 3
+
+ ldc2_w 12.34
+ dstore 1
+
+ aload 0
+ ifnull force_basic_block_boundary
+
+ ; --------------------------------------------------
+
+ ldc 42
+ istore 2
+
+ ; --------------------------------------------------
+
+force_basic_block_boundary:
+
+ dload 1
+ ; ERROR: VerifyError
+ invokestatic test_verify_fail_double_overwritten/check(D)V
+
+ return
+.end method
--- /dev/null
+.class public test_verify_fail_invoke_basic_type
+.super java/lang/Object
+
+; ======================================================================
+
+.method public <init>()V
+ aload_0
+ invokenonvirtual java/lang/Object/<init>()V
+ return
+.end method
+
+; ======================================================================
+
+.method public static checkI(I)V
+ .limit locals 1
+ .limit stack 10
+ getstatic java/lang/System/out Ljava/io/PrintStream;
+ iload_0
+ invokevirtual java/io/PrintStream/println(I)V
+ return
+.end method
+
+; ======================================================================
+
+.method public static main([Ljava/lang/String;)V
+ .limit stack 2
+ .limit locals 2
+
+ ldc "test"
+ astore 1
+
+ aload 1
+ invokestatic test_verify_fail_invoke_basic_type/checkI(I)V
+ ; ERROR: VerifyError
+
+ return
+.end method
.class public test_verify_fail_long_local
.super java/lang/Object
+; long local overwrites int local in second half
+
; ======================================================================
.method public <init>()V
--- /dev/null
+.class public test_verify_fail_long_overwritten
+.super java/lang/Object
+
+; test: second half of long is overwritten by an int
+
+; ======================================================================
+
+.method public <init>()V
+ aload_0
+ invokenonvirtual java/lang/Object/<init>()V
+ return
+.end method
+
+; ======================================================================
+
+.method public static check(J)V
+ .limit locals 2
+ .limit stack 10
+ getstatic java/lang/System/out Ljava/io/PrintStream;
+ lload_0
+ invokevirtual java/io/PrintStream/println(J)V
+ return
+.end method
+
+; ======================================================================
+
+.method public static main([Ljava/lang/String;)V
+ .limit stack 2
+ .limit locals 3
+
+ ldc2_w 1234567890987654321
+ lstore 1
+
+ aload 0
+ ifnull force_basic_block_boundary
+
+ ; --------------------------------------------------
+
+ ldc 42
+ istore 2
+
+ ; --------------------------------------------------
+
+force_basic_block_boundary:
+
+ lload 1
+ ; ERROR: VerifyError
+ invokestatic test_verify_fail_long_overwritten/check(J)V
+
+ return
+.end method