[Issue 8517] ICE(toir.c 178) or stack overflow with recursive alias template

d-bugmail at puremagic.com d-bugmail at puremagic.com
Wed Nov 14 23:54:05 PST 2012


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


Don <clugdbug at yahoo.com.au> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Version|D2                          |D1 & D2
            Summary|ICE(toir.c 178)             |ICE(toir.c 178) or stack
                   |                            |overflow with recursive
                   |                            |alias template


--- Comment #1 from Don <clugdbug at yahoo.com.au> 2012-11-14 23:53:57 PST ---
Actually y!() is the problem, the other bit is just instantiating y.
Also stack overflows on D1 and 2.057.
The reason is, that the FQN of the delegate includes the FQN of the template.
You can see this if you use .mangleof (uncomment the pragma).
Simplified test case:

void y (alias f) () { 
    int delegate(int) qq;
//   pragma(msg, qq.mangleof);
    y!(qq)();
}

void x1() { int q;    y!(q)(); }

-- 
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