diff options
| author | Ralf Jung <post@ralfj.de> | 2022-11-19 13:41:21 +0100 |
|---|---|---|
| committer | Ralf Jung <post@ralfj.de> | 2022-11-19 14:08:12 +0100 |
| commit | 3338244f698022611bbc77947f9eb8b5d24d56e5 (patch) | |
| tree | b33afe377d3dfdeb805e42b570f07bdfe214d831 /compiler/rustc_codegen_ssa/src | |
| parent | becc24a23aed2639db3b78acd93ec6d553898583 (diff) | |
| download | rust-3338244f698022611bbc77947f9eb8b5d24d56e5.tar.gz rust-3338244f698022611bbc77947f9eb8b5d24d56e5.zip | |
deduplicate constant evaluation in cranelift backend
also sync LLVM and cranelift structure a bit
Diffstat (limited to 'compiler/rustc_codegen_ssa/src')
| -rw-r--r-- | compiler/rustc_codegen_ssa/src/mir/constant.rs | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/compiler/rustc_codegen_ssa/src/mir/constant.rs b/compiler/rustc_codegen_ssa/src/mir/constant.rs index 4c6ab457c49..53ff3c24096 100644 --- a/compiler/rustc_codegen_ssa/src/mir/constant.rs +++ b/compiler/rustc_codegen_ssa/src/mir/constant.rs @@ -42,7 +42,14 @@ impl<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>> FunctionCx<'a, 'tcx, Bx> { }; self.cx.tcx().const_eval_resolve(ty::ParamEnv::reveal_all(), uv, None).map_err(|err| { - self.cx.tcx().sess.span_err(constant.span, "erroneous constant encountered"); + match err { + ErrorHandled::Reported(_) => { + self.cx.tcx().sess.span_err(constant.span, "erroneous constant encountered"); + } + ErrorHandled::TooGeneric => { + span_bug!(constant.span, "codegen encountered polymorphic constant: {:?}", err); + } + } err }) } |
