Summary: ICE(e2ir.c:1323, 2.053) on {auto x = (*ptr) ^^ y} with
                    const integer types
           Product: D
           Version: D2
          Platform: Other
        OS/Version: Windows
            Status: NEW
          Keywords: ice-on-valid-code
          Severity: regression
          Priority: P2
         Component: DMD

--- Comment #0 from Rob Jacques <> 2011-06-29 18:17:01 PDT ---
This ICE is a regression between DMD 2.052 and DMD 2.053. It occurs when a
point to a const integer type is raised to the power of const integer type.

void main(string[] args) {
const(int)* ptr;
const(int)  temp; 
auto x = (*ptr) ^^ temp;

which results in the error:

const(int) 02871BB0
const(int) 02871BB0
ty = 19, tym = 4a
Internal error: e2ir.c 1323

this effects other integer types at the same line location but with different
ty and tym values. The ty and tym values seem to be specific to ptr's type. The
ICE doesn't occur for reals or if temp is not a const integer. Other
rearrangements of the code, such as

    auto x = __temp ^^ __temp;
    auto x = __temp ^^ (*__ptr);
    auto x = (*__ptr) ^^ (*__ptr);

do not ICE.

Configure issuemail:
------- You are receiving this mail because: -------

Reply via email to