]> git.lizzy.rs Git - rust.git/blob - src/test/codegen/repr-transparent-sysv64.rs
Rollup merge of #55280 - vlad20012:add-libproc_macro-to-src-disrt, r=Mark-Simulacrum
[rust.git] / src / test / codegen / repr-transparent-sysv64.rs
1 // Copyright 2017 The Rust Project Developers. See the COPYRIGHT
2 // file at the top-level directory of this distribution and at
3 // http://rust-lang.org/COPYRIGHT.
4 //
5 // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6 // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8 // option. This file may not be copied, modified, or distributed
9 // except according to those terms.
10
11 // only-x86_64
12
13 // compile-flags: -C no-prepopulate-passes
14
15 #![crate_type="lib"]
16
17 #[repr(C)]
18 pub struct Rgb8 { r: u8, g: u8, b: u8 }
19
20 #[repr(transparent)]
21 pub struct Rgb8Wrap(Rgb8);
22
23 // CHECK: i24 @test_Rgb8Wrap(i24)
24 #[no_mangle]
25 pub extern "sysv64" fn test_Rgb8Wrap(_: Rgb8Wrap) -> Rgb8Wrap { loop {} }
26
27 #[repr(C)]
28 pub union FloatBits {
29     float: f32,
30     bits: u32,
31 }
32
33 #[repr(transparent)]
34 pub struct SmallUnion(FloatBits);
35
36 // CHECK: i32 @test_SmallUnion(i32)
37 #[no_mangle]
38 pub extern "sysv64" fn test_SmallUnion(_: SmallUnion) -> SmallUnion { loop {} }