From 8bb04f6b4cd36229ddd8e5199e06c3e87ca8589e Mon Sep 17 00:00:00 2001 From: Amirhossein Akhlaghpour Date: Wed, 8 Jul 2026 20:35:40 +0330 Subject: [PATCH] chore: add codegen test for Result is_ok unwrap Signed-off-by: Amirhossein Akhlaghpour --- .../issues/result-is-ok-unwrap.rs | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 tests/codegen-llvm/issues/result-is-ok-unwrap.rs diff --git a/tests/codegen-llvm/issues/result-is-ok-unwrap.rs b/tests/codegen-llvm/issues/result-is-ok-unwrap.rs new file mode 100644 index 0000000000000..ffcbb0ae142d9 --- /dev/null +++ b/tests/codegen-llvm/issues/result-is-ok-unwrap.rs @@ -0,0 +1,20 @@ +// Checking `Result::is_ok()` should make a following `unwrap()` branch-free. + +//@ compile-flags: -Copt-level=3 + +#![crate_type = "lib"] + +use std::hint::black_box; + +// CHECK-LABEL: @unwrap_after_is_ok +#[no_mangle] +pub fn unwrap_after_is_ok(arg: Result) { + // CHECK-NOT: unwrap_failed + // CHECK-NOT: panic + if arg.is_ok() { + let value = arg.unwrap(); + if value == 42 { + black_box(value); + } + } +}