ICE?

Daniel Kozak via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Sun May 17 03:14:49 PDT 2015


On Sunday, 17 May 2015 at 09:59:41 UTC, Daniel Kozak wrote:
>
> On Sun, 17 May 2015 09:33:27 +0000
> Namespace via Digitalmars-d-learn 
> <digitalmars-d-learn at puremagic.com> wrote:
>
>> On Sunday, 17 May 2015 at 09:30:16 UTC, Gary Willoughby wrote:
>> > On Sunday, 17 May 2015 at 09:25:33 UTC, Namespace wrote:
>> >> Is this error an ICE? I think so, because I see the 
>> >> internal filename, but I'm not sure.
>> >>
>> >> Error: e2ir: cannot cast malloc(length * 8u) of type void* 
>> >> to type char[]
>> >
>> > Have you got a code sample to reproduce this?
>> 
>> Of course:
>> 
>> ----
>> void main() {
>> 	import core.stdc.stdlib : malloc, free;
>> 
>> 	auto ptr = cast(char[]) malloc(42);
>> }
>> ----
>
> I guess it should be:
>
> auto ptr = cast(char*)malloc(42)[0 .. 42];

or this if you want ptr to be char[] and not a pointer to char:

auto ptr = (cast(char*)malloc(42))[0 .. 42];
or
auto ptr = cast(char[])malloc(42)[0 .. 42];




More information about the Digitalmars-d-learn mailing list