bug-gnu-utils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Fix compile time warnings for obj-coff.c when not BFD_ASSEMBLER


From: Nick Clifton
Subject: Fix compile time warnings for obj-coff.c when not BFD_ASSEMBLER
Date: 11 May 2002 13:07:25 +0100

Hi Guys,

  I am checking in the patch below to fix the compile time warning
  messages when using gas/config/obj-coff.c without BFD_ASSEMBLER
  defined.  I also took the time to apply some formatting fixes as
  well.

Cheers
        Nick

2002-05-11  Nick Clifton  <address@hidden>

        * config/obj-coff.c: Fix compile time warnings when compiling
        without BFD_ASSEMBLER defined.
        Fix formatting.

Index: gas/config/obj-coff.c
===================================================================
RCS file: /cvs/src/src/gas/config/obj-coff.c,v
retrieving revision 1.57
diff -c -3 -p -w -r1.57 obj-coff.c
*** gas/config/obj-coff.c       9 May 2002 13:12:57 -0000       1.57
--- gas/config/obj-coff.c       11 May 2002 12:05:24 -0000
*************** const short seg_N_TYPE[] =
*** 1713,1721 ****
  int function_lineoff = -1;    /* Offset in line#s where the last function
                                   started (the odd entry for line #0) */
  
! /* structure used to keep the filenames which
     are too long around so that we can stick them
!    into the string table */
  struct filename_list
  {
    char *filename;
--- 1713,1721 ----
  int function_lineoff = -1;    /* Offset in line#s where the last function
                                   started (the odd entry for line #0) */
  
! /* Structure used to keep the filenames which
     are too long around so that we can stick them
!    into the string table.  */
  struct filename_list
  {
    char *filename;
*************** static symbolS *last_line_symbol;
*** 1729,1767 ****
  
  /* Add 4 to the real value to get the index and compensate the
     negatives. This vector is used by S_GET_SEGMENT to turn a coff
!    section number into a segment number
! */
! static symbolS *previous_file_symbol;
! void c_symbol_merge ();
! static int line_base;
  
- symbolS *c_section_symbol ();
  bfd *abfd;
  
! static void fixup_segment PARAMS ((segment_info_type *segP,
!                                  segT this_segment_type));
! 
! static void fixup_mdeps PARAMS ((fragS *,
!                                object_headers *,
!                                segT));
! 
! static void fill_section PARAMS ((bfd * abfd,
!                                 object_headers *,
!                                 unsigned long *));
! 
! static int c_line_new PARAMS ((symbolS * symbol, long paddr,
!                              int line_number,
!                              fragS * frag));
! 
! static void w_symbols PARAMS ((bfd * abfd, char *where,
!                              symbolS * symbol_rootP));
! 
! static void adjust_stab_section PARAMS ((bfd *abfd, segT seg));
! 
  static void obj_coff_lcomm PARAMS ((int));
  static void obj_coff_text PARAMS ((int));
  static void obj_coff_data PARAMS ((int));
! void obj_coff_section PARAMS ((int));
  
  /* When not using BFD_ASSEMBLER, we permit up to 40 sections.
  
--- 1729,1766 ----
  
  /* Add 4 to the real value to get the index and compensate the
     negatives. This vector is used by S_GET_SEGMENT to turn a coff
!    section number into a segment number.  */
  
  bfd *abfd;
+ static symbolS *previous_file_symbol;
+ static int line_base;
  
! void c_symbol_merge PARAMS ((symbolS *, symbolS *));
! symbolS *c_section_symbol PARAMS ((char *, int));
! void obj_coff_section PARAMS ((int));
! void do_relocs_for PARAMS ((bfd *, object_headers *, unsigned long *));
! char * symbol_to_chars PARAMS ((bfd *, char *, symbolS *));
! void w_strings PARAMS ((char *));
! 
! static void fixup_segment PARAMS ((segment_info_type *, segT));
! static void fixup_mdeps PARAMS ((fragS *, object_headers *, segT));
! static void fill_section PARAMS ((bfd *,  object_headers *, unsigned long *));
! static int c_line_new PARAMS ((symbolS *, long, int, fragS *));
! static void w_symbols PARAMS ((bfd *, char *, symbolS *));
! static void adjust_stab_section PARAMS ((bfd *, segT));
  static void obj_coff_lcomm PARAMS ((int));
  static void obj_coff_text PARAMS ((int));
  static void obj_coff_data PARAMS ((int));
! static unsigned int count_entries_in_chain PARAMS ((unsigned int));
! static void coff_header_append PARAMS ((bfd *, object_headers *));
! static unsigned int yank_symbols PARAMS ((void));
! static unsigned int glue_symbols PARAMS ((symbolS **, symbolS **));
! static unsigned int tie_tags PARAMS ((void));
! static void crawl_symbols PARAMS ((object_headers *, bfd *));
! static void do_linenos_for PARAMS ((bfd *, object_headers *, unsigned long 
*));
! static void remove_subsegs PARAMS ((void));
! 
! 
  
  /* When not using BFD_ASSEMBLER, we permit up to 40 sections.
  
*************** static const segT seg_info_off_by_4[] =
*** 1800,1805 ****
--- 1799,1806 ----
  
  #define SEG_INFO_FROM_SECTION_NUMBER(x) (seg_info_off_by_4[(x)+4])
  
+ static relax_addressT relax_align PARAMS ((relax_addressT, long));
+ 
  static relax_addressT
  relax_align (address, alignment)
       relax_addressT address;
*************** s_get_segment (x)
*** 1820,1827 ****
    return SEG_INFO_FROM_SECTION_NUMBER (x->sy_symbol.ost_entry.n_scnum);
  }
  
! /* calculate the size of the frag chain and fill in the section header
!    to contain all of it, also fill in the addr of the sections */
  static unsigned int
  size_section (abfd, idx)
       bfd *abfd ATTRIBUTE_UNUSED;
--- 1821,1831 ----
    return SEG_INFO_FROM_SECTION_NUMBER (x->sy_symbol.ost_entry.n_scnum);
  }
  
! static unsigned int size_section PARAMS ((bfd *, unsigned int));
! 
! /* Calculate the size of the frag chain and fill in the section header
!    to contain all of it, also fill in the addr of the sections.  */
! 
  static unsigned int
  size_section (abfd, idx)
       bfd *abfd ATTRIBUTE_UNUSED;
*************** size_section (abfd, idx)
*** 1830,1835 ****
--- 1834,1840 ----
  
    unsigned int size = 0;
    fragS *frag = segment_info[idx].frchainP->frch_root;
+ 
    while (frag)
      {
        size = frag->fr_address;
*************** count_entries_in_chain (idx)
*** 1882,1888 ****
    unsigned int nrelocs;
    fixS *fixup_ptr;
  
!   /* Count the relocations */
    fixup_ptr = segment_info[idx].fix_root;
    nrelocs = 0;
    while (fixup_ptr != (fixS *) NULL)
--- 1887,1893 ----
    unsigned int nrelocs;
    fixS *fixup_ptr;
  
!   /* Count the relocations.  */
    fixup_ptr = segment_info[idx].fix_root;
    nrelocs = 0;
    while (fixup_ptr != (fixS *) NULL)
*************** count_entries_in_chain (idx)
*** 1908,1914 ****
  
  static int compare_external_relocs PARAMS ((const PTR, const PTR));
  
! /* AUX's ld expects relocations to be sorted */
  static int
  compare_external_relocs (x, y)
       const PTR x;
--- 1913,1920 ----
  
  static int compare_external_relocs PARAMS ((const PTR, const PTR));
  
! /* AUX's ld expects relocations to be sorted.  */
! 
  static int
  compare_external_relocs (x, y)
       const PTR x;
*************** compare_external_relocs (x, y)
*** 1923,1929 ****
  
  #endif
  
! /* output all the relocations for a section */
  void
  do_relocs_for (abfd, h, file_cursor)
       bfd * abfd;
--- 1929,1936 ----
  
  #endif
  
! /* Output all the relocations for a section.  */
! 
  void
  do_relocs_for (abfd, h, file_cursor)
       bfd * abfd;
*************** do_relocs_for (abfd, h, file_cursor)
*** 1961,1973 ****
                {
                  struct internal_reloc intr;
  
!                 /* Only output some of the relocations */
                  if (fix_ptr->fx_done == 0 && TC_COUNT_RELOC (fix_ptr))
                    {
  #ifdef TC_RELOC_MANGLE
                      TC_RELOC_MANGLE (&segment_info[idx], fix_ptr, &intr,
                                       base);
- 
  #else
                      symbolS *dot;
                      symbolS *symbol_ptr = fix_ptr->fx_addsy;
--- 1968,1979 ----
                {
                  struct internal_reloc intr;
  
!                 /* Only output some of the relocations.  */
                  if (fix_ptr->fx_done == 0 && TC_COUNT_RELOC (fix_ptr))
                    {
  #ifdef TC_RELOC_MANGLE
                      TC_RELOC_MANGLE (&segment_info[idx], fix_ptr, &intr,
                                       base);
  #else
                      symbolS *dot;
                      symbolS *symbol_ptr = fix_ptr->fx_addsy;
*************** do_relocs_for (abfd, h, file_cursor)
*** 2012,2047 ****
                                as_bad (_("bad relocation: symbol `%s' not in 
symbol table"),
                                        S_GET_NAME (symbol_ptr));
                            }
                          dot = segment_info[S_GET_SEGMENT (symbol_ptr)].dot;
                          if (dot)
-                           {
                              intr.r_symndx = dot->sy_number;
-                           }
                          else
-                           {
                              intr.r_symndx = symbol_ptr->sy_number;
                            }
- 
-                       }
                      else
-                       {
                          intr.r_symndx = -1;
-                       }
  #endif
- 
                      (void) bfd_coff_swap_reloc_out (abfd, &intr, ext_ptr);
                      ext_ptr++;
- 
  #if defined(TC_A29K)
- 
                      /* The 29k has a special kludge for the high 16 bit
                         reloc.  Two relocations are emited, R_IHIHALF,
                         and R_IHCONST. The second one doesn't contain a
                         symbol, but uses the value for offset.  */
- 
                      if (intr.r_type == R_IHIHALF)
                        {
!                         /* now emit the second bit */
                          intr.r_type = R_IHCONST;
                          intr.r_symndx = fix_ptr->fx_addnumber;
                          (void) bfd_coff_swap_reloc_out (abfd, &intr, ext_ptr);
--- 2018,2043 ----
                                as_bad (_("bad relocation: symbol `%s' not in 
symbol table"),
                                        S_GET_NAME (symbol_ptr));
                            }
+ 
                          dot = segment_info[S_GET_SEGMENT (symbol_ptr)].dot;
                          if (dot)
                            intr.r_symndx = dot->sy_number;
                          else
                            intr.r_symndx = symbol_ptr->sy_number;
                        }
                      else
                        intr.r_symndx = -1;
  #endif
                      (void) bfd_coff_swap_reloc_out (abfd, &intr, ext_ptr);
                      ext_ptr++;
  #if defined(TC_A29K)
                      /* The 29k has a special kludge for the high 16 bit
                         reloc.  Two relocations are emited, R_IHIHALF,
                         and R_IHCONST. The second one doesn't contain a
                         symbol, but uses the value for offset.  */
                      if (intr.r_type == R_IHIHALF)
                        {
!                         /* Now emit the second bit.  */
                          intr.r_type = R_IHCONST;
                          intr.r_symndx = fix_ptr->fx_addnumber;
                          (void) bfd_coff_swap_reloc_out (abfd, &intr, ext_ptr);
*************** do_relocs_for (abfd, h, file_cursor)
*** 2066,2079 ****
  
                  fix_ptr = fix_ptr->fx_next;
                }
- 
  #ifdef TE_AUX
!             /* Sort the reloc table */
              qsort ((PTR) external_reloc_vec, nrelocs,
                     sizeof (struct external_reloc), compare_external_relocs);
  #endif
! 
!             /* Write out the reloc table */
              bfd_bwrite ((PTR) external_reloc_vec,
                          (bfd_size_type) external_reloc_size, abfd);
              free (external_reloc_vec);
--- 2062,2073 ----
  
                  fix_ptr = fix_ptr->fx_next;
                }
  #ifdef TE_AUX
!             /* Sort the reloc table.  */
              qsort ((PTR) external_reloc_vec, nrelocs,
                     sizeof (struct external_reloc), compare_external_relocs);
  #endif
!             /* Write out the reloc table.  */
              bfd_bwrite ((PTR) external_reloc_vec,
                          (bfd_size_type) external_reloc_size, abfd);
              free (external_reloc_vec);
*************** do_relocs_for (abfd, h, file_cursor)
*** 2085,2109 ****
            }
          else
            {
!             /* No relocs */
              segment_info[idx].scnhdr.s_relptr = 0;
            }
        }
      }
!   /* Set relocation_size field in file headers */
    H_SET_RELOCATION_SIZE (h, *file_cursor - reloc_start, 0);
  }
  
