From 8de85808eccd62b505115c28483c441716b8057b Mon Sep 17 00:00:00 2001 From: Oliver Schneider Date: Mon, 31 Jul 2017 15:56:50 +0200 Subject: [PATCH] Properly process ptr_op for const eval --- src/librustc_mir/interpret/const_eval.rs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/librustc_mir/interpret/const_eval.rs b/src/librustc_mir/interpret/const_eval.rs index 8a0b6d5b692..193e0f7d01a 100644 --- a/src/librustc_mir/interpret/const_eval.rs +++ b/src/librustc_mir/interpret/const_eval.rs @@ -179,12 +179,16 @@ fn call_intrinsic<'a>( fn ptr_op<'a>( _ecx: &EvalContext<'a, 'tcx, Self>, _bin_op: mir::BinOp, - _left: PrimVal, + left: PrimVal, _left_ty: Ty<'tcx>, - _right: PrimVal, + right: PrimVal, _right_ty: Ty<'tcx>, ) -> EvalResult<'tcx, Option<(PrimVal, bool)>> { - Err(ConstEvalError::NeedsRfc("Pointer arithmetic or comparison".to_string()).into()) + if left.is_bytes() && right.is_bytes() { + Ok(None) + } else { + Err(ConstEvalError::NeedsRfc("Pointer arithmetic or comparison".to_string()).into()) + } } fn mark_static_initialized(m: !) -> EvalResult<'tcx> { -- 2.44.0