diff options
| author | bors <bors@rust-lang.org> | 2024-11-19 13:24:09 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2024-11-19 13:24:09 +0000 |
| commit | 89b688552994bd8404b8fdab2cf96f00632af0ff (patch) | |
| tree | e66f3e72be73c84a7655663acdd1ba4a4d9a4a13 /compiler/rustc_const_eval/src/const_eval | |
| parent | 7d40450b2df92bdc9dec414b30cf5f7a5979a92e (diff) | |
| parent | c6974344a5707c054ed808ea9c724dd93ec3c680 (diff) | |
| download | rust-89b688552994bd8404b8fdab2cf96f00632af0ff.tar.gz rust-89b688552994bd8404b8fdab2cf96f00632af0ff.zip | |
Auto merge of #133164 - RalfJung:promoted-oom, r=jieyouxu
interpret: do not ICE when a promoted fails with OOM Fixes https://github.com/rust-lang/rust/issues/130687 try-job: aarch64-apple try-job: dist-x86_64-linux
Diffstat (limited to 'compiler/rustc_const_eval/src/const_eval')
| -rw-r--r-- | compiler/rustc_const_eval/src/const_eval/error.rs | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/compiler/rustc_const_eval/src/const_eval/error.rs b/compiler/rustc_const_eval/src/const_eval/error.rs index 6686413bf02..1271d9d2d0d 100644 --- a/compiler/rustc_const_eval/src/const_eval/error.rs +++ b/compiler/rustc_const_eval/src/const_eval/error.rs @@ -152,13 +152,20 @@ where let span = span.substitute_dummy(our_span); let err = mk(span, frames); let mut err = tcx.dcx().create_err(err); + let can_be_spurious = matches!(error, InterpErrorKind::ResourceExhaustion(_)); let msg = error.diagnostic_message(); error.add_args(&mut err); // Use *our* span to label the interp error err.span_label(our_span, msg); - ErrorHandled::Reported(err.emit().into(), span) + let g = err.emit(); + let reported = if can_be_spurious { + ReportedErrorInfo::spurious(g) + } else { + ReportedErrorInfo::from(g) + }; + ErrorHandled::Reported(reported, span) } } } |
