Thread overview
[Issue 9847] New: ICE on CTFE literal cast(uint) on DMD 2.062
Mar 31, 2013
Øivind
Mar 31, 2013
Iain Buclaw
Apr 02, 2013
Kenji Hara
Apr 02, 2013
Iain Buclaw
Apr 02, 2013
Iain Buclaw
Apr 02, 2013
Kenji Hara
March 31, 2013
http://d.puremagic.com/issues/show_bug.cgi?id=9847

           Summary: ICE on CTFE literal cast(uint) on DMD 2.062
           Product: D
           Version: D2
          Platform: x86_64
        OS/Version: All
            Status: NEW
          Severity: regression
          Priority: P2
         Component: DMD
        AssignedTo: nobody@puremagic.com
        ReportedBy: oivind.loe@gmail.com


--- Comment #0 from Øivind <oivind.loe@gmail.com> 2013-03-31 11:27:03 PDT ---
Created an attachment (id=1204)
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)

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
March 31, 2013
http://d.puremagic.com/issues/show_bug.cgi?id=9847


Iain Buclaw <ibuclaw@ubuntu.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |ibuclaw@ubuntu.com


--- Comment #1 from Iain Buclaw <ibuclaw@ubuntu.com> 2013-03-31 14:21:18 PDT ---
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

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
April 02, 2013
http://d.puremagic.com/issues/show_bug.cgi?id=9847



--- Comment #2 from Kenji Hara <k.hara.pg@gmail.com> 2013-04-02 04:48:59 PDT ---
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).

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
April 02, 2013
http://d.puremagic.com/issues/show_bug.cgi?id=9847



--- Comment #3 from Iain Buclaw <ibuclaw@ubuntu.com> 2013-04-02 04:59:17 PDT ---
(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?

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
April 02, 2013
http://d.puremagic.com/issues/show_bug.cgi?id=9847



--- Comment #4 from Iain Buclaw <ibuclaw@ubuntu.com> 2013-04-02 05:26:30 PDT ---
(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.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
April 02, 2013
http://d.puremagic.com/issues/show_bug.cgi?id=9847


Kenji Hara <k.hara.pg@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |DUPLICATE


--- Comment #5 from Kenji Hara <k.hara.pg@gmail.com> 2013-04-02 07:37:53 PDT ---
(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 ***

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------