! /* run through a frag chain and write out the data to go with it, fill
!    in the scnhdrs with the info on the file postions
! */
  static void
  fill_section (abfd, h, file_cursor)
       bfd * abfd;
       object_headers *h ATTRIBUTE_UNUSED;
       unsigned long *file_cursor;
  {
- 
    unsigned int i;
    unsigned int paddr = 0;
  
--- 2079,2103 ----
            }
          else
            {
!             /* No relocs.  */
              segment_info[idx].scnhdr.s_relptr = 0;
            }
        }
      }
! 
!   /* Set relocation_size field in file headers.  */
    H_SET_RELOCATION_SIZE (h, *file_cursor - reloc_start, 0);
  }
  
! /* Run through a frag chain and write out the data to go with it, fill
!    in the scnhdrs with the info on the file postions.  */
! 
  static void
  fill_section (abfd, h, file_cursor)
       bfd * abfd;
       object_headers *h ATTRIBUTE_UNUSED;
       unsigned long *file_cursor;
  {
    unsigned int i;
    unsigned int paddr = 0;
  
*************** fill_section (abfd, h, file_cursor)
*** 2229,2235 ****
      }
  }
  
! /* Coff file generation & utilities */
  
  static void
  coff_header_append (abfd, h)
--- 2223,2229 ----
      }
  }
  
! /* Coff file generation & utilities.  */
  
  static void
  coff_header_append (abfd, h)
*************** coff_header_append (abfd, h)
*** 2279,2285 ****
              string_size += strlen (segment_info[i].name) + 1;
            }
  #endif
- 
          size = bfd_coff_swap_scnhdr_out (abfd,
                                           &(segment_info[i].scnhdr),
                                           buffer);
--- 2273,2278 ----
*************** symbol_to_chars (abfd, where, symbolP)
*** 2300,2312 ****
    unsigned int i;
    valueT val;
  
!   /* Turn any symbols with register attributes into abs symbols */
    if (S_GET_SEGMENT (symbolP) == reg_section)
-     {
        S_SET_SEGMENT (symbolP, absolute_section);
-     }
-   /* At the same time, relocate all symbols to their output value */
  
  #ifndef TE_PE
    val = (segment_info[S_GET_SEGMENT (symbolP)].scnhdr.s_paddr
         + S_GET_VALUE (symbolP));
--- 2293,2303 ----
    unsigned int i;
    valueT val;
  
!   /* Turn any symbols with register attributes into abs symbols.  */
    if (S_GET_SEGMENT (symbolP) == reg_section)
      S_SET_SEGMENT (symbolP, absolute_section);
  
+   /* At the same time, relocate all symbols to their output value.  */
  #ifndef TE_PE
    val = (segment_info[S_GET_SEGMENT (symbolP)].scnhdr.s_paddr
         + S_GET_VALUE (symbolP));
*************** symbol_to_chars (abfd, where, symbolP)
*** 2329,2336 ****
                                      S_GET_STORAGE_CLASS (symbolP),
                                      i, numaux, where);
      }
-   return where;
  
  }
  
  void
--- 2320,2327 ----
                                      S_GET_STORAGE_CLASS (symbolP),
                                      i, numaux, where);
      }
  
+   return where;
  }
  
  void
*************** coff_obj_symbol_new_hook (symbolP)
*** 2339,2353 ****
  {
    char underscore = 0;                /* Symbol has leading _ */
  
!   /* Effective symbol */
    /* Store the pointer in the offset.  */
    S_SET_ZEROES (symbolP, 0L);
    S_SET_DATA_TYPE (symbolP, T_NULL);
    S_SET_STORAGE_CLASS (symbolP, 0);
    S_SET_NUMBER_AUXILIARY (symbolP, 0);
!   /* Additional information */
    symbolP->sy_symbol.ost_flags = 0;
!   /* Auxiliary entries */
    memset ((char *) &symbolP->sy_symbol.ost_auxent[0], 0, AUXESZ);
  
    if (S_IS_STRING (symbolP))
--- 2330,2344 ----
  {
    char underscore = 0;                /* Symbol has leading _  */
  
!   /* Effective symbol.  */
    /* Store the pointer in the offset.  */
    S_SET_ZEROES (symbolP, 0L);
    S_SET_DATA_TYPE (symbolP, T_NULL);
    S_SET_STORAGE_CLASS (symbolP, 0);
    S_SET_NUMBER_AUXILIARY (symbolP, 0);
!   /* Additional information.  */
    symbolP->sy_symbol.ost_flags = 0;
!   /* Auxiliary entries.  */
    memset ((char *) &symbolP->sy_symbol.ost_auxent[0], 0, AUXESZ);
  
    if (S_IS_STRING (symbolP))
*************** coff_obj_symbol_new_hook (symbolP)
*** 2356,2364 ****
      SF_SET_LOCAL (symbolP);
  }
  
! /*
!  * Handle .ln directives.
!  */
  
  static void
  obj_coff_ln (appline)
--- 2347,2353 ----
      SF_SET_LOCAL (symbolP);
  }
  
! /* Handle .ln directives.  */
  
  static void
  obj_coff_ln (appline)
*************** obj_coff_ln (appline)
*** 2368,2377 ****
  
    if (! appline && def_symbol_in_progress != NULL)
      {
        as_warn (_(".ln pseudo-op inside .def/.endef: ignored."));
        demand_empty_rest_of_line ();
        return;
!     }                         /* wrong context */
  
    l = get_absolute_expression ();
    c_line_new (0, frag_now_fix (), l, frag_now);
--- 2357,2367 ----
  
    if (! appline && def_symbol_in_progress != NULL)
      {
+       /* Wrong context.  */
        as_warn (_(".ln pseudo-op inside .def/.endef: ignored."));
        demand_empty_rest_of_line ();
        return;
!     }
  
    l = get_absolute_expression ();
    c_line_new (0, frag_now_fix (), l, frag_now);
