Fix AMD64 pointer member assignment width
authorRobert Pengelly <robertapengelly@hotmail.com>
Thu, 17 Sep 2026 13:03:11 +0000 (14:03 +0100)
committerRobert Pengelly <robertapengelly@hotmail.com>
Thu, 17 Sep 2026 13:03:11 +0000 (14:03 +0100)
amd64.c

diff --git a/amd64.c b/amd64.c
index fa36404df6c34e5774b61930e92d179074a743b5..da9058e880ff33c61ff09d9f41cb09a1d5c8c131 100644 (file)
--- a/amd64.c
+++ b/amd64.c
@@ -17481,7 +17481,7 @@ static int emit_parse_postfix_copy_source_address_now (const char *reg, struct l
             }
             
             last_elem_size = member_elem_size;
-            last_lvalue_size = member_size;
+            last_lvalue_size = (member_pointer_depth > 0 && !member_is_array) ? (DATA_PTR & 0x1f) : member_size;
             
             if (member_pointer_depth > 0 || member_is_array) {
                 current_object_size = member_elem_size;