Commit 2d00f17d15

LemonBoy <thatlemon@gmail.com>
2021-04-15 18:15:44
test: Add test to ensure signed zeros are properly computed
Ensure everything's ok at comptime and runtime.
1 parent 8e0b2f0
Changed files (1)
test
stage1
behavior
test/stage1/behavior/math.zig
@@ -843,3 +843,20 @@ test "compare undefined literal with comptime_int" {
     x = true;
     expect(x);
 }
+
+test "signed zeros are represented properly" {
+    const S = struct {
+        fn doTheTest() void {
+            inline for ([_]type{ f16, f32, f64, f128 }) |T| {
+                const ST = std.meta.Int(.unsigned, @typeInfo(T).Float.bits);
+                var as_fp_val = -@as(T, 0.0);
+                var as_uint_val = @bitCast(ST, as_fp_val);
+                // Ensure the sign bit is set.
+                expect(as_uint_val >> (@typeInfo(T).Float.bits - 1) == 1);
+            }
+        }
+    };
+
+    S.doTheTest();
+    comptime S.doTheTest();
+}