*************** obj_coff_ln (appline)
*** 2395,2413 ****
    demand_empty_rest_of_line ();
  }
  
! /*
!  *                    def()
!  *
!  * Handle .def directives.
!  *
!  * One might ask : why can't we symbol_new if the symbol does not
!  * already exist and fill it with debug information.  Because of
!  * the C_EFCN special symbol. It would clobber the value of the
!  * function symbol before we have a chance to notice that it is
!  * a C_EFCN. And a second reason is that the code is more clear this
!  * way. (at least I think it is :-).
!  *
!  */
  
  #define SKIP_SEMI_COLON()     while (*input_line_pointer++ != ';')
  #define SKIP_WHITESPACES()    while (*input_line_pointer == ' ' || \
--- 2385,2398 ----
    demand_empty_rest_of_line ();
  }
  
! /* Handle .def directives.
!  
!   One might ask : why can't we symbol_new if the symbol does not
!   already exist and fill it with debug information.  Because of
!   the C_EFCN special symbol. It would clobber the value of the
!   function symbol before we have a chance to notice that it is
!   a C_EFCN. And a second reason is that the code is more clear this
!   way. (at least I think it is :-).  */
  
  #define SKIP_SEMI_COLON()     while (*input_line_pointer++ != ';')
  #define SKIP_WHITESPACES()    while (*input_line_pointer == ' ' || \
*************** static void
*** 2418,2426 ****
  obj_coff_def (what)
       int what ATTRIBUTE_UNUSED;
  {
!   char name_end;              /* Char after the end of name */
!   char *symbol_name;          /* Name of the debug symbol */
!   char *symbol_name_copy;     /* Temporary copy of the name */
    unsigned int symbol_name_length;
  
    if (def_symbol_in_progress != NULL)
--- 2403,2411 ----
  obj_coff_def (what)
       int what ATTRIBUTE_UNUSED;
  {
!   char name_end;              /* Char after the end of name.  */
!   char *symbol_name;          /* Name of the debug symbol.  */
!   char *symbol_name_copy;     /* Temporary copy of the name.  */
    unsigned int symbol_name_length;
  
    if (def_symbol_in_progress != NULL)
*************** obj_coff_def (what)
*** 2428,2434 ****
        as_warn (_(".def pseudo-op used inside of .def/.endef: ignored."));
        demand_empty_rest_of_line ();
        return;
!     }                         /* if not inside .def/.endef */
  
    SKIP_WHITESPACES ();
  
--- 2413,2419 ----
        as_warn (_(".def pseudo-op used inside of .def/.endef: ignored."));
        demand_empty_rest_of_line ();
        return;
!     }
  
    SKIP_WHITESPACES ();
  
*************** obj_coff_def (what)
*** 2444,2450 ****
    symbol_name_copy = tc_canonicalize_symbol_name (symbol_name_copy);
  #endif
  
!   /* Initialize the new symbol */
  #ifdef STRIP_UNDERSCORE
    S_SET_NAME (def_symbol_in_progress, (*symbol_name_copy == '_'
                                       ? symbol_name_copy + 1
--- 2429,2435 ----
    symbol_name_copy = tc_canonicalize_symbol_name (symbol_name_copy);
  #endif
  
!   /* Initialize the new symbol.  */
  #ifdef STRIP_UNDERSCORE
    S_SET_NAME (def_symbol_in_progress, (*symbol_name_copy == '_'
                                       ? symbol_name_copy + 1
*************** obj_coff_endef (ignore)
*** 2480,2486 ****
        as_warn (_(".endef pseudo-op used outside of .def/.endef: ignored."));
        demand_empty_rest_of_line ();
        return;
!     }                         /* if not inside .def/.endef */
  
    /* Set the section number according to storage class.  */
    switch (S_GET_STORAGE_CLASS (def_symbol_in_progress))
--- 2465,2471 ----
        as_warn (_(".endef pseudo-op used outside of .def/.endef: ignored."));
        demand_empty_rest_of_line ();
        return;
!     }
  
    /* Set the section number according to storage class.  */
    switch (S_GET_STORAGE_CLASS (def_symbol_in_progress))
*************** obj_coff_endef (ignore)
*** 2489,2495 ****
      case C_ENTAG:
      case C_UNTAG:
        SF_SET_TAG (def_symbol_in_progress);
!       /* intentional fallthrough */
      case C_FILE:
      case C_TPDEF:
        SF_SET_DEBUG (def_symbol_in_progress);
--- 2474,2481 ----
      case C_ENTAG:
      case C_UNTAG:
        SF_SET_TAG (def_symbol_in_progress);
!       /* Intentional fallthrough.  */
! 
      case C_FILE:
      case C_TPDEF:
        SF_SET_DEBUG (def_symbol_in_progress);
*************** obj_coff_endef (ignore)
*** 2497,2516 ****
        break;
  
      case C_EFCN:
!       SF_SET_LOCAL (def_symbol_in_progress);  /* Do not emit this symbol.  */
!       /* intentional fallthrough */
      case C_BLOCK:
!       SF_SET_PROCESS (def_symbol_in_progress);        /* Will need processing 
before writing */
!       /* intentional fallthrough */
      case C_FCN:
        S_SET_SEGMENT (def_symbol_in_progress, SEG_E0);
  
        if (strcmp (S_GET_NAME (def_symbol_in_progress), ".bf") == 0)
        {                       /* .bf */
          if (function_lineoff < 0)
-           {
              fprintf (stderr, _("`.bf' symbol without preceding function\n"));
!           }                   /* missing function symbol */
          SA_GET_SYM_LNNOPTR (last_line_symbol) = function_lineoff;
  
          SF_SET_PROCESS (last_line_symbol);
--- 2483,2505 ----
        break;
  
      case C_EFCN:
!       /* Do not emit this symbol.  */
!       SF_SET_LOCAL (def_symbol_in_progress);
!       /* Intentional fallthrough. */
!       
      case C_BLOCK:
!       /* Will need processing before writing.  */
!       SF_SET_PROCESS (def_symbol_in_progress);
!       /* Intentional fallthrough.  */
! 
      case C_FCN:
        S_SET_SEGMENT (def_symbol_in_progress, SEG_E0);
  
        if (strcmp (S_GET_NAME (def_symbol_in_progress), ".bf") == 0)
        {                       /* .bf */
          if (function_lineoff < 0)
            fprintf (stderr, _("`.bf' symbol without preceding function\n"));
! 
          SA_GET_SYM_LNNOPTR (last_line_symbol) = function_lineoff;
  
          SF_SET_PROCESS (last_line_symbol);
*************** obj_coff_endef (ignore)
*** 2518,2523 ****
--- 2507,2513 ----
          SF_SET_PROCESS (def_symbol_in_progress);
          function_lineoff = -1;
        }
+ 
        /* Value is always set to .  */
        def_symbol_in_progress->sy_frag = frag_now;
        S_SET_VALUE (def_symbol_in_progress, (valueT) frag_now_fix ());
*************** obj_coff_endef (ignore)
*** 2546,2552 ****
  #endif
      case C_STAT:
      case C_LABEL:
!       /* Valid but set somewhere else (s_comm, s_lcomm, colon) */
        break;
  
      case C_USTATIC:
--- 2536,2542 ----
  #endif
      case C_STAT:
      case C_LABEL:
!       /* Valid but set somewhere else (s_comm, s_lcomm, colon).  */
        break;
  
      case C_USTATIC:
*************** obj_coff_endef (ignore)
*** 2554,2560 ****
      case C_ULABEL:
        as_warn (_("unexpected storage class %d"), S_GET_STORAGE_CLASS 
(def_symbol_in_progress));
        break;
!     }                         /* switch on storage class */
  
    /* Now that we have built a debug symbol, try to find if we should
       merge with an existing symbol or not.  If a symbol is C_EFCN or
--- 2544,2550 ----
      case C_ULABEL:
        as_warn (_("unexpected storage class %d"), S_GET_STORAGE_CLASS 
(def_symbol_in_progress));
        break;
!     }
  
    /* Now that we have built a debug symbol, try to find if we should
       merge with an existing symbol or not.  If a symbol is C_EFCN or
*************** obj_coff_endef (ignore)
*** 2609,2624 ****
          /* For functions, and tags, and static symbols, the symbol
             *must* be where the debug symbol appears.  Move the
             existing symbol to the current place.  */
!         /* If it already is at the end of the symbol list, do nothing */
          if (def_symbol_in_progress != symbol_lastP)
            {
              symbol_remove (def_symbol_in_progress, &symbol_rootP,
                             &symbol_lastP);
              symbol_append (def_symbol_in_progress, symbol_lastP,
                             &symbol_rootP, &symbol_lastP);
!           }                   /* if not already in place */
!       }                       /* if function */
!     }                         /* normal or mergable */
  
    if (SF_GET_TAG (def_symbol_in_progress))
      {
--- 2599,2614 ----
          /* For functions, and tags, and static symbols, the symbol
             *must* be where the debug symbol appears.  Move the
             existing symbol to the current place.  */
!         /* If it already is at the end of the symbol list, do nothing.  */
          if (def_symbol_in_progress != symbol_lastP)
            {
              symbol_remove (def_symbol_in_progress, &symbol_rootP,
                             &symbol_lastP);
              symbol_append (def_symbol_in_progress, symbol_lastP,
                             &symbol_rootP, &symbol_lastP);
!           }
!       }
!     }
  
    if (SF_GET_TAG (def_symbol_in_progress))
      {
*************** obj_coff_endef (ignore)
*** 2644,2651 ****
          /* That is, if this is the first time we've seen the
             function...  */
          symbol_table_insert (def_symbol_in_progress);
!       }                       /* definition follows debug */
!     }                         /* Create the line number entry pointing to the 
function being defined */
  
    def_symbol_in_progress = NULL;
    demand_empty_rest_of_line ();
