@@ -98,7 +98,7 @@ fn op_to_const<'tcx>(
9898 Ok ( mplace) => {
9999 let ptr = mplace. ptr . to_ptr ( ) . unwrap ( ) ;
100100 let alloc = ecx. tcx . alloc_map . lock ( ) . unwrap_memory ( ptr. alloc_id ) ;
101- ConstValue :: ByRef { offset : ptr. offset , align : mplace . align , alloc }
101+ ConstValue :: ByRef { alloc , offset : ptr. offset }
102102 } ,
103103 // see comment on `let try_as_immediate` above
104104 Err ( ImmTy { imm : Immediate :: Scalar ( x) , .. } ) => match x {
@@ -112,7 +112,7 @@ fn op_to_const<'tcx>(
112112 let mplace = op. assert_mem_place ( ) ;
113113 let ptr = mplace. ptr . to_ptr ( ) . unwrap ( ) ;
114114 let alloc = ecx. tcx . alloc_map . lock ( ) . unwrap_memory ( ptr. alloc_id ) ;
115- ConstValue :: ByRef { offset : ptr. offset , align : mplace . align , alloc }
115+ ConstValue :: ByRef { alloc , offset : ptr. offset }
116116 } ,
117117 } ,
118118 Err ( ImmTy { imm : Immediate :: ScalarPair ( a, b) , .. } ) => {
@@ -326,6 +326,10 @@ impl<'mir, 'tcx> interpret::Machine<'mir, 'tcx> for CompileTimeInterpreter<'mir,
326326
327327 const STATIC_KIND : Option < !> = None ; // no copying of statics allowed
328328
329+ // We do not check for alignment to avoid having to carry an `Align`
330+ // in `ConstValue::ByRef`.
331+ const CHECK_ALIGN : bool = false ;
332+
329333 #[ inline( always) ]
330334 fn enforce_validity ( _ecx : & InterpCx < ' mir , ' tcx , Self > ) -> bool {
331335 false // for now, we don't enforce validity
@@ -561,9 +565,8 @@ fn validate_and_turn_into_const<'tcx>(
561565 let ptr = mplace. ptr . to_ptr ( ) ?;
562566 Ok ( tcx. mk_const ( ty:: Const {
563567 val : ConstValue :: ByRef {
564- offset : ptr. offset ,
565- align : mplace. align ,
566568 alloc : ecx. tcx . alloc_map . lock ( ) . unwrap_memory ( ptr. alloc_id ) ,
569+ offset : ptr. offset ,
567570 } ,
568571 ty : mplace. layout . ty ,
569572 } ) )
0 commit comments