aboutsummaryrefslogtreecommitdiff
path: root/src/ast.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/ast.c')
-rw-r--r--src/ast.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/ast.c b/src/ast.c
index da51b05..b775857 100644
--- a/src/ast.c
+++ b/src/ast.c
@@ -58,6 +58,11 @@ void free_statement(struct Statement* statement)
free_expr(statement->call.args[i]);
free(statement->call.args);
break;
+ case STATEMENT_INSTRUCTION:
+ for (size_t i = 0; i < statement->instruction.operand_count; i += 1)
+ free_expr(statement->instruction.operands[i]);
+ free(statement->instruction.operands);
+ break;
case STATEMENT_STACK:
free_expr(statement->stack.size);
break;
@@ -81,6 +86,9 @@ struct Program create_program(void)
program.config.bits = 64;
program.config.has_entry = false;
program.config.logical_registers = false;
+ program.config.format = OUTPUT_ELF;
+ program.config.has_org = false;
+ program.config.boot = false;
program.consts = NULL;
program.const_count = 0;
program.const_capacity = 0;