(self, others: Tuple['VariableRecoveryState'], successor=None)
return VariableRecoveryState(successor, self._analysis, self.arch, self.function, merged_concrete_states,
                                     stack_region=new_stack_region,
                                     register_region=new_register_region
                                     ), merge_occurred
Merge two abstract states.

        :param others:  Other abstract states to merge.
        :return:        The merged abstract state.
        :rtype:         VariableRecoveryState, and a boolean that indicates if any merge has happened.
Merge two abstract states.
Merge two abstract states .
def merge(self, others: Tuple['VariableRecoveryState'], successor=None) -> Tuple['VariableRecoveryState',bool]:
        """
        Merge two abstract states.

        :param others:  Other abstract states to merge.
        :return:        The merged abstract state.
        :rtype:         VariableRecoveryState, and a boolean that indicates if any merge has happened.
        """

        self.phi_variables = {}
        self.successor_block_addr = successor

        merged_concrete_states =  [ self._concrete_states[0] ] # self._merge_concrete_states(other)

        new_stack_region = self.stack_region.copy()
        new_stack_region.set_state(self)
        merge_occurred = new_stack_region.merge([ other.stack_region for other in others ], None)

        new_register_region = self.register_region.copy()
        new_register_region.set_state(self)
        merge_occurred |= new_register_region.merge([ other.register_region for other in others ], None)

        self.phi_variables = {}
        self.successor_block_addr = None

        return VariableRecoveryState(successor, self._analysis, self.arch, self.function, merged_concrete_states,
                                     stack_region=new_stack_region,
                                     register_region=new_register_region
                                     ), merge_occurred
def merge ( self , others : Tuple [ 'VariableRecoveryState' ] , successor = None ) -> Tuple [ 'VariableRecoveryState' , bool ] : self . phi_variables = { } self . successor_block_addr = successor merged_concrete_states = [ self . _concrete_states [ 0 ] ] # self._merge_concrete_states(other) new_stack_region = self . stack_region . copy ( ) new_stack_region . set_state ( self ) merge_occurred = new_stack_region . merge ( [ other . stack_region for other in others ] , None ) new_register_region = self . register_region . copy ( ) new_register_region . set_state ( self ) merge_occurred |= new_register_region . merge ( [ other . register_region for other in others ] , None ) self . phi_variables = { } self . successor_block_addr = None return VariableRecoveryState ( successor , self . _analysis , self . arch , self . function , merged_concrete_states , stack_region = new_stack_region , register_region = new_register_region ) , merge_occurred