@@ -759,7 +759,7 @@ fn cstruct_to_rs(ctx: &mut GenCtx, name: String, ci: CompInfo) -> Vec<P<ast::Ite
759759                    ast:: Public , 
760760                ) , 
761761                id :  ast:: DUMMY_NODE_ID , 
762-                 ty :  quote_ty ! ( & ctx. ext_cx,  PhantomData <$inner_type>) , 
762+                 ty :  quote_ty ! ( & ctx. ext_cx,  :: std :: marker :: PhantomData <$inner_type>) , 
763763                attrs :  vec ! ( ) , 
764764            } ) ) ; 
765765        } 
@@ -1246,17 +1246,25 @@ fn gen_bitfield_method(ctx: &mut GenCtx, bindgen_name: &String,
12461246} 
12471247
12481248fn  gen_fullbitfield_method ( ctx :  & mut  GenCtx ,  bindgen_name :  & String , 
1249-                            field_type :  & Type ,  bitfields :  & Vec < ( String ,  u32 ) > )  -> ast:: ImplItem  { 
1249+                            field_type :  & Type ,  bitfields :  & [ ( String ,  u32 ) ] )  -> ast:: ImplItem  { 
12501250    let  field_type = cty_to_rs ( ctx,  field_type,  false ) ; 
12511251    let  mut  args = vec ! ( ) ; 
1252+     let  mut  unnamed:  usize  = 0 ; 
12521253    for  & ( ref  name,  width)  in  bitfields. iter ( )  { 
1254+         let  ident = if  name. is_empty ( )  { 
1255+             unnamed += 1 ; 
1256+             let  dummy = format ! ( "unnamed_bitfield{}" ,  unnamed) ; 
1257+             ctx. ext_cx . ident_of ( & dummy) 
1258+         }  else  { 
1259+             ctx. ext_cx . ident_of ( name) 
1260+         } ; 
12531261        args. push ( ast:: Arg  { 
12541262            ty :  P ( type_for_bitfield_width ( ctx,  width) ) , 
12551263            pat :  P ( ast:: Pat  { 
12561264                id :  ast:: DUMMY_NODE_ID , 
12571265                node :  ast:: PatIdent ( 
12581266                    ast:: BindingMode :: ByValue ( ast:: MutImmutable ) , 
1259-                     respan ( ctx. span ,  ctx . ext_cx . ident_of ( name ) ) , 
1267+                     respan ( ctx. span ,  ident ) , 
12601268                    None 
12611269                ) , 
12621270                span :  ctx. span 
@@ -1275,8 +1283,15 @@ fn gen_fullbitfield_method(ctx: &mut GenCtx, bindgen_name: &String,
12751283
12761284    let  mut  offset = 0 ; 
12771285    let  mut  exprs = quote_expr ! ( & ctx. ext_cx,  0 ) ; 
1286+     let  mut  unnamed:  usize  = 0 ; 
12781287    for  & ( ref  name,  width)  in  bitfields. iter ( )  { 
1279-         let  name_ident = ctx. ext_cx . ident_of ( & name) ; 
1288+         let  name_ident = if  name. is_empty ( )  { 
1289+             unnamed += 1 ; 
1290+             let  dummy = format ! ( "unnamed_bitfield{}" ,  unnamed) ; 
1291+             ctx. ext_cx . ident_of ( & dummy) 
1292+         }  else  { 
1293+             ctx. ext_cx . ident_of ( name) 
1294+         } ; 
12801295        exprs = quote_expr ! ( & ctx. ext_cx, 
12811296            $exprs | ( ( $name_ident as  $field_type)  << $offset) 
12821297        ) ; 
0 commit comments