www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - How to proceed with ICE?

reply =?UTF-8?B?IsOYaXZpbmQi?= <oivind.loe gmail.com> writes:
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;


  ....
}
Mar 24 2013
next sibling parent =?UTF-8?B?IsOYaXZpbmQi?= <oivind.loe gmail.com> writes:
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; }
Mar 24 2013
prev sibling parent reply "lomereiter" <lomereiter gmail.com> writes:
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 =\
Mar 24 2013
parent reply =?UTF-8?B?IsOYaXZpbmQi?= <oivind.loe gmail.com> writes:
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
Mar 24 2013
parent reply Iain Buclaw <ibuclaw ubuntu.com> writes:
On 24 March 2013 21:15, "=D8ivind" <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/C=
yberShadow/DustMite>)
 is an invaluable tool for reducing test cases like this. I have to use i=
t
 after each frontend update =3D\
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, o=
r
 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/ --=20 Iain Buclaw *(p < e ? p++ : p) =3D (c & 0x0f) + '0';
Mar 24 2013
parent =?UTF-8?B?IsOYaXZpbmQi?= <oivind.loe gmail.com> writes:
 Put it in a new bug report please.

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