let mk_global_c_enum_type_tagged name elements_l =
   let einfo = {
    ename=name;
    eitems=[];
    eattr=[];
    ereferenced=true
   }
   in
   let l = List.map
     (fun (e,i) ->
        { einame = e;
          eival = mk_int_const i;
          eiloc = Cilutil.locUnknown;
          eihost = einfo})
     elements_l
  in
   einfo.eitems <- l;
   set_usedinfo name einfo;
   globals_queue:=GEnumTag(einfo,Cilutil.locUnknown)::(!globals_queue);
   einfo