File tree Expand file tree Collapse file tree 6 files changed +21
-11
lines changed
Expand file tree Collapse file tree 6 files changed +21
-11
lines changed Original file line number Diff line number Diff line change @@ -1105,13 +1105,15 @@ class BackendARM64 : CompilerBackend {
11051105 output ~= format(" add x9, x9, #%d\n " , offset);
11061106 output ~= " str x9, [x19], #8\n " ;
11071107 }
1108- else if (VariableExists(node.func )) {
1108+ else if (VariableExists(name )) {
11091109 auto var = GetVariable(name);
11101110
11111111 output ~= format(" add x9, x20, #%d\n " , var.offset + offset);
11121112 output ~= " str x9, [x19], #8\n " ;
11131113 }
1114- else assert (0 );
1114+ else {
1115+ Error(node.error, " Variable '%s' does not exist" , name);
1116+ }
11151117 }
11161118 else {
11171119 Error(node.error, " Undefined identifier '%s'" , node.func);
Original file line number Diff line number Diff line change @@ -788,13 +788,15 @@ class BackendLua : CompilerBackend {
788788 output ~= format(" mem[dsp] = %d\n " , extra.addr + offset);
789789 output ~= " dsp = dsp + 1\n " ;
790790 }
791- else if (VariableExists(node.func )) {
791+ else if (VariableExists(name )) {
792792 auto var = GetVariable(name);
793793
794794 output ~= format(" mem[dsp] = vsp + %d\n " , var.offset + offset);
795795 output ~= " dsp = dsp + 1" ;
796796 }
797- else assert (0 );
797+ else {
798+ Error(node.error, " Variable '%s' does not exist" , name);
799+ }
798800 }
799801 else {
800802 Error(node.error, " Undefined identifier '%s'" , node.func);
Original file line number Diff line number Diff line change @@ -895,7 +895,7 @@ class BackendRM86 : CompilerBackend {
895895 output ~= " mov [si], ax\n " ;
896896 output ~= " add si, 2\n " ;
897897 }
898- else if (VariableExists(node.func )) {
898+ else if (VariableExists(name )) {
899899 auto var = GetVariable(name);
900900
901901 output ~= " mov ax, si\n " ;
@@ -905,7 +905,9 @@ class BackendRM86 : CompilerBackend {
905905 output ~= " mov [si], ax\n " ;
906906 output ~= " add si, 2\n " ;
907907 }
908- else assert (0 );
908+ else {
909+ Error(node.error, " Variable '%s' does not exist" , name);
910+ }
909911 }
910912 else {
911913 Error(node.error, " Undefined identifier '%s'" , node.func);
Original file line number Diff line number Diff line change @@ -821,11 +821,13 @@ class BackendUXN : CompilerBackend {
821821 auto var = GetGlobal(name);
822822 output ~= format(" ;global_%s #%.4x ADD2\n " , name.Sanitise(), offset);
823823 }
824- else if (VariableExists(node.func )) {
824+ else if (VariableExists(name )) {
825825 auto var = GetVariable(name);
826826 output ~= format(" .vsp LDZ2 #%.4x ADD2\n " , var.offset + offset);
827827 }
828- else assert (0 );
828+ else {
829+ Error(node.error, " Variable '%s' does not exist" , name);
830+ }
829831 }
830832 else if (GlobalExists(node.func)) {
831833 output ~= format(" ;global_%s\n " , node.func.Sanitise());
Original file line number Diff line number Diff line change @@ -1209,7 +1209,7 @@ class BackendX86_64 : CompilerBackend {
12091209 output ~= " mov [r15], rax\n " ;
12101210 output ~= " add r15, 8\n " ;
12111211 }
1212- else if (VariableExists(node.func )) {
1212+ else if (VariableExists(name )) {
12131213 auto var = GetVariable(name);
12141214
12151215 output ~= " mov rdi, rsp\n " ;
@@ -1219,7 +1219,9 @@ class BackendX86_64 : CompilerBackend {
12191219 output ~= " mov [r15], rdi\n " ;
12201220 output ~= " add r15, 8\n " ;
12211221 }
1222- else assert (0 );
1222+ else {
1223+ Error(node.error, " Variable '%s' does not exist" , name);
1224+ }
12231225 }
12241226 else {
12251227 Error(node.error, " Undefined identifier '%s'" , node.func);
Original file line number Diff line number Diff line change @@ -170,7 +170,7 @@ class CompilerBackend {
170170 members ~= member.name;
171171
172172 offset += newMember.array?
173- newMember.type.size * newMember.size : newMember.type.size;
173+ newMember.type.Size() * newMember.size : newMember.type.size;
174174 }
175175
176176 foreach (ref member ; entries) {
You can’t perform that action at this time.
0 commit comments