Commit 2a733051bb

LemonBoy <thatlemon@gmail.com>
2021-10-24 19:17:55
libc: Export truncl
With the usual caveat of it being wrong for targets where c_longdouble is not f128.
1 parent 811766e
Changed files (2)
lib
std
lib/std/math/trunc.zig
@@ -21,6 +21,10 @@ pub fn trunc(x: anytype) @TypeOf(x) {
         f32 => trunc32(x),
         f64 => trunc64(x),
         f128 => trunc128(x),
+
+        // TODO this is not correct for some targets
+        c_longdouble => @floatCast(c_longdouble, trunc128(x)),
+
         else => @compileError("trunc not implemented for " ++ @typeName(T)),
     };
 }
lib/std/special/c_stage1.zig
@@ -763,6 +763,13 @@ export fn truncf(a: f32) f32 {
     return math.trunc(a);
 }
 
+export fn truncl(a: c_longdouble) c_longdouble {
+    if (!long_double_is_f128) {
+        @panic("TODO implement this");
+    }
+    return math.trunc(a);
+}
+
 export fn round(a: f64) f64 {
     return math.round(a);
 }