Bug 6296 – ICE(glue.c): invalid template instantiated in is(typeof()).

Status
RESOLVED
Resolution
DUPLICATE
Severity
regression
Priority
P2
Component
dmd
Product
D
Version
D1 (retired)
Platform
Other
OS
Windows
Creation time
2011-07-12T10:03:00Z
Last change time
2012-12-20T00:13:43Z
Keywords
ice
Assigned to
nobody
Creator
verylonglogin.reg
Blocks
9188

Attachments

IDFilenameSummaryContent-TypeSize
1006main.dBug testcasetext/x-dsrc96
1045main.dBug testcasetext/x-dsrc48

Comments

Comment #0 by verylonglogin.reg — 2011-07-12T10:03:46Z
Created attachment 1006 Bug testcase Broken is(typeof(...)) is a realy blocker for me. I didn't know where was a problem since dmd 1.067 where it was introduced. And this bug report is the merit of DustMite: 702 КБ of my D sources -> few hours with DustMite (looks like it finally crashed) -> 63.2 КБ -> some time with DustMite -> 2.33 КБ -> some time by hands -> 96 bytes.
Comment #1 by hoganmeier — 2011-07-15T05:27:29Z
Seems to be D1-specific indeed, compiles fine with 2.054 on Linux x64.
Comment #2 by suicidenet — 2011-07-15T06:45:28Z
nope probably same error on D2 here: Assertion failure: '0' on line 1123 in file 'glue.c' Windows x64 - VisualStudio2010 - VisualD, D2, DMD.2.054 http://pastebin.com/p3K8CMXF
Comment #3 by hoganmeier — 2011-07-15T07:11:15Z
(In reply to comment #2) What about Denis' test case?
Comment #4 by verylonglogin.reg — 2011-07-15T07:24:06Z
(In reply to comment #3) > (In reply to comment #2) > > What about Denis' test case? If works with dmd 2.054. And I originally marked this issue as D1 only.
Comment #5 by hoganmeier — 2011-07-15T07:39:34Z
Zoadian, your test case is incomplete. Error: undefined identifier Modifier Also could you try reducing it with DustMite?
Comment #6 by suicidenet — 2011-07-15T07:45:55Z
Reduced source code: http://pastebin.com/p3K8CMXF never worked with dustmite, and no time to get into it now. sry.
Comment #7 by verylonglogin.reg — 2011-07-15T07:56:29Z
And where are the guys: import util.math; import util.array;
Comment #8 by suicidenet — 2011-07-15T08:01:30Z
they are not needed, sry, forgot to remove them. : http://pastebin.com/e7HazwDF math.d is empty; this is array.d http://pastebin.com/guBWs4h6
Comment #9 by hoganmeier — 2011-07-15T08:06:25Z
My dmd yields bug6296b.d(16): Error: cannot implicitly convert expression (this) of type ModifiableInt to typeof(this)
Comment #10 by verylonglogin.reg — 2011-07-15T08:20:32Z
I'll DustMite it.
Comment #11 by verylonglogin.reg — 2011-07-15T10:24:47Z
After DustMite-ing all phobos std.* sources: Issue6296
Comment #12 by verylonglogin.reg — 2011-07-15T10:25:52Z
After DustMite-ing all phobos std.* sources: Issue6325
Comment #13 by verylonglogin.reg — 2011-09-09T11:31:21Z
dmd 1.070 now fails with: Assertion failure: '0' on line 1114 in file 'glue.c' Reduced test case: --- void f(A)(A) { } bool b = is(typeof( f(x) )); --- As it works for `f!(typeof(x))(x)`, looks like IFTI bug
Comment #14 by bugzilla — 2011-09-14T00:45:34Z
Comment #15 by verylonglogin.reg — 2011-09-14T22:45:49Z
However, this D1 bug is still in dmd-1.x branch.
Comment #16 by bugzilla — 2011-09-15T11:24:27Z
Comment #17 by verylonglogin.reg — 2011-09-15T12:47:03Z
Still in dmd-1.x branch (tested after 23846ac and fe308a1). --- void f(A)(A) { } bool b = is(typeof( f(x) )); ---
Comment #18 by clugdbug — 2011-09-16T03:02:04Z
(In reply to comment #17) > Still in dmd-1.x branch (tested after 23846ac and fe308a1). > --- > void f(A)(A) { } > bool b = is(typeof( f(x) )); > --- Aargh, it was 6650 which was fixed, not this one! I just copied the wrong bug number into the pull request (the commit itself correctly names 6650).
Comment #19 by verylonglogin.reg — 2011-11-19T04:49:07Z
Created attachment 1045 Bug testcase
Comment #20 by clugdbug — 2012-05-03T02:53:13Z
*** This issue has been marked as a duplicate of issue 4269 ***
Comment #21 by bugzilla — 2012-12-10T14:38:13Z
(In reply to comment #19) > Created an attachment (id=1045) [details] > Bug testcase This compiles successfully for both D1 1.076 and D2 2.061