let rec is_atomic = function
    | C_int _ | C_float _ | C_pointer _ -> true
    | C_array { arr_element=te ; arr_flat=Some _ } -> 
        is_atomic (Ctypes.object_of te)
    | C_array { arr_flat=None } | C_comp _ -> false