@@ -131,10 +131,10 @@ impl<'a, 'mir, 'tcx: 'mir + 'a> EvalContextExt<'tcx, 'mir> for super::MiriEvalCo
131131 }
132132
133133 "free" => {
134- let ptr = self . read_scalar ( args[ 0 ] ) ?. not_undef ( ) ?. erase_tag ( ) ; // raw ptr operation, no tag
134+ let ptr = self . read_scalar ( args[ 0 ] ) ?. not_undef ( ) ?;
135135 if !ptr. is_null_ptr ( self ) {
136136 self . memory_mut ( ) . deallocate (
137- ptr. to_ptr ( ) ?. with_default_tag ( ) ,
137+ ptr. to_ptr ( ) ?,
138138 None ,
139139 MiriMemoryKind :: C . into ( ) ,
140140 ) ?;
@@ -179,7 +179,7 @@ impl<'a, 'mir, 'tcx: 'mir + 'a> EvalContextExt<'tcx, 'mir> for super::MiriEvalCo
179179 self . write_scalar ( Scalar :: Ptr ( ptr) , dest) ?;
180180 }
181181 "__rust_dealloc" => {
182- let ptr = self . read_scalar ( args[ 0 ] ) ?. to_ptr ( ) ?. erase_tag ( ) ; // raw ptr operation, no tag
182+ let ptr = self . read_scalar ( args[ 0 ] ) ?. to_ptr ( ) ?;
183183 let old_size = self . read_scalar ( args[ 1 ] ) ?. to_usize ( self ) ?;
184184 let align = self . read_scalar ( args[ 2 ] ) ?. to_usize ( self ) ?;
185185 if old_size == 0 {
@@ -189,13 +189,13 @@ impl<'a, 'mir, 'tcx: 'mir + 'a> EvalContextExt<'tcx, 'mir> for super::MiriEvalCo
189189 return err ! ( HeapAllocNonPowerOfTwoAlignment ( align) ) ;
190190 }
191191 self . memory_mut ( ) . deallocate (
192- ptr. with_default_tag ( ) ,
192+ ptr,
193193 Some ( ( Size :: from_bytes ( old_size) , Align :: from_bytes ( align, align) . unwrap ( ) ) ) ,
194194 MiriMemoryKind :: Rust . into ( ) ,
195195 ) ?;
196196 }
197197 "__rust_realloc" => {
198- let ptr = self . read_scalar ( args[ 0 ] ) ?. to_ptr ( ) ?. erase_tag ( ) ; // raw ptr operation, no tag
198+ let ptr = self . read_scalar ( args[ 0 ] ) ?. to_ptr ( ) ?;
199199 let old_size = self . read_scalar ( args[ 1 ] ) ?. to_usize ( self ) ?;
200200 let align = self . read_scalar ( args[ 2 ] ) ?. to_usize ( self ) ?;
201201 let new_size = self . read_scalar ( args[ 3 ] ) ?. to_usize ( self ) ?;
@@ -206,7 +206,7 @@ impl<'a, 'mir, 'tcx: 'mir + 'a> EvalContextExt<'tcx, 'mir> for super::MiriEvalCo
206206 return err ! ( HeapAllocNonPowerOfTwoAlignment ( align) ) ;
207207 }
208208 let new_ptr = self . memory_mut ( ) . reallocate (
209- ptr. with_default_tag ( ) ,
209+ ptr,
210210 Size :: from_bytes ( old_size) ,
211211 Align :: from_bytes ( align, align) . unwrap ( ) ,
212212 Size :: from_bytes ( new_size) ,
@@ -238,8 +238,8 @@ impl<'a, 'mir, 'tcx: 'mir + 'a> EvalContextExt<'tcx, 'mir> for super::MiriEvalCo
238238
239239 "dlsym" => {
240240 let _handle = self . read_scalar ( args[ 0 ] ) ?;
241- let symbol = self . read_scalar ( args[ 1 ] ) ?. to_ptr ( ) ?. erase_tag ( ) ;
242- let symbol_name = self . memory ( ) . read_c_str ( symbol. with_default_tag ( ) ) ?;
241+ let symbol = self . read_scalar ( args[ 1 ] ) ?. to_ptr ( ) ?;
242+ let symbol_name = self . memory ( ) . read_c_str ( symbol) ?;
243243 let err = format ! ( "bad c unicode symbol: {:?}" , symbol_name) ;
244244 let symbol_name = :: std:: str:: from_utf8 ( symbol_name) . unwrap_or ( & err) ;
245245 return err ! ( Unimplemented ( format!(
@@ -292,13 +292,13 @@ impl<'a, 'mir, 'tcx: 'mir + 'a> EvalContextExt<'tcx, 'mir> for super::MiriEvalCo
292292 return err ! ( MachineError ( "the evaluated program panicked" . to_string( ) ) ) ,
293293
294294 "memcmp" => {
295- let left = self . read_scalar ( args[ 0 ] ) ?. not_undef ( ) ?. erase_tag ( ) ; // raw ptr operation
296- let right = self . read_scalar ( args[ 1 ] ) ?. not_undef ( ) ?. erase_tag ( ) ; // raw ptr operation
295+ let left = self . read_scalar ( args[ 0 ] ) ?. not_undef ( ) ?;
296+ let right = self . read_scalar ( args[ 1 ] ) ?. not_undef ( ) ?;
297297 let n = Size :: from_bytes ( self . read_scalar ( args[ 2 ] ) ?. to_usize ( self ) ?) ;
298298
299299 let result = {
300- let left_bytes = self . memory ( ) . read_bytes ( left. with_default_tag ( ) , n) ?;
301- let right_bytes = self . memory ( ) . read_bytes ( right. with_default_tag ( ) , n) ?;
300+ let left_bytes = self . memory ( ) . read_bytes ( left, n) ?;
301+ let right_bytes = self . memory ( ) . read_bytes ( right, n) ?;
302302
303303 use std:: cmp:: Ordering :: * ;
304304 match left_bytes. cmp ( right_bytes) {
@@ -315,8 +315,7 @@ impl<'a, 'mir, 'tcx: 'mir + 'a> EvalContextExt<'tcx, 'mir> for super::MiriEvalCo
315315 }
316316
317317 "memrchr" => {
318- let ptr = self . read_scalar ( args[ 0 ] ) ?. not_undef ( ) ?. erase_tag ( ) ; // raw ptr operation
319- let ptr = ptr. with_default_tag ( ) ;
318+ let ptr = self . read_scalar ( args[ 0 ] ) ?. not_undef ( ) ?;
320319 let val = self . read_scalar ( args[ 1 ] ) ?. to_bytes ( ) ? as u8 ;
321320 let num = self . read_scalar ( args[ 2 ] ) ?. to_usize ( self ) ?;
322321 if let Some ( idx) = self . memory ( ) . read_bytes ( ptr, Size :: from_bytes ( num) ) ?
@@ -330,8 +329,7 @@ impl<'a, 'mir, 'tcx: 'mir + 'a> EvalContextExt<'tcx, 'mir> for super::MiriEvalCo
330329 }
331330
332331 "memchr" => {
333- let ptr = self . read_scalar ( args[ 0 ] ) ?. not_undef ( ) ?. erase_tag ( ) ; // raw ptr operation
334- let ptr = ptr. with_default_tag ( ) ;
332+ let ptr = self . read_scalar ( args[ 0 ] ) ?. not_undef ( ) ?;
335333 let val = self . read_scalar ( args[ 1 ] ) ?. to_bytes ( ) ? as u8 ;
336334 let num = self . read_scalar ( args[ 2 ] ) ?. to_usize ( self ) ?;
337335 if let Some ( idx) = self . memory ( ) . read_bytes ( ptr, Size :: from_bytes ( num) ) ?. iter ( ) . position (
@@ -347,8 +345,8 @@ impl<'a, 'mir, 'tcx: 'mir + 'a> EvalContextExt<'tcx, 'mir> for super::MiriEvalCo
347345
348346 "getenv" => {
349347 let result = {
350- let name_ptr = self . read_scalar ( args[ 0 ] ) ?. to_ptr ( ) ?. erase_tag ( ) ; // raw ptr operation
351- let name = self . memory ( ) . read_c_str ( name_ptr. with_default_tag ( ) ) ?;
348+ let name_ptr = self . read_scalar ( args[ 0 ] ) ?. to_ptr ( ) ?;
349+ let name = self . memory ( ) . read_c_str ( name_ptr) ?;
352350 match self . machine . env_vars . get ( name) {
353351 Some ( & var) => Scalar :: Ptr ( var) ,
354352 None => Scalar :: ptr_null ( & * self . tcx ) ,
@@ -360,10 +358,10 @@ impl<'a, 'mir, 'tcx: 'mir + 'a> EvalContextExt<'tcx, 'mir> for super::MiriEvalCo
360358 "unsetenv" => {
361359 let mut success = None ;
362360 {
363- let name_ptr = self . read_scalar ( args[ 0 ] ) ?. not_undef ( ) ?. erase_tag ( ) ; // raw ptr operation
361+ let name_ptr = self . read_scalar ( args[ 0 ] ) ?. not_undef ( ) ?;
364362 if !name_ptr. is_null_ptr ( self ) {
365363 let name = self . memory ( ) . read_c_str ( name_ptr. to_ptr ( ) ?
366- . with_default_tag ( ) ) ?. to_owned ( ) ;
364+ ) ?. to_owned ( ) ;
367365 if !name. is_empty ( ) && !name. contains ( & b'=' ) {
368366 success = Some ( self . machine . env_vars . remove ( & name) ) ;
369367 }
@@ -382,11 +380,11 @@ impl<'a, 'mir, 'tcx: 'mir + 'a> EvalContextExt<'tcx, 'mir> for super::MiriEvalCo
382380 "setenv" => {
383381 let mut new = None ;
384382 {
385- let name_ptr = self . read_scalar ( args[ 0 ] ) ?. not_undef ( ) ?. erase_tag ( ) ; // raw ptr operation
386- let value_ptr = self . read_scalar ( args[ 1 ] ) ?. to_ptr ( ) ?. erase_tag ( ) ; // raw ptr operation
387- let value = self . memory ( ) . read_c_str ( value_ptr. with_default_tag ( ) ) ?;
383+ let name_ptr = self . read_scalar ( args[ 0 ] ) ?. not_undef ( ) ?;
384+ let value_ptr = self . read_scalar ( args[ 1 ] ) ?. to_ptr ( ) ?;
385+ let value = self . memory ( ) . read_c_str ( value_ptr) ?;
388386 if !name_ptr. is_null_ptr ( self ) {
389- let name = self . memory ( ) . read_c_str ( name_ptr. to_ptr ( ) ?. with_default_tag ( ) ) ?;
387+ let name = self . memory ( ) . read_c_str ( name_ptr. to_ptr ( ) ?) ?;
390388 if !name. is_empty ( ) && !name. contains ( & b'=' ) {
391389 new = Some ( ( name. to_owned ( ) , value. to_owned ( ) ) ) ;
392390 }
@@ -417,14 +415,14 @@ impl<'a, 'mir, 'tcx: 'mir + 'a> EvalContextExt<'tcx, 'mir> for super::MiriEvalCo
417415
418416 "write" => {
419417 let fd = self . read_scalar ( args[ 0 ] ) ?. to_bytes ( ) ?;
420- let buf = self . read_scalar ( args[ 1 ] ) ?. not_undef ( ) ?. erase_tag ( ) ;
418+ let buf = self . read_scalar ( args[ 1 ] ) ?. not_undef ( ) ?;
421419 let n = self . read_scalar ( args[ 2 ] ) ?. to_bytes ( ) ? as u64 ;
422420 trace ! ( "Called write({:?}, {:?}, {:?})" , fd, buf, n) ;
423421 let result = if fd == 1 || fd == 2 {
424422 // stdout/stderr
425423 use std:: io:: { self , Write } ;
426424
427- let buf_cont = self . memory ( ) . read_bytes ( buf. with_default_tag ( ) , Size :: from_bytes ( n) ) ?;
425+ let buf_cont = self . memory ( ) . read_bytes ( buf, Size :: from_bytes ( n) ) ?;
428426 let res = if fd == 1 {
429427 io:: stdout ( ) . write ( buf_cont)
430428 } else {
@@ -445,8 +443,8 @@ impl<'a, 'mir, 'tcx: 'mir + 'a> EvalContextExt<'tcx, 'mir> for super::MiriEvalCo
445443 }
446444
447445 "strlen" => {
448- let ptr = self . read_scalar ( args[ 0 ] ) ?. to_ptr ( ) ?. erase_tag ( ) ;
449- let n = self . memory ( ) . read_c_str ( ptr. with_default_tag ( ) ) ?. len ( ) ;
446+ let ptr = self . read_scalar ( args[ 0 ] ) ?. to_ptr ( ) ?;
447+ let n = self . memory ( ) . read_c_str ( ptr) ?. len ( ) ;
450448 self . write_scalar ( Scalar :: from_uint ( n as u64 , dest. layout . size ) , dest) ?;
451449 }
452450
@@ -492,7 +490,7 @@ impl<'a, 'mir, 'tcx: 'mir + 'a> EvalContextExt<'tcx, 'mir> for super::MiriEvalCo
492490
493491 // Hook pthread calls that go to the thread-local storage memory subsystem
494492 "pthread_key_create" => {
495- let key_ptr = self . read_scalar ( args[ 0 ] ) ?. to_ptr ( ) ?. erase_tag ( ) ; // raw ptr operation
493+ let key_ptr = self . read_scalar ( args[ 0 ] ) ?. to_ptr ( ) ?;
496494
497495 // Extract the function type out of the signature (that seems easier than constructing it ourselves...)
498496 let dtor = match self . read_scalar ( args[ 1 ] ) ?. not_undef ( ) ? {
@@ -515,7 +513,7 @@ impl<'a, 'mir, 'tcx: 'mir + 'a> EvalContextExt<'tcx, 'mir> for super::MiriEvalCo
515513 return err ! ( OutOfTls ) ;
516514 }
517515 self . memory_mut ( ) . write_scalar (
518- key_ptr. with_default_tag ( ) ,
516+ key_ptr,
519517 key_layout. align ,
520518 Scalar :: from_uint ( key, key_layout. size ) . into ( ) ,
521519 key_layout. size ,
0 commit comments