aboutsummaryrefslogtreecommitdiff
path: root/compiler/tests/runtime/deepbreak.test.lc
blob: d935c652b6da9cff71251aef7b3a29ed58160cca (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41

linkname "";

int main()
{
    var int state = 0;
    // 1 level
    while :true {
        break;
        assert :false;
    }
    // 1 level out of 2 levels
    do {
        while :true {
            break;
            assert :false;
        }
        state = 1;
    } while :false;
    assert state == 1;
    // 1 level out of switch-case in loop
    while :true {
        var int a = 2;
        switch a {
            case 1
            case 2 {
                state = 3;
                break; // out of loop
                assert :false;
            }
            case 3 {
                assert :false;
            }
        }
        assert :false;
    }
    assert state == 3;
    return 0;
}