Skip to content

[i386] Numeric literal 0x2000000000000000_usize out of range in tests #1879

@ermakov0

Description

@ermakov0

On the i386 (32-bit x86) architecture, the size of usize in Rust is 4 bytes (32 bits)

https://github.com/rust-bakery/nom/blob/main/tests/issues.rs#L145

I proposed a patch for Debian to make the test pass. But I'm not sure it's correct.

From: Ermakov Alexander <ermakovav@altgtu.ru>
Date: Mar, 04 2026 09:49:33 +0700
Subject: Fix out of range in tests for i386
Forwarded: no

--- rust-nom-7-7.1.3.orig/tests/issues.rs
+++ rust-nom-7-7.1.3/tests/issues.rs
@@ -139,7 +139,10 @@ mod issue_647 {
 fn issue_848_overflow_incomplete_bits_to_bytes() {
   fn take(i: &[u8]) -> IResult<&[u8], &[u8]> {
     use nom::bytes::streaming::take;
-    take(0x2000000000000000_usize)(i)
+    #[cfg(not(target_arch = "x86"))]
+    { take(0x2000000000000000_usize)(i) }
+    #[cfg(target_arch = "x86")]
+    { take(0x20000000_usize)(i) }
   }
   fn parser(i: &[u8]) -> IResult<&[u8], &[u8]> {
     use nom::bits::{bits, bytes};

https://sources.debian.org/src/rust-nom-7/7.1.3-3/debian/patches/fix-tests-for-i386.patch

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions