| //@ run-pass | |
| //@ compile-flags: -Z mir-opt-level=4 | |
| // Checks that the compiler does not ICE when passing references to field of by-value struct | |
| // with -Z mir-opt-level=4 | |
| fn do_nothing(_: &()) {} | |
| pub struct Foo { | |
| bar: (), | |
| } | |
| pub fn by_value_1(foo: Foo) { | |
| do_nothing(&foo.bar); | |
| } | |
| pub fn by_value_2<T>(foo: Foo) { | |
| do_nothing(&foo.bar); | |
| } | |
| fn main() { | |
| by_value_1(Foo { bar: () }); | |
| by_value_2::<()>(Foo { bar: () }); | |
| } |