Merge pull request #1109 from adbre/iss358
[mono.git] / mono / tests / verifier / unverifiable_ldflda_other_class_field_on_cctor.il
1
2 // unverifiable CIL which breaks the ECMA-335 rules. 
3 // this CIL should fail verification by a conforming CLI verifier.
4
5 .assembly 'unverifiable_assign_compat_9_1_generated'
6 {
7   .hash algorithm 0x00008004
8   .ver  0:0:0:0
9 }
10
11 .assembly extern mscorlib
12 {
13   .ver 1:0:5000:0
14   .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
15 }
16
17 .class sealed MyValueType extends [mscorlib]System.ValueType
18 {
19         .field private int32 fld
20 }
21
22
23 .class public GoodClass {
24         .field initonly valuetype MyValueType x
25 }
26
27 .class public BadClass {
28         .method private static specialname rtspecialname default void .cctor ()
29         {
30             .maxstack 8
31             .locals (GoodClass V_1)
32                 ldloca.s 0
33                 ldflda valuetype MyValueType GoodClass::x
34                 pop
35                 ret 
36         }
37
38         .method public hidebysig specialname rtspecialname instance default void .ctor () cil managed
39         {
40                 .maxstack 8
41                 ldarg.0 
42                 call instance void object::.ctor()
43                 ret
44         }
45
46 }
47
48 .method public static void Main() cil managed
49 {
50         .maxstack 2
51         .entrypoint
52         newobj instance void BadClass::.ctor()
53         pop
54         ret
55 }
56
57
58