Thread overview
How to proceed with ICE?
Mar 24, 2013
Øivind
Mar 24, 2013
Øivind
Mar 24, 2013
lomereiter
Mar 24, 2013
Øivind
Mar 24, 2013
Iain Buclaw
Mar 31, 2013
Øivind
March 24, 2013
After moving to 2.062, I get the following ICE:

src/boss/core/addr.d(23): Error: Internal Compiler Error: CTFE literal cast(uint)PROC_INVALID
dmd: ctfeexpr.c:353: Expression* copyLiteral(Expression*): Assertion `0' failed.
Aborted (core dumped)

The line it fails on is here, but I have not managed to get a reduced testcase to fail yet..

struct Addr {
  alias uint tProcId;
  alias uint tNodeId;

  const PROC_INVALID    = 0;
  const NODE_SELF       = 0;

  tProcId m_procId = PROC_INVALID;  // << This is the line
  tNodeId m_nodeId = NODE_SELF;


 ....
}

March 24, 2013
On Sunday, 24 March 2013 at 16:01:14 UTC, Øivind wrote:
> After moving to 2.062, I get the following ICE:
>
> src/boss/core/addr.d(23): Error: Internal Compiler Error: CTFE literal cast(uint)PROC_INVALID
> dmd: ctfeexpr.c:353: Expression* copyLiteral(Expression*): Assertion `0' failed.
> Aborted (core dumped)
>
> The line it fails on is here, but I have not managed to get a reduced testcase to fail yet..
>
> struct Addr {
>   alias uint tProcId;
>   alias uint tNodeId;
>
>   const PROC_INVALID    = 0;
>   const NODE_SELF       = 0;
>
>   tProcId m_procId = PROC_INVALID;  // << This is the line
>   tNodeId m_nodeId = NODE_SELF;
>
>
>  ....
> }

Also inside the struct is the following constructor.. Commenting it out removes the ICE:

this(tProcId procId, tNodeId nodeId) {
    m_procId = procId;
    m_nodeId = nodeId;
  }
March 24, 2013
DustMite (https://github.com/CyberShadow/DustMite) is an invaluable tool for reducing test cases like this. I have to use it after each frontend update =\
March 24, 2013
On Sunday, 24 March 2013 at 18:16:03 UTC, lomereiter wrote:
> DustMite (https://github.com/CyberShadow/DustMite) is an invaluable tool for reducing test cases like this. I have to use it after each frontend update =\

Thanks! After running, my project is reduced to a small set of files. There are now also a couple of regular compiler errors before the ICE (introduced by dustmite), but the ICE should not be there anyway.. Should I zip the remaining files with instructions and post them on the tracker, or do I need to take steps to remove the first errors?

Here is the output now:

Compiling: src/main.d -> build/debug/src/main.o
src/boss/core/addr.d(9): Error: undefined identifier procId, did you mean alias tProcId?
src/boss/core/annotstruct.d(3): Error: no identifier for declarator index
src/boss/core/annotstruct.d(3): Error: semicolon expected, not 'EOF'
src/boss/core/annotstruct.d(3): Error: undefined identifier index
src/boss/core/annotstruct.d(3): Error: constructor addr.Addr.this (_error_, uint) is not callable using argument types (uint,uint)
src/boss/core/addr.d(6): Error: Internal Compiler Error: CTFE literal cast(uint)PROC_INVALID
dmd: ctfeexpr.c:353: Expression* copyLiteral(Expression*): Assertion `0' failed.
Aborted (core dumped)
make[1]: *** [build/debug/src/main.o] Error 134

March 24, 2013
On 24 March 2013 21:15, "Øivind" <oivind.loe@gmail.com> wrote:

> On Sunday, 24 March 2013 at 18:16:03 UTC, lomereiter wrote:
>
>> DustMite (https://github.com/**CyberShadow/DustMite<https://github.com/CyberShadow/DustMite>)
>> is an invaluable tool for reducing test cases like this. I have to use it
>> after each frontend update =\
>>
>
> Thanks! After running, my project is reduced to a small set of files. There are now also a couple of regular compiler errors before the ICE (introduced by dustmite), but the ICE should not be there anyway.. Should I zip the remaining files with instructions and post them on the tracker, or do I need to take steps to remove the first errors?
>
> Here is the output now:
>
> Compiling: src/main.d -> build/debug/src/main.o
> src/boss/core/addr.d(9): Error: undefined identifier procId, did you mean
> alias tProcId?
> src/boss/core/annotstruct.d(3)**: Error: no identifier for declarator
> index
> src/boss/core/annotstruct.d(3)**: Error: semicolon expected, not 'EOF'
> src/boss/core/annotstruct.d(3)**: Error: undefined identifier index
> src/boss/core/annotstruct.d(3)**: Error: constructor addr.Addr.this
> (_error_, uint) is not callable using argument types (uint,uint)
> src/boss/core/addr.d(6): Error: Internal Compiler Error: CTFE literal
> cast(uint)PROC_INVALID
>
> dmd: ctfeexpr.c:353: Expression* copyLiteral(Expression*): Assertion `0'
> failed.
> Aborted (core dumped)
> make[1]: *** [build/debug/src/main.o] Error 134
>
>
Put it in a new bug report please.

http://d.puremagic.com/issues/

-- 
Iain Buclaw

*(p < e ? p++ : p) = (c & 0x0f) + '0';


March 31, 2013
> Put it in a new bug report please.
>
> http://d.puremagic.com/issues/

Done:
http://d.puremagic.com/issues/show_bug.cgi?id=9847