FreeBSD/contrib/binutils/gas/config/tc-ia64.c
/* This function checks whether there are any outstanding .save-s and
   discards them if so.  */
This function checks whether there are any outstanding .save-s and
discards them if so.
This function checks whether there are any outstanding . save - s and discards them if so .
static void
check_pending_save (void)
{
  if (unwind.pending_saves)
    {
      unw_rec_list *cur, *prev;
      as_warn ("Previous .save incomplete");
      for (cur = unwind.list, prev = NULL; cur; )
	if (&cur->r.record.p == unwind.pending_saves)
	  {
	    if (prev)
	      prev->next = cur->next;
	    else
	      unwind.list = cur->next;
	    if (cur == unwind.tail)
	      unwind.tail = prev;
	    if (cur == unwind.current_entry)
	      unwind.current_entry = cur->next;
	    cur->r.record.p.grmask = 0;
	    cur->r.record.p.brmask = 0;
	    cur->r.record.p.frmask = 0;
	    prev = cur->r.record.p.next;
	    cur->r.record.p.next = NULL;
	    cur = prev;
	    break;
	  }
	else
	  {
	    prev = cur;
	    cur = cur->next;
	  }
      while (cur)
	{
	  prev = cur;
	  cur = cur->r.record.p.next;
	  free (prev);
	}
      unwind.pending_saves = NULL;
    }
}
static void check_pending_save ( void ) { if ( unwind . pending_saves ) { unw_rec_list * cur , * prev ; as_warn ( " " ) ; for ( cur = unwind . list , prev = NULL ; cur ; ) if ( & cur -> r . record . p == unwind . pending_saves ) { if ( prev ) prev -> next = cur -> next ; else unwind . list = cur -> next ; if ( cur == unwind . tail ) unwind . tail = prev ; if ( cur == unwind . current_entry ) unwind . current_entry = cur -> next ; cur -> r . record . p . grmask = 0 ; cur -> r . record . p . brmask = 0 ; cur -> r . record . p . frmask = 0 ; prev = cur -> r . record . p . next ; cur -> r . record . p . next = NULL ; cur = prev ; break ; } else { prev = cur ; cur = cur -> next ; } while ( cur ) { prev = cur ; cur = cur -> r . record . p . next ; free ( prev ) ; } unwind . pending_saves = NULL ; } }
This function checks whether there are any outstanding .save-s and
discards them if so.
This function checks whether there are any outstanding . save - s and discards them if so .
/* Don't free the first discarded record, it's being used as
	       terminator for (currently) br_gr and gr_gr processing, and
	       also prevents leaving a dangling pointer to it in its
	       predecessor.  */