From c5ba27da6f2ce3916b71653bc24b258aaf322c17 Mon Sep 17 00:00:00 2001 From: Wolfgang Bumiller Date: Sat, 28 Jul 2012 18:13:12 +0200 Subject: [PATCH] ast_store to take ast_expression on its left, rather than ast_value. Assigning to a vector member would not put an ast_value on the left, but an ast_member, thus: ast_expression now already --- ast.c | 2 +- ast.h | 4 ++-- test/ast-macros.h | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ast.c b/ast.c index 61b89e4..e153a5a 100644 --- a/ast.c +++ b/ast.c @@ -404,7 +404,7 @@ void ast_call_delete(ast_call *self) } ast_store* ast_store_new(lex_ctx ctx, int op, - ast_value *dest, ast_expression *source) + ast_expression *dest, ast_expression *source) { ast_instantiate(ast_store, ctx, ast_store_delete); ast_expression_init((ast_expression*)self, (ast_expression_codegen*)&ast_store_codegen); diff --git a/ast.h b/ast.h index 187ec88..fc4fef3 100644 --- a/ast.h +++ b/ast.h @@ -218,11 +218,11 @@ struct ast_store_s { ast_expression_common expression; int op; - ast_value *dest; /* When we add pointers this might have to change to expression */ + ast_expression *dest; ast_expression *source; }; ast_store* ast_store_new(lex_ctx ctx, int op, - ast_value *d, ast_expression *s); + ast_expression *d, ast_expression *s); void ast_store_delete(ast_store*); bool ast_store_codegen(ast_store*, ast_function*, bool lvalue, ir_value**); diff --git a/test/ast-macros.h b/test/ast-macros.h index c17b753..ebb3a5b 100644 --- a/test/ast-macros.h +++ b/test/ast-macros.h @@ -42,7 +42,7 @@ do { \ } while(0) #define ASSIGN(op, a, b) \ -(ast_expression*)ast_store_new(ctx, INSTR_##op, (a), (ast_expression*)(b)) +(ast_expression*)ast_store_new(ctx, INSTR_##op, (ast_expression*)(a), (ast_expression*)(b)) #define BIN(op, a, b) \ (ast_expression*)ast_binary_new(ctx, INSTR_##op, (ast_expression*)(a), (ast_expression*)(b))