diff --git a/test/run_translated_c.zig b/test/run_translated_c.zig index 4345625dc1..1687e07f9c 100644 --- a/test/run_translated_c.zig +++ b/test/run_translated_c.zig @@ -1,4 +1,5 @@ const std = @import("std"); +const builtin = @import("builtin"); const tests = @import("tests.zig"); const nl = std.cstr.line_sep; @@ -1683,38 +1684,41 @@ pub fn addCases(cases: *tests.RunTranslatedCContext) void { // TODO: add isnan check for long double once bitfield support is added // (needed for x86_64-windows-gnu) // TODO: add isinf check for long double once std.math.isInf supports c_longdouble - cases.add("NAN and INFINITY", - \\#include - \\#include - \\#include - \\union uf { uint32_t u; float f; }; - \\#define CHECK_NAN(STR, VAL) { \ - \\ union uf unpack = {.f = __builtin_nanf(STR)}; \ - \\ if (!isnan(unpack.f)) abort(); \ - \\ if (unpack.u != VAL) abort(); \ - \\} - \\int main(void) { - \\ float f_nan = NAN; - \\ if (!isnan(f_nan)) abort(); - \\ double d_nan = NAN; - \\ if (!isnan(d_nan)) abort(); - \\ CHECK_NAN("0", 0x7FC00000); - \\ CHECK_NAN("", 0x7FC00000); - \\ CHECK_NAN("1", 0x7FC00001); - \\ CHECK_NAN("0x7FC00000", 0x7FC00000); - \\ CHECK_NAN("0x7FC0000F", 0x7FC0000F); - \\ CHECK_NAN("0x7FC000F0", 0x7FC000F0); - \\ CHECK_NAN("0x7FC00F00", 0x7FC00F00); - \\ CHECK_NAN("0x7FC0F000", 0x7FC0F000); - \\ CHECK_NAN("0x7FCF0000", 0x7FCF0000); - \\ CHECK_NAN("0xFFFFFFFF", 0x7FFFFFFF); - \\ float f_inf = INFINITY; - \\ if (!isinf(f_inf)) abort(); - \\ double d_inf = INFINITY; - \\ if (!isinf(d_inf)) abort(); - \\ return 0; - \\} - , ""); + // TODO https://github.com/ziglang/zig/issues/12630 + if (!(builtin.zig_backend == .stage2_llvm and builtin.target.os.tag == .windows)) { + cases.add("NAN and INFINITY", + \\#include + \\#include + \\#include + \\union uf { uint32_t u; float f; }; + \\#define CHECK_NAN(STR, VAL) { \ + \\ union uf unpack = {.f = __builtin_nanf(STR)}; \ + \\ if (!isnan(unpack.f)) abort(); \ + \\ if (unpack.u != VAL) abort(); \ + \\} + \\int main(void) { + \\ float f_nan = NAN; + \\ if (!isnan(f_nan)) abort(); + \\ double d_nan = NAN; + \\ if (!isnan(d_nan)) abort(); + \\ CHECK_NAN("0", 0x7FC00000); + \\ CHECK_NAN("", 0x7FC00000); + \\ CHECK_NAN("1", 0x7FC00001); + \\ CHECK_NAN("0x7FC00000", 0x7FC00000); + \\ CHECK_NAN("0x7FC0000F", 0x7FC0000F); + \\ CHECK_NAN("0x7FC000F0", 0x7FC000F0); + \\ CHECK_NAN("0x7FC00F00", 0x7FC00F00); + \\ CHECK_NAN("0x7FC0F000", 0x7FC0F000); + \\ CHECK_NAN("0x7FCF0000", 0x7FCF0000); + \\ CHECK_NAN("0xFFFFFFFF", 0x7FFFFFFF); + \\ float f_inf = INFINITY; + \\ if (!isinf(f_inf)) abort(); + \\ double d_inf = INFINITY; + \\ if (!isinf(d_inf)) abort(); + \\ return 0; + \\} + , ""); + } cases.add("signed array subscript. Issue #8556", \\#include