[Issue 7156] New: ICE with 199 or 200 repeated integer increments w/ optimisation

d-bugmail at puremagic.com d-bugmail at puremagic.com
Thu Dec 22 14:53:05 PST 2011


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

           Summary: ICE with 199 or 200 repeated integer increments w/
                    optimisation
           Product: D
           Version: D2
          Platform: x86
        OS/Version: Mac OS X
            Status: NEW
          Severity: normal
          Priority: P2
         Component: DMD
        AssignedTo: nobody at puremagic.com
        ReportedBy: peter.alexander.au at gmail.com


--- Comment #0 from Peter Alexander <peter.alexander.au at gmail.com> 2011-12-22 14:53:02 PST ---
This is a bit of a bizarre one. If you have 199 or 200 repeated integer
increments then you get an ICE when optimisations are enabled.

string rep(string s, int n)
{
    return n > 1 ? s ~ rep(s, n-1) : s;
}

void main()
{
    int i;
    version (A) mixin(rep("++i;", 198));
    version (B) mixin(rep("++i;", 199));
    version (C) mixin(rep("++i;", 200));
    version (D) mixin(rep("++i;", 201));
}


% time dmd test.d -O -version=A
dmd test.d -O -version=A  0.53s user 0.03s system 80% cpu 0.687 total

% time dmd test.d -O -version=B
Internal error: ../ztc/go.c 242
dmd test.d -O -version=B  0.49s user 0.01s system 95% cpu 0.528 total

% time dmd test.d -O -version=C
Internal error: ../ztc/go.c 242
dmd test.d -O -version=C  0.50s user 0.01s system 92% cpu 0.547 total

% time dmd test.d -O -version=D
dmd test.d -O -version=D  0.54s user 0.03s system 93% cpu 0.613 total


Notice the internal errors in versions B and C, but not A or D.

With no -O flag, there is no ICE in any version.

-- 
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