From eef09cfb7d834d553511ced2015c9da8c0d1721d Mon Sep 17 00:00:00 2001 From: Zhongyao Chen Date: Wed, 12 Nov 2025 17:42:21 +0800 Subject: [PATCH] tests: Fix overflow-checks test for RISC-V target The overflow-checks codegen test was failing on riscv64gc target because the FileCheck pattern did not account for ABI extension attributes. RISC-V LP64 ABI requires integer types smaller than XLEN (64-bit) to be zero-extended or sign-extended to register width. For u8 parameters, RISC-V generates: i8 noundef zeroext %a, i8 noundef zeroext %b While x86_64 and aarch64 generate: i8 noundef %a, i8 noundef %b The original CHECK pattern only matched the format without the `zeroext` attribute, causing test failures on RISC-V. This patch makes the zeroext attribute optional in the FileCheck pattern using `{{( zeroext)?}}`, allowing the test to pass on architectures that add ABI extension attributes (e.g., RISC-V). Test results before fix: - x86_64-unknown-linux-gnu: 3 passed - aarch64-unknown-linux-gnu: 3 passed - riscv64gc-unknown-linux-gnu: 1 passed, 2 failed Test results after fix: - x86_64-unknown-linux-gnu: 3 passed - aarch64-unknown-linux-gnu: 3 passed - riscv64gc-unknown-linux-gnu: 3 passed --- tests/codegen-llvm/overflow-checks.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/codegen-llvm/overflow-checks.rs b/tests/codegen-llvm/overflow-checks.rs index c8b10df507b0f..3a48e6b76243b 100644 --- a/tests/codegen-llvm/overflow-checks.rs +++ b/tests/codegen-llvm/overflow-checks.rs @@ -18,7 +18,7 @@ extern crate overflow_checks_add; // CHECK-LABEL: @add( #[no_mangle] pub unsafe fn add(a: u8, b: u8) -> u8 { - // CHECK: i8 noundef %a, i8 noundef %b + // CHECK: i8 noundef{{( zeroext)?}} %a, i8 noundef{{( zeroext)?}} %b // CHECK: add i8 %b, %a // DEBUG: icmp ult i8 [[zero:[^,]+]], %a // DEBUG: call core::num::overflow_panic::add