code: def _iteratively_analyze_function_features(self, all_funcs_completed=False):
          
  
          changes = {
              'functions_do_not_return': set(),
              'functions_return': set()
          }
  
          while True:
              new_changes = self._analyze_function_features(all_funcs_completed=all_funcs_completed)
  
              changes['functions_do_not_return'] |= set(new_changes['functions_do_not_return'])
              changes['functions_return'] |= set(new_changes['functions_return'])
  
              if not new_changes['functions_do_not_return'] and not new_changes['functions_return']:
                  # a fixed point is reached
                  break
  
          return changes
docs: Iteratively analyze function features until a fixed point is reached.
  
          :return: the "changes" dict
          :rtype:  dict