[Issue 6228] New: ICE(e2ir.c:1323, 2.053) on {auto x = (*ptr) ^^ y} with const integer types

d-bugmail at puremagic.com d-bugmail at puremagic.com
Wed Jun 29 18:21:58 PDT 2011


http://d.puremagic.com/issues/show_bug.cgi?id=6228

           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
        AssignedTo: nobody at puremagic.com
        ReportedBy: sandford at jhu.edu


--- Comment #0 from Rob Jacques <sandford at jhu.edu> 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.
i.e.

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: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------


More information about the Digitalmars-d-bugs mailing list