let rec typ state values loc = function
      | TVoid _ | TInt _ | TFloat _ | TPtr _ | TArray _ | TFun _
      | TEnum _ | TBuiltin_va_list _ ->
          state
      | TNamed(info, _)  ->
          typ state values loc info.ttype
      | TComp(info, _, _) as ty ->
          List.fold_left (field values ty loc) state info.cfields

    and field values ty loc state f =
      (* TODO : à revoir *)
      let s = L.type_attributes2state S.variable f.ftype in
      Location_Bits.fold_bases
        (fun b state ->
           let loc = loc_of_typoffset b ty (Field(f, NoOffset)) in
           let state =  change_loc_status values state loc s in
           typ state values loc f.ftype)
        loc.loc
        state