Skip to content

Commit b99af95

Browse files
authored
Rollup merge of #115335 - reez12g:issue-114912, r=davidtwco
fix overflow in array length computation addressing #114912
2 parents 68c2f5b + 8bf075f commit b99af95

File tree

1 file changed

+4
-7
lines changed
  • compiler/rustc_hir_typeck/src/generator_interior

1 file changed

+4
-7
lines changed

compiler/rustc_hir_typeck/src/generator_interior/mod.rs

+4-7
Original file line numberDiff line numberDiff line change
@@ -643,17 +643,14 @@ fn check_must_not_suspend_ty<'tcx>(
643643
}
644644
ty::Array(ty, len) => {
645645
let descr_pre = &format!("{}array{} of ", data.descr_pre, plural_suffix);
646+
let target_usize =
647+
len.try_eval_target_usize(fcx.tcx, fcx.param_env).unwrap_or(0) as usize;
648+
let plural_len = target_usize.saturating_add(1);
646649
check_must_not_suspend_ty(
647650
fcx,
648651
ty,
649652
hir_id,
650-
SuspendCheckData {
651-
descr_pre,
652-
plural_len: len.try_eval_target_usize(fcx.tcx, fcx.param_env).unwrap_or(0)
653-
as usize
654-
+ 1,
655-
..data
656-
},
653+
SuspendCheckData { descr_pre, plural_len, ..data },
657654
)
658655
}
659656
// If drop tracking is enabled, we want to look through references, since the referent

0 commit comments

Comments
 (0)