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.