@@ -277,7 +277,7 @@ pub trait EvalContextExt<'a, 'mir, 'tcx: 'a+'mir>: crate::MiriEvalContextExt<'a,
277277
278278 "memrchr" => {
279279 let ptr = this. read_scalar ( args[ 0 ] ) ?. not_undef ( ) ?;
280- let val = this. read_scalar ( args[ 1 ] ) ?. to_bytes ( ) ? as u8 ;
280+ let val = this. read_scalar ( args[ 1 ] ) ?. to_i32 ( ) ? as u8 ;
281281 let num = this. read_scalar ( args[ 2 ] ) ?. to_usize ( this) ?;
282282 if let Some ( idx) = this. memory ( ) . read_bytes ( ptr, Size :: from_bytes ( num) ) ?
283283 . iter ( ) . rev ( ) . position ( |& c| c == val)
@@ -291,7 +291,7 @@ pub trait EvalContextExt<'a, 'mir, 'tcx: 'a+'mir>: crate::MiriEvalContextExt<'a,
291291
292292 "memchr" => {
293293 let ptr = this. read_scalar ( args[ 0 ] ) ?. not_undef ( ) ?;
294- let val = this. read_scalar ( args[ 1 ] ) ?. to_bytes ( ) ? as u8 ;
294+ let val = this. read_scalar ( args[ 1 ] ) ?. to_i32 ( ) ? as u8 ;
295295 let num = this. read_scalar ( args[ 2 ] ) ?. to_usize ( this) ?;
296296 if let Some ( idx) = this. memory ( ) . read_bytes ( ptr, Size :: from_bytes ( num) ) ?. iter ( ) . position (
297297 |& c| c == val,
@@ -379,9 +379,9 @@ pub trait EvalContextExt<'a, 'mir, 'tcx: 'a+'mir>: crate::MiriEvalContextExt<'a,
379379 }
380380
381381 "write" => {
382- let fd = this. read_scalar ( args[ 0 ] ) ?. to_bytes ( ) ?;
382+ let fd = this. read_scalar ( args[ 0 ] ) ?. to_i32 ( ) ?;
383383 let buf = this. read_scalar ( args[ 1 ] ) ?. not_undef ( ) ?;
384- let n = this. read_scalar ( args[ 2 ] ) ?. to_bytes ( ) ? as u64 ;
384+ let n = this. read_scalar ( args[ 2 ] ) ?. to_usize ( & * this . tcx ) ? ;
385385 trace ! ( "Called write({:?}, {:?}, {:?})" , fd, buf, n) ;
386386 let result = if fd == 1 || fd == 2 {
387387 // stdout/stderr
@@ -489,18 +489,18 @@ pub trait EvalContextExt<'a, 'mir, 'tcx: 'a+'mir>: crate::MiriEvalContextExt<'a,
489489 this. write_null ( dest) ?;
490490 }
491491 "pthread_key_delete" => {
492- let key = this. read_scalar ( args[ 0 ] ) ?. to_bytes ( ) ?;
492+ let key = this. read_scalar ( args[ 0 ] ) ?. to_bits ( args [ 0 ] . layout . size ) ?;
493493 this. machine . tls . delete_tls_key ( key) ?;
494494 // Return success (0)
495495 this. write_null ( dest) ?;
496496 }
497497 "pthread_getspecific" => {
498- let key = this. read_scalar ( args[ 0 ] ) ?. to_bytes ( ) ?;
498+ let key = this. read_scalar ( args[ 0 ] ) ?. to_bits ( args [ 0 ] . layout . size ) ?;
499499 let ptr = this. machine . tls . load_tls ( key) ?;
500500 this. write_scalar ( ptr, dest) ?;
501501 }
502502 "pthread_setspecific" => {
503- let key = this. read_scalar ( args[ 0 ] ) ?. to_bytes ( ) ?;
503+ let key = this. read_scalar ( args[ 0 ] ) ?. to_bits ( args [ 0 ] . layout . size ) ?;
504504 let new_ptr = this. read_scalar ( args[ 1 ] ) ?. not_undef ( ) ?;
505505 this. machine . tls . store_tls ( key, new_ptr) ?;
506506
@@ -586,12 +586,12 @@ pub trait EvalContextExt<'a, 'mir, 'tcx: 'a+'mir>: crate::MiriEvalContextExt<'a,
586586 this. write_scalar ( Scalar :: from_uint ( key, dest. layout . size ) , dest) ?;
587587 }
588588 "TlsGetValue" => {
589- let key = this. read_scalar ( args[ 0 ] ) ?. to_bytes ( ) ?;
589+ let key = this. read_scalar ( args[ 0 ] ) ?. to_bits ( args [ 0 ] . layout . size ) ?;
590590 let ptr = this. machine . tls . load_tls ( key) ?;
591591 this. write_scalar ( ptr, dest) ?;
592592 }
593593 "TlsSetValue" => {
594- let key = this. read_scalar ( args[ 0 ] ) ?. to_bytes ( ) ?;
594+ let key = this. read_scalar ( args[ 0 ] ) ?. to_bits ( args [ 0 ] . layout . size ) ?;
595595 let new_ptr = this. read_scalar ( args[ 1 ] ) ?. not_undef ( ) ?;
596596 this. machine . tls . store_tls ( key, new_ptr) ?;
597597
0 commit comments