aboutsummaryrefslogtreecommitdiff
path: root/src/ir.cpp
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2018-02-18 15:14:13 +0000
committergingerBill <bill@gingerbill.org>2018-02-18 15:14:13 +0000
commit4c339360e94a66a9b081af4950266eaa3da0003c (patch)
tree3e552da56621b7d8a75117a9bb64a94e0b0a29f6 /src/ir.cpp
parent731dad480d705d3dd32a7ecb7bbb6c0d020e3a6b (diff)
auto_cast
Diffstat (limited to 'src/ir.cpp')
-rw-r--r--src/ir.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/ir.cpp b/src/ir.cpp
index f0d0c4606..1a33f17e1 100644
--- a/src/ir.cpp
+++ b/src/ir.cpp
@@ -4979,6 +4979,10 @@ irValue *ir_build_expr_internal(irProcedure *proc, AstNode *expr) {
GB_PANIC("Invalid AST TypeCast");
case_end;
+ case_ast_node(ac, AutoCast, expr);
+ return ir_build_expr(proc, ac->expr);
+ case_end;
+
case_ast_node(ue, UnaryExpr, expr);
switch (ue->op.kind) {
case Token_And: {
@@ -6052,6 +6056,10 @@ irAddr ir_build_addr(irProcedure *proc, AstNode *expr) {
ir_emit_store(proc, v, e);
return ir_addr(v);
case_end;
+
+ case_ast_node(ac, AutoCast, expr);
+ return ir_build_addr(proc, ac->expr);
+ case_end;
}
TokenPos token_pos = ast_node_token(expr).pos;