From ac53577e9b8f310bfdd663b6bdac38246165d1ff Mon Sep 17 00:00:00 2001 From: gingerBill Date: Thu, 22 Apr 2021 17:29:48 +0100 Subject: [PATCH] Improve `auto_cast` logic --- src/ir.cpp | 3 ++- src/llvm_backend.cpp | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/ir.cpp b/src/ir.cpp index 9f08450d6..1c81f08ed 100644 --- a/src/ir.cpp +++ b/src/ir.cpp @@ -8257,7 +8257,8 @@ irValue *ir_build_expr_internal(irProcedure *proc, Ast *expr) { case_end; case_ast_node(ac, AutoCast, expr); - return ir_build_expr(proc, ac->expr); + irValue *value = ir_build_expr(proc, ac->expr); + return ir_emit_conv(proc, value, tv.type); case_end; case_ast_node(ue, UnaryExpr, expr); diff --git a/src/llvm_backend.cpp b/src/llvm_backend.cpp index 4a0e08b15..d3bc3d0f8 100644 --- a/src/llvm_backend.cpp +++ b/src/llvm_backend.cpp @@ -11164,7 +11164,8 @@ lbValue lb_build_expr(lbProcedure *p, Ast *expr) { case_end; case_ast_node(ac, AutoCast, expr); - return lb_build_expr(p, ac->expr); + lbValue value = lb_build_expr(p, ac->expr); + return lb_emit_conv(p, value, tv.type); case_end; case_ast_node(ue, UnaryExpr, expr);