--- 2634,2641 ----
          /* That is, if this is the first time we've seen the
             function...  */
          symbol_table_insert (def_symbol_in_progress);
!       }
!     }
  
    def_symbol_in_progress = NULL;
    demand_empty_rest_of_line ();
*************** obj_coff_dim (ignore)
*** 2662,2668 ****
        as_warn (_(".dim pseudo-op used outside of .def/.endef: ignored."));
        demand_empty_rest_of_line ();
        return;
!     }                         /* if not inside .def/.endef */
  
    S_SET_NUMBER_AUXILIARY (def_symbol_in_progress, 1);
  
--- 2652,2658 ----
        as_warn (_(".dim pseudo-op used outside of .def/.endef: ignored."));
        demand_empty_rest_of_line ();
        return;
!     }
  
    S_SET_NUMBER_AUXILIARY (def_symbol_in_progress, 1);
  
*************** obj_coff_dim (ignore)
*** 2680,2686 ****
  
        default:
          as_warn (_("badly formed .dim directive ignored"));
!         /* intentional fallthrough */
        case '\n':
        case ';':
          dim_index = DIMNUM;
--- 2670,2677 ----
  
        default:
          as_warn (_("badly formed .dim directive ignored"));
!         /* Intentional fallthrough.  */
! 
        case '\n':
        case ';':
          dim_index = DIMNUM;
*************** obj_coff_line (ignore)
*** 2715,2732 ****
  #if 0 /* XXX Can we ever have line numbers going backwards?  */
        if (this_base > line_base)
  #endif
-       {
          line_base = this_base;
-       }
  
  #ifndef NO_LISTING
        {
        extern int listing;
        if (listing)
-         {
            listing_source_line ((unsigned int) line_base);
          }
-       }
  #endif
      }
  
--- 2706,2719 ----
*************** obj_coff_size (ignore)
*** 2745,2751 ****
        as_warn (_(".size pseudo-op used outside of .def/.endef ignored."));
        demand_empty_rest_of_line ();
        return;
!     }                         /* if not inside .def/.endef */
  
    S_SET_NUMBER_AUXILIARY (def_symbol_in_progress, 1);
    SA_SET_SYM_SIZE (def_symbol_in_progress, get_absolute_expression ());
--- 2732,2738 ----
        as_warn (_(".size pseudo-op used outside of .def/.endef ignored."));
        demand_empty_rest_of_line ();
        return;
!     }
  
    S_SET_NUMBER_AUXILIARY (def_symbol_in_progress, 1);
    SA_SET_SYM_SIZE (def_symbol_in_progress, get_absolute_expression ());
*************** obj_coff_scl (ignore)
*** 2761,2767 ****
        as_warn (_(".scl pseudo-op used outside of .def/.endef ignored."));
        demand_empty_rest_of_line ();
        return;
!     }                         /* if not inside .def/.endef */
  
    S_SET_STORAGE_CLASS (def_symbol_in_progress, get_absolute_expression ());
    demand_empty_rest_of_line ();
--- 2748,2754 ----
        as_warn (_(".scl pseudo-op used outside of .def/.endef ignored."));
        demand_empty_rest_of_line ();
        return;
!     }
  
    S_SET_STORAGE_CLASS (def_symbol_in_progress, get_absolute_expression ());
    demand_empty_rest_of_line ();
*************** obj_coff_tag (ignore)
*** 2793,2801 ****
    SA_SET_SYM_TAGNDX (def_symbol_in_progress,
                     (long) tag_find_or_make (symbol_name));
    if (SA_GET_SYM_TAGNDX (def_symbol_in_progress) == 0L)
-     {
        as_warn (_("tag not found for .tag %s"), symbol_name);
-     }                         /* not defined */
  
    SF_SET_TAGGED (def_symbol_in_progress);
    *input_line_pointer = name_end;
--- 2780,2786 ----
*************** obj_coff_type (ignore)
*** 2812,2826 ****
        as_warn (_(".type pseudo-op used outside of .def/.endef ignored."));
        demand_empty_rest_of_line ();
        return;
!     }                         /* if not inside .def/.endef */
  
    S_SET_DATA_TYPE (def_symbol_in_progress, get_absolute_expression ());
  
    if (ISFCN (S_GET_DATA_TYPE (def_symbol_in_progress)) &&
        S_GET_STORAGE_CLASS (def_symbol_in_progress) != C_TPDEF)
-     {
        SF_SET_FUNCTION (def_symbol_in_progress);
-     }                         /* is a function */
  
    demand_empty_rest_of_line ();
  }
--- 2797,2809 ----
        as_warn (_(".type pseudo-op used outside of .def/.endef ignored."));
        demand_empty_rest_of_line ();
        return;
!     }
  
    S_SET_DATA_TYPE (def_symbol_in_progress, get_absolute_expression ());
  
    if (ISFCN (S_GET_DATA_TYPE (def_symbol_in_progress)) &&
        S_GET_STORAGE_CLASS (def_symbol_in_progress) != C_TPDEF)
      SF_SET_FUNCTION (def_symbol_in_progress);
  
    demand_empty_rest_of_line ();
  }
*************** obj_coff_val (ignore)
*** 2834,2840 ****
        as_warn (_(".val pseudo-op used outside of .def/.endef ignored."));
        demand_empty_rest_of_line ();
        return;
!     }                         /* if not inside .def/.endef */
  
    if (is_name_beginner (*input_line_pointer))
      {
--- 2817,2823 ----
        as_warn (_(".val pseudo-op used outside of .def/.endef ignored."));
        demand_empty_rest_of_line ();
        return;
!     }
  
    if (is_name_beginner (*input_line_pointer))
      {
*************** obj_coff_val (ignore)
*** 2849,2855 ****
        {
          def_symbol_in_progress->sy_frag = frag_now;
          S_SET_VALUE (def_symbol_in_progress, (valueT) frag_now_fix ());
!         /* If the .val is != from the .def (e.g. statics) */
        }
        else if (strcmp (S_GET_NAME (def_symbol_in_progress), symbol_name))
        {
--- 2832,2838 ----
        {
          def_symbol_in_progress->sy_frag = frag_now;
          S_SET_VALUE (def_symbol_in_progress, (valueT) frag_now_fix ());
!         /* If the .val is != from the .def (e.g. statics).  */
        }
        else if (strcmp (S_GET_NAME (def_symbol_in_progress), symbol_name))
        {
*************** coff_obj_read_begin_hook ()
*** 2918,2930 ****
  }
  
  /* This function runs through the symbol table and puts all the
!    externals onto another chain */
  
  /* The chain of globals.  */
  symbolS *symbol_globalP;
  symbolS *symbol_global_lastP;
  
! /* The chain of externals */
  symbolS *symbol_externP;
  symbolS *symbol_extern_lastP;
  
--- 2901,2913 ----
  }
  
  /* This function runs through the symbol table and puts all the
!    externals onto another chain.  */
  
  /* The chain of globals.  */
  symbolS *symbol_globalP;
  symbolS *symbol_global_lastP;
  
! /* The chain of externals.  */
  symbolS *symbol_externP;
  symbolS *symbol_extern_lastP;
  
*************** yank_symbols ()
*** 2961,2967 ****
  
        if (!SF_GET_DEBUG (symbolP))
        {
!         /* Debug symbols do not need all this rubbish */
          symbolS *real_symbolP;
  
          /* L* and C_EFCN symbols never merge.  */
--- 2944,2950 ----
  
        if (!SF_GET_DEBUG (symbolP))
        {
!         /* Debug symbols do not need all this rubbish.  */
          symbolS *real_symbolP;
  
          /* L* and C_EFCN symbols never merge.  */
*************** yank_symbols ()
*** 2980,2999 ****
                 list.) Because some pointers refer to the real symbol
                 whereas no pointers refer to the debug symbol.  */
              c_symbol_merge (symbolP, real_symbolP);
!             /* Replace the current symbol by the real one */
              /* The symbols will never be the last or the first
                 because : 1st symbol is .file and 3 last symbols are
!                .text, .data, .bss */
              symbol_remove (real_symbolP, &symbol_rootP, &symbol_lastP);
              symbol_insert (real_symbolP, symbolP, &symbol_rootP, 
&symbol_lastP);
              symbol_remove (symbolP, &symbol_rootP, &symbol_lastP);
              symbolP = real_symbolP;
!           }                   /* if not local but dup'd */
  
          if (flag_readonly_data_in_text && (S_GET_SEGMENT (symbolP) == SEG_E1))
-           {
              S_SET_SEGMENT (symbolP, SEG_E0);
-           }                   /* push data into text */
  
          resolve_symbol_value (symbolP);
  
--- 2963,2980 ----
                 list.) Because some pointers refer to the real symbol
                 whereas no pointers refer to the debug symbol.  */
              c_symbol_merge (symbolP, real_symbolP);
