From 17f7bc86ae4bf5d160ae13552387afb922f75cdc Mon Sep 17 00:00:00 2001 From: Vytautas Astrauskas Date: Sun, 19 Apr 2020 15:23:30 -0700 Subject: [PATCH] Fix how a pthread_create function argument is constructed. --- src/shims/thread.rs | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/shims/thread.rs b/src/shims/thread.rs index ab3b436b8665..ee4369cb412e 100644 --- a/src/shims/thread.rs +++ b/src/shims/thread.rs @@ -37,11 +37,8 @@ pub trait EvalContextExt<'mir, 'tcx: 'mir>: crate::MiriEvalContextExt<'mir, 'tcx let fn_ptr = this.read_scalar(start_routine)?.not_undef()?; let instance = this.memory.get_fn(fn_ptr)?.as_instance()?; - let func_arg = match *arg { - rustc_mir::interpret::Operand::Immediate(immediate) => immediate, - _ => unreachable!(), - }; - let func_args = [func_arg]; + let func_arg = this.read_immediate(arg)?; + let func_args = [*func_arg]; let ret_place = this.allocate(this.layout_of(this.tcx.types.usize)?, MiriMemoryKind::Machine.into());