Bug 10082 – ICE(e2ir.c) Multiple mixin template instantiations are not checked

Status
RESOLVED
Resolution
FIXED
Severity
normal
Priority
P2
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2013-05-14T04:59:00Z
Last change time
2013-10-02T10:11:03Z
Keywords
accepts-invalid, ice, pull
Assigned to
nobody
Creator
maxim

Comments

Comment #0 by maxim — 2013-05-14T04:59:27Z
mixin template T() { int foo() { return 0; } } class A { mixin T; mixin T; } void main() { auto x = &A.foo; } DMD v2.063-devel-4ed3396 DEBUG __overloadset [main.d(17)] __overloadset Internal error: e2ir.c 776 Note, if A.foo is not referenced dmd emits two eponymous symbols. I believe this is related to the bug when code which retrieves same method via delegate and via __traits(getOverloads) is compiled and crashes at runtime.
Comment #1 by k.hara.pg — 2013-10-02T01:34:37Z
Comment #2 by github-bugzilla — 2013-10-02T10:10:48Z
Commits pushed to master at https://github.com/D-Programming-Language/dmd https://github.com/D-Programming-Language/dmd/commit/6e6e34ab802d42607a4bf737809a552f965dd672 fix Issue 10082 - ICE(e2ir.c) Multiple mixin template instantiations are not checked https://github.com/D-Programming-Language/dmd/commit/5e8306cae04c2dc56fec39624ae1efdbc0c76d0b Merge pull request #2616 from 9rnsr/fix10082 Issue 10082 - ICE(e2ir.c) Multiple mixin template instantiations are not checked