www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 17831] New: [ICE] Internal error: backend/symbol.c 1039:

https://issues.dlang.org/show_bug.cgi?id=17831

          Issue ID: 17831
           Summary: [ICE] Internal error: backend/symbol.c 1039: foreach
                    inside a switch statement
           Product: D
           Version: D2
          Hardware: All
                OS: All
            Status: NEW
          Severity: major
          Priority: P1
         Component: dmd
          Assignee: nobody puremagic.com
          Reporter: ibuclaw gdcproject.org

Taken from recently introduce test case.

https://github.com/dlang/dmd/pull/7120

---
int bug17807(){
    int y=0;
    Lswitch: switch(2){
        { case 0: break; }
        enum x=0;
        struct S{ enum x=0; }
        int foo(){
            return 0;
        }
        default: y=x+S.x+foo();
        foreach(i;1..5)
            case i: break Lswitch;
    }
    return y;
}
---

Removing the 'static' in foreach results in a compiler ICE.

--
Sep 16 2017