Bug 11327 – Regression (2.059): ICE in a recursive UFCS call
Status
RESOLVED
Resolution
INVALID
Severity
regression
Priority
P2
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2013-10-22T11:47:00Z
Last change time
2013-10-23T06:15:50Z
Keywords
ice
Assigned to
nobody
Creator
andrej.mitrovich
Comments
Comment #0 by andrej.mitrovich — 2013-10-22T11:47:28Z
-----
S call(S)(S s)
{
// accidental recursive call to UFCS function
return s.call();
}
struct S
{
}
void main()
{
S s;
call(s);
}
-----
2.058:
$ dmd ice.d
> ice.d(4): Error: no property 'call' for type 'S'
> ice.d(14): Error: template instance ice.call!(S) error instantiating
2.059:
$ dmd ice.d
> crash
I don't have a stack trace right now, I need to reinstall my windbg symbols.
Comment #1 by andrej.mitrovich — 2013-10-22T11:48:17Z
(In reply to comment #0)
> 2.059:
That should say 2.059+, as all versions after it ICE as well.
Comment #2 by k.hara.pg — 2013-10-22T21:47:14Z
(In reply to comment #1)
> (In reply to comment #0)
> > 2.059:
>
> That should say 2.059+, as all versions after it ICE as well.
The OP code compilation succeeds correctly with 2.059 and git-head. And executing generated test.exe will crash correctly by infinite recursion.
But you are not using `-run` switch. So, I'm not sure what is the problem...
Comment #3 by andrej.mitrovich — 2013-10-23T06:15:50Z
(In reply to comment #2)
> (In reply to comment #1)
> > (In reply to comment #0)
> > > 2.059:
> >
> > That should say 2.059+, as all versions after it ICE as well.
>
> The OP code compilation succeeds correctly with 2.059 and git-head. And
> executing generated test.exe will crash correctly by infinite recursion.
>
> But you are not using `-run` switch. So, I'm not sure what is the problem...
Apologies, it seems I've misinterpreted the error dialog box belonging to DMD rather than the test-case itself. This is not a valid bug report. Thanks!