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);