]> git.lizzy.rs Git - rust.git/blob - src/test/codegen/sparc-struct-abi.rs
Enable emission of alignment attrs for pointer params
[rust.git] / src / test / codegen / sparc-struct-abi.rs
1 // Copyright 2018 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 // Checks that we correctly codegen extern "C" functions returning structs.
12 // See issue #52638.
13
14 // only-sparc64
15 // compile-flags: -O --target=sparc64-unknown-linux-gnu --crate-type=rlib
16 #![feature(no_core, lang_items)]
17 #![no_core]
18
19 #[lang="sized"]
20 trait Sized { }
21 #[lang="freeze"]
22 trait Freeze { }
23 #[lang="copy"]
24 trait Copy { }
25
26 #[repr(C)]
27 pub struct Bool {
28     b: bool,
29 }
30
31 // CHECK: define i64 @structbool()
32 // CHECK-NEXT: start:
33 // CHECK-NEXT: ret i64 72057594037927936
34 #[no_mangle]
35 pub extern "C" fn structbool() -> Bool {
36     Bool { b: true }
37 }