aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/translate_c.zig8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/translate_c.zig b/src/translate_c.zig
index 5683855d23..6a76246890 100644
--- a/src/translate_c.zig
+++ b/src/translate_c.zig
@@ -2380,6 +2380,14 @@ fn transCCast(
});
}
if (cIsFloating(src_type) and !cIsFloating(dst_type)) {
+ // bool expression: floating val != 0
+ if (qualTypeIsBoolean(dst_type)) {
+ return Tag.not_equal.create(c.arena, .{
+ .lhs = expr,
+ .rhs = Tag.zero_literal.init(),
+ });
+ }
+
// @as(dest_type, @intFromFloat(val))
return Tag.as.create(c.arena, .{
.lhs = dst_node,