25 lines
437 B
Rust
25 lines
437 B
Rust
// 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: () });
|
|
}
|