':param project:         The project to operate on
:param addr:            The address of the function to use
The following parameters are optional:
:param concrete_only:   Throw an exception if the execution splits into multiple paths
:param perform_merge:   Merge all result states into one at the end (only relevant if concrete_only=False)
:param base_state:      The state from which to do these runs
:param toc:             The address of the table of contents for ppc64
:param cc:              The SimCC to use for a calling convention'

def __init__(self, project, addr, concrete_only=False, perform_merge=True, base_state=None, toc=None, cc=None):

    self._project = project
    self._addr = addr
    self._concrete_only = concrete_only
    self._perform_merge = perform_merge
    self._base_state = base_state
    self._toc = toc
    self._caller = None
    self._cc = (cc if (cc is not None) else DEFAULT_CC[project.arch.name](project.arch))
    self._deadend_addr = project._simos.return_deadend
    self.result_path_group = None
    self.result_state = None
