aboutsummaryrefslogtreecommitdiff
path: root/tests/sysy_lvX/026_func_if_return.sy
blob: 2c612fd7bc183de3e2aa3f40237f59f6bc01474b (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
42
int foo()
{
    int a = 0, b = 1, c = 2;
    if (a) {
        return b;
    }
    if (b)
        return c;
    return a;
}

void bar()
{
    int a = 1, b = 0, c;
    if (b) {
        c = a;
        return;
    }
    b = 2;
    if (a) {
        c = b;
        return;
    }
    a = 3;
    return;
}

int main()
{
    bar();
    bar();
    int a = foo();
    bar();
    a = 159;
    bar();
    bar();
    a = foo();
    bar();
    bar();
    bar();
    return a;
}