about summary refs log tree commit diff
path: root/tests/codegen/repr/transparent-struct-ptr.rs
diff options
context:
space:
mode:
authorDavid Wood <david.wood2@arm.com>2024-09-12 15:27:19 +0100
committerDavid Wood <david.wood2@arm.com>2024-09-17 13:29:44 +0100
commit9a330742c92c1a87957c0d22fb1f406ff555504c (patch)
tree9c59f20da5d414856ce5dc9555712a125a9c7767 /tests/codegen/repr/transparent-struct-ptr.rs
parentf753bc769b16ca9673f11a4cc06e5cc681efd84e (diff)
downloadrust-9a330742c92c1a87957c0d22fb1f406ff555504c.tar.gz
rust-9a330742c92c1a87957c0d22fb1f406ff555504c.zip
tests: add repr/transparent test for aarch64
Moves `transparent-struct-ptr.rs` to `transparent-byval-struct-ptr.rs`
and then adds a new `transparent-opaque-ptr.rs` for aarch64.
Diffstat (limited to 'tests/codegen/repr/transparent-struct-ptr.rs')
-rw-r--r--tests/codegen/repr/transparent-struct-ptr.rs116
1 files changed, 0 insertions, 116 deletions
diff --git a/tests/codegen/repr/transparent-struct-ptr.rs b/tests/codegen/repr/transparent-struct-ptr.rs
deleted file mode 100644
index 9cffd6c7f73..00000000000
--- a/tests/codegen/repr/transparent-struct-ptr.rs
+++ /dev/null
@@ -1,116 +0,0 @@
-//@ revisions: i686-linux i686-freebsd x64-linux x64-apple wasm32
-//@ compile-flags: -O -C no-prepopulate-passes
-
-//@[i686-linux] compile-flags: --target i686-unknown-linux-gnu
-//@[i686-linux] needs-llvm-components: x86
-//@[i686-freebsd] compile-flags: --target i686-unknown-freebsd
-//@[i686-freebsd] needs-llvm-components: x86
-//@[x64-linux] compile-flags: --target x86_64-unknown-linux-gnu
-//@[x64-linux] needs-llvm-components: x86
-//@[x64-apple] compile-flags: --target x86_64-apple-darwin
-//@[x64-apple] needs-llvm-components: x86
-//@[wasm32] compile-flags: --target wasm32-wasi
-//@[wasm32] needs-llvm-components: webassembly
-
-// See ./transparent.rs
-// Some platforms pass large aggregates using immediate arrays in LLVMIR
-// Other platforms pass large aggregates using struct pointer in LLVMIR
-// This covers the "struct pointer" case.
-
-#![feature(no_core, lang_items, transparent_unions)]
-#![crate_type = "lib"]
-#![no_std]
-#![no_core]
-
-#[lang = "sized"]
-trait Sized {}
-#[lang = "freeze"]
-trait Freeze {}
-#[lang = "copy"]
-trait Copy {}
-
-impl Copy for [u32; 16] {}
-impl Copy for BigS {}
-impl Copy for BigU {}
-
-#[repr(C)]
-pub struct BigS([u32; 16]);
-
-#[repr(transparent)]
-pub struct TsBigS(BigS);
-
-#[repr(transparent)]
-pub union TuBigS {
-    field: BigS,
-}
-
-#[repr(transparent)]
-pub enum TeBigS {
-    Variant(BigS),
-}
-
-// CHECK: define{{.*}}void @test_BigS(ptr [[BIGS_RET_ATTRS1:.*]] sret([64 x i8]) [[BIGS_RET_ATTRS2:.*]], ptr [[BIGS_ARG_ATTRS1:.*]] byval([64 x i8]) [[BIGS_ARG_ATTRS2:.*]])
-#[no_mangle]
-pub extern "C" fn test_BigS(_: BigS) -> BigS {
-    loop {}
-}
-
-// CHECK: define{{.*}}void @test_TsBigS(ptr [[BIGS_RET_ATTRS1]] sret([64 x i8]) [[BIGS_RET_ATTRS2]], ptr [[BIGS_ARG_ATTRS1]] byval([64 x i8]) [[BIGS_ARG_ATTRS2:.*]])
-#[no_mangle]
-pub extern "C" fn test_TsBigS(_: TsBigS) -> TsBigS {
-    loop {}
-}
-
-// CHECK: define{{.*}}void @test_TuBigS(ptr [[BIGS_RET_ATTRS1]] sret([64 x i8]) [[BIGS_RET_ATTRS2]], ptr [[BIGS_ARG_ATTRS1]] byval([64 x i8]) [[BIGS_ARG_ATTRS2:.*]])
-#[no_mangle]
-pub extern "C" fn test_TuBigS(_: TuBigS) -> TuBigS {
-    loop {}
-}
-
-// CHECK: define{{.*}}void @test_TeBigS(ptr [[BIGS_RET_ATTRS1]] sret([64 x i8]) [[BIGS_RET_ATTRS2]], ptr [[BIGS_ARG_ATTRS1]] byval([64 x i8]) [[BIGS_ARG_ATTRS2]])
-#[no_mangle]
-pub extern "C" fn test_TeBigS(_: TeBigS) -> TeBigS {
-    loop {}
-}
-
-#[repr(C)]
-pub union BigU {
-    foo: [u32; 16],
-}
-
-#[repr(transparent)]
-pub struct TsBigU(BigU);
-
-#[repr(transparent)]
-pub union TuBigU {
-    field: BigU,
-}
-
-#[repr(transparent)]
-pub enum TeBigU {
-    Variant(BigU),
-}
-
-// CHECK: define{{.*}}void @test_BigU(ptr [[BIGU_RET_ATTRS1:.*]] sret([64 x i8]) [[BIGU_RET_ATTRS2:.*]], ptr [[BIGU_ARG_ATTRS1:.*]] byval([64 x i8]) [[BIGU_ARG_ATTRS2:.*]])
-#[no_mangle]
-pub extern "C" fn test_BigU(_: BigU) -> BigU {
-    loop {}
-}
-
-// CHECK: define{{.*}}void @test_TsBigU(ptr [[BIGU_RET_ATTRS1:.*]] sret([64 x i8]) [[BIGU_RET_ATTRS2:.*]], ptr [[BIGU_ARG_ATTRS1]] byval([64 x i8]) [[BIGU_ARG_ATTRS2]])
-#[no_mangle]
-pub extern "C" fn test_TsBigU(_: TsBigU) -> TsBigU {
-    loop {}
-}
-
-// CHECK: define{{.*}}void @test_TuBigU(ptr [[BIGU_RET_ATTRS1]] sret([64 x i8]) [[BIGU_RET_ATTRS2:.*]], ptr [[BIGU_ARG_ATTRS1]] byval([64 x i8]) [[BIGU_ARG_ATTRS2]])
-#[no_mangle]
-pub extern "C" fn test_TuBigU(_: TuBigU) -> TuBigU {
-    loop {}
-}
-
-// CHECK: define{{.*}}void @test_TeBigU(ptr [[BIGU_RET_ATTRS1]] sret([64 x i8]) [[BIGU_RET_ATTRS2:.*]], ptr [[BIGU_ARG_ATTRS1]] byval([64 x i8]) [[BIGU_ARG_ATTRS2]])
-#[no_mangle]
-pub extern "C" fn test_TeBigU(_: TeBigU) -> TeBigU {
-    loop {}
-}