File tree Expand file tree Collapse file tree 2 files changed +34
-0
lines changed
tests/run-make/naked-dead-code-elimination Expand file tree Collapse file tree 2 files changed +34
-0
lines changed Original file line number Diff line number Diff line change 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+ }
Original file line number Diff line number Diff line change 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+ }
You can’t perform that action at this time.
0 commit comments