]> git.lizzy.rs Git - rust.git/blob - tests/codegen/frame-pointer.rs
Rollup merge of #107048 - DebugSteven:newer-x-check-cargo, r=albertlarsan68
[rust.git] / tests / codegen / frame-pointer.rs
1 // compile-flags: --crate-type=rlib -Copt-level=0
2 // revisions: aarch64-apple aarch64-linux force x64-apple x64-linux
3 // [aarch64-apple] needs-llvm-components: aarch64
4 // [aarch64-apple] compile-flags: --target=aarch64-apple-darwin
5 // [aarch64-linux] needs-llvm-components: aarch64
6 // [aarch64-linux] compile-flags: --target=aarch64-unknown-linux-gnu
7 // [force] needs-llvm-components: x86
8 // [force] compile-flags: --target=x86_64-unknown-linux-gnu -Cforce-frame-pointers=yes
9 // [x64-apple] needs-llvm-components: x86
10 // [x64-apple] compile-flags: --target=x86_64-apple-darwin
11 // [x64-linux] needs-llvm-components: x86
12 // [x64-linux] compile-flags: --target=x86_64-unknown-linux-gnu
13
14 #![feature(no_core, lang_items)]
15 #![no_core]
16 #[lang="sized"]
17 trait Sized { }
18 #[lang="copy"]
19 trait Copy { }
20 impl Copy for u32 {}
21
22
23 // CHECK: define i32 @peach{{.*}}[[PEACH_ATTRS:\#[0-9]+]] {
24 #[no_mangle]
25 pub fn peach(x: u32) -> u32 {
26     x
27 }
28
29 // CHECK: attributes [[PEACH_ATTRS]] = {
30 // x64-linux-NOT: {{.*}}"frame-pointer"{{.*}}
31 // aarch64-linux-NOT: {{.*}}"frame-pointer"{{.*}}
32 // x64-apple-SAME: {{.*}}"frame-pointer"="all"
33 // force-SAME: {{.*}}"frame-pointer"="all"
34 // aarch64-apple-SAME: {{.*}}"frame-pointer"="non-leaf"
35 // CHECK-SAME: }