[Mono-bugs] [Bug 674548] New: gmcs crash with a malformed enum definition

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Wed Feb 23 18:22:28 EST 2011


https://bugzilla.novell.com/show_bug.cgi?id=674548

https://bugzilla.novell.com/show_bug.cgi?id=674548#c0


           Summary: gmcs crash with a malformed enum definition
    Classification: Mono
           Product: Mono: Compilers
           Version: 2.6.x
          Platform: x86
        OS/Version: Ubuntu
            Status: NEW
          Severity: Normal
          Priority: P5 - None
         Component: C#
        AssignedTo: msafar at novell.com
        ReportedBy: abels at bluewin.ch
         QAContact: mono-bugs at lists.ximian.com
          Found By: ---
           Blocker: ---


User-Agent:       Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.3)
Gecko/20100401 Firefox/3.6.3

A malformed enum definition can crash the gmcs compiler.
In the example below, a dot replace the comma.






Reproducible: Always

Steps to Reproduce:
The program was created and compiled under monodevelop.

This little program reproduce the problem.


using System;

namespace TestEnum
{
    public enum RefreshType : int
    {
        Cyclic                = 0,
        Delta                = 1.  // dot at eol
        CyclicAndDelta            = 2
    }
}

The command line is :
/usr/bin/gmcs /noconfig
"/out:/home/abeguin/Projects/TestEnum/bin/Debug/TestEnum.exe"
"/r:/usr/lib/mono/2.0/System.dll" /nologo /warn:4 /debug:+ /debug:full
/optimize- /codepage:utf8 /platform:x86 "/define:DEBUG"  /t:exe
"/home/abeguin/Projects/TestEnum/Main.cs"
"/home/abeguin/Projects/TestEnum/AssemblyInfo.cs" 


Actual Results:  
Unhandled Exception: System.NullReferenceException: Object reference not set to
an instance of an object
  at Mono.CSharp.MemberCore.LookupExtensionMethod (System.Type extensionType,
System.String name, Location loc) [0x00000] in <filename unknown>:0 
  at Mono.CSharp.MemberCore.LookupExtensionMethod (System.Type extensionType,
System.String name, Location loc) [0x00000] in <filename unknown>:0 
  at Mono.CSharp.MemberCore.LookupExtensionMethod (System.Type extensionType,
System.String name, Location loc) [0x00000] in <filename unknown>:0 
  at Mono.CSharp.ResolveContext.LookupExtensionMethod (System.Type
extensionType, System.String name, Location loc) [0x00000] in <filename
unknown>:0 
  at Mono.CSharp.MemberAccess.DoResolve (Mono.CSharp.ResolveContext ec,
Mono.CSharp.Expression right_side) [0x00000] in <filename unknown>:0 
  at Mono.CSharp.MemberAccess.DoResolveLValue (Mono.CSharp.ResolveContext ec,
Mono.CSharp.Expression right_side) [0x00000] in <filename unknown>:0 
  at Mono.CSharp.Expression.ResolveLValue (Mono.CSharp.ResolveContext ec,
Mono.CSharp.Expression right_side) [0x00000] in <filename unknown>:0 
  at Mono.CSharp.Assign.DoResolve (Mono.CSharp.ResolveContext ec) [0x00000] in
<filename unknown>:0 
  at Mono.CSharp.SimpleAssign.DoResolve (Mono.CSharp.ResolveContext ec)
[0x00000] in <filename unknown>:0 
  at Mono.CSharp.Expression.Resolve (Mono.CSharp.ResolveContext ec,
ResolveFlags flags) [0x00000] in <filename unknown>:0 
  at Mono.CSharp.Expression.Resolve (Mono.CSharp.ResolveContext ec) [0x00000]
in <filename unknown>:0 
  at Mono.CSharp.Expression.ResolveAsConstant (Mono.CSharp.ResolveContext ec,
Mono.CSharp.MemberCore mc) [0x00000] in <filename unknown>:0 
  at Mono.CSharp.EnumMember.DoResolveValue (Mono.CSharp.ResolveContext ec)
