aboutsummaryrefslogtreecommitdiff
path: root/src/actualize.c
diff options
context:
space:
mode:
authorKimplul <kimi.h.kuparinen@gmail.com>2023-03-24 03:16:41 +0200
committerKimplul <kimi.h.kuparinen@gmail.com>2023-03-24 03:16:41 +0200
commit3bd9103ce0b18f6900ba544a8b2786145868524f (patch)
tree235ed722d5058ee0c2bf32d7c0eabd9f581e9273 /src/actualize.c
parent5b038666c3e911ffeb78a4d656044e5bd076705b (diff)
downloadek-3bd9103ce0b18f6900ba544a8b2786145868524f.tar.gz
ek-3bd9103ce0b18f6900ba544a8b2786145868524f.zip
struct initializers
Diffstat (limited to 'src/actualize.c')
-rw-r--r--src/actualize.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/actualize.c b/src/actualize.c
index 0148569..df268ad 100644
--- a/src/actualize.c
+++ b/src/actualize.c
@@ -1312,12 +1312,21 @@ static int pointer_conversion(struct ast_node *a, struct ast_node *b)
return 0;
}
+static int actualize_init_cast(struct act_state *state,
+ struct scope *scope, struct ast_node *cast)
+{
+ semantic_error(scope->fctx, cast, "structure init casts not yet implemented");
+ return -1;
+}
+
static int actualize_cast(struct act_state *state,
struct scope *scope, struct ast_node *cast)
{
assert(cast->node_type == AST_CAST);
-
struct ast_node *expr = cast->_cast.expr;
+ if (expr->node_type == AST_INIT)
+ return actualize_init_cast(state, scope, cast);
+
if (actualize(state, scope, expr))
return -1;