X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Ftests%2Fload-missing.il;h=1ae933d277bc598f764b08c4a6f4cf3796d09daf;hb=098f6e8aa8ead1a80b751fa34e5e049439c2f0c3;hp=a505a856091294e969b547021aab92c096b9b738;hpb=c4a3b30460c7ea1a1fb3c97cfc8478555714af2f;p=mono.git diff --git a/mono/tests/load-missing.il b/mono/tests/load-missing.il index a505a856091..1ae933d277b 100644 --- a/mono/tests/load-missing.il +++ b/mono/tests/load-missing.il @@ -11,6 +11,10 @@ { .ver 0:0:0:0 } +.assembly extern notFoundAssembly +{ + .ver 0:0:0:0 +} .assembly 'load-missing' { @@ -52,6 +56,34 @@ } + .class auto ansi sealed public DelegateWithMissingArgument + extends [mscorlib]System.MulticastDelegate + { + .method public hidebysig specialname rtspecialname + instance void .ctor(object 'object', + native int 'method') runtime managed + { + } + + .method public hidebysig newslot virtual + instance void Invoke(class [t]Missing t) runtime managed + { + } + + .method public hidebysig newslot virtual + instance class [mscorlib]System.IAsyncResult + BeginInvoke(class [mscorlib]System.AsyncCallback callback, + object 'object') runtime managed + { + } + + .method public hidebysig newslot virtual + instance void EndInvoke(class [mscorlib]System.IAsyncResult result) runtime managed + { + } + + } + .class public auto ansi beforefieldinit LoadMissing extends [mscorlib]System.Object { @@ -320,6 +352,37 @@ IL_0011: ret } + .method public hidebysig static void missing_assembly_in_fieldref () cil managed + { + .maxstack 8 + ldc.i4.0 + stsfld int32 [t]X::a + ret + } + + .method public hidebysig static void missing_assembly_in_call () cil managed + { + .maxstack 8 + call void class [t]Gtk.Application::Init() + ret + } + + .method public hidebysig static void missing_assembly_in_newobj () cil managed + { + .maxstack 8 + newobj instance void class [mscorlib]System.Dingus::.ctor() + pop + ret + } + + .method public hidebysig static void missing_external_type_reference_on_parameter() cil managed + { + .maxstack 8 + ldstr "Hello" + call void class [mscorlib]System.String::Trim(class [mscorlib]MissingType) + ret + } + .method public hidebysig static void missing_ldtoken_field() cil managed { @@ -460,6 +523,27 @@ ret } + .method public static void delegate_target () cil managed + { + ret + } + + .method public hidebysig static void missing_delegate_ctor_argument () cil managed + { + .maxstack 3 + .locals init (class [t]Missing.Foo2 V_0, + class EmptyDelegate V_1) + IL_0000: nop + IL_0001: newobj instance void LoadMissing::.ctor() + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: ldftn void LoadMissing::delegate_target() + IL_000e: newobj instance void DelegateWithMissingArgument::.ctor(object, + native int) + IL_0013: stloc.1 + IL_0014: ret + } + .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { @@ -471,3 +555,183 @@ } } + +.class public auto ansi beforefieldinit BrokenClass + extends [t]Missing.Foo1 +{ +} + +.class public auto ansi CCtorClass + extends [mscorlib]System.Object + { + + // method line 48 + .method public hidebysig specialname rtspecialname + instance default void '.ctor' () cil managed + { + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void object::'.ctor'() + IL_0006: ret + } // end of method CCtorClass::.ctor + + // method line 49 + .method private static specialname rtspecialname + default void '.cctor' () cil managed + { + IL_0000: nop + IL_0001: newobj instance void [t]Missing.Foo2::.ctor() + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: callvirt instance void [t]Missing.Foo2::missing() + IL_000d: nop + IL_000e: ret + } // end of method CCtorClass::.cctor + + // method line 50 + .method public static hidebysig + default void foo () cil managed + { + .maxstack 8 + IL_0000: ret + } // end of method CCtorClass::foo + + } // end of class CCtorClass + +.class interface public auto ansi abstract TestIface +{ + .method public virtual hidebysig newslot abstract instance default int32 foo () cil managed {} +} + +.class public auto ansi beforefieldinit BadMethodOverride1 +{ + .method public virtual newslot default int32 foo () + { + .override class TestIface::foo + ldc.i4.0 + ret + } + + .method public hidebysig specialname rtspecialname instance default void '.ctor' () cil managed + { + ldarg.0 + call instance void object::'.ctor'() + ret + } +} + +.class public auto ansi beforefieldinit RandomBaseClass +{ + .method public virtual newslot default int32 foo () + { + ldc.i4.0 + ret + } + + .method public static int32 foo2 () + { + ldc.i4.0 + ret + } + + .method public hidebysig specialname rtspecialname instance default void '.ctor' () cil managed + { + ldarg.0 + call instance void object::'.ctor'() + ret + } +} + +.class public auto ansi beforefieldinit BadMethodOverride2 +{ + .method public virtual newslot default int32 foo () + { + .override class RandomBaseClass::foo + ldc.i4.0 + ret + } + + .method public hidebysig specialname rtspecialname instance default void '.ctor' () cil managed + { + ldarg.0 + call instance void object::'.ctor'() + ret + } +} + +.class public auto ansi beforefieldinit BadMethodOverride3 implements TestIface +{ + .method public default int32 foo () + { + .override class TestIface::foo + ldc.i4.0 + ret + } + + .method public hidebysig specialname rtspecialname instance default void '.ctor' () cil managed + { + ldarg.0 + call instance void object::'.ctor'() + ret + } +} + +.class public auto ansi beforefieldinit BadMethodOverride4 extends RandomBaseClass +{ + .method public virtual default int32 foo2 () + { + .override class RandomBaseClass::foo2 + ldc.i4.0 + ret + } + + .method public hidebysig specialname rtspecialname instance default void '.ctor' () cil managed + { + ldarg.0 + call instance void RandomBaseClass::'.ctor'() + ret + } +} + +.class public auto ansi beforefieldinit BadOverridesDriver +{ + .method public static void bad_override1 () + { + newobj instance void BadMethodOverride1::.ctor() + pop + ret + } + + .method public static void bad_override2 () + { + newobj instance void BadMethodOverride2::.ctor() + pop + ret + } + + .method public static void bad_override3 () + { + newobj instance void BadMethodOverride3::.ctor() + pop + ret + } + + .method public static void bad_override4 () + { + newobj instance void BadMethodOverride4::.ctor() + pop + ret + } +} + +.class public auto ansi beforefieldinit FieldWithMissingType +{ + .field public class [t]Missing BrokenField + .field public static int32 WorkingField +} + +.class public auto ansi beforefieldinit FieldWithMissingCustomAttribute +{ + .field public object f + .custom instance void class [notFoundAssembly]SomeAttribute::'.ctor'() = (01 00 00 00 ) // .... +}