]> git.lizzy.rs Git - rust.git/blob - tests/incremental/lto.rs
Rollup merge of #106797 - FawazTirmizi:dev/issues/104284, r=bjorn3
[rust.git] / tests / incremental / lto.rs
1 // no-prefer-dynamic
2 // revisions:rpass1 rpass2
3 // compile-flags: -C lto
4
5 mod x {
6     pub struct X {
7         x: u32, y: u32,
8     }
9
10     #[cfg(rpass1)]
11     fn make() -> X {
12         X { x: 22, y: 0 }
13     }
14
15     #[cfg(rpass2)]
16     fn make() -> X {
17         X { x: 11, y: 11 }
18     }
19
20     pub fn new() -> X {
21         make()
22     }
23
24     pub fn sum(x: &X) -> u32 {
25         x.x + x.y
26     }
27 }
28
29 mod y {
30     use x;
31
32     pub fn assert_sum() -> bool {
33         let x = x::new();
34         x::sum(&x) == 22
35     }
36 }
37
38 pub fn main() {
39     y::assert_sum();
40 }