https://bugzilla.novell.com/show_bug.cgi?id=383993
Summary: invalid IL generated for comparison of enum with null Product: Mono: Compilers Version: unspecified Platform: Other OS/Version: Other Status: NEW Severity: Normal Priority: P5 - None Component: C# AssignedTo: mono-bugs@lists.ximian.com ReportedBy: [EMAIL PROTECTED] QAContact: mono-bugs@lists.ximian.com Found By: --- Created an attachment (id=210621) --> (https://bugzilla.novell.com/attachment.cgi?id=210621) enum_null_comparison_bad_il.diff After applying the attached diff to the trunk corlib, the test case (svn) gert/standalone/bug323430 fails with the following message: Unhandled Exception: System.InvalidProgramException: Invalid IL code in System.IO.MonoIO:SetFileTime (string,int,long,long,long,System.DateTime,System.IO.MonoIOError&): IL_0094: ceq The IL generated for the method is: // method line 7783 .method public static hidebysig default bool SetFileTime (string path, int32 'type', int64 creation_time, int64 last_access_time, int64 last_write_time, valuetype System.DateTime dateTime, [out ] valuetype System.IO.MonoIOError& 'error') cil managed { // Method begins at RVA 0x6f71c // Code size 202 (0xca) .maxstack 24 .locals init ( native int V_0, bool V_1, valuetype System.IO.MonoIOError V_2, int32 V_3) IL_0000: ldstr "MonoIO.SetFileTime (\"{0}\")" IL_0005: ldarg.0 IL_0006: call void class System.Console::WriteLine(string, object) IL_000b: ldarg.0 IL_000c: ldc.i4.3 IL_000d: ldc.i4.3 IL_000e: ldc.i4.3 IL_000f: ldc.i4.0 IL_0010: ldarg.s 6 IL_0012: call native int class System.IO.MonoIO::Open(string, valuetype System.IO.FileMode, valuetype System.IO.FileAccess, valuetype System.IO.FileShare, valuetype System.IO.FileOptions, [out] valuetype System.IO.MonoIOError&) IL_0017: stloc.0 IL_0018: ldloc.0 IL_0019: ldsfld native int System.IO.MonoIO::InvalidHandle IL_001e: call bool native int::op_Equality(native int, native int) IL_0023: brfalse IL_0034 IL_0028: ldstr "\topen failed" IL_002d: call void class System.Console::WriteLine(string) IL_0032: ldc.i4.0 IL_0033: ret IL_0034: ldarg.1 IL_0035: stloc.3 IL_0036: ldloc.3 IL_0037: ldc.i4.1 IL_0038: sub IL_0039: switch ( IL_004f, IL_005d, IL_006b) IL_004a: br IL_0079 IL_004f: ldarga.s 5 IL_0051: call instance int64 valuetype System.DateTime::ToFileTime() IL_0056: starg.s 2 IL_0058: br IL_0079 IL_005d: ldarga.s 5 IL_005f: call instance int64 valuetype System.DateTime::ToFileTime() IL_0064: starg.s 3 IL_0066: br IL_0079 IL_006b: ldarga.s 5 IL_006d: call instance int64 valuetype System.DateTime::ToFileTime() IL_0072: starg.s 4 IL_0074: br IL_0079 IL_0079: ldloc.0 IL_007a: ldarg.2 IL_007b: ldarg.3 IL_007c: ldarg.s 4 IL_007e: ldarg.s 6 IL_0080: call bool class System.IO.MonoIO::SetFileTime(native int, int64, int64, int64, [out] valuetype System.IO.MonoIOError&) IL_0085: stloc.1 IL_0086: ldstr "\tafter SetFileTime (error == {0})" IL_008b: ldarg.s 6 IL_008d: ldind.i4 IL_008e: ldarg.s 6 IL_0090: ldind.i4 IL_0091: bne.un.s IL_0098 IL_0093: ldc.i4.0 IL_0094: ceq IL_0096: br.s IL_0099 IL_0098: ldc.i4.1 IL_0099: brfalse IL_00b5 IL_009e: ldarg.s 6 IL_00a0: ldind.i4 IL_00a1: box System.IO.MonoIOError IL_00a6: call instance class System.Type object::GetType() IL_00ab: callvirt instance string class System.Type::ToString() IL_00b0: br IL_00ba IL_00b5: ldstr "[null]" IL_00ba: call void class System.Console::WriteLine(string, object) IL_00bf: ldloc.0 IL_00c0: ldloca.s 2 IL_00c2: call bool class System.IO.MonoIO::Close(native int, [out] valuetype System.IO.MonoIOError&) IL_00c7: pop IL_00c8: ldloc.1 IL_00c9: ret } // end of method MonoIO::SetFileTime -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug. You are the assignee for the bug. _______________________________________________ mono-bugs maillist - mono-bugs@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-bugs