From a2539f96932897542bbdb473e0158354a4687e4f Mon Sep 17 00:00:00 2001 From: Robert Pengelly Date: Mon, 28 Sep 2026 05:37:36 +0100 Subject: [PATCH] Fix i386 narrowing casts of 64-bit struct members --- i386.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/i386.c b/i386.c index bcdc45e..49d11c4 100644 --- a/i386.c +++ b/i386.c @@ -18581,6 +18581,14 @@ static void emit_load_assignment_rhs_to_reg (const char *reg) { } else { + if (postfix_member_seen && postfix_member_pointer_depth == 0 && postfix_member_size == (DATA_LLONG & 0x1f) && + cast_base_size <= (DATA_PTR & 0x1f) && !postfix_member_is_floating) { + + emit_load_deref_reg_now (reg, DATA_INT & 0x1f); + postfix_member_size = DATA_INT & 0x1f; + + } + emit_apply_integer_cast_to_reg_now (reg, cast_base_size, cast_is_unsigned); clear_rhs_last_pointer_info (); -- 2.34.1