From 0bb6ae8f62d3239a1c666c566693dfedc8652ad3 Mon Sep 17 00:00:00 2001 From: Santiago Pastorino Date: Tue, 26 Feb 2019 14:58:13 -0300 Subject: [PATCH 1/2] Place::Local(x) is now Place::Base(PlaceBase::Local(x)) --- src/fn_call.rs | 2 +- src/lib.rs | 10 +++++----- src/tls.rs | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/fn_call.rs b/src/fn_call.rs index ce07b04c29..b496a9b7d4 100644 --- a/src/fn_call.rs +++ b/src/fn_call.rs @@ -275,7 +275,7 @@ pub trait EvalContextExt<'a, 'mir, 'tcx: 'a + 'mir>: crate::MiriEvalContextExt<' .to_owned(), ), )?; - let arg_dest = this.eval_place(&mir::Place::Local(arg_local))?; + let arg_dest = this.eval_place(&mir::Place::Base(mir::PlaceBase::Local(arg_local)))?; this.write_scalar(data, arg_dest)?; assert!(args.next().is_none(), "__rust_maybe_catch_panic argument has more arguments than expected"); diff --git a/src/lib.rs b/src/lib.rs index 8fc3efd7c2..cf6a885c60 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -121,11 +121,11 @@ pub fn create_ecx<'a, 'mir: 'a, 'tcx: 'mir>( // First argument: pointer to `main()`. let main_ptr = ecx.memory_mut().create_fn_alloc(main_instance).with_default_tag(); - let dest = ecx.eval_place(&mir::Place::Local(args.next().unwrap()))?; + let dest = ecx.eval_place(&mir::Place::Base(mir::PlaceBase::Local(args.next().unwrap())))?; ecx.write_scalar(Scalar::Ptr(main_ptr), dest)?; // Second argument (argc): `1`. - let dest = ecx.eval_place(&mir::Place::Local(args.next().unwrap()))?; + let dest = ecx.eval_place(&mir::Place::Base(mir::PlaceBase::Local(args.next().unwrap())))?; let argc = Scalar::from_uint(config.args.len() as u128, dest.layout.size); ecx.write_scalar(argc, dest)?; // Store argc for macOS's `_NSGetArgc`. @@ -137,7 +137,7 @@ pub fn create_ecx<'a, 'mir: 'a, 'tcx: 'mir>( // FIXME: extract main source file path. // Third argument (`argv`): created from `config.args`. - let dest = ecx.eval_place(&mir::Place::Local(args.next().unwrap()))?; + let dest = ecx.eval_place(&mir::Place::Base(mir::PlaceBase::Local(args.next().unwrap())))?; // For Windows, construct a command string with all the aguments. let mut cmd = String::new(); for arg in config.args.iter() { @@ -437,12 +437,12 @@ impl<'a, 'mir, 'tcx> Machine<'a, 'mir, 'tcx> for Evaluator<'tcx> { // First argument: `size`. // (`0` is allowed here -- this is expected to be handled by the lang item). - let arg = ecx.eval_place(&mir::Place::Local(args.next().unwrap()))?; + let arg = ecx.eval_place(&mir::Place::Base(mir::PlaceBase::Local(args.next().unwrap())))?; let size = layout.size.bytes(); ecx.write_scalar(Scalar::from_uint(size, arg.layout.size), arg)?; // Second argument: `align`. - let arg = ecx.eval_place(&mir::Place::Local(args.next().unwrap()))?; + let arg = ecx.eval_place(&mir::Place::Base(mir::PlaceBase::Local(args.next().unwrap())))?; let align = layout.align.abi.bytes(); ecx.write_scalar(Scalar::from_uint(align, arg.layout.size), arg)?; diff --git a/src/tls.rs b/src/tls.rs index 5411e02161..796c2e5f98 100644 --- a/src/tls.rs +++ b/src/tls.rs @@ -151,7 +151,7 @@ pub trait EvalContextExt<'a, 'mir, 'tcx: 'a+'mir>: crate::MiriEvalContextExt<'a, let arg_local = this.frame().mir.args_iter().next().ok_or_else( || EvalErrorKind::AbiViolation("TLS dtor does not take enough arguments.".to_owned()), )?; - let dest = this.eval_place(&mir::Place::Local(arg_local))?; + let dest = this.eval_place(&mir::Place::Base(mir::PlaceBase::Local(arg_local)))?; this.write_scalar(ptr, dest)?; // step until out of stackframes From 355135bb895c16e9011d6b83ad13663de47d2c64 Mon Sep 17 00:00:00 2001 From: Ralf Jung Date: Sat, 2 Mar 2019 09:01:03 +0100 Subject: [PATCH 2/2] bump Rust version --- rust-version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust-version b/rust-version index 091e10fde3..bf8995fe8a 100644 --- a/rust-version +++ b/rust-version @@ -1 +1 @@ -nightly-2019-02-24 +nightly-2019-03-02