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!