Please do not reply to this email- if you want to comment on the bug, go to the URL shown below and enter your comments there.
Changed by [EMAIL PROTECTED] http://bugzilla.ximian.com/show_bug.cgi?id=78549 --- shadow/78549 2006-05-31 14:09:07.000000000 -0400 +++ shadow/78549.tmp.10960 2006-05-31 14:09:07.000000000 -0400 @@ -0,0 +1,109 @@ +Bug#: 78549 +Product: Mono: Runtime +Version: 1.0 +OS: +OS Details: +Status: NEW +Resolution: +Severity: +Priority: Wishlist +Component: JIT +AssignedTo: [EMAIL PROTECTED] +ReportedBy: [EMAIL PROTECTED] +QAContact: [EMAIL PROTECTED] +TargetMilestone: --- +URL: +Cc: +Summary: Null reference exception does not break flow correctly + +Please fill in this template when reporting a bug, unless you know what you +are doing. +Description of Problem: +The exception is thrown, but some of the code after it is being executed + +Steps to reproduce the problem: +1. Compile following IL + +.assembly extern mscorlib +{ + .ver 2:0:0:0 + .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4.. +} +.assembly 'out' +{ + .custom instance void class +[mscorlib]System.Runtime.CompilerServices.CompilationRelaxationsAttribute::.ctor(int32) += (01 00 08 00 00 00 00 00 ) // ........ + + .hash algorithm 0x00008004 + .ver 0:0:0:0 +} +.module 'out' // GUID = {4C258A12-8B71-4F2F-BBD4-D5D836DE4A15} + + + .class private auto ansi abstract sealed M + extends [mscorlib]System.Object + { + + // method line 1 + .method public static hidebysig + default void Main () cil managed + { + // Method begins at RVA 0x20ec + .entrypoint + // Code size 99 (0x63) + .maxstack 10 + .locals init ( + string V_0, + int32 V_1, + string V_2, + class [mscorlib]System.NullReferenceException V_3) + .try { // 0 + IL_0000: ldstr "output" + IL_0005: stloc.0 + IL_0006: ldnull + IL_0007: callvirt instance int32 string::get_Length() + IL_000c: stloc.1 + IL_000d: ldstr "!!" + IL_0012: stloc.2 + IL_0013: ldstr "this " + IL_0018: call void class [mscorlib]System.Console::Write(string) + IL_001d: ldloc.0 + IL_001e: call void class [mscorlib]System.Console::Write(string) + IL_0023: ldstr " will be " + IL_0028: call void class [mscorlib]System.Console::Write(string) + IL_002d: ldloc.1 + IL_002e: call void class [mscorlib]System.Console::Write(int32) + IL_0033: ldstr " interrupted " + IL_0038: call void class [mscorlib]System.Console::Write(string) + IL_003d: ldloc.2 + IL_003e: call void class [mscorlib]System.Console::Write(string) + IL_0043: ldstr "\n" + IL_0048: call void class [mscorlib]System.Console::Write(string) + IL_004d: leave IL_0062 + + } // end .try 0 + catch [mscorlib]System.NullReferenceException { // 0 + IL_0052: stloc.3 + IL_0053: ldstr "ok-catched\n" + IL_0058: call void class [mscorlib]System.Console::Write(string) + IL_005d: leave IL_0062 + + } // end handler 0 + IL_0062: ret + } // end of method M::default void Main () + + } // end of class M + + +Actual Results: +this output will be ok-catched + +Expected Results: +ok-catched + +How often does this happen? +with current mono svn always + +Additional Information: +it works fine with mono 1.1.15 _______________________________________________ mono-bugs maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-bugs
