method new_wrapper_for_type ty =
let ty = typeRemoveAttributes ["const";"volatile"] (unrollType ty) in
try
TypeHashtbl.find type_wrappers ty
with Not_found ->
let wrapper_def,wrapper_type = new_wrapper_for_type_no_sharing ty in
TypeHashtbl.replace type_wrappers ty wrapper_type;
auto_type_wrappers := TypeSet.add wrapper_type !auto_type_wrappers;
let store_current_global = !currentGlobal in
ignore (visitFramacGlobal (self:>frama_c_visitor) wrapper_def);
currentGlobal := store_current_global;
wrapper_type