diff options
-rw-r--r-- | src/codegen/mod.rs | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/src/codegen/mod.rs b/src/codegen/mod.rs index 8151a676..c203795a 100644 --- a/src/codegen/mod.rs +++ b/src/codegen/mod.rs @@ -913,19 +913,20 @@ fn flush_bitfields<'a, I>(ctx: &BindgenContext, .pub_() .build_ty(field_ty.clone()); + let field_int_ty = match field_layout.size { + 8 => quote_ty!(ctx.ext_cx(), u64), + 4 => quote_ty!(ctx.ext_cx(), u32), + 2 => quote_ty!(ctx.ext_cx(), u16), + 1 => quote_ty!(ctx.ext_cx(), u8), + _ => return field + }; + for (name, offset, width, bitfield_ty, bitfield_layout) in bitfields { let prefix = ctx.trait_prefix(); let getter_name = bitfield_getter_name(ctx, parent, name); let setter_name = bitfield_setter_name(ctx, parent, name); let field_ident = ctx.ext_cx().ident_of(field_name); - let field_int_ty = match field_layout.size { - 8 => quote_ty!(ctx.ext_cx(), u64), - 4 => quote_ty!(ctx.ext_cx(), u32), - 2 => quote_ty!(ctx.ext_cx(), u16), - 1 => quote_ty!(ctx.ext_cx(), u8), - _ => return field - }; let bitfield_int_ty = BlobTyBuilder::new(bitfield_layout).build(); let mask: usize = ((1usize << width) - 1usize) << offset; |