2008-01-17 Rodrigo Kumpera <rkumpera@novell.com>
[mono.git] / mono / tests / verifier / valid_exception_sequence.il
1
2 // valid CIL which breaks the ECMA-335 rules. 
3 // this CIL should fail verification by a conforming CLI verifier.
4
5 .assembly 'valid_branch_inside_same_block_1_generated'
6 {
7   .hash algorithm 0x00008004
8   .ver  0:0:0:0
9 }
10
11 .class ClassA
12         extends [mscorlib]System.Object
13 {
14 }
15
16 .class sealed MyValueType
17         extends [mscorlib]System.ValueType
18 {
19         .field private int32 v
20 }
21
22 .class public Template`1<T>
23         extends [mscorlib]System.Object
24 {
25 }
26
27 .class sealed public ValueTypeTemplate`1<T>
28         extends [mscorlib]System.ValueType
29 {
30         .field private int32 v
31 }
32
33 .method public static int32 Main() cil managed
34 {
35         .entrypoint
36         .maxstack 8
37         .locals init (object _X0)
38  
39         br BLOCK_1
40         ldc.i4 0x7FFFFFFF
41         pop
42
43 BLOCK_1:
44         nop
45         .try {
46                 nop
47                 newobj instance void class [mscorlib]System.Exception::.ctor()
48                 throw
49                 nop
50 IN_TRY:
51 BLOCK_2:
52                 leave END
53         } catch [mscorlib]System.Exception {
54                 stloc.0
55                 ldstr "----catch {0}"
56                 ldloc.0
57                 call void class [mscorlib]System.Console::WriteLine(string, object)
58                 
59                 nop
60 IN_CATCH:
61 BLOCK_3:
62                 nop
63                 leave HERE
64         }
65
66 HERE:
67         .try {
68                 leave HERE_2
69         } finally {
70                 nop
71                 
72                 nop
73 IN_FINALLY:
74 BLOCK_4:
75                 nop
76                 endfinally
77         }
78
79 HERE_2:
80         .try {
81                 newobj instance void class [mscorlib]System.Exception::.ctor()
82                 throw
83                 leave END
84         } filter {
85                 stloc.0
86                 ldstr "---filter {0}"
87                 ldloc.0
88                 call void class [mscorlib]System.Console::WriteLine(string, object)
89                 nop
90                 
91                 nop
92 IN_FILTER:
93 BLOCK_5:
94                 nop
95                 ldc.i4.1
96                 endfilter
97         }
98         {
99                 stloc.0
100                 ldstr "---handler {0}"
101                 ldloc.0
102                 call void class [mscorlib]System.Console::WriteLine(string, object)
103                 nop
104                 
105                 nop
106 IN_HANDLER:
107 BLOCK_6:
108                 nop
109                 leave END
110         }
111
112 END:
113         ldc.i4.0
114         ret
115 }