35 lines
611 B
Rust
35 lines
611 B
Rust
|
// Test that jump tables are (not) emitted when the `-Zno-jump-tables`
|
||
|
// flag is (not) set.
|
||
|
|
||
|
// revisions: unset set
|
||
|
// assembly-output: emit-asm
|
||
|
// compile-flags: -O
|
||
|
// [set] compile-flags: -Zno-jump-tables
|
||
|
// only-x86_64
|
||
|
|
||
|
#![crate_type = "lib"]
|
||
|
|
||
|
extern "C" {
|
||
|
fn bar1();
|
||
|
fn bar2();
|
||
|
fn bar3();
|
||
|
fn bar4();
|
||
|
fn bar5();
|
||
|
fn bar6();
|
||
|
}
|
||
|
|
||
|
// CHECK-LABEL: foo:
|
||
|
#[no_mangle]
|
||
|
pub unsafe fn foo(x: i32) {
|
||
|
// unset: LJTI0_0
|
||
|
// set-NOT: LJTI0_0
|
||
|
match x {
|
||
|
1 => bar1(),
|
||
|
2 => bar2(),
|
||
|
3 => bar3(),
|
||
|
4 => bar4(),
|
||
|
5 => bar5(),
|
||
|
_ => bar6(),
|
||
|
}
|
||
|
}
|