let do_promotion ~with_alarms ~src_typ ~dest_type v = match dest_type, src_typ with | TFloat _, TInt _ -> Cvalue_type.V.cast_int_to_float ~with_alarms v | TInt _, TFloat _ -> Cvalue_type.V.cast_float_to_int ~with_alarms v | _, _ -> v