[Mono-bugs] [Bug 535448] New: gmcs HEAD miscompile Gendarme.Rules.Design.dll

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Sat Aug 29 12:38:14 EDT 2009


http://bugzilla.novell.com/show_bug.cgi?id=535448


           Summary: gmcs HEAD miscompile Gendarme.Rules.Design.dll
    Classification: Mono
           Product: Mono: Compilers
           Version: SVN
          Platform: Other
        OS/Version: Other
            Status: NEW
          Severity: Major
          Priority: P5 - None
         Component: C#
        AssignedTo: mono-bugs at lists.ximian.com
        ReportedBy: spouliot at novell.com
         QAContact: mono-bugs at lists.ximian.com
          Found By: ---


Using mono/mcs/mono-tools r140916 you can build, without error, Gendarme but it
will fail at execution time. E.g.

make self-test

..

Gendarme v2.5.0.0
Copyright (C) 2005-2009 Novell, Inc. and contributors

Initialization: 0.8 seconds
gendarme.exe
An uncaught exception occured. Please fill a bug report at
https://bugzilla.novell.com/
Rule:    Gendarme.Rules.UI.UseSTAThreadAttributeOnSWFEntryPointsRule
Target:    (main), Mvid=b406a3e7-9bb1-437e-bf3a-31c6aab922ac
Stack trace: System.InvalidProgramException: Invalid IL code in
Gendarme.Rules.Design.PreferXmlAbstractionsRule:<Initialize>m__2
(object,Gendarme.Framework.RunnerEventArgs): IL_003e: leave     IL_ffffffff


  at (wrapper delegate-invoke)
System.EventHandler`1<Gendarme.Framework.RunnerEventArgs>:invoke_void__this___object_RunnerEventArgs
(object,Gendarme.Framework.RunnerEventArgs)
  at (wrapper delegate-invoke)
System.EventHandler`1<Gendarme.Framework.RunnerEventArgs>:invoke_void__this___object_RunnerEventArgs
(object,Gendarme.Framework.RunnerEventArgs)
  at (wrapper delegate-invoke)
System.EventHandler`1<Gendarme.Framework.RunnerEventArgs>:invoke_void__this___object_RunnerEventArgs
(object,Gendarme.Framework.RunnerEventArgs)
  at (wrapper delegate-invoke)
System.EventHandler`1<Gendarme.Framework.RunnerEventArgs>:invoke_void__this___object_RunnerEventArgs
(object,Gendarme.Framework.RunnerEventArgs)
  at (wrapper delegate-invoke)
System.EventHandler`1<Gendarme.Framework.RunnerEventArgs>:invoke_void__this___object_RunnerEventArgs
(object,Gendarme.Framework.RunnerEventArgs)
  at (wrapper delegate-invoke)
System.EventHandler`1<Gendarme.Framework.RunnerEventArgs>:invoke_void__this___object_RunnerEventArgs
(object,Gendarme.Framework.RunnerEventArgs)
  at (wrapper delegate-invoke)
System.EventHandler`1<Gendarme.Framework.RunnerEventArgs>:invoke_void__this___object_RunnerEventArgs
(object,Gendarme.Framework.RunnerEventArgs)
  at (wrapper delegate-invoke)
System.EventHandler`1<Gendarme.Framework.RunnerEventArgs>:invoke_void__this___object_RunnerEventArgs
(object,Gendarme.Framework.RunnerEventArgs)
  at (wrapper delegate-invoke)
System.EventHandler`1<Gendarme.Framework.RunnerEventArgs>:invoke_void__this___object_RunnerEventArgs
(object,Gendarme.Framework.RunnerEventArgs)
  at (wrapper delegate-invoke)
System.EventHandler`1<Gendarme.Framework.RunnerEventArgs>:invoke_void__this___object_RunnerEventArgs
(object,Gendarme.Framework.RunnerEventArgs)
  at (wrapper delegate-invoke)
