Add back variable assignment at declaration time

This commit is contained in:
nub31
2025-07-03 19:02:25 +02:00
parent 9d7b1e0f49
commit 585317e428
6 changed files with 43 additions and 28 deletions

View File

@@ -707,9 +707,15 @@ public static class QBEGenerator
private static void EmitVariableDeclaration(BoundVariableDeclarationNode variableDeclaration)
{
var tmp = VarName();
_builder.AppendLine($" {tmp} =l alloc8 {SizeOf(variableDeclaration.Type)}");
_variables.Push(new Variable(variableDeclaration.Name, new Val(tmp, variableDeclaration.Type, ValKind.Pointer)));
var variable = VarName();
_builder.AppendLine($" {variable} =l alloc8 {SizeOf(variableDeclaration.Type)}");
if (variableDeclaration.Assignment.HasValue)
{
EmitCopyIntoOrInitialize(variableDeclaration.Assignment.Value, variable);
}
_variables.Push(new Variable(variableDeclaration.Name, new Val(variable, variableDeclaration.Type, ValKind.Pointer)));
}
private static void EmitWhile(BoundWhileNode whileStatement)