diff options
| author | Ralf Jung <post@ralfj.de> | 2022-12-05 13:52:53 +0100 |
|---|---|---|
| committer | Ralf Jung <post@ralfj.de> | 2022-12-05 13:52:53 +0100 |
| commit | 7481ba7746fc5f5b82aaff0fe20cbf55c48d8fd9 (patch) | |
| tree | 3463b86894affc4a8aee0f10ac9dcfbe0cdc4de1 /src/test/codegen | |
| parent | 16a9fdf66372a6aeeb86f6cd19e00bdfb0a13912 (diff) | |
| parent | 203c8765ea33c65d888febe0e8219c4bb11b0d89 (diff) | |
| download | rust-7481ba7746fc5f5b82aaff0fe20cbf55c48d8fd9.tar.gz rust-7481ba7746fc5f5b82aaff0fe20cbf55c48d8fd9.zip | |
Merge from rustc
Diffstat (limited to 'src/test/codegen')
| -rw-r--r-- | src/test/codegen/enum-match.rs | 7 | ||||
| -rw-r--r-- | src/test/codegen/naked-nocoverage.rs | 19 |
2 files changed, 21 insertions, 5 deletions
diff --git a/src/test/codegen/enum-match.rs b/src/test/codegen/enum-match.rs index efab189fd7b..44f1b408d21 100644 --- a/src/test/codegen/enum-match.rs +++ b/src/test/codegen/enum-match.rs @@ -34,11 +34,8 @@ pub enum Enum1 { // CHECK: define i8 @match1{{.*}} // CHECK-NEXT: start: -// CHECK-NEXT: %1 = icmp ugt i8 %0, 1 -// CHECK-NEXT: %2 = zext i8 %0 to i64 -// CHECK-NEXT: %3 = add nsw i64 %2, -1 -// CHECK-NEXT: %_2 = select i1 %1, i64 %3, i64 0 -// CHECK-NEXT: switch i64 %_2, label {{.*}} [ +// CHECK-NEXT: %1 = {{.*}}call i8 @llvm.usub.sat.i8(i8 %0, i8 1) +// CHECK-NEXT: switch i8 %1, label {{.*}} [ #[no_mangle] pub fn match1(e: Enum1) -> u8 { use Enum1::*; diff --git a/src/test/codegen/naked-nocoverage.rs b/src/test/codegen/naked-nocoverage.rs new file mode 100644 index 00000000000..91a6260bf2a --- /dev/null +++ b/src/test/codegen/naked-nocoverage.rs @@ -0,0 +1,19 @@ +// Checks that naked functions are not instrumented by -Cinstrument-coverage. +// Regression test for issue #105170. +// +// needs-asm-support +// needs-profiler-support +// compile-flags: -Cinstrument-coverage +#![crate_type = "lib"] +#![feature(naked_functions)] +use std::arch::asm; + +#[naked] +#[no_mangle] +pub unsafe extern "C" fn f() { + // CHECK: define void @f() + // CHECK-NEXT: start: + // CHECK-NEXT: call void asm + // CHECK-NEXT: unreachable + asm!("", options(noreturn)); +} |
