--- /dev/null
+//
+// This is a test to reproduce the class hierarchy bug generated
+// by some VB applications.
+//
+// Bug: #79125
+//
+.assembly extern mscorlib
+{
+ .ver 2:0:0:0
+ .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
+}
+.assembly extern System
+{
+ .ver 2:0:0:0
+ .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
+}
+.assembly 'test2'
+{
+ .hash algorithm 0x00008004
+ .ver 1:0:0:0
+}
+.module test2.exe // GUID = {656A0DD7-7485-4FA9-8136-4E05614D1FE9}
+
+
+.namespace vbnc
+{
+ .class interface public auto ansi abstract IBaseObject
+ {
+
+ // method line 17
+ .method public virtual newslot abstract specialname
+ instance default class vbnc.IBaseObject get_Parent () cil managed
+ {
+ // Method begins at RVA 0x0
+ } // end of method IBaseObject::get_Parent
+
+ .property instance class vbnc.IBaseObject Parent ()
+ {
+ .get instance default class vbnc.IBaseObject vbnc.IBaseObject::get_Parent ()
+ }
+ } // end of class vbnc.IBaseObject
+}
+
+.namespace vbnc
+{
+ .class public auto ansi abstract BaseObject
+ extends [mscorlib]System.Object
+ implements vbnc.IBaseObject {
+
+ // method line 18
+ .method public specialname rtspecialname
+ instance default void .ctor () cil managed
+ {
+ .custom instance void class [mscorlib]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = (01 00 00 00 ) // ....
+
+ // Method begins at RVA 0x22c0
+ // Code size 9 (0x9)
+ .maxstack 8
+ IL_0000: ldarg.0
+ IL_0001: call instance void object::.ctor()
+ IL_0006: nop
+ IL_0007: nop
+ IL_0008: ret
+ } // end of method BaseObject::.ctor
+
+ // method line 19
+ .method private final virtual newslot specialname
+ instance default class vbnc.IBaseObject get_pParent () cil managed
+ {
+ // Method begins at RVA 0x22cc
+ .override class vbnc.IBaseObject::get_Parent
+ // Code size 7 (0x7)
+ .maxstack 1
+ .locals init (
+ class vbnc.IBaseObject V_0)
+ IL_0000: nop
+ IL_0001: ldnull
+ IL_0002: stloc.0
+ IL_0003: br.s IL_0005
+
+ IL_0005: ldloc.0
+ IL_0006: ret
+ } // end of method BaseObject::get_pParent
+
+ .property instance class vbnc.IBaseObject pParent ()
+ {
+ .get instance default class vbnc.IBaseObject vbnc.BaseObject::get_pParent ()
+ }
+ } // end of class vbnc.BaseObject
+}
+
+.namespace vbnc
+{
+ .class interface public auto ansi abstract INameable
+ implements vbnc.IBaseObject {
+
+ // method line 20
+ .method public virtual newslot abstract specialname
+ instance default string get_Name () cil managed
+ {
+ // Method begins at RVA 0x0
+ } // end of method INameable::get_Name
+
+ .property instance string Name ()
+ {
+ .get instance default string vbnc.INameable::get_Name ()
+ }
+ } // end of class vbnc.INameable
+}
+
+.namespace vbnc
+{
+ .class public auto ansi abstract MemberDeclaration
+ extends vbnc.BaseObject
+ implements vbnc.INameable {
+
+ .method public specialname rtspecialname
+ instance default void .ctor () cil managed
+ {
+ .custom instance void class [mscorlib]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = (01 00 00 00 ) // ....
+
+ // Method begins at RVA 0x22e0
+ // Code size 9 (0x9)
+ .maxstack 8
+ IL_0000: ldarg.0
+ IL_0001: call instance void class vbnc.BaseObject::.ctor()
+ IL_0008: ret
+ } // end of method MemberDeclaration::.ctor
+
+ // method line 22
+ .method public final virtual newslot specialname
+ instance default string get_Name () cil managed
+ {
+ // Method begins at RVA 0x22ec
+ .override class vbnc.INameable::get_Name
+ // Code size 11 (0xb)
+ .maxstack 1
+ .locals init (
+ string V_0)
+ IL_0000: nop
+ IL_0001: ldstr ""
+ IL_0006: stloc.0
+ IL_0007: br.s IL_0009
+
+ IL_0009: ldloc.0
+ IL_000a: ret
+ } // end of method MemberDeclaration::get_Name
+
+ .property instance string Name ()
+ {
+ .get instance default string vbnc.MemberDeclaration::get_Name ()
+ }
+ } // end of class vbnc.MemberDeclaration
+}
+
+.namespace vbnc
+{
+ .class public auto ansi ConstantDeclaration
+ extends vbnc.MemberDeclaration
+ {
+
+ .method public specialname rtspecialname
+ instance default void .ctor () cil managed
+ {
+ .maxstack 8
+ IL_0000: ldarg.0
+ IL_0001: call instance void class vbnc.MemberDeclaration::.ctor()
+ IL_0008: ret
+ } // end of method ConstantDeclaration::.ctor
+ } // end of class vbnc.ConstantDeclaration
+}
+
+.namespace vbnc
+{
+ .class private auto ansi sealed Module1
+ extends [mscorlib]System.Object
+ {
+ // method line 24
+ .method public static
+ default void Main () cil managed
+ {
+ .entrypoint
+ .maxstack 20
+ newobj instance void class vbnc.ConstantDeclaration::.ctor()
+ pop
+ IL_0002: ret
+ } // end of method Module1::Main
+
+ } // end of class vbnc.Module1
+}
+