!             /* Replace the current symbol by the real one.  */
              /* The symbols will never be the last or the first
                 because : 1st symbol is .file and 3 last symbols are
!                .text, .data, .bss.  */
              symbol_remove (real_symbolP, &symbol_rootP, &symbol_lastP);
              symbol_insert (real_symbolP, symbolP, &symbol_rootP, 
&symbol_lastP);
              symbol_remove (symbolP, &symbol_rootP, &symbol_lastP);
              symbolP = real_symbolP;
!           }
  
          if (flag_readonly_data_in_text && (S_GET_SEGMENT (symbolP) == SEG_E1))
            S_SET_SEGMENT (symbolP, SEG_E0);
  
          resolve_symbol_value (symbolP);
  
*************** yank_symbols ()
*** 3003,3019 ****
                {
                  S_SET_EXTERNAL (symbolP);
                }
              else if (S_GET_SEGMENT (symbolP) == SEG_E0)
-               {
                  S_SET_STORAGE_CLASS (symbolP, C_LABEL);
!               }
              else
-               {
                  S_SET_STORAGE_CLASS (symbolP, C_STAT);
                }
-           }
  
!         /* Mainly to speed up if not -g */
          if (SF_GET_PROCESS (symbolP))
            {
              /* Handle the nested blocks auxiliary info.  */
--- 2984,2998 ----
                {
                  S_SET_EXTERNAL (symbolP);
                }
+ 
              else if (S_GET_SEGMENT (symbolP) == SEG_E0)
                S_SET_STORAGE_CLASS (symbolP, C_LABEL);
! 
              else
                S_SET_STORAGE_CLASS (symbolP, C_STAT);
            }
  
!         /* Mainly to speed up if not -g.  */
          if (SF_GET_PROCESS (symbolP))
            {
              /* Handle the nested blocks auxiliary info.  */
*************** yank_symbols ()
*** 3022,3029 ****
                  if (!strcmp (S_GET_NAME (symbolP), ".bb"))
                    stack_push (block_stack, (char *) &symbolP);
                  else
!                   {           /* .eb */
!                     register symbolS *begin_symbolP;
                      begin_symbolP = *(symbolS **) stack_pop (block_stack);
                      if (begin_symbolP == (symbolS *) 0)
                        as_warn (_("mismatched .eb"));
--- 3001,3010 ----
                  if (!strcmp (S_GET_NAME (symbolP), ".bb"))
                    stack_push (block_stack, (char *) &symbolP);
                  else
!                   {
!                     /* .eb */
!                     symbolS *begin_symbolP;
! 
                      begin_symbolP = *(symbolS **) stack_pop (block_stack);
                      if (begin_symbolP == (symbolS *) 0)
                        as_warn (_("mismatched .eb"));
*************** yank_symbols ()
*** 3041,3053 ****
                  last_functionP = symbolP;
  
                  if (S_GET_NUMBER_AUXILIARY (symbolP) < 1)
-                   {
                      S_SET_NUMBER_AUXILIARY (symbolP, 1);
-                   }           /* make it at least 1 */
  
                  /* Clobber possible stale .dim information.  */
  #if 0
!                 /* Iffed out by steve - this fries the lnnoptr info too */
                  bzero 
(symbolP->sy_symbol.ost_auxent[0].x_sym.x_fcnary.x_ary.x_dimen,
                         sizeof 
(symbolP->sy_symbol.ost_auxent[0].x_sym.x_fcnary.x_ary.x_dimen));
  #endif
--- 3022,3032 ----
                  last_functionP = symbolP;
  
                  if (S_GET_NUMBER_AUXILIARY (symbolP) < 1)
                    S_SET_NUMBER_AUXILIARY (symbolP, 1);
  
                  /* Clobber possible stale .dim information.  */
  #if 0
!                 /* Iffed out by steve - this fries the lnnoptr info too.  */
                  bzero 
(symbolP->sy_symbol.ost_auxent[0].x_sym.x_fcnary.x_ary.x_dimen,
                         sizeof 
(symbolP->sy_symbol.ost_auxent[0].x_sym.x_fcnary.x_ary.x_dimen));
  #endif
*************** yank_symbols ()
*** 3084,3096 ****
        }
        else if (S_GET_STORAGE_CLASS (symbolP) == C_EOS)
        {
!         /* +2 take in account the current symbol */
          SA_SET_SYM_ENDNDX (last_tagP, symbol_number + 2);
        }
        else if (S_GET_STORAGE_CLASS (symbolP) == C_FILE)
        {
          /* If the filename was too long to fit in the
!            auxent, put it in the string table */
          if (SA_GET_FILE_FNAME_ZEROS (symbolP) == 0
              && SA_GET_FILE_FNAME_OFFSET (symbolP) != 0)
            {
--- 3063,3075 ----
        }
        else if (S_GET_STORAGE_CLASS (symbolP) == C_EOS)
        {
!         /* +2 take in account the current symbol.  */
          SA_SET_SYM_ENDNDX (last_tagP, symbol_number + 2);
        }
        else if (S_GET_STORAGE_CLASS (symbolP) == C_FILE)
        {
          /* If the filename was too long to fit in the
!            auxent, put it in the string table.  */
          if (SA_GET_FILE_FNAME_ZEROS (symbolP) == 0
              && SA_GET_FILE_FNAME_OFFSET (symbolP) != 0)
            {
*************** yank_symbols ()
*** 3102,3109 ****
            {
              S_SET_VALUE (symbolP, last_file_symno);
              last_file_symno = symbol_number;
!           }                   /* no one points at the first .file symbol */
!       }                       /* if debug or tag or eos or file */
  
  #ifdef tc_frob_coff_symbol
        tc_frob_coff_symbol (symbolP);
--- 3081,3088 ----
            {
              S_SET_VALUE (symbolP, last_file_symno);
              last_file_symno = symbol_number;
!           }
!       }
  
  #ifdef tc_frob_coff_symbol
        tc_frob_coff_symbol (symbolP);
*************** yank_symbols ()
*** 3122,3129 ****
  
        if (SF_GET_LOCAL (symbolP))
        {
!         /* remove C_EFCN and LOCAL (L...) symbols */
!         /* next pointer remains valid */
          symbol_remove (symbolP, &symbol_rootP, &symbol_lastP);
  
        }
--- 3101,3108 ----
  
        if (SF_GET_LOCAL (symbolP))
        {
!         /* Remove C_EFCN and LOCAL (L...) symbols.  */
!         /* Next pointer remains valid.  */
          symbol_remove (symbolP, &symbol_rootP, &symbol_lastP);
  
        }
*************** yank_symbols ()
*** 3143,3149 ****
  #endif
                   || S_GET_STORAGE_CLASS (symbolP) == C_WEAKEXT))
        {
!         /* if external, Remove from the list */
          symbolS *hold = symbol_previous (symbolP);
  
          symbol_remove (symbolP, &symbol_rootP, &symbol_lastP);
--- 3122,3128 ----
  #endif
                   || S_GET_STORAGE_CLASS (symbolP) == C_WEAKEXT))
        {
!         /* If external, Remove from the list.  */
          symbolS *hold = symbol_previous (symbolP);
  
          symbol_remove (symbolP, &symbol_rootP, &symbol_lastP);
*************** yank_symbols ()
*** 3165,3171 ****
          /* The O'Reilly COFF book says that defined global symbols
               come at the end of the symbol table, just before
               undefined global symbols.  */
- 
          symbol_remove (symbolP, &symbol_rootP, &symbol_lastP);
          symbol_clear_list_pointers (symbolP);
          symbol_append (symbolP, symbol_global_lastP, &symbol_globalP,
--- 3144,3149 ----
*************** yank_symbols ()
*** 3182,3195 ****
          else
            {
              symbolP->sy_name_offset = 0;
!           }                   /* fix "long" names */
  
          symbolP->sy_number = symbol_number;
          symbol_number += 1 + S_GET_NUMBER_AUXILIARY (symbolP);
!       }                       /* if local symbol */
!     }                         /* traverse the symbol list */
!   return symbol_number;
  
  }
  
  static unsigned int
--- 3160,3173 ----
          else
            {
              symbolP->sy_name_offset = 0;
!           }
  
          symbolP->sy_number = symbol_number;
          symbol_number += 1 + S_GET_NUMBER_AUXILIARY (symbolP);
!       }
!     }
  
+   return symbol_number;
  }
  
  static unsigned int
*************** glue_symbols (head, tail)
*** 3203,3213 ****
      {
        symbolS *tmp = *head;
  
!       /* append */
        symbol_remove (tmp, head, tail);
        symbol_append (tmp, symbol_lastP, &symbol_rootP, &symbol_lastP);
  
!       /* and process */
        if (SF_GET_STRING (tmp))
        {
          tmp->sy_name_offset = string_byte_count;
--- 3181,3191 ----
      {
        symbolS *tmp = *head;
  
!       /* Append.  */
        symbol_remove (tmp, head, tail);
        symbol_append (tmp, symbol_lastP, &symbol_rootP, &symbol_lastP);
  
!       /* Process.  */
        if (SF_GET_STRING (tmp))
        {
          tmp->sy_name_offset = string_byte_count;
*************** glue_symbols (head, tail)
*** 3215,3226 ****
        }
        else
        {
          tmp->sy_name_offset = 0;
!       }                       /* fix "long" names */
  
        tmp->sy_number = symbol_number;
        symbol_number += 1 + S_GET_NUMBER_AUXILIARY (tmp);
!     }                         /* append the entire extern chain */
  
    return symbol_number;
  }
--- 3193,3205 ----
        }
        else
        {
+         /* Fix "long" names.  */
          tmp->sy_name_offset = 0;
!       }
  
        tmp->sy_number = symbol_number;
        symbol_number += 1 + S_GET_NUMBER_AUXILIARY (tmp);
