36 lines
625 B
Rust
36 lines
625 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
|
|
// ignore-sgx
|
|
|
|
#![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(),
|
|
}
|
|
}
|