rustc: unpack scalar newtype layout ABIs.
This commit is contained in:
parent
0b8697241f
commit
37a7521ef9
7 changed files with 129 additions and 50 deletions
|
|
@ -46,13 +46,13 @@ pub fn static_borrow(_: &'static i32) {
|
|||
pub fn named_borrow<'r>(_: &'r i32) {
|
||||
}
|
||||
|
||||
// CHECK: @unsafe_borrow(%UnsafeInner* dereferenceable(2) %arg0)
|
||||
// CHECK: @unsafe_borrow(i16* dereferenceable(2) %arg0)
|
||||
// unsafe interior means this isn't actually readonly and there may be aliases ...
|
||||
#[no_mangle]
|
||||
pub fn unsafe_borrow(_: &UnsafeInner) {
|
||||
}
|
||||
|
||||
// CHECK: @mutable_unsafe_borrow(%UnsafeInner* dereferenceable(2) %arg0)
|
||||
// CHECK: @mutable_unsafe_borrow(i16* dereferenceable(2) %arg0)
|
||||
// ... unless this is a mutable borrow, those never alias
|
||||
// ... except that there's this LLVM bug that forces us to not use noalias, see #29485
|
||||
#[no_mangle]
|
||||
|
|
@ -110,7 +110,7 @@ pub fn slice(_: &[u8]) {
|
|||
pub fn mutable_slice(_: &mut [u8]) {
|
||||
}
|
||||
|
||||
// CHECK: @unsafe_slice([0 x %UnsafeInner]* nonnull %arg0.0, [[USIZE]] %arg0.1)
|
||||
// CHECK: @unsafe_slice([0 x i16]* nonnull %arg0.0, [[USIZE]] %arg0.1)
|
||||
// unsafe interior means this isn't actually readonly and there may be aliases ...
|
||||
#[no_mangle]
|
||||
pub fn unsafe_slice(_: &[UnsafeInner]) {
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@
|
|||
#[no_mangle]
|
||||
pub struct F32(f32);
|
||||
|
||||
// CHECK: define float @add_newtype_f32(float, float)
|
||||
// CHECK: define float @add_newtype_f32(float %a, float %b)
|
||||
#[inline(never)]
|
||||
#[no_mangle]
|
||||
pub fn add_newtype_f32(a: F32, b: F32) -> F32 {
|
||||
|
|
@ -25,7 +25,7 @@ pub fn add_newtype_f32(a: F32, b: F32) -> F32 {
|
|||
#[no_mangle]
|
||||
pub struct F64(f64);
|
||||
|
||||
// CHECK: define double @add_newtype_f64(double, double)
|
||||
// CHECK: define double @add_newtype_f64(double %a, double %b)
|
||||
#[inline(never)]
|
||||
#[no_mangle]
|
||||
pub fn add_newtype_f64(a: F64, b: F64) -> F64 {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue