translate-c: float cast from boolean expr fix

This commit is contained in:
february cozzocrea 2024-01-10 11:13:11 -08:00 committed by GitHub
parent e025ad7b46
commit aafff25897
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 9 additions and 1 deletions

View File

@ -2388,7 +2388,7 @@ fn transCCast(
}
if (!cIsFloating(src_type) and cIsFloating(dst_type)) {
var rhs = expr;
if (qualTypeIsBoolean(src_type)) rhs = try Tag.int_from_bool.create(c.arena, expr);
if (qualTypeIsBoolean(src_type) or isBoolRes(rhs)) rhs = try Tag.int_from_bool.create(c.arena, expr);
// @as(dest_type, @floatFromInt(val))
return Tag.as.create(c.arena, .{
.lhs = dst_node,

View File

@ -0,0 +1,8 @@
int main() {
float f = (float)(10.0f > 1.0f);
return 0;
}
// run-translated-c
// c_frontend=clang
//