[Mono-devel-list] possible bug in static constructor evaluation order
Paolo Molaro
lupus at ximian.com
Mon May 5 06:56:11 EDT 2003
On 05/04/03 Michal Moskal wrote:
> Could anyone confirm this with current CVS (I cannot get it to run)?
Please, can you post details about the issue you have in getting cvs to
run? Thanks.
> #v+
> class A {
> static A() { System.Console.WriteLine("A"); }
> public static void f() {}
> }
> class B {
> static B() { System.Console.WriteLine("B"); A.f(); }
> public static void f() {}
> }
> class M {
> public static void Main() { B.f(); }
> }
> #v-
>
> produces:
> A
> B
This is caused by inlining: there are also other issues with static
initializers ordering both in the current release and in the cvs
version. They will be addressed after the next release (due real soon
now) when we'll be able to drop the old jit.
You'll find, though, that the new jit doesn't use inlining by default,
so your test will execute correctly with it if you don't explicitly
enable it.
lupus
--
-----------------------------------------------------------------
lupus at debian.org debian/rules
lupus at ximian.com Monkeys do it better
More information about the Mono-devel-list
mailing list