let need_cast t1 t2 =
match (unrollType t1, unrollType t2) with
| (TInt _| TEnum _| TPtr _),(TInt _| TEnum _| TPtr _)
| (TFloat _,TFloat _)
| (TComp _, TComp _) ->
(try bitsSizeOf t1 <> bitsSizeOf t2
with SizeOfError _ -> true)
| _ -> true