Skip to content

Commit ac4b179

Browse files
committed
naked functions: add run-make test for DCE
1 parent 5afbf73 commit ac4b179

File tree

2 files changed

+34
-0
lines changed

2 files changed

+34
-0
lines changed
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
use std::arch::naked_asm;
2+
3+
#[unsafe(naked)]
4+
#[no_mangle]
5+
extern "C" fn used() {
6+
naked_asm!("ret")
7+
}
8+
9+
#[unsafe(naked)]
10+
#[no_mangle]
11+
extern "C" fn unused() {
12+
naked_asm!("ret")
13+
}
14+
15+
#[unsafe(naked)]
16+
#[link_section = "foobar"]
17+
#[no_mangle]
18+
extern "C" fn unused_link_section() {
19+
naked_asm!("ret")
20+
}
21+
22+
fn main() {
23+
used();
24+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
//@ needs-asm-support
2+
3+
use run_make_support::symbols::object_contains_any_symbol;
4+
use run_make_support::{bin_name, rustc};
5+
6+
fn main() {
7+
rustc().input("main.rs").opt().run();
8+
let mut unused = vec!["unused", "unused_link_section"];
9+
assert!(!object_contains_any_symbol(bin_name("main"), &unused));
10+
}

0 commit comments

Comments
 (0)