mirror of
https://github.com/rust-lang/rust.git
synced 2025-02-08 04:56:58 +00:00
Workaround issue #152 in _uint.next_power_of_two
This commit is contained in:
parent
de5c6f111c
commit
c3c5e6c773
@ -491,6 +491,7 @@ TEST_XFAILS_LLVM := $(TASK_XFAILS) \
|
||||
lib-rand.rs \
|
||||
lib-str.rs \
|
||||
lib-task.rs \
|
||||
lib-uint.rs \
|
||||
lib-vec.rs \
|
||||
lib-vec-str-conversions.rs \
|
||||
linear-for-loop.rs \
|
||||
|
@ -28,7 +28,9 @@ fn next_power_of_two(uint n) -> uint {
|
||||
let uint shift = 1u;
|
||||
while (shift <= halfbits) {
|
||||
tmp |= tmp >> shift;
|
||||
shift <<= 1u;
|
||||
// FIXME (issue #152): This would be just a tad cuter if it were
|
||||
// shift <<= 1u
|
||||
shift = shift << 1u;
|
||||
}
|
||||
ret tmp + 1u;
|
||||
}
|
||||
|
47
src/test/run-pass/lib-uint.rs
Normal file
47
src/test/run-pass/lib-uint.rs
Normal file
@ -0,0 +1,47 @@
|
||||
// -*- rust -*-
|
||||
|
||||
use std;
|
||||
import std._uint;
|
||||
|
||||
fn main() {
|
||||
check (_uint.next_power_of_two(0u) == 0u);
|
||||
check (_uint.next_power_of_two(1u) == 1u);
|
||||
check (_uint.next_power_of_two(2u) == 2u);
|
||||
check (_uint.next_power_of_two(3u) == 4u);
|
||||
check (_uint.next_power_of_two(4u) == 4u);
|
||||
check (_uint.next_power_of_two(5u) == 8u);
|
||||
check (_uint.next_power_of_two(6u) == 8u);
|
||||
check (_uint.next_power_of_two(7u) == 8u);
|
||||
check (_uint.next_power_of_two(8u) == 8u);
|
||||
check (_uint.next_power_of_two(9u) == 16u);
|
||||
check (_uint.next_power_of_two(10u) == 16u);
|
||||
check (_uint.next_power_of_two(11u) == 16u);
|
||||
check (_uint.next_power_of_two(12u) == 16u);
|
||||
check (_uint.next_power_of_two(13u) == 16u);
|
||||
check (_uint.next_power_of_two(14u) == 16u);
|
||||
check (_uint.next_power_of_two(15u) == 16u);
|
||||
check (_uint.next_power_of_two(16u) == 16u);
|
||||
check (_uint.next_power_of_two(17u) == 32u);
|
||||
check (_uint.next_power_of_two(18u) == 32u);
|
||||
check (_uint.next_power_of_two(19u) == 32u);
|
||||
check (_uint.next_power_of_two(20u) == 32u);
|
||||
check (_uint.next_power_of_two(21u) == 32u);
|
||||
check (_uint.next_power_of_two(22u) == 32u);
|
||||
check (_uint.next_power_of_two(23u) == 32u);
|
||||
check (_uint.next_power_of_two(24u) == 32u);
|
||||
check (_uint.next_power_of_two(25u) == 32u);
|
||||
check (_uint.next_power_of_two(26u) == 32u);
|
||||
check (_uint.next_power_of_two(27u) == 32u);
|
||||
check (_uint.next_power_of_two(28u) == 32u);
|
||||
check (_uint.next_power_of_two(29u) == 32u);
|
||||
check (_uint.next_power_of_two(30u) == 32u);
|
||||
check (_uint.next_power_of_two(31u) == 32u);
|
||||
check (_uint.next_power_of_two(32u) == 32u);
|
||||
check (_uint.next_power_of_two(33u) == 64u);
|
||||
check (_uint.next_power_of_two(34u) == 64u);
|
||||
check (_uint.next_power_of_two(35u) == 64u);
|
||||
check (_uint.next_power_of_two(36u) == 64u);
|
||||
check (_uint.next_power_of_two(37u) == 64u);
|
||||
check (_uint.next_power_of_two(38u) == 64u);
|
||||
check (_uint.next_power_of_two(39u) == 64u);
|
||||
}
|
Loading…
Reference in New Issue
Block a user