← Back to index
|
Original Bugzilla link
Bug 13353 – [REG2.066] [ICE] assertion with is() and templated interface
Status
RESOLVED
Resolution
FIXED
Severity
regression
Priority
P1
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2014-08-22T10:00:00Z
Last change time
2014-08-28T04:10:21Z
Keywords
ice, pull
Assigned to
nobody
Creator
alexey.prokhin
Comments
Comment #0
by alexey.prokhin — 2014-08-22T10:00:09Z
cat > bug.d << CODE interface Base(T) { static assert(is(T : Base!T)); } interface Derived : Base!Derived { void func(); } class Concrete : Derived { void func() { } } CODE dmd -c bug.d ---- dmd: func.c:2708: virtual bool FuncDeclaration::overloadInsert(Dsymbol*): Assertion `s != this' failed. ---- The cause of the issue seems to be Derived vtable being populated twice in InterfaceDeclaration::semantic().
Comment #1
by k.hara.pg — 2014-08-26T12:43:15Z
The ICE is a regression in 2.066 release. In 2.066, the class case (issue 12078) has been fixed properly, but I had overlooked the interface case.
https://github.com/D-Programming-Language/dmd/pull/3901
Comment #2
by github-bugzilla — 2014-08-26T14:22:45Z
Commits pushed to master at
https://github.com/D-Programming-Language/dmd
https://github.com/D-Programming-Language/dmd/commit/3571d9372eb3ed4bb4aebe39705a5a17c317a13f
fix Issue 13353 - [ICE] assertion with is() and templated interface
https://github.com/D-Programming-Language/dmd/commit/39d3dc6fbb833cb504b1b7dd6091f5c899e5543d
Merge pull request #3901 from 9rnsr/fix13353 [REG2.066] Issue 13353 - [ICE] assertion with is() and templated interface
Comment #3
by github-bugzilla — 2014-08-28T04:10:21Z
Commit pushed to 2.066 at
https://github.com/D-Programming-Language/dmd
https://github.com/D-Programming-Language/dmd/commit/b8a96f9a8dae4f94770d1a669e212f4cab31a065
Merge pull request #3901 from 9rnsr/fix13353 [REG2.066] Issue 13353 - [ICE] assertion with is() and templated interface