[Issue 9101] template mixin constructor causes link error

d-bugmail at puremagic.com d-bugmail at puremagic.com
Wed Dec 12 00:08:06 PST 2012


http://d.puremagic.com/issues/show_bug.cgi?id=9101



--- Comment #4 from Kenji Hara <k.hara.pg at gmail.com> 2012-12-12 00:07:53 PST ---
(In reply to comment #3)
> It's not the linker, the symbol is referenced from within the object file.
> 
> The problem is triggered by my precise GC patches in druntime where generation
> of RTInfo needs to iterate over the members of the class. The bad operation
> boils down to
> 
> static if (__traits(compiles, Node.ForwardCtorNoId.offset+1)) {}
> 
> When added to the test case, the error appears with the standard druntime, too.
> The derived class is not needed then.

OK, the original case has been broken by fixing issue 5893 certainly.

But following shrinked code causes same linker error, and it has been caused
same linker error from before fixing 5893.
----
class Node
{
    template ForwardCtorNoId()
    {
        this() {} // default constructor
        void foo() { 0 = 1; }    // wrong code
    }
}
enum x = __traits(compiles, Node.ForwardCtorNoId!());
void main() {}
----

Therefore, the root cause was not a regression.
But your code actually be broken in 2.061head. So I'd like to keep this issue
marked as regression. Thanks.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------


More information about the Digitalmars-d-bugs mailing list