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
+}

Reply via email to