@@ -698,15 +698,10 @@ impl<'a, 'mir, 'tcx: 'mir, M: Machine<'a, 'mir, 'tcx>> InterpretCx<'a, 'mir, 'tc
698698 }
699699 write ! ( msg, ":" ) . unwrap ( ) ;
700700
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) ) => {
710705 let ( ptr, align) = mplace. to_scalar_ptr_align ( ) ;
711706 match ptr {
712707 Scalar :: Ptr ( ptr) => {
@@ -716,13 +711,13 @@ impl<'a, 'mir, 'tcx: 'mir, M: Machine<'a, 'mir, 'tcx>> InterpretCx<'a, 'mir, 'tc
716711 ptr => write ! ( msg, " by integral ref: {:?}" , ptr) . unwrap ( ) ,
717712 }
718713 }
719- Ok ( Operand :: Immediate ( Immediate :: Scalar ( val) ) ) => {
714+ LocalValue :: Live ( Operand :: Immediate ( Immediate :: Scalar ( val) ) ) => {
720715 write ! ( msg, " {:?}" , val) . unwrap ( ) ;
721716 if let ScalarMaybeUndef :: Scalar ( Scalar :: Ptr ( ptr) ) = val {
722717 allocs. push ( ptr. alloc_id ) ;
723718 }
724719 }
725- Ok ( Operand :: Immediate ( Immediate :: ScalarPair ( val1, val2) ) ) => {
720+ LocalValue :: Live ( Operand :: Immediate ( Immediate :: ScalarPair ( val1, val2) ) ) => {
726721 write ! ( msg, " ({:?}, {:?})" , val1, val2) . unwrap ( ) ;
727722 if let ScalarMaybeUndef :: Scalar ( Scalar :: Ptr ( ptr) ) = val1 {
728723 allocs. push ( ptr. alloc_id ) ;
0 commit comments