[Issue 12769] New: ICE returning array
via Digitalmars-d-bugs
digitalmars-d-bugs at puremagic.com
Mon May 19 10:31:40 PDT 2014
https://issues.dlang.org/show_bug.cgi?id=12769
Issue ID: 12769
Summary: ICE returning array
Product: D
Version: D2
Hardware: x86_64
OS: Windows
Status: NEW
Severity: normal
Priority: P1
Component: DMD
Assignee: nobody at puremagic.com
Reporter: turkeyman at gmail.com
float[] f(float[] a)
{
return -a[];
}
Internal error: e2ir.c 1834
DMD 2.065 w/ -m64
Here's what I was actually trying to do at the time:
float[4] f(float[4] a)
{
return (-a[])[0..4];
}
Here's another permutation. It'd be nice if it could work out what '$' was at
compile time:
float[4] f(float[4] a)
{
return (-a[])[0..$]; // use dollar instead of explicit '4'
}
Error: cannot implicitly convert expression ((-a[])[0..__dollar]) of type
float[] to float[4]
Ideally, this should work with static arrays:
float[4] f(float[4] a)
{
return -a;
}
requiring a[] causes a to become a dynamic array, and then it can't be assigned
back to a static array anymore. It all goes south for array operations on
static arrays with [].
--
More information about the Digitalmars-d-bugs
mailing list