* tests/regression/Makefile.am (JAVACCMD): Added -source 1.5 -target
[cacao.git] / tests / regression / jasmin / test_verify_fail_jsr_recursion_terminates.j
1 .class public test_verify_fail_jsr_recursion_terminates
2 .super java/lang/Object
3
4 ; ======================================================================
5
6 .method public <init>()V
7    aload_0
8    invokenonvirtual java/lang/Object/<init>()V
9    return
10 .end method
11
12 ; ======================================================================
13
14 .method public static check(I)V
15         .limit locals 1
16         .limit stack 10
17         getstatic java/lang/System/out Ljava/io/PrintStream;
18         iload_0
19         invokevirtual java/io/PrintStream/println(I)V
20         return
21 .end method
22
23 .method public static check(Ljava/lang/String;)V
24         .limit locals 1
25         .limit stack 10
26         getstatic java/lang/System/out Ljava/io/PrintStream;
27         aload_0
28         invokevirtual java/io/PrintStream/println(Ljava/lang/String;)V
29         return
30 .end method
31
32 ; ======================================================================
33
34 .method public static main([Ljava/lang/String;)V
35         .limit stack 2
36         .limit locals 4
37
38         ldc 0
39         istore 1
40
41         aload 0
42         ifnull force_basic_block_boundary
43
44         ; --------------------------------------------------
45
46         jsr sbr_1
47         jsr sbr_1
48
49         ; --------------------------------------------------
50
51 force_basic_block_boundary:
52
53         iload 1
54         invokestatic test_verify_fail_jsr_recursion_terminates/check(I)V
55
56         return
57
58 sbr_1:
59         ldc "entry"
60         invokestatic test_verify_fail_jsr_recursion_terminates/check(Ljava/lang/String;)V
61         iload 1
62         ifne second_time
63
64         astore 2
65         ldc "first"
66         invokestatic test_verify_fail_jsr_recursion_terminates/check(Ljava/lang/String;)V
67         iinc 1 1
68         jsr sbr_1
69         ; ERROR: VerifyError
70         ret 2
71
72 second_time:
73         astore 3
74         ldc "second"
75         invokestatic test_verify_fail_jsr_recursion_terminates/check(Ljava/lang/String;)V
76         ret 3
77
78 .end method
79