From: Michael D. Lowis Date: Wed, 5 Oct 2022 01:02:57 +0000 (-0400) Subject: fixed record access X-Git-Url: https://git.mdlowis.com/?a=commitdiff_plain;h=b55d1819e070bd1aaa2443cda1eb0a2ad7765a78;p=proto%2Fobnc.git fixed record access --- diff --git a/cerise/src/ssa.c b/cerise/src/ssa.c index 2e3ef55..2dde0c0 100644 --- a/cerise/src/ssa.c +++ b/cerise/src/ssa.c @@ -196,7 +196,7 @@ SsaNode* ssa_op(Parser* p, int op, SsaNode* left, SsaNode* right) SsaNode* ssa_store(Parser* p, SsaNode* dest, SsaNode* value) { - value = load(p, value); + value = loadmem(p, value); if (dest->mode == MODE_MEMORY && (dest->code == '[' || dest->code == '.')) { dest = load(p, dest); diff --git a/cerise/tests/Module.m b/cerise/tests/Module.m index 3cd964f..9dd680f 100644 --- a/cerise/tests/Module.m +++ b/cerise/tests/Module.m @@ -163,6 +163,7 @@ end procedure TestFlatArrayAccess() begin vIntArray[0] = vIntArray[1] + vIntArray[2]; + vInt = vIntArray[1] + vIntArray[2]; end procedure TestNestedArrayAccess() @@ -173,12 +174,17 @@ end procedure TestRecordAccess() begin vRec2.a = vRec2.a + vRec2.a; -# vInt = vRec2.a; # TODO: This is broken! + vInt = vRec2.a; end procedure TestNestedRecordAccess() begin - vRec1.b.c = vRec1.b.c + vRec1.b.c; # TODO: This is broken! + vRec1.b.c = vRec1.b.c + vRec1.b.c; +end + +procedure TestFunctionCall() +begin +# TestFunctionCall(); end #begin