def _kill(self, variable, code_loc):  # pylint:disable=no-self-use
        """
        Kill previous defs. addr_list is a list of normalized addresses.
        """

        # Case 1: address perfectly match, we kill
        # Case 2: a is a subset of the original address
        # Case 3: a is a superset of the original address

        # the previous definition is killed. mark it in data graph.

        if variable in self._live_defs:
            for loc in self._live_defs.lookup_defs(variable):
                pv = ProgramVariable(variable, loc, arch=self.project.arch)
                self._data_graph_add_edge(pv, ProgramVariable(variable, code_loc, arch=self.project.arch), type='kill')

        self._live_defs.kill_def(variable, code_loc)
Kill previous defs. addr_list is a list of normalized addresses.