@@ -416,8 +416,24 @@ fn ctypedef_to_rs(
416416 ty : & Type )
417417 -> Vec < P < ast:: Item > > {
418418 fn mk_item ( ctx : & mut GenCtx , name : & str , ty : & Type ) -> P < ast:: Item > {
419+ let rust_ty = match & name[ ..] {
420+ // Alias these types to `usize`, e.g. `type size_t = usize`, instead of aliasing them to
421+ // an arch-dependent type, i.e. `type size_t = u64` on 64-bit archs and
422+ // `type size_t = u32` on 32-bit archs
423+ "size_t" | "uintptr_t" => mk_ty ( ctx, false , vec ! [ "usize" . to_string( ) ] ) ,
424+ // Same as above
425+ "ptrdiff_t" | "intptr_t" | "ssize_t" => mk_ty ( ctx, false , vec ! [ "isize" . to_string( ) ] ) ,
426+ "uint8_t" => mk_ty ( ctx, false , vec ! [ "u8" . to_string( ) ] ) ,
427+ "int8_t" => mk_ty ( ctx, false , vec ! [ "i8" . to_string( ) ] ) ,
428+ "uint16_t" => mk_ty ( ctx, false , vec ! [ "u16" . to_string( ) ] ) ,
429+ "int16_t" => mk_ty ( ctx, false , vec ! [ "i16" . to_string( ) ] ) ,
430+ "uint32_t" => mk_ty ( ctx, false , vec ! [ "u32" . to_string( ) ] ) ,
431+ "int32_t" => mk_ty ( ctx, false , vec ! [ "i32" . to_string( ) ] ) ,
432+ "uint64_t" => mk_ty ( ctx, false , vec ! [ "u64" . to_string( ) ] ) ,
433+ "int64_t" => mk_ty ( ctx, false , vec ! [ "i64" . to_string( ) ] ) ,
434+ _ => cty_to_rs ( ctx, ty) ,
435+ } ;
419436 let rust_name = rust_type_id ( ctx, name) ;
420- let rust_ty = cty_to_rs ( ctx, ty) ;
421437 let base = ast:: ItemKind :: Ty (
422438 P ( ast:: Ty {
423439 id : ast:: DUMMY_NODE_ID ,
0 commit comments