System.EventHandler`1<Gendarme.Framework.RunnerEventArgs>:invoke_void__this___object_RunnerEventArgs
(object,Gendarme.Framework.RunnerEventArgs)
  at (wrapper delegate-invoke)
System.EventHandler`1<Gendarme.Framework.RunnerEventArgs>:invoke_void__this___object_RunnerEventArgs
(object,Gendarme.Framework.RunnerEventArgs)
  at Gendarme.Framework.Runner.OnEvent (System.EventHandler`1 handler,
Gendarme.Framework.RunnerEventArgs e) [0x00006] in
/home/poupou/svn/mono-tools/gendarme/framework/Gendarme.Framework/Runner.cs:251 
  at Gendarme.Framework.Runner.OnModule (Gendarme.Framework.RunnerEventArgs e)
[0x00000] 
  at Gendarme.Framework.Runner.Run () [0x00061] in
/home/poupou/svn/mono-tools/gendarme/framework/Gendarme.Framework/Runner.cs:374 
  at Gendarme.ConsoleRunner.Run () [0x0001b] in
/home/poupou/svn/mono-tools/gendarme/console/ConsoleRunner.cs:390 
  at Gendarme.ConsoleRunner.Execute (System.String[] args) [0x00143] in
/home/poupou/svn/mono-tools/gendarme/console/ConsoleRunner.cs:323 
make: *** [self-test] Error 4


IL (from monodis)

    // method line 112
    .method private hidebysig 
           instance default void '<Initialize>m__2' (object o, class
[Gendarme.Framework]Gendarme.Framework.RunnerEventArgs e)  cil managed 
    {
        .custom instance void class
[mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'()
=  (01 00 00 00 ) // ....

        // Method begins at RVA 0x4b70
    // Code size 109 (0x6d)
    .maxstack 20
    .locals init (
        class [Mono.Cecil]Mono.Cecil.AssemblyNameReference    V_0,
        class [mscorlib]System.Collections.IEnumerator    V_1,
        class [mscorlib]System.IDisposable    V_2)
    IL_0000:  ldarg.2 
    IL_0001:  callvirt instance class [Mono.Cecil]Mono.Cecil.ModuleDefinition
class
[Gendarme.Framework]Gendarme.Framework.HierarchicalEventArgs::get_CurrentModule()
    IL_0006:  callvirt instance class
[Mono.Cecil]Mono.Cecil.AssemblyNameReferenceCollection class
[Mono.Cecil]Mono.Cecil.ModuleDefinition::get_AssemblyReferences()
    IL_000b:  callvirt instance class [mscorlib]System.Collections.IEnumerator
class [mscorlib]System.Collections.CollectionBase::GetEnumerator()
    IL_0010:  stloc.1 
    .try { // 0
      IL_0011:  br IL_0043

      IL_0016:  ldloc.1 
      IL_0017:  callvirt instance object class
[mscorlib]System.Collections.IEnumerator::get_Current()
      IL_001c:  castclass [Mono.Cecil]Mono.Cecil.AssemblyNameReference
      IL_0021:  stloc.0 
      IL_0022:  ldloc.0 
      IL_0023:  callvirt instance string class
[Mono.Cecil]Mono.Cecil.AssemblyNameReference::get_Name()
      IL_0028:  ldstr "System.Xml"
      IL_002d:  call bool string::op_Equality(string, string)
      IL_0032:  brfalse IL_0043

      IL_0037:  ldarg.0 
      IL_0038:  ldc.i4.1 
      IL_0039:  callvirt instance void class
[Gendarme.Framework]Gendarme.Framework.Rule::set_Active(bool)
      IL_003e:  leave IL_ffffffff

      IL_0043:  ldloc.1 
      IL_0044:  callvirt instance bool class
[mscorlib]System.Collections.IEnumerator::MoveNext()
      IL_0049:  brtrue IL_0016

      IL_004e:  leave IL_0065

    } // end .try 0
    finally  { // 0
      IL_0053:  ldloc.1 
      IL_0054:  isinst [mscorlib]System.IDisposable
      IL_0059:  stloc.2 
      IL_005a:  ldloc.2 
      IL_005b:  brtrue.s IL_005e

      IL_005d:  endfinally 
      IL_005e:  ldloc.2 
      IL_005f:  callvirt instance void class
[mscorlib]System.IDisposable::Dispose()
      IL_0064:  endfinally 
    } // end handler 0
    IL_0065:  ldarg.0 
    IL_0066:  ldc.i4.0 
    IL_0067:  callvirt instance void class
[Gendarme.Framework]Gendarme.Framework.Rule::set_Active(bool)
    IL_006c:  ret 
    } // end of method PreferXmlAbstractionsRule::<Initialize>m__2

  } // end of class Gendarme.Rules.Design.PreferXmlAbstractionsRule
}

-- 
Configure bugmail: http://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.


More information about the mono-bugs mailing list