[0x00000] in <filename unknown>:0 
  at Mono.CSharp.Const.ResolveValue () [0x00000] in <filename unknown>:0 
  at Mono.CSharp.Const.Emit () [0x00000] in <filename unknown>:0 
  at Mono.CSharp.TypeContainer.EmitConstants () [0x00000] in <filename
unknown>:0 
  at Mono.CSharp.TypeContainer.EmitType () [0x00000] in <filename unknown>:0 
  at Mono.CSharp.RootContext.EmitCode () [0x00000] in <filename unknown>:0 
  at Mono.CSharp.Driver.Compile () [0x00000] in <filename unknown>:0 
  at Mono.CSharp.Driver.Main (System.String[] args) [0x00000] in <filename
unknown>:0 



Unhandled Exception: System.NullReferenceException: Object reference not set to
an instance of an object
  at Mono.CSharp.MemberCore.LookupExtensionMethod (System.Type extensionType,
System.String name, Location loc) [0x00000] in <filename unknown>:0 
  at Mono.CSharp.MemberCore.LookupExtensionMethod (System.Type extensionType,
System.String name, Location loc) [0x00000] in <filename unknown>:0 
  at Mono.CSharp.MemberCore.LookupExtensionMethod (System.Type extensionType,
System.String name, Location loc) [0x00000] in <filename unknown>:0 
  at Mono.CSharp.ResolveContext.LookupExtensionMethod (System.Type
extensionType, System.String name, Location loc) [0x00000] in <filename
unknown>:0 
  at Mono.CSharp.MemberAccess.DoResolve (Mono.CSharp.ResolveContext ec,
Mono.CSharp.Expression right_side) [0x00000] in <filename unknown>:0 
  at Mono.CSharp.MemberAccess.DoResolveLValue (Mono.CSharp.ResolveContext ec,
Mono.CSharp.Expression right_side) [0x00000] in <filename unknown>:0 
  at Mono.CSharp.Expression.ResolveLValue (Mono.CSharp.ResolveContext ec,
Mono.CSharp.Expression right_side) [0x00000] in <filename unknown>:0 
  at Mono.CSharp.Assign.DoResolve (Mono.CSharp.ResolveContext ec) [0x00000] in
<filename unknown>:0 
  at Mono.CSharp.SimpleAssign.DoResolve (Mono.CSharp.ResolveContext ec)
[0x00000] in <filename unknown>:0 
  at Mono.CSharp.Expression.Resolve (Mono.CSharp.ResolveContext ec,
ResolveFlags flags) [0x00000] in <filename unknown>:0 
  at Mono.CSharp.Expression.Resolve (Mono.CSharp.ResolveContext ec) [0x00000]
in <filename unknown>:0 
  at Mono.CSharp.Expression.ResolveAsConstant (Mono.CSharp.ResolveContext ec,
Mono.CSharp.MemberCore mc) [0x00000] in <filename unknown>:0 
  at Mono.CSharp.EnumMember.DoResolveValue (Mono.CSharp.ResolveContext ec)
[0x00000] in <filename unknown>:0 
  at Mono.CSharp.Const.ResolveValue () [0x00000] in <filename unknown>:0 
  at Mono.CSharp.Const.Emit () [0x00000] in <filename unknown>:0 
  at Mono.CSharp.TypeContainer.EmitConstants () [0x00000] in <filename
unknown>:0 
  at Mono.CSharp.TypeContainer.EmitType () [0x00000] in <filename unknown>:0 
  at Mono.CSharp.RootContext.EmitCode () [0x00000] in <filename unknown>:0 
  at Mono.CSharp.Driver.Compile () [0x00000] in <filename unknown>:0 
  at Mono.CSharp.Driver.Main (System.String[] args) [0x00000] in <filename
unknown>:0 
Construction terminée -- 1 erreur, 0 avertissement

-- 
Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.


More information about the mono-bugs mailing list