www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 11376] New: ICE on __traits(compiles, ...)

reply d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=11376

           Summary: ICE on __traits(compiles, ...)
           Product: D
           Version: unspecified
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: major
          Priority: P2
         Component: DMD
        AssignedTo: nobody puremagic.com
        ReportedBy: john.loughran.colvin gmail.com


--- Comment #0 from John Colvin <john.loughran.colvin gmail.com> 2013-10-29
10:50:13 GMT ---
//arrayTest.d
template I(T ...)
{
    alias I = T;
}

auto sumArrs(T0, T1)(T0[] a, T1[] b)
{
    a[] += b[]; //no ICE without this line
    return a;
}

pragma(msg, __traits(compiles, sumArrs(I!(string[], string).init)));



$dmd arrayTest.d
false
Statement::toCBuffer()

Internal error: s2ir.c 135



This is a very heavy reduced test-case from a much larger program. The original
__traits(compiles, ...) was in a static if, not a pragma(msg, ...)

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Oct 29 2013
parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=11376


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

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |ice, pull
            Version|unspecified                 |D2
            Summary|ICE on __traits(compiles,   |ICE on __traits(compiles,
                   |...)                        |...) with invalid array-op


--- Comment #1 from Kenji Hara <k.hara.pg gmail.com> 2013-11-02 04:52:13 PDT ---
https://github.com/D-Programming-Language/dmd/pull/2706

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