Bug 11332 – ICE(dt.c) and missing error when interpreting an unimplemented builtin
Status
RESOLVED
Resolution
FIXED
Severity
normal
Priority
P2
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2013-10-23T09:48:00Z
Last change time
2013-11-14T08:50:40Z
Keywords
CTFE, diagnostic, ice, pull
Assigned to
nobody
Creator
bearophile_hugs
Comments
Comment #0 by bearophile_hugs — 2013-10-23T09:48:36Z
import std.algorithm: map;
import std.math: log;
import std.array: array;
double[3] a = [1].map!log.array;
void main() {}
dmd 2.064beta2 gives:
...\dmd2\src\phobos\std\algorithm.d(462): called from here: log(cast(real)front(this._input))
...\dmd2\src\phobos\std\array.d(41): called from here: __r10.front()
test.d(4): called from here: array(map([1]))
Internal error: backend\dt.c 106
Comment #1 by yebblies — 2013-11-14T06:40:48Z
Reduced:
import core.math : yl2x;
void main()
{
static x = yl2x(0, 0);
}
This fails to produce an error about yl2x not being implemented, and therefore proceeds to codegen, causing the ice.
https://github.com/D-Programming-Language/dmd/pull/2764
Comment #2 by github-bugzilla — 2013-11-14T08:50:40Z