This commit is contained in:
nub31
2025-07-03 22:57:30 +02:00
parent b1ec04f499
commit 9a21ec5d8d
3 changed files with 9 additions and 3 deletions

View File

@@ -200,16 +200,19 @@ public static class QBEGenerator
{
case BoundArrayInitializerNode arrayInitializer:
{
_writer.WriteDebugLocation(arrayInitializer);
EmitStore(source.Type, EmitUnwrap(EmitArrayInitializer(arrayInitializer)), destinationPointer);
return true;
}
case BoundStructInitializerNode structInitializer:
{
_writer.WriteDebugLocation(structInitializer);
EmitStructInitializer(structInitializer, destinationPointer);
return true;
}
case BoundLiteralNode { Kind: LiteralKind.String } literal:
{
_writer.WriteDebugLocation(literal);
EmitStore(source.Type, EmitUnwrap(EmitLiteral(literal)), destinationPointer);
return true;
}
@@ -521,6 +524,7 @@ public static class QBEGenerator
builder.Append($"({string.Join(", ", parameterStrings)})");
_writer.StartFunction(builder.ToString());
_writer.WriteDebugLocation(debugNode);
var parameterVars = parameters.Select(parameter => new Variable(parameter.Name, new Val("%" + parameter.Name, parameter.Type, ValKind.Direct))).ToList();
@@ -566,6 +570,8 @@ public static class QBEGenerator
private static void EmitStatement(BoundStatementNode statement)
{
_writer.WriteDebugLocation(statement);
switch (statement)
{
case BoundAssignmentNode assignment:
@@ -714,6 +720,7 @@ public static class QBEGenerator
private static Val EmitExpression(BoundExpressionNode expression)
{
_writer.WriteDebugLocation(expression);
return expression switch
{
BoundAddressOfNode addressOf => EmitAddressOf(addressOf),