diff options
| author | bors <bors@rust-lang.org> | 2023-07-23 07:28:47 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2023-07-23 07:28:47 +0000 |
| commit | 0c9d1a353e117fc7644fefb6c820476b1ff34271 (patch) | |
| tree | d5cc4f8f0bbfae65d776880374519df12393f27e /compiler/rustc_codegen_cranelift/example/std_example.rs | |
| parent | 16cddb38d99f30f73085b4b1ab03ed19e7a7aad6 (diff) | |
| parent | 8a3b7463ed657ddc3d705c44028f1fe7915edb60 (diff) | |
| download | rust-0c9d1a353e117fc7644fefb6c820476b1ff34271.tar.gz rust-0c9d1a353e117fc7644fefb6c820476b1ff34271.zip | |
Auto merge of #2990 - RalfJung:rustup, r=RalfJung
Rustup
Diffstat (limited to 'compiler/rustc_codegen_cranelift/example/std_example.rs')
| -rw-r--r-- | compiler/rustc_codegen_cranelift/example/std_example.rs | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/compiler/rustc_codegen_cranelift/example/std_example.rs b/compiler/rustc_codegen_cranelift/example/std_example.rs index 1bf0ff64c92..490cc2404f6 100644 --- a/compiler/rustc_codegen_cranelift/example/std_example.rs +++ b/compiler/rustc_codegen_cranelift/example/std_example.rs @@ -1,4 +1,12 @@ -#![feature(core_intrinsics, generators, generator_trait, is_sorted, repr_simd)] +#![feature( + core_intrinsics, + generators, + generator_trait, + is_sorted, + repr_simd, + tuple_trait, + unboxed_closures +)] #[cfg(target_arch = "x86_64")] use std::arch::x86_64::*; @@ -155,12 +163,34 @@ fn main() { } foo(I64X2(0, 0)); + + transmute_fat_pointer(); + + rust_call_abi(); } fn panic(_: u128) { panic!(); } +use std::mem::transmute; + +#[cfg(target_pointer_width = "32")] +type TwoPtrs = i64; +#[cfg(target_pointer_width = "64")] +type TwoPtrs = i128; + +fn transmute_fat_pointer() -> TwoPtrs { + unsafe { transmute::<_, TwoPtrs>("true !") } +} + +extern "rust-call" fn rust_call_abi_callee<T: std::marker::Tuple>(_: T) {} + +fn rust_call_abi() { + rust_call_abi_callee(()); + rust_call_abi_callee((1, 2)); +} + #[repr(simd)] struct I64X2(i64, i64); |
