aboutsummaryrefslogtreecommitdiff
path: root/std/math/ceil.zig
diff options
context:
space:
mode:
authorAndrew Kelley <superjoe30@gmail.com>2017-08-19 01:32:15 -0400
committerAndrew Kelley <superjoe30@gmail.com>2017-08-19 01:43:43 -0400
commit987768778a67538299f84a6ab7ff0ca65f69d2ac (patch)
tree2e7551d76bf9a3e6d242a961eacf7c81aab6025f /std/math/ceil.zig
parent558ece8f6f1889bc4773432c16cdf96a54ec1431 (diff)
downloadzig-987768778a67538299f84a6ab7ff0ca65f69d2ac.tar.gz
zig-987768778a67538299f84a6ab7ff0ca65f69d2ac.zip
bit shifting safety
* add u3, u4, u5, u6, u7 and i3, i4, i5, i6, i7 * shift operations shift amount parameter type is integer with log2 bit width of other param - This enforces not violating undefined behavior on shift amount >= bit width with the type system * clean up math.log, math.ln, math.log2, math.log10 closes #403
Diffstat (limited to 'std/math/ceil.zig')
-rw-r--r--std/math/ceil.zig5
1 files changed, 2 insertions, 3 deletions
diff --git a/std/math/ceil.zig b/std/math/ceil.zig
index 933182e771..d88031243b 100644
--- a/std/math/ceil.zig
+++ b/std/math/ceil.zig
@@ -32,9 +32,8 @@ fn ceil32(x: f32) -> f32 {
if (e >= 23) {
return x;
- }
- else if (e >= 0) {
- m = 0x007FFFFF >> u32(e);
+ } else if (e >= 0) {
+ m = u32(0x007FFFFF) >> u5(e);
if (u & m == 0) {
return x;
}