]> git.lizzy.rs Git - rust.git/commitdiff
simplify alignment_check_failed a bit
authorRalf Jung <post@ralfj.de>
Tue, 22 Nov 2022 21:04:08 +0000 (22:04 +0100)
committerOli Scherer <git-spam-no-reply9815368754983@oli-obk.de>
Thu, 15 Dec 2022 16:48:30 +0000 (16:48 +0000)
compiler/rustc_const_eval/src/const_eval/machine.rs

index abe06737def0ba50507868b8af93a9112d00d173..e006a62feeabd12bc568da7c5c42e76bdde1cc2f 100644 (file)
@@ -1,7 +1,7 @@
 use rustc_hir::def::DefKind;
 use rustc_hir::{LangItem, CRATE_HIR_ID};
 use rustc_middle::mir;
-use rustc_middle::mir::interpret::{InterpError, PointerArithmetic, UndefinedBehaviorInfo};
+use rustc_middle::mir::interpret::PointerArithmetic;
 use rustc_middle::ty::layout::FnAbiOf;
 use rustc_middle::ty::{self, Ty, TyCtxt};
 use rustc_session::lint::builtin::INVALID_ALIGNMENT;
@@ -345,24 +345,15 @@ fn alignment_check_failed(
         required: Align,
         check: CheckAlignment,
     ) -> InterpResult<'tcx, ()> {
+        let err = err_ub!(AlignmentCheckFailed { has, required }).into();
         match check {
-            CheckAlignment::Error => {
-                throw_ub!(AlignmentCheckFailed { has, required })
-            }
+            CheckAlignment::Error => Err(err),
             CheckAlignment::No => span_bug!(
                 ecx.cur_span(),
                 "`alignment_check_failed` called when no alignment check requested"
             ),
             CheckAlignment::FutureIncompat => {
-                let err = ConstEvalErr::new(
-                    ecx,
-                    InterpError::UndefinedBehavior(UndefinedBehaviorInfo::AlignmentCheckFailed {
-                        has,
-                        required,
-                    })
-                    .into(),
-                    None,
-                );
+                let err = ConstEvalErr::new(ecx, err, None);
                 ecx.tcx.struct_span_lint_hir(
                     INVALID_ALIGNMENT,
                     ecx.stack().iter().find_map(|frame| frame.lint_root()).unwrap_or(CRATE_HIR_ID),
@@ -373,9 +364,9 @@ fn alignment_check_failed(
                         db
                     },
                 );
+                Ok(())
             }
         }
-        Ok(())
     }
 
     fn load_mir(