aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/rust/compile/const8.rs
blob: 94c4268ec8c6c3e0771722e4031bf29bc8122dbd (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
// { dg-options "-w -O0 -fdump-tree-gimple" }
struct Foo {
    First: i32,
    Second: f32
}

struct Bar {
    First: i32,
    Second: f32
}

struct Baz {
    First: i32,
    Second: f32
}
const A:Foo = Foo { First: 1, Second: 1.0 };
const B:Bar = Bar { First: 2, Second: 2.0 };
const C:Baz = Baz { First: 3, Second: 2.0 };

const fn test() -> f32 {
    if (A.First == 2) {
        return A.Second;
    }
    else if (B.First == 2) {
        return B.Second;
    }
    else if (C.First == 2) {
        return C.Second;
    }

    return 0.0;
}

const D:f32 = test();

fn main() {
    // { dg-final { scan-tree-dump-times {d = 2.0} 1 gimple } }
    let d = D;
}