http://d.puremagic.com/issues/show_bug.cgi?id=4277
--- Comment #6 from changlon <[email protected]> 2010-06-28 20:04:19 PDT --- this is simpler testcase: ----------------------------------------------------- version( D_Version2 ){ mixin("extern(C) void printf(const(char)*, ... ) ;"); }else{ extern(C) void printf(char*, ... ); } class MyTest { void delegate(int)[] list ; public void run(){ test3(this); test2(this); test1(this); foreach( dg; list) { dg(3); } } static void test1(string name = "test1\0" )(MyTest obj){ printf("out: `%s` = `%x` \n\0".ptr , name.ptr, cast(void*) obj ); void add(int i){ printf("in: `%s` = `%x` \n\0".ptr , name.ptr, cast(void*) obj ); } obj.list ~= &add; } void test2(MyTest obj){ test1!("test2\0")(obj); } void test3(ref MyTest obj){ test1!("test3\0")(obj); } } void main(){ auto t = new MyTest; t.run; } --------------------------------------------------------------------------- my os is ubuntu 10.4 i386, dmd1: out: `test3` = `b750eff0` out: `test2` = `b750eff0` out: `test1` = `b750eff0` in: `test3` = `8050844` in: `test2` = `8050860` in: `test1` = `bf89037c` dmd2: out: `test3` = `b7494fe0` out: `test2` = `b7494fe0` out: `test1` = `b7494fe0` in: `test3` = `b7494fe0` in: `test2` = `b7494fe0` in: `test1` = `b7494fe0` ldc: out: `test3` = `b7549ff0` out: `test2` = `b7549ff0` out: `test1` = `b7549ff0` in: `test3` = `3` in: `test2` = `3` in: `test1` = `bfaae088` -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
