Jump to page: 1 2
Thread overview
ICE?
May 17, 2015
Namespace
May 17, 2015
Gary Willoughby
May 17, 2015
Namespace
May 17, 2015
Daniel Kozak
May 17, 2015
Daniel Kozak
May 17, 2015
Namespace
May 17, 2015
Daniel Kozak
May 17, 2015
Daniel Kozak
May 17, 2015
anonymous
May 17, 2015
Daniel Kozak
May 18, 2015
ketmar
May 19, 2015
Daniel Kozak
May 17, 2015
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[]
May 17, 2015
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?
May 17, 2015
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);
}
----
May 17, 2015
On Sun, 17 May 2015 09:33:27 +0000
Namespace via Digitalmars-d-learn <digitalmars-d-learn@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];
May 17, 2015
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[]

I would say this is not an ICE just normal error message.
May 17, 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@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];


May 17, 2015
On Sunday, 17 May 2015 at 10:09:11 UTC, Daniel Kozak wrote:
> On Sunday, 17 May 2015 at 09:25:33 UTC, Namespace wrote:
[...]
>> Error: e2ir: cannot cast malloc(length * 8u) of type void* to type char[]
>
> I would say this is not an ICE just normal error message.

"e2ir: " shouldn't be there, though.
May 17, 2015
On Sun, 17 May 2015 10:17:42 +0000
anonymous via Digitalmars-d-learn <digitalmars-d-learn@puremagic.com> wrote:

> On Sunday, 17 May 2015 at 10:09:11 UTC, Daniel Kozak wrote:
> > On Sunday, 17 May 2015 at 09:25:33 UTC, Namespace wrote:
> [...]
> >> Error: e2ir: cannot cast malloc(length * 8u) of type void* to type char[]
> >
> > I would say this is not an ICE just normal error message.
> 
> "e2ir: " shouldn't be there, though.

Yep
May 17, 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@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];

That would work, but I did it on purpose. I wanted to test whether such dangerous code compiles or whether the compiler is smart enough and hits the alarm.
May 17, 2015
On Sun, 17 May 2015 10:36:33 +0000
Namespace via Digitalmars-d-learn <digitalmars-d-learn@puremagic.com> wrote:

> 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@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];
> 
> That would work, but I did it on purpose. I wanted to test whether such dangerous code compiles or whether the compiler is smart enough and hits the alarm.

I see.

for eg.:

void main() {
    import core.stdc.stdlib : malloc, free;
    static struct arr
    {
        size_t length;
        void* ptr;
    }
    auto ptr = cast(arr) malloc(42);
}

prints:

test2.d(9): Error: cannot cast expression malloc(42LU) of type void* to arr

which makes sense, even e2ir text is not here.

« First   ‹ Prev
1 2