diff --git a/src/stage1/codegen.cpp b/src/stage1/codegen.cpp index c575aff53d..9d46a660bc 100644 --- a/src/stage1/codegen.cpp +++ b/src/stage1/codegen.cpp @@ -9586,10 +9586,13 @@ static void define_builtin_types(CodeGen *g) { switch (g->zig_target->arch) { case ZigLLVM_x86: case ZigLLVM_x86_64: - if (g->zig_target->abi != ZigLLVM_MSVC) + if (g->zig_target->abi != ZigLLVM_MSVC) { add_fp_entry(g, "c_longdouble", 80, LLVMX86FP80Type(), &g->builtin_types.entry_c_longdouble); - else + g->builtin_types.entry_c_longdouble->abi_size = g->builtin_types.entry_f80->abi_size; + g->builtin_types.entry_c_longdouble->abi_align = g->builtin_types.entry_f80->abi_align; + } else { add_fp_entry(g, "c_longdouble", 64, LLVMDoubleType(), &g->builtin_types.entry_c_longdouble); + } break; case ZigLLVM_arm: case ZigLLVM_armeb: diff --git a/test/behavior/math.zig b/test/behavior/math.zig index 85cf7f5643..0479015eee 100644 --- a/test/behavior/math.zig +++ b/test/behavior/math.zig @@ -1416,12 +1416,6 @@ test "fabs" { if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO - if (builtin.zig_backend == .stage1 and builtin.os.tag == .windows and - builtin.cpu.arch == .i386) - { - return error.SkipZigTest; - } - inline for ([_]type{ f16, f32, f64, f80, f128, c_longdouble }) |T| { // normals try expect(@fabs(@as(T, 1.0)) == 1.0);