docs: 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)