]> git.lizzy.rs Git - rust.git/blob - src/test/codegen/repr-transparent-aggregates-2.rs
Auto merge of #57118 - Zoxc:query-stats, r=wesleywiser
[rust.git] / src / test / codegen / repr-transparent-aggregates-2.rs
1 // compile-flags: -C no-prepopulate-passes
2
3 // ignore-aarch64
4 // ignore-asmjs
5 // ignore-mips64
6 // ignore-powerpc
7 // ignore-powerpc64
8 // ignore-powerpc64le
9 // ignore-s390x
10 // ignore-sparc
11 // ignore-sparc64
12 // ignore-wasm
13 // ignore-x86
14 // ignore-x86_64
15 // See repr-transparent.rs
16
17 #![crate_type="lib"]
18
19
20 #[repr(C)]
21 pub struct Big([u32; 16]);
22
23 #[repr(transparent)]
24 pub struct BigW(Big);
25
26 // CHECK: define void @test_Big(%Big* [[BIG_RET_ATTRS:.*]], [16 x i32]
27 #[no_mangle]
28 pub extern fn test_Big(_: Big) -> Big { loop {} }
29
30 // CHECK: define void @test_BigW(%BigW* [[BIG_RET_ATTRS]], [16 x i32]
31 #[no_mangle]
32 pub extern fn test_BigW(_: BigW) -> BigW { loop {} }
33
34
35 #[repr(C)]
36 pub union BigU {
37     foo: [u32; 16],
38 }
39
40 #[repr(transparent)]
41 pub struct BigUw(BigU);
42
43 // CHECK: define void @test_BigU(%BigU* [[BIGU_RET_ATTRS:.*]], [16 x i32]
44 #[no_mangle]
45 pub extern fn test_BigU(_: BigU) -> BigU { loop {} }
46
47 // CHECK: define void @test_BigUw(%BigUw* [[BIGU_RET_ATTRS]], [16 x i32]
48 #[no_mangle]
49 pub extern fn test_BigUw(_: BigUw) -> BigUw { loop {} }