diff options
| author | gingerBill <bill@gingerbill.org> | 2021-04-22 17:29:48 +0100 |
|---|---|---|
| committer | gingerBill <bill@gingerbill.org> | 2021-04-22 17:29:48 +0100 |
| commit | ac53577e9b8f310bfdd663b6bdac38246165d1ff (patch) | |
| tree | 3be64e1fe4256e8fd9d71a3a19437ef5f789b683 /src | |
| parent | 896057b5a7433b6251f638afdc65b18f1873f2cc (diff) | |
Improve `auto_cast` logic
Diffstat (limited to 'src')
| -rw-r--r-- | src/ir.cpp | 3 | ||||
| -rw-r--r-- | 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); |