]> git.lizzy.rs Git - rust.git/commitdiff
Properly process ptr_op for const eval
authorOliver Schneider <git-spam-no-reply9815368754983@oli-obk.de>
Mon, 31 Jul 2017 13:56:50 +0000 (15:56 +0200)
committerOliver Schneider <git-spam-no-reply9815368754983@oli-obk.de>
Tue, 1 Aug 2017 07:56:21 +0000 (09:56 +0200)
src/librustc_mir/interpret/const_eval.rs

index 8a0b6d5b6922e5218c141a11404360ba24de9650..193e0f7d01acfaac643a7e001210789de0e4228c 100644 (file)
@@ -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> {