@@ -698,15 +698,10 @@ impl<'a, 'mir, 'tcx: 'mir, M: Machine<'a, 'mir, 'tcx>> InterpretCx<'a, 'mir, 'tc
698
698
}
699
699
write ! ( msg, ":" ) . unwrap ( ) ;
700
700
701
- match self . stack [ frame] . locals [ local] . access ( ) {
702
- Err ( err) => {
703
- if let InterpError :: DeadLocal = err. kind {
704
- write ! ( msg, " is dead" ) . unwrap ( ) ;
705
- } else {
706
- panic ! ( "Failed to access local: {:?}" , err) ;
707
- }
708
- }
709
- Ok ( Operand :: Indirect ( mplace) ) => {
701
+ match self . stack [ frame] . locals [ local] . state {
702
+ LocalValue :: Dead => write ! ( msg, " is dead" ) . unwrap ( ) ,
703
+ LocalValue :: Uninitialized => write ! ( msg, " is uninitialized" ) . unwrap ( ) ,
704
+ LocalValue :: Live ( Operand :: Indirect ( mplace) ) => {
710
705
let ( ptr, align) = mplace. to_scalar_ptr_align ( ) ;
711
706
match ptr {
712
707
Scalar :: Ptr ( ptr) => {
@@ -716,13 +711,13 @@ impl<'a, 'mir, 'tcx: 'mir, M: Machine<'a, 'mir, 'tcx>> InterpretCx<'a, 'mir, 'tc
716
711
ptr => write ! ( msg, " by integral ref: {:?}" , ptr) . unwrap ( ) ,
717
712
}
718
713
}
719
- Ok ( Operand :: Immediate ( Immediate :: Scalar ( val) ) ) => {
714
+ LocalValue :: Live ( Operand :: Immediate ( Immediate :: Scalar ( val) ) ) => {
720
715
write ! ( msg, " {:?}" , val) . unwrap ( ) ;
721
716
if let ScalarMaybeUndef :: Scalar ( Scalar :: Ptr ( ptr) ) = val {
722
717
allocs. push ( ptr. alloc_id ) ;
723
718
}
724
719
}
725
- Ok ( Operand :: Immediate ( Immediate :: ScalarPair ( val1, val2) ) ) => {
720
+ LocalValue :: Live ( Operand :: Immediate ( Immediate :: ScalarPair ( val1, val2) ) ) => {
726
721
write ! ( msg, " ({:?}, {:?})" , val1, val2) . unwrap ( ) ;
727
722
if let ScalarMaybeUndef :: Scalar ( Scalar :: Ptr ( ptr) ) = val1 {
728
723
allocs. push ( ptr. alloc_id ) ;
0 commit comments