codegen: assume constants cannot fail to evaluate

also don't submit code to LLVM when the session has errors
This commit is contained in:
Ralf Jung 2021-01-24 12:12:08 +01:00
parent 4d0dd02ee0
commit 944237f6cd
4 changed files with 21 additions and 21 deletions

View file

@ -511,6 +511,10 @@ impl<'mir, 'tcx: 'mir, M: Machine<'mir, 'tcx>> InterpCx<'mir, 'tcx, M> {
Constant(ref constant) => {
let val =
self.subst_from_current_frame_and_normalize_erasing_regions(constant.literal);
// This can still fail:
// * During ConstProp, with `TooGeneric` or since the `requried_consts` were not all
// checked yet.
// * During CTFE, since promoteds in `const`/`static` initializer bodies can fail.
self.const_to_op(val, layout)?
}
};