[Mono-bugs] [Bug 80249][Maj] Changed - [GMCS] incorrect compilation of foreach

bugzilla-daemon at bugzilla.ximian.com bugzilla-daemon at bugzilla.ximian.com
Wed Jan 10 01:05:51 EST 2007


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 miguel at ximian.com.

http://bugzilla.ximian.com/show_bug.cgi?id=80249

--- shadow/80249	2006-12-14 07:16:46.000000000 -0500
+++ shadow/80249.tmp.22304	2007-01-10 01:05:51.000000000 -0500
@@ -135,6 +135,84 @@
 
 so, there may be some other issue.  Perhaps we are checking 'is
 IEnumerable' too early somewhere.
 
 ------- Additional Comments From lupus at ximian.com  2006-12-14 07:16 -------
 *** Bug 80259 has been marked as a duplicate of this bug. ***
+
+------- Additional Comments From miguel at ximian.com  2007-01-10 01:05 -------
+Hello,
+
+This seems to have regressed.  Now instead of an exception, this is
+what I get from running ipy.exe:
+
+
+** ERROR **: file class.c: line 574 (mono_generic_class_get_context):
+assertion failed: (context->class_inst == gclass->inst)
+aborting...
+Stacktrace:
+
+  at IronPython.Runtime.SystemState.Initialize () <0xffffffff>
+  at IronPython.Runtime.SystemState.Initialize () <0x00043>
+  at IronPython.Runtime.SystemState..ctor
+(IronPython.Hosting.EngineOptions) <0x00013>
+  at IronPython.Hosting.PythonEngine.Initialize
+(IronPython.Hosting.EngineOptions) <0x00040>
+  at IronPython.Hosting.PythonEngine..ctor
+(IronPython.Hosting.EngineOptions) <0x00025>
+  at IronPythonConsole.PythonCommandLine.Main (string[]) <0x00088>
+  at (wrapper runtime-invoke)
+System.Object.runtime_invoke_int_string[]
+(object,intptr,intptr,intptr) <0xffffffff>
+
+
+Paolo's original test case produces an InvalidCastException on both
+gmcs and .NET 2.0.
+
+Marek's reduced test case produces a NotImplementedException on both
+gmcs and .NET 2.0.
+
+But the new IronPython alpha still fails to start up.
+
+The issue is in the initialization of the EmptyTypeOps`1 class:
+#5  0xb7f37286 in g_assert_warning () from /opt/gnome/lib/libglib-2.0.so.0
+(gdb) up
+#6  0x080f41f0 in mono_generic_class_get_context (gclass=0x81eac40) at
+class.c:574
+574                    g_assert (context->class_inst == gclass->inst);
+(gdb)
+#7  0x080fa051 in mono_class_init (class=0x8333850) at class.c:2414
+2414                                    gklass->methods [i], class,
+mono_generic_class_get_context ((MonoGenericClass *) gclass));
+(gdb) p *class
+$4 = {image = 0x826a480, enum_basetype = 0x0, element_class =
+0x8333850, cast_class = 0x8333850, rank = 0 '\0', inited = 0,
+  init_pending = 1, size_inited = 0, valuetype = 0, enumtype = 0,
+blittable = 0, unicode = 0, wastypebuilder = 0, min_align = 0,
+  packing_size = 0, ghcimpl = 0, has_finalize = 0, marshalbyref = 0,
+contextbound = 0, delegate = 0, gc_descr_inited = 0,
+  has_cctor = 0, has_references = 0, has_static_refs = 0,
+no_special_static_fields = 0, is_com_object = 0, exception_type = 0 '\0',
+  exception_data = 0x0, declsec_flags = 0, parent = 0x8217d14,
+nested_in = 0x0, nested_classes = 0x0, type_token = 33555017,
+  name = 0xb734b8ac "EmptyTypeOps`1", name_space = 0xb7349322
+"IronPython.Runtime.Types", supertypes = 0x835a6ec, idepth = 2,
+  interface_count = 0, interface_id = 0, max_interface_id = 0,
+interface_offsets = 0x0, interfaces = 0x0, instance_size = 0,
+  vtable_size = 0, sizes = {class_size = 0, element_size = 0}, flags =
+1048704, field = {first = 2364, count = 4}, method = {
+    first = 7599, count = 14}, property = {first = 0, count = 0},
+event = {first = 0, count = 0}, marshal_info = 0x0, fields = 0x0,
+  properties = 0x0, events = 0x0, methods = 0x8333940, this_arg =
+{data = {klass = 0x83336c8, type = 0x83336c8, array = 0x83336c8,
+      method = 0x83336c8, generic_param = 0x83336c8, generic_class =
+0x83336c8}, attrs = 0, type = 21, num_mods = 0, byref = 1,
+    pinned = 0, modifiers = 0x83338e8}, byval_arg = {data = {klass =
+0x83336c8, type = 0x83336c8, array = 0x83336c8,
+      method = 0x83336c8, generic_param = 0x83336c8, generic_class =
+0x83336c8}, attrs = 0, type = 21, num_mods = 0, byref = 0,
+    pinned = 0, modifiers = 0x83338f0}, generic_class = 0x83336c8,
+generic_container = 0x0, reflection_info = 0x0, gc_descr = 0x0,
+  runtime_info = 0x0, vtable = 0x0}
+
+It seems like an area that Hari has been recently looking at.
+


More information about the mono-bugs mailing list