https://gcc.gnu.org/g:2f11d2d7503283c1cdf79cd873868e581711e8d0
commit r17-4342-g2f11d2d7503283c1cdf79cd873868e581711e8d0 Author: Philip Herron <[email protected]> Date: Tue Sep 8 10:19:17 2026 +0100 gccrs: Add missing isize and usize as valid options here Fixes Rust-GCC/gccrs#4858 gcc/rust/ChangeLog: * typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): add missing checks gcc/testsuite/ChangeLog: * rust/compile/issue-4858.rs: New test. Signed-off-by: Philip Herron <[email protected]> Diff: --- gcc/rust/typecheck/rust-hir-type-check-expr.cc | 2 ++ gcc/testsuite/rust/compile/issue-4858.rs | 10 ++++++++++ 2 files changed, 12 insertions(+) diff --git a/gcc/rust/typecheck/rust-hir-type-check-expr.cc b/gcc/rust/typecheck/rust-hir-type-check-expr.cc index 7f8547f53ee0..a1e4fb5d8f63 100644 --- a/gcc/rust/typecheck/rust-hir-type-check-expr.cc +++ b/gcc/rust/typecheck/rust-hir-type-check-expr.cc @@ -612,6 +612,8 @@ TypeCheckExpr::visit (HIR::NegationExpr &expr) = (negated_expr_ty->get_kind () == TyTy::TypeKind::BOOL) || (negated_expr_ty->get_kind () == TyTy::TypeKind::INT) || (negated_expr_ty->get_kind () == TyTy::TypeKind::UINT) + || (negated_expr_ty->get_kind () == TyTy::TypeKind::ISIZE) + || (negated_expr_ty->get_kind () == TyTy::TypeKind::USIZE) || (negated_expr_ty->get_kind () == TyTy::TypeKind::INFER && (((TyTy::InferType *) negated_expr_ty)->get_infer_kind () == TyTy::InferType::INTEGRAL)); diff --git a/gcc/testsuite/rust/compile/issue-4858.rs b/gcc/testsuite/rust/compile/issue-4858.rs new file mode 100644 index 000000000000..aab574287b47 --- /dev/null +++ b/gcc/testsuite/rust/compile/issue-4858.rs @@ -0,0 +1,10 @@ +#![feature(no_core)] +#![no_core] + +pub fn signed(x: isize) -> isize { + !x +} + +pub fn unsigned(x: usize) -> usize { + !x +}
