From 3dba298f1419d8c3ca9766aaeacdc4c5087c0f44 Mon Sep 17 00:00:00 2001 From: Alexander Regueiro Date: Tue, 1 May 2018 17:13:22 +0100 Subject: [PATCH] Fixed build for latest nightly --- miri/fn_call.rs | 6 +++--- miri/helpers.rs | 6 ++++-- miri/intrinsic.rs | 2 +- miri/lib.rs | 4 +++- miri/validation.rs | 2 +- 5 files changed, 12 insertions(+), 8 deletions(-) diff --git a/miri/fn_call.rs b/miri/fn_call.rs index a824cbab40a0..c763802bec9d 100644 --- a/miri/fn_call.rs +++ b/miri/fn_call.rs @@ -3,8 +3,8 @@ use rustc::ty::layout::{self, Align, LayoutOf}; use rustc::hir::def_id::{DefId, CRATE_DEF_INDEX}; use rustc::mir; use rustc_data_structures::indexed_vec::Idx; +use rustc_target::spec::abi::Abi; use syntax::attr; -use syntax::abi::Abi; use syntax::codemap::Span; use std::mem; @@ -49,7 +49,7 @@ fn write_discriminant_value<'a, 'mir, 'tcx: 'a + 'mir>( if variant_index != dataful_variant { let (niche_dest, niche) = ecx.place_field(dest, mir::Field::new(0), layout)?; - let niche_value = ((variant_index - niche_variants.start) as u128) + let niche_value = ((variant_index - niche_variants.start()) as u128) .wrapping_add(niche_start); ecx.write_primval(niche_dest, PrimVal::Bytes(niche_value), niche.ty)?; } @@ -177,7 +177,7 @@ impl<'a, 'mir, 'tcx: 'mir + 'a> EvalContextExt<'tcx> for EvalContext<'a, 'mir, ' let attrs = self.tcx.get_attrs(def_id); let link_name = match attr::first_attr_value_str_by_name(&attrs, "link_name") { Some(name) => name.as_str(), - None => self.tcx.item_name(def_id), + None => self.tcx.item_name(def_id).as_str(), }; match &link_name[..] { diff --git a/miri/helpers.rs b/miri/helpers.rs index 3dd499f7a62e..b941e65437d9 100644 --- a/miri/helpers.rs +++ b/miri/helpers.rs @@ -1,7 +1,9 @@ -use super::{Pointer, EvalResult, PrimVal, EvalContext}; +use mir; use rustc::ty::Ty; use rustc::ty::layout::LayoutOf; +use super::{Pointer, EvalResult, PrimVal, EvalContext}; + pub trait EvalContextExt<'tcx> { fn wrapping_pointer_offset( &self, @@ -63,7 +65,7 @@ impl<'a, 'mir, 'tcx> EvalContextExt<'tcx> for EvalContext<'a, 'mir, 'tcx, super: } Ok(ptr) } else { - err!(OverflowingMath) + err!(Overflow(mir::BinOp::Mul)) }; } } diff --git a/miri/intrinsic.rs b/miri/intrinsic.rs index ea9f0428964a..9f4950e8c9fb 100644 --- a/miri/intrinsic.rs +++ b/miri/intrinsic.rs @@ -29,7 +29,7 @@ impl<'a, 'mir, 'tcx> EvalContextExt<'tcx> for EvalContext<'a, 'mir, 'tcx, super: ) -> EvalResult<'tcx> { let substs = instance.substs; - let intrinsic_name = &self.tcx.item_name(instance.def_id())[..]; + let intrinsic_name = &self.tcx.item_name(instance.def_id()).as_str()[..]; match intrinsic_name { "align_offset" => { // FIXME: return a real value in case the target allocation has an diff --git a/miri/lib.rs b/miri/lib.rs index 7c8183b50984..adc19ba0a7ae 100644 --- a/miri/lib.rs +++ b/miri/lib.rs @@ -1,7 +1,8 @@ #![feature( rustc_private, catch_expr, - inclusive_range_fields + inclusive_range_fields, + inclusive_range_methods, )] #[macro_use] @@ -12,6 +13,7 @@ extern crate log; extern crate rustc; extern crate rustc_mir; extern crate rustc_data_structures; +extern crate rustc_target; extern crate syntax; extern crate regex; #[macro_use] diff --git a/miri/validation.rs b/miri/validation.rs index 2de620510ffe..51b407721399 100644 --- a/miri/validation.rs +++ b/miri/validation.rs @@ -3,7 +3,7 @@ use rustc::hir::Mutability::*; use rustc::mir::{self, ValidationOp, ValidationOperand}; use rustc::mir::interpret::GlobalId; use rustc::ty::{self, Ty, TypeFoldable, TyCtxt, Instance}; -use rustc::ty::layout::LayoutOf; +use rustc::ty::layout::{LayoutOf, PrimitiveExt}; use rustc::ty::subst::{Substs, Subst}; use rustc::traits::{self, TraitEngine}; use rustc::infer::InferCtxt;