diff options
| author | David Senoner <seda18@rolmail.net> | 2025-08-26 14:16:55 +0200 |
|---|---|---|
| committer | Alex Rønne Petersen <alex@alexrp.com> | 2025-08-27 03:58:32 +0200 |
| commit | 9399fcddce0bcd8e987b053f3946aa1b0ff2ef0a (patch) | |
| tree | d72180f3ea1097a78cb52fc6567a1d7762efee41 /lib/c | |
| parent | aae5560712fb67cea2b1405c4e2b03e9be236678 (diff) | |
| download | zig-9399fcddce0bcd8e987b053f3946aa1b0ff2ef0a.tar.gz zig-9399fcddce0bcd8e987b053f3946aa1b0ff2ef0a.zip | |
libc: use zig isnan and derivates for mingw
Diffstat (limited to 'lib/c')
| -rw-r--r-- | lib/c/math.zig | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/lib/c/math.zig b/lib/c/math.zig new file mode 100644 index 0000000000..161e400e6d --- /dev/null +++ b/lib/c/math.zig @@ -0,0 +1,26 @@ +const std = @import("std"); +const common = @import("common.zig"); +const builtin = @import("builtin"); + +comptime { + if (builtin.target.isMinGW()) { + @export(&isnan, .{ .name = "isnan", .linkage = common.linkage, .visibility = common.visibility }); + @export(&isnan, .{ .name = "__isnan", .linkage = common.linkage, .visibility = common.visibility }); + @export(&isnanf, .{ .name = "isnanf", .linkage = common.linkage, .visibility = common.visibility }); + @export(&isnanf, .{ .name = "__isnanf", .linkage = common.linkage, .visibility = common.visibility }); + @export(&isnanl, .{ .name = "isnanl", .linkage = common.linkage, .visibility = common.visibility }); + @export(&isnanl, .{ .name = "__isnanl", .linkage = common.linkage, .visibility = common.visibility }); + } +} + +fn isnan(x: f64) callconv(.c) c_int { + return if (std.math.isNan(x)) 1 else 0; +} + +fn isnanf(x: f32) callconv(.c) c_int { + return if (std.math.isNan(x)) 1 else 0; +} + +fn isnanl(x: c_longdouble) callconv(.c) c_int { + return if (std.math.isNan(x)) 1 else 0; +} |
