Skip to content

Commit 9e146a3

Browse files
committed
libc: use @abs for the absolute value calculation
1 parent 3468a95 commit 9e146a3

File tree

2 files changed

+24
-4
lines changed

2 files changed

+24
-4
lines changed

lib/c/inttypes.zig

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,10 @@ comptime {
1111
}
1212

1313
fn imaxabs(a: intmax_t) callconv(.c) intmax_t {
14-
return if (a > 0) a else -a;
14+
return @intCast(@abs(a));
15+
}
16+
17+
test imaxabs {
18+
const val: intmax_t = -10;
19+
try std.testing.expectEqual(10, imaxabs(val));
1520
}

lib/c/stdlib.zig

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,28 @@ comptime {
1212
}
1313

1414
fn abs(a: c_int) callconv(.c) c_int {
15-
return if (a > 0) a else -a;
15+
return @intCast(@abs(a));
1616
}
1717

1818
fn labs(a: c_long) callconv(.c) c_long {
19-
return if (a > 0) a else -a;
19+
return @intCast(@abs(a));
2020
}
2121

2222
fn llabs(a: c_longlong) callconv(.c) c_longlong {
23-
return if (a > 0) a else -a;
23+
return @intCast(@abs(a));
24+
}
25+
26+
test abs {
27+
const val: c_int = -10;
28+
try std.testing.expectEqual(10, abs(val));
29+
}
30+
31+
test labs {
32+
const val: c_long = -10;
33+
try std.testing.expectEqual(10, labs(val));
34+
}
35+
36+
test llabs {
37+
const val: c_longlong = -10;
38+
try std.testing.expectEqual(10, llabs(val));
2439
}

0 commit comments

Comments
 (0)