!     }
  
    return symbol_number;
  }
*************** tie_tags ()
*** 3248,3253 ****
--- 3227,3233 ----
    return symbol_number;
  }
  
+ 
  static void
  crawl_symbols (h, abfd)
       object_headers *h;
*************** crawl_symbols (h, abfd)
*** 3255,3292 ****
  {
    unsigned int i;
  
!   /* Initialize the stack used to keep track of the matching .bb .be */
  
    block_stack = stack_init (512, sizeof (symbolS *));
  
    /* The symbol list should be ordered according to the following sequence
!    * order :
!    * . .file symbol
!    * . debug entries for functions
!    * . fake symbols for the sections, including .text .data and .bss
!    * . defined symbols
!    * . undefined symbols
!    * But this is not mandatory. The only important point is to put the
!    * undefined symbols at the end of the list.
!    */
  
    /* Is there a .file symbol ? If not insert one at the beginning.  */
    if (symbol_rootP == NULL
        || S_GET_STORAGE_CLASS (symbol_rootP) != C_FILE)
-     {
        c_dot_file_symbol ("fake");
-     }
  
!   /*
!    * Build up static symbols for the sections, they are filled in later
!    */
  
    for (i = SEG_E0; i < SEG_LAST; i++)
      if (segment_info[i].scnhdr.s_name[0])
!       segment_info[i].dot = c_section_symbol (segment_info[i].name,
                                              i - SEG_E0 + 1);
  
!   /* Take all the externals out and put them into another chain */
    H_SET_SYMBOL_TABLE_SIZE (h, yank_symbols ());
    /* Take the externals and glue them onto the end.*/
    H_SET_SYMBOL_TABLE_SIZE (h,
--- 3235,3267 ----
  {
    unsigned int i;
  
!   /* Initialize the stack used to keep track of the matching .bb .be.  */
  
    block_stack = stack_init (512, sizeof (symbolS *));
  
    /* The symbol list should be ordered according to the following sequence
!      order :
!      . .file symbol
!      . debug entries for functions
!      . fake symbols for the sections, including .text .data and .bss
!      . defined symbols
!      . undefined symbols
!      But this is not mandatory. The only important point is to put the
!      undefined symbols at the end of the list.  */
  
    /* Is there a .file symbol ? If not insert one at the beginning.  */
    if (symbol_rootP == NULL
        || S_GET_STORAGE_CLASS (symbol_rootP) != C_FILE)
      c_dot_file_symbol ("fake");
  
!   /* Build up static symbols for the sections, they are filled in later.  */
  
    for (i = SEG_E0; i < SEG_LAST; i++)
      if (segment_info[i].scnhdr.s_name[0])
!       segment_info[i].dot = c_section_symbol ((char *) segment_info[i].name,
                                              i - SEG_E0 + 1);
  
!   /* Take all the externals out and put them into another chain.  */
    H_SET_SYMBOL_TABLE_SIZE (h, yank_symbols ());
    /* Take the externals and glue them onto the end.  */
    H_SET_SYMBOL_TABLE_SIZE (h,
*************** crawl_symbols (h, abfd)
*** 3303,3311 ****
    know (symbol_extern_lastP == NULL);
  }
  
! /*
!  * Find strings by crawling along symbol table chain.
!  */
  
  void
  w_strings (where)
--- 3278,3284 ----
    know (symbol_extern_lastP == NULL);
  }
  
! /* Find strings by crawling along symbol table chain.  */
  
  void
  w_strings (where)
*************** w_strings (where)
*** 3314,3320 ****
    symbolS *symbolP;
    struct filename_list *filename_list_scan = filename_list_head;
  
!   /* Gotta do md_ byte-ordering stuff for string_byte_count first - KWK */
    md_number_to_chars (where, (valueT) string_byte_count, 4);
    where += 4;
  
--- 3287,3293 ----
    symbolS *symbolP;
    struct filename_list *filename_list_scan = filename_list_head;
  
!   /* Gotta do md_ byte-ordering stuff for string_byte_count first - KWK.  */
    md_number_to_chars (where, (valueT) string_byte_count, 4);
    where += 4;
  
*************** do_linenos_for (abfd, h, file_cursor)
*** 3386,3392 ****
          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;
--- 3359,3365 ----
          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;
*************** do_linenos_for (abfd, h, file_cursor)
*** 3401,3413 ****
                      ((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;
--- 3374,3383 ----
*************** do_linenos_for (abfd, h, file_cursor)
*** 3418,3429 ****
          *file_cursor += s->scnhdr.s_nlnno * LINESZ;
        }
      }
    H_SET_LINENO_SIZE (h, *file_cursor - start);
  }
  
  /* Now we run through the list of frag chains in a segment and
     make all the subsegment frags appear at the end of the
!    list, as if the seg 0 was extra long */
  
  static void
  remove_subsegs ()
--- 3388,3400 ----
          *file_cursor += s->scnhdr.s_nlnno * LINESZ;
        }
      }
+ 
    H_SET_LINENO_SIZE (h, *file_cursor - start);
  }
  
  /* Now we run through the list of frag chains in a segment and
     make all the subsegment frags appear at the end of the
!    list, as if the seg 0 was extra long.  */
  
  static void
  remove_subsegs ()
*************** remove_subsegs ()
*** 3448,3453 ****
--- 3419,3425 ----
  
  unsigned long machine;
  int coff_flags;
+ 
  extern void
  write_object_file ()
  {
*************** write_object_file ()
*** 3506,3514 ****
    remove_subsegs ();
  
    for (i = SEG_E0; i < SEG_UNKNOWN; i++)
-     {
        relax_segment (segment_info[i].frchainP->frch_root, i);
-     }
  
    /* Relaxation has completed.  Freeze all syms.  */
    finalize_syms = 1;
--- 3478,3484 ----
*************** write_object_file ()
*** 3562,3568 ****
        H_SET_BSS_SIZE (&headers, size);
      }
  
!   /* Turn the gas native symbol table shape into a coff symbol table */
    crawl_symbols (&headers, abfd);
  
    if (string_byte_count == 4)
--- 3532,3538 ----
        H_SET_BSS_SIZE (&headers, size);
      }
  
!   /* Turn the gas native symbol table shape into a coff symbol table.  */
    crawl_symbols (&headers, abfd);
  
    if (string_byte_count == 4)
*************** write_object_file ()
*** 3596,3603 ****
  
    bfd_seek (abfd, (file_ptr) file_cursor, 0);
  
!   /* Plant the data */
! 
    fill_section (abfd, &headers, &file_cursor);
  
    do_relocs_for (abfd, &headers, &file_cursor);
--- 3566,3572 ----
  
    bfd_seek (abfd, (file_ptr) file_cursor, 0);
  
!   /* Plant the data.  */
    fill_section (abfd, &headers, &file_cursor);
  
    do_relocs_for (abfd, &headers, &file_cursor);
*************** obj_coff_add_segment (name)
*** 3692,3719 ****
    return (segT) i;
  }
  
! /*
!  * implement the .section pseudo op:
!  *    .section name {, "flags"}
!  *                ^         ^
!  *                |         +--- optional flags: 'b' for bss
!  *                |                              'i' for info
!  *                +-- section name               'l' for lib
!  *                                               'n' for noload
!  *                                               'o' for over
!  *                                               'w' for data
!  *                                             'd' (apparently m88k for data)
!  *                                               'x' for text
!  *                                             'r' for read-only data
!  * But if the argument is not a quoted string, treat it as a
!  * subsegment number.
!  */
  
  void
  obj_coff_section (ignore)
       int ignore ATTRIBUTE_UNUSED;
  {
!   /* Strip out the section name */
    char *section_name, *name;
    char c;
    unsigned int exp;
--- 3661,3686 ----
    return (segT) i;
  }
  
! /* Implement the .section pseudo op:
!       .section name {, "flags"}
!                   ^         ^
!                   |         +--- optional flags: 'b' for bss
!                   |                              'i' for info
!                   +-- section name               'l' for lib
!                                                  'n' for noload
!                                                  'o' for over
!                                                  'w' for data
!                                                'd' (apparently m88k for data)
!                                                  'x' for text
!                                                'r' for read-only data
!    But if the argument is not a quoted string, treat it as a
!    subsegment number.  */
  
  void
  obj_coff_section (ignore)
       int ignore ATTRIBUTE_UNUSED;
  {
!   /* Strip out the section name.  */
    char *section_name, *name;
    char c;
    unsigned int exp;
*************** static void
*** 3810,3820 ****
  obj_coff_ident (ignore)
       int ignore ATTRIBUTE_UNUSED;
  {
!   segT current_seg = now_seg;         /* save current seg     */
    subsegT current_subseg = now_subseg;
!   subseg_new (".comment", 0);         /* .comment seg         */
!   stringer (1);                               /* read string          */
!   subseg_set (current_seg, current_subseg);   /* restore current seg  */
  }
  
  void
--- 3777,3788 ----
  obj_coff_ident (ignore)
       int ignore ATTRIBUTE_UNUSED;
  {
!   segT current_seg = now_seg;         /* Save current seg.  */
    subsegT current_subseg = now_subseg;
! 
!   subseg_new (".comment", 0);         /* .comment seg.  */
!   stringer (1);                               /* Read string.  */
!   subseg_set (current_seg, current_subseg);   /* Restore current seg.  */
  }
  
  void
*************** c_symbol_merge (debug, normal)
*** 3826,3845 ****
    S_SET_STORAGE_CLASS (normal, S_GET_STORAGE_CLASS (debug));
  
    if (S_GET_NUMBER_AUXILIARY (debug) > S_GET_NUMBER_AUXILIARY (normal))
-     {
        S_SET_NUMBER_AUXILIARY (normal, S_GET_NUMBER_AUXILIARY (debug));
-     }                         /* take the most we have */
  
    if (S_GET_NUMBER_AUXILIARY (debug) > 0)
-     {
        memcpy ((char *) &normal->sy_symbol.ost_auxent[0],
              (char *) &debug->sy_symbol.ost_auxent[0],
              (unsigned int) (S_GET_NUMBER_AUXILIARY (debug) * AUXESZ));
-     }                         /* Move all the auxiliary information */
  
    /* Move the debug flags.  */
    SF_SET_DEBUG_FIELD (normal, SF_GET_DEBUG_FIELD (debug));
! }                             /* c_symbol_merge() */
  
  static int
  c_line_new (symbol, paddr, line_number, frag)
