for (idx = SEG_E0; idx < SEG_E9; idx++)
for (idx = SEG_E0; idx < SEG_LAST; idx++)
do_linenos_for (abfd, h, file_cursor)     bfd * abfd;     object_headers * h;     unsigned long *file_cursor;{  unsigned int idx;  unsigned long start = *file_cursor;  for (idx = SEG_E0; idx < SEG_E9; idx++)    {      segment_info_type *s = segment_info + idx;      if (s->scnhdr.s_nlnno != 0)	{	  struct lineno_list *line_ptr;	  struct external_lineno *buffer =	  (struct external_lineno *) xmalloc (s->scnhdr.s_nlnno * LINESZ);	  struct external_lineno *dst = buffer;	  /* Run through the table we've built and turn it into its external	 form, take this chance to remove duplicates */	  for (line_ptr = s->lineno_list_head;	       line_ptr != (struct lineno_list *) NULL;	       line_ptr = line_ptr->next)	    {	      if (line_ptr->line.l_lnno == 0)		{		  /* Turn a pointer to a symbol into the symbols' index */		  line_ptr->line.l_addr.l_symndx =		    ((symbolS *) line_ptr->line.l_addr.l_symndx)->sy_number;		}	      else		{		  line_ptr->line.l_addr.l_paddr += ((struct frag *) (line_ptr->frag))->fr_address;		}	      (void) bfd_coff_swap_lineno_out (abfd, &(line_ptr->line), dst);	      dst++;	    }	  s->scnhdr.s_lnnoptr = *file_cursor;	  bfd_write (buffer, 1, s->scnhdr.s_nlnno * LINESZ, abfd);	  free (buffer);	  *file_cursor += s->scnhdr.s_nlnno * LINESZ;	}    }  H_SET_LINENO_SIZE (h, *file_cursor - start);}