D issues are now tracked on GitHub. This Bugzilla instance remains as a read-only archive.
Issue 7479 - Regression(2.046) ICE(glue.c) with function.init with errors gagged
Summary: Regression(2.046) ICE(glue.c) with function.init with errors gagged
Status: RESOLVED DUPLICATE of issue 7462
Alias: None
Product: D
Classification: Unclassified
Component: dmd (show other issues)
Version: D2
Hardware: All All
: P2 regression
Assignee: yebblies
URL:
Keywords: ice
Depends on:
Blocks:
 
Reported: 2012-02-10 02:36 UTC by Don
Modified: 2015-06-09 05:11 UTC (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this issue.
Description Don 2012-02-10 02:36:35 UTC
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 yebblies 2012-02-10 03:29:22 UTC
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 ***