--- 3794,3809 ----
    S_SET_STORAGE_CLASS (normal, S_GET_STORAGE_CLASS (debug));
  
    if (S_GET_NUMBER_AUXILIARY (debug) > S_GET_NUMBER_AUXILIARY (normal))
      S_SET_NUMBER_AUXILIARY (normal, S_GET_NUMBER_AUXILIARY (debug));
  
    if (S_GET_NUMBER_AUXILIARY (debug) > 0)
      memcpy ((char *) &normal->sy_symbol.ost_auxent[0],
            (char *) &debug->sy_symbol.ost_auxent[0],
            (unsigned int) (S_GET_NUMBER_AUXILIARY (debug) * AUXESZ));
  
    /* Move the debug flags.  */
    SF_SET_DEBUG_FIELD (normal, SF_GET_DEBUG_FIELD (debug));
! }
  
  static int
  c_line_new (symbol, paddr, line_number, frag)
*************** c_line_new (symbol, paddr, line_number, 
*** 3868,3880 ****
    new_line->next = (struct lineno_list *) NULL;
  
    if (s->lineno_list_head == (struct lineno_list *) NULL)
-     {
        s->lineno_list_head = new_line;
-     }
    else
-     {
        s->lineno_list_tail->next = new_line;
!     }
    s->lineno_list_tail = new_line;
    return LINESZ * s->scnhdr.s_nlnno++;
  }
--- 3832,3841 ----
    new_line->next = (struct lineno_list *) NULL;
  
    if (s->lineno_list_head == (struct lineno_list *) NULL)
      s->lineno_list_head = new_line;
    else
      s->lineno_list_tail->next = new_line;
! 
    s->lineno_list_tail = new_line;
    return LINESZ * s->scnhdr.s_nlnno++;
  }
*************** c_dot_file_symbol (filename)
*** 3922,3950 ****
    {
      extern int listing;
      if (listing)
-       {
        listing_source_file (filename);
        }
- 
-   }
- 
  #endif
    SF_SET_DEBUG (symbolP);
    S_SET_VALUE (symbolP, (valueT) previous_file_symbol);
  
    previous_file_symbol = symbolP;
  
!   /* Make sure that the symbol is first on the symbol chain */
    if (symbol_rootP != symbolP)
      {
        symbol_remove (symbolP, &symbol_rootP, &symbol_lastP);
        symbol_insert (symbolP, symbol_rootP, &symbol_rootP, &symbol_lastP);
      }
! }                             /* c_dot_file_symbol() */
  
! /*
!  * Build a 'section static' symbol.
!  */
  
  symbolS *
  c_section_symbol (name, idx)
--- 3883,3905 ----
    {
      extern int listing;
      if (listing)
        listing_source_file (filename);
    }
  #endif
    SF_SET_DEBUG (symbolP);
    S_SET_VALUE (symbolP, (valueT) previous_file_symbol);
  
    previous_file_symbol = symbolP;
  
!   /* Make sure that the symbol is first on the symbol chain.  */
    if (symbol_rootP != symbolP)
      {
        symbol_remove (symbolP, &symbol_rootP, &symbol_lastP);
        symbol_insert (symbolP, symbol_rootP, &symbol_rootP, &symbol_lastP);
      }
! }
  
! /* Build a 'section static' symbol.  */
  
  symbolS *
  c_section_symbol (name, idx)
*************** c_section_symbol (name, idx)
*** 4004,4010 ****
  #endif /* TE_PE */
  
    return symbolP;
! }                             /* c_section_symbol() */
  
  static void
  w_symbols (abfd, where, symbol_rootP)
--- 3959,3965 ----
  #endif /* TE_PE */
  
    return symbolP;
! }
  
  static void
  w_symbols (abfd, where, symbol_rootP)
*************** w_symbols (abfd, where, symbol_rootP)
*** 4015,4021 ****
    symbolS *symbolP;
    unsigned int i;
  
!   /* First fill in those values we have only just worked out */
    for (i = SEG_E0; i < SEG_LAST; i++)
      {
        symbolP = segment_info[i].dot;
--- 3970,3976 ----
    symbolS *symbolP;
    unsigned int i;
  
!   /* First fill in those values we have only just worked out.  */
    for (i = SEG_E0; i < SEG_LAST; i++)
      {
        symbolP = segment_info[i].dot;
*************** w_symbols (abfd, where, symbol_rootP)
*** 4027,4049 ****
        }
      }
  
!   /*
!      * Emit all symbols left in the symbol chain.
!      */
    for (symbolP = symbol_rootP; symbolP; symbolP = symbol_next (symbolP))
      {
        /* Used to save the offset of the name. It is used to point
               to the string in memory but must be a file offset.  */
!       register char *temp;
  
        /* We can't fix the lnnoptr field in yank_symbols with the other
           adjustments, because we have to wait until we know where they
           go in the file.  */
        if (SF_GET_ADJ_LNNOPTR (symbolP))
-       {
          SA_GET_SYM_LNNOPTR (symbolP) +=
            segment_info[S_GET_SEGMENT (symbolP)].scnhdr.s_lnnoptr;
-       }
  
        tc_coff_symbol_emit_hook (symbolP);
  
--- 3982,4000 ----
        }
      }
  
!   /* Emit all symbols left in the symbol chain.  */
    for (symbolP = symbol_rootP; symbolP; symbolP = symbol_next (symbolP))
      {
        /* Used to save the offset of the name. It is used to point
         to the string in memory but must be a file offset.  */
!       char *temp;
  
        /* We can't fix the lnnoptr field in yank_symbols with the other
           adjustments, because we have to wait until we know where they
           go in the file.  */
        if (SF_GET_ADJ_LNNOPTR (symbolP))
        SA_GET_SYM_LNNOPTR (symbolP) +=
          segment_info[S_GET_SEGMENT (symbolP)].scnhdr.s_lnnoptr;
  
        tc_coff_symbol_emit_hook (symbolP);
  
*************** w_symbols (abfd, where, symbol_rootP)
*** 4061,4068 ****
        where = symbol_to_chars (abfd, where, symbolP);
        S_SET_NAME (symbolP, temp);
      }
! 
! }                             /* w_symbols() */
  
  static void
  obj_coff_lcomm (ignore)
--- 4012,4018 ----
        where = symbol_to_chars (abfd, where, symbolP);
        S_SET_NAME (symbolP, temp);
      }
! }
  
  static void
  obj_coff_lcomm (ignore)
*************** obj_coff_lcomm (ignore)
*** 4112,4118 ****
        if (! need_pass_2)
        {
          char *p;
!         segT current_seg = now_seg;   /* save current seg     */
          subsegT current_subseg = now_subseg;
  
          subseg_set (SEG_E2, 1);
--- 4062,4068 ----
        if (! need_pass_2)
        {
          char *p;
!         segT current_seg = now_seg;   /* Save current seg.  */
          subsegT current_subseg = now_subseg;
  
          subseg_set (SEG_E2, 1);
*************** obj_coff_lcomm (ignore)
*** 4120,4126 ****
          p = frag_var(rs_org, 1, 1, (relax_substateT)0, symbolP,
                       (offsetT) temp, (char *) 0);
          *p = 0;
!         subseg_set (current_seg, current_subseg); /* restore current seg */
          S_SET_SEGMENT (symbolP, SEG_E2);
          S_SET_STORAGE_CLASS (symbolP, C_STAT);
        }
--- 4070,4076 ----
          p = frag_var(rs_org, 1, 1, (relax_substateT)0, symbolP,
                       (offsetT) temp, (char *) 0);
          *p = 0;
!         subseg_set (current_seg, current_subseg); /* Restore current seg.  */
          S_SET_SEGMENT (symbolP, SEG_E2);
          S_SET_STORAGE_CLASS (symbolP, C_STAT);
        }
