From: Robert Pengelly Date: Mon, 28 Sep 2026 04:37:36 +0000 (+0100) Subject: Fix i386 narrowing casts of 64-bit struct members X-Git-Url: https://git.candlhat.org/?a=commitdiff_plain;h=a2539f96932897542bbdb473e0158354a4687e4f;p=scc.git Fix i386 narrowing casts of 64-bit struct members --- 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 ();