]>
Commit | Line | Data |
---|---|---|
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 | } |