mirror of https://github.com/rust-lang/rust
32 lines
848 B
Rust
32 lines
848 B
Rust
// Checks that closures, constructors, and shims except
|
|
// for a drop glue receive inline hint by default.
|
|
//
|
|
//@ compile-flags: -Cno-prepopulate-passes -Csymbol-mangling-version=v0 -Zinline-mir=no
|
|
#![crate_type = "lib"]
|
|
|
|
pub fn f() {
|
|
let a = A;
|
|
let b = (0i32, 1i32, 2i32, 3 as *const i32);
|
|
let c = || {};
|
|
|
|
a(String::new(), String::new());
|
|
b.clone();
|
|
c();
|
|
}
|
|
|
|
struct A(String, String);
|
|
|
|
// CHECK: ; core::ptr::drop_in_place::<inline_hint::A>
|
|
// CHECK-NEXT: ; Function Attrs:
|
|
// CHECK-NOT: inlinehint
|
|
// CHECK-SAME: {{$}}
|
|
|
|
// CHECK: ; <(i32, i32, i32, *const i{{16|32|64}}) as core::clone::Clone>::clone
|
|
// CHECK-NEXT: ; Function Attrs: inlinehint
|
|
|
|
// CHECK: ; inline_hint::f::{closure#0}
|
|
// CHECK-NEXT: ; Function Attrs: inlinehint
|
|
|
|
// CHECK: ; inline_hint::A
|
|
// CHECK-NEXT: ; Function Attrs: inlinehint
|