Move /src/test to /tests
This commit is contained in:
parent
ca855e6e42
commit
cf2dff2b1e
27592 changed files with 0 additions and 0 deletions
75
tests/codegen/external-no-mangle-fns.rs
Normal file
75
tests/codegen/external-no-mangle-fns.rs
Normal file
|
@ -0,0 +1,75 @@
|
|||
// compile-flags: -C no-prepopulate-passes
|
||||
// `#[no_mangle]`d functions always have external linkage, i.e., no `internal` in their `define`s
|
||||
|
||||
#![crate_type = "lib"]
|
||||
#![no_std]
|
||||
|
||||
// CHECK: define{{( dso_local)?}} void @a()
|
||||
#[no_mangle]
|
||||
fn a() {}
|
||||
|
||||
// CHECK: define{{( dso_local)?}} void @b()
|
||||
#[no_mangle]
|
||||
pub fn b() {}
|
||||
|
||||
mod private {
|
||||
// CHECK: define{{( dso_local)?}} void @c()
|
||||
#[no_mangle]
|
||||
fn c() {}
|
||||
|
||||
// CHECK: define{{( dso_local)?}} void @d()
|
||||
#[no_mangle]
|
||||
pub fn d() {}
|
||||
}
|
||||
|
||||
const HIDDEN: () = {
|
||||
// CHECK: define{{( dso_local)?}} void @e()
|
||||
#[no_mangle]
|
||||
fn e() {}
|
||||
|
||||
// CHECK: define{{( dso_local)?}} void @f()
|
||||
#[no_mangle]
|
||||
pub fn f() {}
|
||||
};
|
||||
|
||||
// The surrounding item should not accidentally become external
|
||||
// CHECK-LABEL: ; external_no_mangle_fns::x
|
||||
// CHECK-NEXT: ; Function Attrs:
|
||||
// CHECK-NEXT: define internal
|
||||
#[inline(never)]
|
||||
fn x() {
|
||||
// CHECK: define{{( dso_local)?}} void @g()
|
||||
#[no_mangle]
|
||||
fn g() {
|
||||
x();
|
||||
}
|
||||
|
||||
// CHECK: define{{( dso_local)?}} void @h()
|
||||
#[no_mangle]
|
||||
pub fn h() {}
|
||||
|
||||
// side effect to keep `x` around
|
||||
unsafe {
|
||||
core::ptr::read_volatile(&42);
|
||||
}
|
||||
}
|
||||
|
||||
// CHECK: define{{( dso_local)?}} void @i()
|
||||
#[no_mangle]
|
||||
#[inline]
|
||||
fn i() {}
|
||||
|
||||
// CHECK: define{{( dso_local)?}} void @j()
|
||||
#[no_mangle]
|
||||
#[inline]
|
||||
pub fn j() {}
|
||||
|
||||
// CHECK: define{{( dso_local)?}} void @k()
|
||||
#[no_mangle]
|
||||
#[inline(always)]
|
||||
fn k() {}
|
||||
|
||||
// CHECK: define{{( dso_local)?}} void @l()
|
||||
#[no_mangle]
|
||||
#[inline(always)]
|
||||
pub fn l() {}
|
Loading…
Add table
Add a link
Reference in a new issue