www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - ICE?

reply "Namespace" <rswhite4 gmail.com> writes:
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
next sibling parent reply "Gary Willoughby" <dev nomad.so> writes:
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
parent reply "Namespace" <rswhite4 gmail.com> writes:
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
parent reply Daniel Kozak via Digitalmars-d-learn <digitalmars-d-learn puremagic.com> writes:
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
next sibling parent "Daniel Kozak" <kozzi11 gmail.com> writes:
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
prev sibling parent reply "Namespace" <rswhite4 gmail.com> writes:
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
parent Daniel Kozak via Digitalmars-d-learn <digitalmars-d-learn puremagic.com> writes:
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.
May 17 2015
prev sibling next sibling parent reply "Daniel Kozak" <kozzi11 gmail.com> writes:
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
next sibling parent reply "anonymous" <anonymous example.com> writes:
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
parent Daniel Kozak via Digitalmars-d-learn <digitalmars-d-learn puremagic.com> writes:
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
prev sibling parent ketmar <ketmar ketmar.no-ip.org> writes:
On Sun, 17 May 2015 10:09:10 +0000, Daniel Kozak 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[]
=20 I would say this is not an ICE just normal error message.
anything including "e2ir" is definitely an ICE, i believe. it should be=20 catched by frontend.=
May 18 2015
prev sibling parent "Daniel Kozak" <kozzi11 gmail.com> writes:
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[]
https://github.com/D-Programming-Language/dmd/pull/4667
May 19 2015