* elfcode.h (elf_swap_ehdr_out): Handle e_phnum > 0xffff.
[deliverable/binutils-gdb.git] / bfd / coffgen.c
index a52f75a75786a6da4f57144e00dfbba77ac55a4b..63053a1dec997fcda161c2364e6932bcb46103a1 100644 (file)
@@ -1,6 +1,6 @@
 /* Support for the generic parts of COFF, for BFD.
    Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-   2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009
+   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
    Free Software Foundation, Inc.
    Written by Cygnus Support.
 
@@ -90,7 +90,8 @@ make_a_section_from_file (bfd *abfd,
              strindex does not run us past the end, but right now we
              don't know the length of the string table.  */
          strings += strindex;
-         name = bfd_alloc (abfd, (bfd_size_type) strlen (strings) + 1);
+         name = (char *) bfd_alloc (abfd,
+                                     (bfd_size_type) strlen (strings) + 1);
          if (name == NULL)
            return FALSE;
          strcpy (name, strings);
@@ -100,7 +101,8 @@ make_a_section_from_file (bfd *abfd,
   if (name == NULL)
     {
       /* Assorted wastage to null-terminate the name, thanks AT&T! */
-      name = bfd_alloc (abfd, (bfd_size_type) sizeof (hdr->s_name) + 1);
+      name = (char *) bfd_alloc (abfd,
+                                 (bfd_size_type) sizeof (hdr->s_name) + 1);
       if (name == NULL)
        return FALSE;
       strncpy (name, (char *) &hdr->s_name[0], sizeof (hdr->s_name));
@@ -195,7 +197,7 @@ coff_real_object_p (bfd *abfd,
 
   scnhsz = bfd_coff_scnhsz (abfd);
   readsize = (bfd_size_type) nscns * scnhsz;
-  external_sections = bfd_alloc (abfd, readsize);
+  external_sections = (char *) bfd_alloc (abfd, readsize);
   if (!external_sections)
     goto fail;
 
@@ -305,20 +307,20 @@ coff_object_p (bfd *abfd)
 /* Get the BFD section from a COFF symbol section number.  */
 
 asection *
-coff_section_from_bfd_index (bfd *abfd, int index)
+coff_section_from_bfd_index (bfd *abfd, int section_index)
 {
   struct bfd_section *answer = abfd->sections;
 
-  if (index == N_ABS)
+  if (section_index == N_ABS)
     return bfd_abs_section_ptr;
-  if (index == N_UNDEF)
+  if (section_index == N_UNDEF)
     return bfd_und_section_ptr;
-  if (index == N_DEBUG)
+  if (section_index == N_DEBUG)
     return bfd_abs_section_ptr;
 
   while (answer)
     {
-      if (answer->target_index == index)
+      if (answer->target_index == section_index)
        return answer;
       answer = answer->next;
     }
@@ -437,7 +439,7 @@ _bfd_coff_read_internal_relocs (bfd *abfd,
   amt = sec->reloc_count * relsz;
   if (external_relocs == NULL)
     {
-      free_external = bfd_malloc (amt);
+      free_external = (bfd_byte *) bfd_malloc (amt);
       if (free_external == NULL)
        goto error_return;
       external_relocs = free_external;
@@ -451,7 +453,7 @@ _bfd_coff_read_internal_relocs (bfd *abfd,
     {
       amt = sec->reloc_count;
       amt *= sizeof (struct internal_reloc);
-      free_internal = bfd_malloc (amt);
+      free_internal = (struct internal_reloc *) bfd_malloc (amt);
       if (free_internal == NULL)
        goto error_return;
       internal_relocs = free_internal;
@@ -651,7 +653,7 @@ coff_renumber_symbols (bfd *bfd_ptr, int *first_undef)
     bfd_size_type amt;
 
     amt = sizeof (asymbol *) * ((bfd_size_type) symbol_count + 1);
-    newsyms = bfd_alloc (bfd_ptr, amt);
+    newsyms = (asymbol **) bfd_alloc (bfd_ptr, amt);
     if (!newsyms)
       return FALSE;
     bfd_ptr->outsymbols = newsyms;
@@ -912,7 +914,7 @@ coff_write_symbol (bfd *abfd,
 {
   unsigned int numaux = native->u.syment.n_numaux;
   int type = native->u.syment.n_type;
-  int class = native->u.syment.n_sclass;
+  int n_sclass = (int) native->u.syment.n_sclass;
   void * buf;
   bfd_size_type symesz;
 
@@ -958,7 +960,7 @@ coff_write_symbol (bfd *abfd,
        {
          bfd_coff_swap_aux_out (abfd,
                                 &((native + j + 1)->u.auxent),
-                                type, class, (int) j,
+                                type, n_sclass, (int) j,
                                 native->u.syment.n_numaux,
                                 buf);
          if (bfd_bwrite (buf, auxesz, abfd) != auxesz)
@@ -1156,7 +1158,7 @@ coff_write_symbols (bfd *abfd)
          if (coff_backend_info (abfd)->_bfd_coff_classify_symbol != NULL)
            {
              bfd_error_handler_type current_error_handler;
-             enum coff_symbol_classification class;
+             enum coff_symbol_classification sym_class;
              unsigned char *n_sclass;
 
              /* Suppress error reporting by bfd_coff_classify_symbol.
@@ -1164,9 +1166,10 @@ coff_write_symbols (bfd *abfd)
                 symbol which has no associated section and we do not have to
                 worry about this, all we need to know is that it is local.  */
              current_error_handler = bfd_set_error_handler (null_error_handler);
-             class = bfd_coff_classify_symbol (abfd, &c_symbol->native->u.syment);
+             sym_class = bfd_coff_classify_symbol (abfd,
+                                                   &c_symbol->native->u.syment);
              (void) bfd_set_error_handler (current_error_handler);
-         
+
              n_sclass = &c_symbol->native->u.syment.n_sclass;
 
              /* If the symbol class has been changed (eg objcopy/ld script/etc)
@@ -1178,10 +1181,10 @@ coff_write_symbols (bfd *abfd)
 
              if (symbol->flags & BSF_WEAK)
                *n_sclass = obj_pe (abfd) ? C_NT_WEAK : C_WEAKEXT;
-             else if (symbol->flags & BSF_LOCAL && class != COFF_SYMBOL_LOCAL)
+             else if (symbol->flags & BSF_LOCAL && sym_class != COFF_SYMBOL_LOCAL)
                *n_sclass = C_STAT;
              else if (symbol->flags & BSF_GLOBAL
-                      && (class != COFF_SYMBOL_GLOBAL
+                      && (sym_class != COFF_SYMBOL_GLOBAL
 #ifdef COFF_WITH_PE
                           || *n_sclass == C_NT_WEAK
 #endif
@@ -1390,7 +1393,7 @@ coff_pointerize_aux (bfd *abfd,
                     combined_entry_type *auxent)
 {
   unsigned int type = symbol->u.syment.n_type;
-  unsigned int class = symbol->u.syment.n_sclass;
+  unsigned int n_sclass = symbol->u.syment.n_sclass;
 
   if (coff_backend_info (abfd)->_bfd_coff_pointerize_aux_hook)
     {
@@ -1400,16 +1403,17 @@ coff_pointerize_aux (bfd *abfd,
     }
 
   /* Don't bother if this is a file or a section.  */
-  if (class == C_STAT && type == T_NULL)
+  if (n_sclass == C_STAT && type == T_NULL)
     return;
-  if (class == C_FILE)
+  if (n_sclass == C_FILE)
     return;
 
   /* Otherwise patch up.  */
 #define N_TMASK coff_data  (abfd)->local_n_tmask
 #define N_BTSHFT coff_data (abfd)->local_n_btshft
   
-  if ((ISFCN (type) || ISTAG (class) || class == C_BLOCK || class == C_FCN)
+  if ((ISFCN (type) || ISTAG (n_sclass) || n_sclass == C_BLOCK
+       || n_sclass == C_FCN)
       && auxent->u.auxent.x_sym.x_fcnary.x_fcn.x_endndx.l > 0)
     {
       auxent->u.auxent.x_sym.x_fcnary.x_fcn.x_endndx.p =
@@ -1446,7 +1450,7 @@ build_debug_section (bfd *abfd)
     }
 
   sec_size = sect->size;
-  debug_section = bfd_alloc (abfd, sec_size);
+  debug_section = (char *) bfd_alloc (abfd, sec_size);
   if (debug_section == NULL)
     return NULL;
 
@@ -1476,7 +1480,7 @@ copy_name (bfd *abfd, char *name, size_t maxlen)
     if (name[len] == '\0')
       break;
 
-  if ((newname = bfd_alloc (abfd, (bfd_size_type) len + 1)) == NULL)
+  if ((newname = (char *) bfd_alloc (abfd, (bfd_size_type) len + 1)) == NULL)
     return NULL;
 
   strncpy (newname, name, len);
@@ -1571,7 +1575,7 @@ _bfd_coff_read_string_table (bfd *abfd)
       return NULL;
     }
 
-  strings = bfd_malloc (strsize);
+  strings = (char *) bfd_malloc (strsize);
   if (strings == NULL)
     return NULL;
 
@@ -1630,7 +1634,7 @@ coff_get_normalized_symtab (bfd *abfd)
     return obj_raw_syments (abfd);
 
   size = obj_raw_syment_count (abfd) * sizeof (combined_entry_type);
-  internal = bfd_zalloc (abfd, size);
+  internal = (combined_entry_type *) bfd_zalloc (abfd, size);
   if (internal == NULL && size != 0)
     return NULL;
   internal_end = internal + obj_raw_syment_count (abfd);
@@ -1736,7 +1740,7 @@ coff_get_normalized_symtab (bfd *abfd)
                if (internal_ptr->u.syment._n._n_name[i] == '\0')
                  break;
 
-             newstring = bfd_zalloc (abfd, (bfd_size_type) (i + 1));
+             newstring = (char *) bfd_zalloc (abfd, (bfd_size_type) (i + 1));
              if (newstring == NULL)
                return NULL;
              strncpy (newstring, internal_ptr->u.syment._n._n_name, i);
@@ -1794,17 +1798,17 @@ asymbol *
 coff_make_empty_symbol (bfd *abfd)
 {
   bfd_size_type amt = sizeof (coff_symbol_type);
-  coff_symbol_type *new = bfd_zalloc (abfd, amt);
+  coff_symbol_type *new_symbol = (coff_symbol_type *) bfd_zalloc (abfd, amt);
 
-  if (new == NULL)
+  if (new_symbol == NULL)
     return NULL;
-  new->symbol.section = 0;
-  new->native = 0;
-  new->lineno = NULL;
-  new->done_lineno = FALSE;
-  new->symbol.the_bfd = abfd;
+  new_symbol->symbol.section = 0;
+  new_symbol->native = 0;
+  new_symbol->lineno = NULL;
+  new_symbol->done_lineno = FALSE;
+  new_symbol->symbol.the_bfd = abfd;
 
-  return & new->symbol;
+  return & new_symbol->symbol;
 }
 
 /* Make a debugging symbol.  */
@@ -1815,23 +1819,23 @@ coff_bfd_make_debug_symbol (bfd *abfd,
                            unsigned long sz ATTRIBUTE_UNUSED)
 {
   bfd_size_type amt = sizeof (coff_symbol_type);
-  coff_symbol_type *new = bfd_alloc (abfd, amt);
+  coff_symbol_type *new_symbol = (coff_symbol_type *) bfd_alloc (abfd, amt);
 
-  if (new == NULL)
+  if (new_symbol == NULL)
     return NULL;
   /* @@ The 10 is a guess at a plausible maximum number of aux entries
      (but shouldn't be a constant).  */
   amt = sizeof (combined_entry_type) * 10;
-  new->native = bfd_zalloc (abfd, amt);
-  if (!new->native)
+  new_symbol->native = (combined_entry_type *) bfd_zalloc (abfd, amt);
+  if (!new_symbol->native)
     return NULL;
-  new->symbol.section = bfd_abs_section_ptr;
-  new->symbol.flags = BSF_DEBUGGING;
-  new->lineno = NULL;
-  new->done_lineno = FALSE;
-  new->symbol.the_bfd = abfd;
+  new_symbol->symbol.section = bfd_abs_section_ptr;
+  new_symbol->symbol.flags = BSF_DEBUGGING;
+  new_symbol->lineno = NULL;
+  new_symbol->done_lineno = FALSE;
+  new_symbol->symbol.the_bfd = abfd;
   
-  return & new->symbol;
+  return & new_symbol->symbol;
 }
 
 void
@@ -2316,7 +2320,7 @@ coff_sizeof_headers (bfd *abfd, struct bfd_link_info *info)
 bfd_boolean
 bfd_coff_set_symbol_class (bfd *         abfd,
                           asymbol *     symbol,
-                          unsigned int  class)
+                          unsigned int  symbol_class)
 {
   coff_symbol_type * csym;
 
@@ -2336,12 +2340,12 @@ bfd_coff_set_symbol_class (bfd *         abfd,
       combined_entry_type * native;
       bfd_size_type amt = sizeof (* native);
 
-      native = bfd_zalloc (abfd, amt);
+      native = (combined_entry_type *) bfd_zalloc (abfd, amt);
       if (native == NULL)
        return FALSE;
 
       native->u.syment.n_type   = T_NULL;
-      native->u.syment.n_sclass = class;
+      native->u.syment.n_sclass = symbol_class;
 
       if (bfd_is_und_section (symbol->section))
        {
@@ -2370,7 +2374,7 @@ bfd_coff_set_symbol_class (bfd *         abfd,
       csym->native = native;
     }
   else
-    csym->native->u.syment.n_sclass = class;
+    csym->native->u.syment.n_sclass = symbol_class;
 
   return TRUE;
 }
This page took 0.028908 seconds and 4 git commands to generate.