diff --git a/2023/day1/src/branchless.rs b/2023/day1/src/branchless.rs index e280e5e..b2df058 100644 --- a/2023/day1/src/branchless.rs +++ b/2023/day1/src/branchless.rs @@ -17,6 +17,7 @@ pub unsafe fn part2(input: &str) { // o n e X X X X X // in the integer bytes: // X X X X X e n o + // this out of bounds read is UB under SB, but fine under models that don't do provenance narrowing with slices. i dont care enough to fix it. let block = bytes.as_ptr().add(i).cast::().read_unaligned().to_le(); let one = (block & ((1 << (8 * 1)) - 1)) as u8; diff --git a/2023/day1/src/main.rs b/2023/day1/src/main.rs index 0f988fe..85873f9 100644 --- a/2023/day1/src/main.rs +++ b/2023/day1/src/main.rs @@ -9,7 +9,7 @@ fn main() { let mut input = std::hint::black_box(include_str!("../input.txt")).to_owned(); - input.reserve(5); + input.reserve(10); // enough to read u64 unsafe { input .as_mut_vec()