Skip to content

Commit e3527fd

Browse files
authored
Merge pull request #647 from spastorino/place_base
Place::Local(x) is now Place::Base(PlaceBase::Local(x))
2 parents 909045d + 355135b commit e3527fd

File tree

4 files changed

+8
-8
lines changed

4 files changed

+8
-8
lines changed

rust-version

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
nightly-2019-02-24
1+
nightly-2019-03-02

src/fn_call.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -275,7 +275,7 @@ pub trait EvalContextExt<'a, 'mir, 'tcx: 'a + 'mir>: crate::MiriEvalContextExt<'
275275
.to_owned(),
276276
),
277277
)?;
278-
let arg_dest = this.eval_place(&mir::Place::Local(arg_local))?;
278+
let arg_dest = this.eval_place(&mir::Place::Base(mir::PlaceBase::Local(arg_local)))?;
279279
this.write_scalar(data, arg_dest)?;
280280

281281
assert!(args.next().is_none(), "__rust_maybe_catch_panic argument has more arguments than expected");

src/lib.rs

+5-5
Original file line numberDiff line numberDiff line change
@@ -121,11 +121,11 @@ pub fn create_ecx<'a, 'mir: 'a, 'tcx: 'mir>(
121121

122122
// First argument: pointer to `main()`.
123123
let main_ptr = ecx.memory_mut().create_fn_alloc(main_instance).with_default_tag();
124-
let dest = ecx.eval_place(&mir::Place::Local(args.next().unwrap()))?;
124+
let dest = ecx.eval_place(&mir::Place::Base(mir::PlaceBase::Local(args.next().unwrap())))?;
125125
ecx.write_scalar(Scalar::Ptr(main_ptr), dest)?;
126126

127127
// Second argument (argc): `1`.
128-
let dest = ecx.eval_place(&mir::Place::Local(args.next().unwrap()))?;
128+
let dest = ecx.eval_place(&mir::Place::Base(mir::PlaceBase::Local(args.next().unwrap())))?;
129129
let argc = Scalar::from_uint(config.args.len() as u128, dest.layout.size);
130130
ecx.write_scalar(argc, dest)?;
131131
// Store argc for macOS's `_NSGetArgc`.
@@ -137,7 +137,7 @@ pub fn create_ecx<'a, 'mir: 'a, 'tcx: 'mir>(
137137

138138
// FIXME: extract main source file path.
139139
// Third argument (`argv`): created from `config.args`.
140-
let dest = ecx.eval_place(&mir::Place::Local(args.next().unwrap()))?;
140+
let dest = ecx.eval_place(&mir::Place::Base(mir::PlaceBase::Local(args.next().unwrap())))?;
141141
// For Windows, construct a command string with all the aguments.
142142
let mut cmd = String::new();
143143
for arg in config.args.iter() {
@@ -437,12 +437,12 @@ impl<'a, 'mir, 'tcx> Machine<'a, 'mir, 'tcx> for Evaluator<'tcx> {
437437

438438
// First argument: `size`.
439439
// (`0` is allowed here -- this is expected to be handled by the lang item).
440-
let arg = ecx.eval_place(&mir::Place::Local(args.next().unwrap()))?;
440+
let arg = ecx.eval_place(&mir::Place::Base(mir::PlaceBase::Local(args.next().unwrap())))?;
441441
let size = layout.size.bytes();
442442
ecx.write_scalar(Scalar::from_uint(size, arg.layout.size), arg)?;
443443

444444
// Second argument: `align`.
445-
let arg = ecx.eval_place(&mir::Place::Local(args.next().unwrap()))?;
445+
let arg = ecx.eval_place(&mir::Place::Base(mir::PlaceBase::Local(args.next().unwrap())))?;
446446
let align = layout.align.abi.bytes();
447447
ecx.write_scalar(Scalar::from_uint(align, arg.layout.size), arg)?;
448448

src/tls.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ pub trait EvalContextExt<'a, 'mir, 'tcx: 'a+'mir>: crate::MiriEvalContextExt<'a,
151151
let arg_local = this.frame().mir.args_iter().next().ok_or_else(
152152
|| EvalErrorKind::AbiViolation("TLS dtor does not take enough arguments.".to_owned()),
153153
)?;
154-
let dest = this.eval_place(&mir::Place::Local(arg_local))?;
154+
let dest = this.eval_place(&mir::Place::Base(mir::PlaceBase::Local(arg_local)))?;
155155
this.write_scalar(ptr, dest)?;
156156

157157
// step until out of stackframes

0 commit comments

Comments
 (0)