Fixes PR80.
[cacao.git] / tests / regression / jasmin / test_verify_ok_jsr_improper_nesting.j
1 .class public test_verify_ok_jsr_improper_nesting
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         ; OUTPUT: one
48         ; OUTPUT: two
49
50         jsr sbr_1
51         ; OUTPUT: one
52         ; OUTPUT: two
53
54         ; --------------------------------------------------
55
56 force_basic_block_boundary:
57
58         iload 1
59         invokestatic test_verify_ok_jsr_improper_nesting/check(I)V
60         ; OUTPUT: 0
61
62         return
63
64 sbr_1:
65         astore 2
66         ldc "one"
67         invokestatic test_verify_ok_jsr_improper_nesting/check(Ljava/lang/String;)V
68         jsr sbr_2
69         ldc "one-B"
70         invokestatic test_verify_ok_jsr_improper_nesting/check(Ljava/lang/String;)V
71         ret 2
72
73 sbr_2:
74         astore 3
75         ldc "two"
76         invokestatic test_verify_ok_jsr_improper_nesting/check(Ljava/lang/String;)V
77         ret 2
78
79 .end method
80