Created attachment 1204 [details] D-code and Makefile reprodusing ICE issue that appeared in DMD 2.062 I have tested the attached code on DMD 2.060 and 2.061, and there it does not give ICE, so this is a regression. At this point, ICE is also present on 'master'. Attached is a testcase reduced with 'dustmite'. It produces some other errors as well because of the reduction, but please disregard them. The exact same ICE appears in my non-reduced program. Extract and run with "make clean && make" produces: Cleaning... 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)
Further reduction: ---- import std.array; template MsgMixin() { mixin annotStructMembers!(MsgHeader.init); } template MsgReqMixin(T ...) { mixin MsgMixin!T; } template annotStructMembers(T ...) { mixin(mixinMembers!T); } struct MsgHeader { alias uint tProcId; alias uint tNodeId; const PROC_INVALID = 0; tProcId m_procId = PROC_INVALID; tNodeId NODE_SELF; this(procId, tNodeId) {} } struct MsgLogFlush { mixin MsgReqMixin; } Ret[] iterAnnotStruct(Ret, alias Op, int index, string member, T ...)() { return [Op!(index, member, T).value]; } string mixinMembers(T ...)() { struct Op(V ...) { const value = V[0].stringof ~ V[1] ~ " = " ~ V[2].stringof; } return join(iterAnnotStruct!(string, Op, 0, "", T)); } ---- Regards Iain
Sorry I cannot reproduce the bug. - Original sources in attached file does not work with dmd-make or MSYS GNU make. - Reduced test case by Iain does not cause ICE. But, this seems to me a duplicate of bug 9775 (the internal error file and error is same).
(In reply to comment #2) > Sorry I cannot reproduce the bug. > - Original sources in attached file does not work with dmd-make or MSYS GNU > make. > - Reduced test case by Iain does not cause ICE. > > But, this seems to me a duplicate of bug 9775 (the internal error file and > error is same). Did you test with the development branch or the most recent release?
(In reply to comment #3) > (In reply to comment #2) > > Sorry I cannot reproduce the bug. > > - Original sources in attached file does not work with dmd-make or MSYS GNU > > make. > > - Reduced test case by Iain does not cause ICE. > > > > But, this seems to me a duplicate of bug 9775 (the internal error file and > > error is same). > > Did you test with the development branch or the most recent release? Also, I found that the order of code affected whether or nor the bug shows itself as well, so you could try testing that too.
(In reply to comment #3) > Did you test with the development branch or the most recent release? Ah, OK. I had used git head, and I reproduced the problem with 2.062 release. And I confirmed that this is really a dup of 9775. *** This issue has been marked as a duplicate of issue 9775 ***