Bug 7479 – Regression(2.046) ICE(glue.c) with function.init with errors gagged
Status
RESOLVED
Resolution
DUPLICATE
Severity
regression
Priority
P2
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2012-02-10T02:36:00Z
Last change time
2015-06-09T05:11:57Z
Keywords
ice
Assigned to
yebblies
Creator
clugdbug
Comments
Comment #0 by clugdbug — 2012-02-10T02:36:35Z
This is a test case from bug 4269, which was not fixed by the recent commit to mitigate 4269. Note also that 4269 was a regression in 2.031, this one is far more recent.
==============================
static if(is(typeof(X3.init))) {}
void X3(T3) { }
==============================
ICE(glue.c) for 2.047 on. It generated an error on 2.045 and earlier. (On 2.046 it silently generated bad code).
==========================================
Comment from yebblies:
The crash is due to an error in a parameter type not resulting in TypeFunction::semantic returning terror. (Or at least, that and the fact it reaches code generation due to this bug.) I swear I fixed this in
a pull request last year, but it must've been part of something that never got accepted.
Comment #1 by yebblies — 2012-02-10T03:29:22Z
The regression and ice part of this bug is the same as issue 4269. The rest is the same as issue 7462 - errors in the argument/return types of functions are not propagated to the function type. I don't know how it was introduced but these are the causes.
*** This issue has been marked as a duplicate of issue 7462 ***