Skip to content

Commit a06d606

Browse files
committed
fix a bad bad bug
1 parent 10ff6d9 commit a06d606

File tree

6 files changed

+21
-11
lines changed

6 files changed

+21
-11
lines changed

source/backends/arm64.d

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff 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);

source/backends/lua.d

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff 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);

source/backends/rm86.d

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff 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);

source/backends/uxn.d

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff 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());

source/backends/x86_64.d

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff 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);

source/compiler.d

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff 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) {

0 commit comments

Comments
 (0)