authorgravatar for february.cozzocrea@gmail.comfebruary cozzocrea <february.cozzocrea@gmail.com> 2024-01-10 11:13:11-08:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2024-01-10 19:13:11+00:00
logaafff258973fb58f1a964eb050d5602ed8b9f60c
tree77542a7628d0dd34ef6d4274df431b2da6e13fbf
parente025ad7b46e3be08e17e70444f909d351ddc6718
signaturebadge-question-mark Signed by PGP key 4AEE18F83AFDEB23

translate-c: float cast from boolean expr fix


2 files changed, 9 insertions(+), 1 deletions(-)

src/translate_c.zig+1-1
...@@ -2388,7 +2388,7 @@ fn transCCast(...@@ -2388,7 +2388,7 @@ fn transCCast(
2388 }2388 }
2389 if (!cIsFloating(src_type) and cIsFloating(dst_type)) {2389 if (!cIsFloating(src_type) and cIsFloating(dst_type)) {
2390 var rhs = expr;2390 var rhs = expr;
2391 if (qualTypeIsBoolean(src_type)) rhs = try Tag.int_from_bool.create(c.arena, expr);2391 if (qualTypeIsBoolean(src_type) or isBoolRes(rhs)) rhs = try Tag.int_from_bool.create(c.arena, expr);
2392 // @as(dest_type, @floatFromInt(val))2392 // @as(dest_type, @floatFromInt(val))
2393 return Tag.as.create(c.arena, .{2393 return Tag.as.create(c.arena, .{
2394 .lhs = dst_node,2394 .lhs = dst_node,
test/cases/run_translated_c/float_from_bool_expr_cast.c created+8
...@@ -0,0 +1,8 @@
1int main() {
2 float f = (float)(10.0f > 1.0f);
3 return 0;
4}
5
6// run-translated-c
7// c_frontend=clang
8//