X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=src%2Fexpressc.c;h=6651547081a0fb45ffa93c83ac9ff00113ded6b0;hb=d11f2f726ed7feea617476d99cf7505ddd9a27ce;hp=e6db119c32cd23378932b4eff41b98a60a483847;hpb=81ffe9a7de1db0b3a318a053b38882d1b7ab304c;p=inform.git diff --git a/src/expressc.c b/src/expressc.c index e6db119..6651547 100644 --- a/src/expressc.c +++ b/src/expressc.c @@ -1,9 +1,8 @@ /* ------------------------------------------------------------------------- */ /* "expressc" : The expression code generator */ /* */ -/* Copyright (c) Graham Nelson 1993 - 2018 */ -/* */ -/* This file is part of Inform. */ +/* Part of Inform 6.35 */ +/* copyright (c) Graham Nelson 1993 - 2021 */ /* */ /* Inform is free software: you can redistribute it and/or modify */ /* it under the terms of the GNU General Public License as published by */ @@ -451,10 +450,12 @@ static void access_memory_z(int oc, assembly_operand AO1, assembly_operand AO2, index_ao; int x = 0, y = 0, byte_flag = FALSE, read_flag = FALSE, from_module = FALSE; - if (AO1.marker == ARRAY_MV) - { - INITAO(&zero_ao); + INITAO(&zero_ao); + INITAO(&size_ao); + INITAO(&type_ao); + if (AO1.marker == ARRAY_MV || AO1.marker == STATIC_ARRAY_MV) + { if ((oc == loadb_zc) || (oc == storeb_zc)) byte_flag=TRUE; else byte_flag = FALSE; if ((oc == loadb_zc) || (oc == loadw_zc)) read_flag=TRUE; @@ -465,10 +466,16 @@ static void access_memory_z(int oc, assembly_operand AO1, assembly_operand AO2, size_ao = zero_ao; size_ao.value = -1; for (x=0; x