*************** fixup_mdeps (frags, h, this_segment)
*** 4139,4144 ****
--- 4089,4095 ----
       segT this_segment;
  {
    subseg_change (this_segment, 0);
+ 
    while (frags)
      {
        switch (frags->fr_type)
*************** fixup_segment (segP, this_segment_type)
*** 4177,4192 ****
       segment_info_type * segP;
       segT this_segment_type;
  {
!   register fixS * fixP;
!   register symbolS *add_symbolP;
!   register symbolS *sub_symbolP;
    long add_number;
!   register int size;
!   register char *place;
!   register long where;
!   register char pcrel;
!   register fragS *fragP;
!   register segT add_symbol_segment = absolute_section;
  
    for (fixP = segP->fix_root; fixP; fixP = fixP->fx_next)
      {
--- 4128,4143 ----
       segment_info_type * segP;
       segT this_segment_type;
  {
!   fixS * fixP;
!   symbolS *add_symbolP;
!   symbolS *sub_symbolP;
    long add_number;
!   int size;
!   char *place;
!   long where;
!   char pcrel;
!   fragS *fragP;
!   segT add_symbol_segment = absolute_section;
  
    for (fixP = segP->fix_root; fixP; fixP = fixP->fx_next)
      {
*************** fixup_segment (segP, this_segment_type)
*** 4274,4282 ****
        }
  
        if (add_symbolP)
-       {
          add_symbol_segment = S_GET_SEGMENT (add_symbolP);
-       }                       /* if there is an addend */
  
        if (sub_symbolP)
        {
--- 4225,4231 ----
*************** fixup_segment (segP, this_segment_type)
*** 4307,4313 ****
                }               /* not absolute */
  
              /* if sub_symbol is in the same segment that add_symbol
!                and add_symbol is either in DATA, TEXT, BSS or ABSOLUTE */
            }
          else if (S_GET_SEGMENT (sub_symbolP) == add_symbol_segment
                   && SEG_NORMAL (add_symbol_segment))
--- 4256,4262 ----
                }               /* not absolute */
  
              /* if sub_symbol is in the same segment that add_symbol
!                and add_symbol is either in DATA, TEXT, BSS or ABSOLUTE.  */
            }
          else if (S_GET_SEGMENT (sub_symbolP) == add_symbol_segment
                   && SEG_NORMAL (add_symbol_segment))
*************** fixup_segment (segP, this_segment_type)
*** 4319,4328 ****
              /* Makes no sense to use the difference of 2 arbitrary symbols
                 as the target of a call instruction.  */
              if (fixP->fx_tcbit)
-               {
                  as_bad_where (fixP->fx_file, fixP->fx_line,
                                _("callj to difference of 2 symbols"));
-               }
  #endif /* TC_I960 */
              add_number += S_GET_VALUE (add_symbolP) -
                S_GET_VALUE (sub_symbolP);
--- 4268,4275 ----
*************** fixup_segment (segP, this_segment_type)
*** 4345,4353 ****
              know (!(S_IS_EXTERNAL (sub_symbolP) && (S_GET_SEGMENT 
(sub_symbolP) == absolute_section)));
  
              if ((S_GET_SEGMENT (sub_symbolP) == absolute_section))
-               {
                  add_number -= S_GET_VALUE (sub_symbolP);
!               }
  #ifdef DIFF_EXPR_OK
              else if (S_GET_SEGMENT (sub_symbolP) == this_segment_type
  #if 0 /* Okay for 68k, at least...  */
--- 4292,4299 ----
              know (!(S_IS_EXTERNAL (sub_symbolP) && (S_GET_SEGMENT 
(sub_symbolP) == absolute_section)));
  
              if ((S_GET_SEGMENT (sub_symbolP) == absolute_section))
                add_number -= S_GET_VALUE (sub_symbolP);
! 
  #ifdef DIFF_EXPR_OK
              else if (S_GET_SEGMENT (sub_symbolP) == this_segment_type
  #if 0 /* Okay for 68k, at least...  */
*************** fixup_segment (segP, this_segment_type)
*** 4371,4395 ****
                                segment_name (S_GET_SEGMENT (sub_symbolP)),
                                S_GET_NAME (sub_symbolP),
                                (long) (fragP->fr_address + where));
-               }               /* if absolute */
            }
!       }                       /* if sub_symbolP */
  
        if (add_symbolP)
        {
          if (add_symbol_segment == this_segment_type && pcrel)
            {
!             /*
!              * This fixup was made when the symbol's segment was
!              * SEG_UNKNOWN, but it is now in the local segment.
!              * So we know how to do the address without relocation.
!              */
  #ifdef TC_I960
              /* reloc_callj() may replace a 'call' with a 'calls' or a 'bal',
!              * in which cases it modifies *fixP as appropriate.  In the case
!              * of a 'calls', no further work is required, and *fixP has been
!              * set up to make the rest of the code below a no-op.
!              */
              reloc_callj (fixP);
  #endif /* TC_I960 */
  
--- 4317,4338 ----
                                segment_name (S_GET_SEGMENT (sub_symbolP)),
                                S_GET_NAME (sub_symbolP),
                                (long) (fragP->fr_address + where));
                }
!           }
!       }
  
        if (add_symbolP)
        {
          if (add_symbol_segment == this_segment_type && pcrel)
            {
!             /* This fixup was made when the symbol's segment was
!                SEG_UNKNOWN, but it is now in the local segment.
!                So we know how to do the address without relocation.  */
  #ifdef TC_I960
              /* reloc_callj() may replace a 'call' with a 'calls' or a 'bal',
!                in which cases it modifies *fixP as appropriate.  In the case
!                of a 'calls', no further work is required, and *fixP has been
!                set up to make the rest of the code below a no-op.  */
              reloc_callj (fixP);
  #endif /* TC_I960 */
  
*************** fixup_segment (segP, this_segment_type)
*** 4423,4429 ****
                {
                case absolute_section:
  #ifdef TC_I960
!                 reloc_callj (fixP);   /* See comment about reloc_callj() 
above*/
  #endif /* TC_I960 */
                  add_number += S_GET_VALUE (add_symbolP);
                  add_symbolP = NULL;
--- 4366,4373 ----
                {
                case absolute_section:
  #ifdef TC_I960
!                 /* See comment about reloc_callj() above.  */
!                 reloc_callj (fixP);
  #endif /* TC_I960 */
                  add_number += S_GET_VALUE (add_symbolP);
                  add_symbolP = NULL;
*************** fixup_segment (segP, this_segment_type)
*** 4451,4466 ****
                  if ((int) fixP->fx_bit_fixP == 13)
                    {
                      /* This is a COBR instruction.  They have only a
!                      * 13-bit displacement and are only to be used
!                      * for local branches: flag as error, don't generate
!                      * relocation.
!                      */
                      as_bad_where (fixP->fx_file, fixP->fx_line,
                                    _("can't use COBR format with external 
label"));
                      fixP->fx_addsy = NULL;
                      fixP->fx_done = 1;
                      continue;
!                   }           /* COBR */
  #endif /* TC_I960 */
  #if ((defined (TC_I386) || defined (TE_LYNX) || defined (TE_AUX)) && 
!defined(TE_PE)) || defined (COFF_COMMON_ADDEND)
                  /* 386 COFF uses a peculiar format in which the
--- 4395,4409 ----
                  if ((int) fixP->fx_bit_fixP == 13)
                    {
                      /* This is a COBR instruction.  They have only a
!                        13-bit displacement and are only to be used
!                        for local branches: flag as error, don't generate
!                        relocation.  */
                      as_bad_where (fixP->fx_file, fixP->fx_line,
                                    _("can't use COBR format with external 
label"));
                      fixP->fx_addsy = NULL;
                      fixP->fx_done = 1;
                      continue;
!                   }
  #endif /* TC_I960 */
  #if ((defined (TC_I386) || defined (TE_LYNX) || defined (TE_AUX)) && 
!defined(TE_PE)) || defined (COFF_COMMON_ADDEND)
                  /* 386 COFF uses a peculiar format in which the
*************** fixup_segment (segP, this_segment_type)
*** 4476,4484 ****
  #endif
                  break;
  
!               }               /* switch on symbol seg */
!           }                   /* if not in local seg */
!       }                       /* if there was a + symbol */
  
        if (pcrel)
        {
--- 4419,4427 ----
  #endif
                  break;
  
!               }
!           }
!       }
  
        if (pcrel)
        {
*************** fixup_segment (segP, this_segment_type)
*** 4488,4496 ****
          add_number -= md_pcrel_from (fixP);
  #endif
          if (add_symbolP == 0)
-           {
              fixP->fx_addsy = &abs_symbol;
-           }                   /* if there's an add_symbol */
  #if defined (TC_I386) || defined (TE_LYNX) || defined (TC_I960) || defined 
(TC_M68K)
          /* On the 386 we must adjust by the segment vaddr as well.
             Ian Taylor.
--- 4431,4437 ----
*************** fixup_segment (segP, this_segment_type)
*** 4510,4516 ****
  
          add_number -= segP->scnhdr.s_vaddr;
  #endif
!       }                       /* if pcrel */
  
        md_apply_fix3 (fixP, (valueT *) & add_number, this_segment_type);
  
--- 4451,4457 ----
  
          add_number -= segP->scnhdr.s_vaddr;
  #endif
!       }
  
        md_apply_fix3 (fixP, (valueT *) & add_number, this_segment_type);
  
*************** fixup_segment (segP, this_segment_type)
*** 4549,4557 ****
                          (long) add_number,
                          (unsigned long) (fragP->fr_address + where));
  #endif
!       }                       /* not a bit fix */
!     }                         /* For each fixS in this segment.  */
! }                             /* fixup_segment() */
  
  #endif
  
--- 4490,4498 ----
                          (long) add_number,
                          (unsigned long) (fragP->fr_address + where));
  #endif
!       }
!     }
! }
  
  #endif
  




reply via email to

[Prev in Thread] Current Thread [Next in Thread]