diff --git a/cc_core.c b/cc_core.c index 5023433..426e88d 100644 --- a/cc_core.c +++ b/cc_core.c @@ -399,14 +399,14 @@ void emit_dereference(int load_byte) { else if(RISCV64 == Architecture) emit_out("RD_A0 RS1_A0 LBU\n"); } else - { + { if((KNIGHT_POSIX == Architecture) || (KNIGHT_NATIVE == Architecture)) emit_out("LOAD R0 R0 0\n"); else if(X86 == Architecture) emit_out("LOAD_INTEGER\n"); else if(AMD64 == Architecture) emit_out("LOAD_INTEGER\n"); else if(ARMV7L == Architecture) emit_out("!0 R0 LOAD32 R0 MEMORY\n"); else if(AARCH64 == Architecture) emit_out("DEREF_X0\n"); else if(RISCV64 == Architecture) emit_out("RD_A0 RS1_A0 LD\n"); - } + } } void variable_load(struct token_list* a, int num_dereference) @@ -721,6 +721,7 @@ void primary_expr_variable() int num_dereference = 0; while(global_token->s[0] == '*') { global_token = global_token->next; + require(NULL != global_token, "Walked off the end of a variable dereference\n"); num_dereference = num_dereference + 1; } char* s = global_token->s; diff --git a/test/test.answers b/test/test.answers index e771e46..84e2f92 100644 --- a/test/test.answers +++ b/test/test.answers @@ -221,9 +221,9 @@ eb1f6aab09a1a4966f9f49a518d8aa03ca97aa7c46e443871d758a306671a85e test/results/t a2cbfd5f76d3be8049c6737e3fa02f191caf29b6885db006fa23f86e6eacc186 test/results/test0106-knight-posix-binary d75e450e2fcdf19df63f9d6a3fe5e032933e57b33f6f06b39a8ed2f3dc759f17 test/results/test0106-riscv64-binary 473cc504d6cba9eaf648abcf15c83a317ff3f4a7f08f5e8936e3b35b2cc4fbc6 test/results/test0106-x86-binary -b5187732c5dd3c90f07404636c8a929d8ef0f4b0e859228468825eff4dbfd66b test/results/test1000-aarch64-binary -25c32aaa0dcda0aba7f2b0c9a87a923a904161448b50ad5c8c8032fb27e29f51 test/results/test1000-amd64-binary -7676c997da4ca49b204bfb884eec89418e5bb9620c1e686e03ba5064e7406ca6 test/results/test1000-armv7l-binary -f33537743e53ad62849af0675f5d3635ff0f3a1ba8169768289c125a014607c3 test/results/test1000-knight-posix-binary -120e74cb11b9df0fd0793cfae6475cfaf95f8af4242d3b4f8b33247249fff25d test/results/test1000-riscv64-binary -72ee105c0fd1356c029966a7c550c019a7ccc5763ec8c2f2e40affc345e1349b test/results/test1000-x86-binary +4008c440eb09971f84262e9441f103f75f002bfb1c2ce1d82058fdfcd5d1309c test/results/test1000-aarch64-binary +af7fe1f9db3823310e00c4bed0d42a6d0afb86ed70410542005d7784840904b2 test/results/test1000-amd64-binary +8a03041ad3c072d337383e67b1179ebbc32025dd8103c39ae6690529634f6d15 test/results/test1000-armv7l-binary +011d59b4eddd7bc6530f72c9f345d50dfc4e3f99b7b69858af8a927c8701fcb1 test/results/test1000-knight-posix-binary +dcd4ebd63c3f02b2278ffdc98f7d96136e1d6007bb9747b1bdc59a3ca73d685a test/results/test1000-riscv64-binary +24f6cb3a61fc2bcbe0224fdc272763a59a3af5928e07af84fb271d274a206215 test/results/test1000-x86-binary diff --git a/test/test1000/proof.answer b/test/test1000/proof.answer index 5055a12..76fb1cd 100644 --- a/test/test1000/proof.answer +++ b/test/test1000/proof.answer @@ -1 +1 @@ -a7014fa831a6f837d25bace5fdce16ff16cb155eb6676ad1f4bdc239d4ba361d test/test1000/proof +9644cf677938e82b7dc630577d24f187c0b20d4b5f36f7b188edf2a14c5ac06f test/test1000/proof