Skip to content

Commit bbb7428

Browse files
committed
fix: unaligned reference warnings
Try re-generate code using c2rust 0.16, but still have these warnings. Reference issues: c2rust: `https://github.com/immunant/c2rust/issues/301` rust-lang: `https://github.com/rust-lang/rust/issues/82523`
1 parent 6c88968 commit bbb7428

File tree

1 file changed

+10
-10
lines changed

1 file changed

+10
-10
lines changed

src/blake2b_ref.rs

+10-10
Original file line numberDiff line numberDiff line change
@@ -61,10 +61,10 @@ unsafe fn load64(mut src: *const libc::c_void) -> uint64_t {
6161
#[inline]
6262
unsafe fn store32(mut dst: *mut libc::c_void, mut w: uint32_t) {
6363
let mut p: *mut uint8_t = dst as *mut uint8_t;
64-
*p.offset(0 as libc::c_int as isize) = (w >> 0 as libc::c_int) as uint8_t;
65-
*p.offset(1 as libc::c_int as isize) = (w >> 8 as libc::c_int) as uint8_t;
66-
*p.offset(2 as libc::c_int as isize) = (w >> 16 as libc::c_int) as uint8_t;
67-
*p.offset(3 as libc::c_int as isize) = (w >> 24 as libc::c_int) as uint8_t;
64+
p.offset(0 as libc::c_int as isize).write_unaligned((w >> 0 as libc::c_int) as uint8_t);
65+
p.offset(1 as libc::c_int as isize).write_unaligned((w >> 8 as libc::c_int) as uint8_t);
66+
p.offset(2 as libc::c_int as isize).write_unaligned((w >> 16 as libc::c_int) as uint8_t);
67+
p.offset(3 as libc::c_int as isize).write_unaligned((w >> 24 as libc::c_int) as uint8_t);
6868
}
6969
#[inline]
7070
unsafe fn store64(mut dst: *mut libc::c_void, mut w: uint64_t) {
@@ -402,15 +402,15 @@ pub unsafe fn blake2b_init(mut S: *mut blake2b_state, mut outlen: size_t) -> lib
402402
(*P.as_mut_ptr()).fanout = 1 as libc::c_int as uint8_t;
403403
(*P.as_mut_ptr()).depth = 1 as libc::c_int as uint8_t;
404404
store32(
405-
&mut (*P.as_mut_ptr()).leaf_length as *mut uint32_t as *mut libc::c_void,
405+
core::ptr::addr_of_mut!((*P.as_mut_ptr()).leaf_length) as *mut uint32_t as *mut libc::c_void,
406406
0 as libc::c_int as uint32_t,
407407
);
408408
store32(
409-
&mut (*P.as_mut_ptr()).node_offset as *mut uint32_t as *mut libc::c_void,
409+
core::ptr::addr_of_mut!((*P.as_mut_ptr()).node_offset) as *mut uint32_t as *mut libc::c_void,
410410
0 as libc::c_int as uint32_t,
411411
);
412412
store32(
413-
&mut (*P.as_mut_ptr()).xof_length as *mut uint32_t as *mut libc::c_void,
413+
core::ptr::addr_of_mut!((*P.as_mut_ptr()).xof_length) as *mut uint32_t as *mut libc::c_void,
414414
0 as libc::c_int as uint32_t,
415415
);
416416
(*P.as_mut_ptr()).node_depth = 0 as libc::c_int as uint8_t;
@@ -458,15 +458,15 @@ pub unsafe fn blake2b_init_key(
458458
(*P.as_mut_ptr()).fanout = 1 as libc::c_int as uint8_t;
459459
(*P.as_mut_ptr()).depth = 1 as libc::c_int as uint8_t;
460460
store32(
461-
&mut (*P.as_mut_ptr()).leaf_length as *mut uint32_t as *mut libc::c_void,
461+
core::ptr::addr_of_mut!((*P.as_mut_ptr()).leaf_length) as *mut uint32_t as *mut libc::c_void,
462462
0 as libc::c_int as uint32_t,
463463
);
464464
store32(
465-
&mut (*P.as_mut_ptr()).node_offset as *mut uint32_t as *mut libc::c_void,
465+
core::ptr::addr_of_mut!((*P.as_mut_ptr()).node_offset) as *mut uint32_t as *mut libc::c_void,
466466
0 as libc::c_int as uint32_t,
467467
);
468468
store32(
469-
&mut (*P.as_mut_ptr()).xof_length as *mut uint32_t as *mut libc::c_void,
469+
core::ptr::addr_of_mut!((*P.as_mut_ptr()).xof_length) as *mut uint32_t as *mut libc::c_void,
470470
0 as libc::c_int as uint32_t,
471471
);
472472
(*P.as_mut_ptr()).node_depth = 0 as libc::c_int as uint8_t;

0 commit comments

Comments
 (0)