From 9897bfb8a9c4ee0df5c5a57a115ea6acdb961303 Mon Sep 17 00:00:00 2001 From: Vadzim Dambrouski Date: Mon, 19 Dec 2016 05:11:01 +0300 Subject: [PATCH] Fix memset arguments for MSP430 target. On MSP430 second argument to memset has i16 type instead of i32. --- src/mem.rs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/mem.rs b/src/mem.rs index 31d6712..a7d267c 100644 --- a/src/mem.rs +++ b/src/mem.rs @@ -1,3 +1,10 @@ +#[allow(warnings)] +#[cfg(target_pointer_width = "16")] +type c_int = i16; +#[allow(warnings)] +#[cfg(not(target_pointer_width = "16"))] +type c_int = i32; + #[no_mangle] pub unsafe extern "C" fn memcpy(dest: *mut u8, src: *const u8, @@ -35,7 +42,7 @@ pub unsafe extern "C" fn memmove(dest: *mut u8, } #[no_mangle] -pub unsafe extern "C" fn memset(s: *mut u8, c: i32, n: usize) -> *mut u8 { +pub unsafe extern "C" fn memset(s: *mut u8, c: c_int, n: usize) -> *mut u8 { let mut i = 0; while i < n { *s.offset(i as isize) = c as u8;