Remove redundant test in BFD_ASSERT
[deliverable/binutils-gdb.git] / gdb / symfile.c
index f203ba0767848350199d798f16b86f6526e144da..7f2c7bd299f39020062902d212a721ba680cad97 100644 (file)
@@ -324,6 +324,32 @@ alloc_section_addr_info (size_t num_sections)
   return sap;
 }
 
+
+/* Return a freshly allocated copy of ADDRS.  The section names, if
+   any, are also freshly allocated copies of those in ADDRS.  */
+struct section_addr_info *
+copy_section_addr_info (struct section_addr_info *addrs)
+{
+  struct section_addr_info *copy
+    = alloc_section_addr_info (addrs->num_sections);
+  int i;
+
+  copy->num_sections = addrs->num_sections;
+  for (i = 0; i < addrs->num_sections; i++)
+    {
+      copy->other[i].addr = addrs->other[i].addr;
+      if (addrs->other[i].name)
+        copy->other[i].name = xstrdup (addrs->other[i].name);
+      else
+        copy->other[i].name = NULL;
+      copy->other[i].sectindex = addrs->other[i].sectindex;
+    }
+
+  return copy;
+}
+
+
+
 /* Build (allocate and populate) a section_addr_info struct from
    an existing section table. */
 
@@ -575,11 +601,11 @@ syms_from_objfile (struct objfile *objfile,
        bfd_map_over_sections (objfile->obfd, find_lowest_section,
                               &lower_sect);
       if (lower_sect == NULL)
-       warning ("no loadable sections found in added symbol-file %s",
+       warning (_("no loadable sections found in added symbol-file %s"),
                 objfile->name);
       else
        if ((bfd_get_section_flags (objfile->obfd, lower_sect) & SEC_CODE) == 0)
-         warning ("Lowest section in %s is %s at %s",
+         warning (_("Lowest section in %s is %s at %s"),
                   objfile->name,
                   bfd_section_name (objfile->obfd, lower_sect),
                   paddr (bfd_section_vma (objfile->obfd, lower_sect)));
@@ -614,7 +640,7 @@ syms_from_objfile (struct objfile *objfile,
                   }
                 else
                   {
-                    warning ("section %s not found in %s",
+                    warning (_("section %s not found in %s"),
                              addrs->other[i].name,
                              objfile->name);
                     addrs->other[i].addr = 0;
@@ -772,7 +798,7 @@ symbol_file_add_with_addrs_or_offsets (bfd *abfd, int from_tty,
   struct objfile *objfile;
   struct partial_symtab *psymtab;
   char *debugfile;
-  struct section_addr_info *orig_addrs;
+  struct section_addr_info *orig_addrs = NULL;
   struct cleanup *my_cleanups;
   const char *name = bfd_get_filename (abfd);
 
@@ -785,19 +811,15 @@ symbol_file_add_with_addrs_or_offsets (bfd *abfd, int from_tty,
       && mainline
       && from_tty
       && !query ("Load new symbol table from \"%s\"? ", name))
-    error ("Not confirmed.");
+    error (_("Not confirmed."));
 
   objfile = allocate_objfile (abfd, flags);
   discard_cleanups (my_cleanups);
 
-  orig_addrs = alloc_section_addr_info (bfd_count_sections (abfd));
-  my_cleanups = make_cleanup (xfree, orig_addrs);
   if (addrs)
     {
-      int i;
-      orig_addrs->num_sections = addrs->num_sections;
-      for (i = 0; i < addrs->num_sections; i++)
-       orig_addrs->other[i] = addrs->other[i];
+      orig_addrs = copy_section_addr_info (addrs);
+      make_cleanup_free_section_addr_info (orig_addrs);
     }
 
   /* We either created a new mapped symbol table, mapped an existing
@@ -964,7 +986,7 @@ symbol_file_clear (int from_tty)
       && from_tty
       && !query ("Discard symbol table from `%s'? ",
                 symfile_objfile->name))
-    error ("Not confirmed.");
+    error (_("Not confirmed."));
     free_all_objfiles ();
 
     /* solib descriptors may have handles to objfiles.  Since their
@@ -1158,7 +1180,7 @@ symbol_file_command (char *args, int from_tty)
          if (strcmp (*argv, "-readnow") == 0)
            flags |= OBJF_READNOW;
          else if (**argv == '-')
-           error ("unknown option `%s'", *argv);
+           error (_("unknown option `%s'"), *argv);
          else
            {
              name = *argv;
@@ -1170,7 +1192,7 @@ symbol_file_command (char *args, int from_tty)
 
       if (name == NULL)
        {
-         error ("no symbol file name was specified");
+         error (_("no symbol file name was specified"));
        }
       do_cleanups (cleanups);
     }
@@ -1251,7 +1273,7 @@ symfile_bfd_open (char *name)
     {
       close (desc);
       make_cleanup (xfree, name);
-      error ("\"%s\": can't open to read symbols: %s.", name,
+      error (_("\"%s\": can't open to read symbols: %s."), name,
             bfd_errmsg (bfd_get_error ()));
     }
   bfd_set_cacheable (sym_bfd, 1);
@@ -1263,7 +1285,7 @@ symfile_bfd_open (char *name)
          bfd).  */
       bfd_close (sym_bfd);     /* This also closes desc */
       make_cleanup (xfree, name);
-      error ("\"%s\": can't read symbols: %s.", name,
+      error (_("\"%s\": can't read symbols: %s."), name,
             bfd_errmsg (bfd_get_error ()));
     }
   return (sym_bfd);
@@ -1319,7 +1341,7 @@ find_sym_fns (struct objfile *objfile)
          return;
        }
     }
-  error ("I'm sorry, Dave, I can't do that.  Symbol format `%s' unknown.",
+  error (_("I'm sorry, Dave, I can't do that.  Symbol format `%s' unknown."),
         bfd_get_target (objfile->obfd));
 }
 \f
@@ -1429,10 +1451,10 @@ load_section_callback (bfd *abfd, asection *asec, void *data)
                    make_cleanup (xfree, check);
 
                  if (target_read_memory (lma, check, len) != 0)
-                   error ("Download verify read failed at 0x%s",
+                   error (_("Download verify read failed at 0x%s"),
                           paddr (lma));
                  if (memcmp (buffer, check, len) != 0)
-                   error ("Download verify compare failed at 0x%s",
+                   error (_("Download verify compare failed at 0x%s"),
                           paddr (lma));
                  do_cleanups (verify_cleanups);
                }
@@ -1444,7 +1466,7 @@ load_section_callback (bfd *abfd, asection *asec, void *data)
              if (quit_flag
                  || (deprecated_ui_load_progress_hook != NULL
                      && deprecated_ui_load_progress_hook (sect_name, sent)))
-               error ("Canceled the download");
+               error (_("Canceled the download"));
 
              if (deprecated_show_load_progress != NULL)
                deprecated_show_load_progress (sect_name, sent, size,
@@ -1454,7 +1476,7 @@ load_section_callback (bfd *abfd, asection *asec, void *data)
          while (sent < size);
 
          if (err != 0)
-           error ("Memory access error while loading section %s.", sect_name);
+           error (_("Memory access error while loading section %s."), sect_name);
 
          do_cleanups (old_chain);
        }
@@ -1490,7 +1512,7 @@ generic_load (char *args, int from_tty)
 
       cbdata.load_offset = strtoul (offptr, &endptr, 0);
       if (offptr == endptr)
-       error ("Invalid download offset:%s\n", offptr);
+       error (_("Invalid download offset:%s."), offptr);
       *offptr = '\0';
     }
   else
@@ -1511,7 +1533,7 @@ generic_load (char *args, int from_tty)
 
   if (!bfd_check_format (loadfile_bfd, bfd_object))
     {
-      error ("\"%s\" is not an object file: %s", filename,
+      error (_("\"%s\" is not an object file: %s"), filename,
             bfd_errmsg (bfd_get_error ()));
     }
 
@@ -1628,7 +1650,7 @@ add_symbol_file_command (char *args, int from_tty)
   dont_repeat ();
 
   if (args == NULL)
-    error ("add-symbol-file takes a file name and an address");
+    error (_("add-symbol-file takes a file name and an address"));
 
   /* Make a copy of the string that we can safely write into. */
   args = xstrdup (args);
@@ -1711,7 +1733,7 @@ add_symbol_file_command (char *args, int from_tty)
                        }
                    }
                  else
-                   error ("USAGE: add-symbol-file <filename> <textaddress> [-mapped] [-readnow] [-s <secname> <addr>]*");
+                   error (_("USAGE: add-symbol-file <filename> <textaddress> [-mapped] [-readnow] [-s <secname> <addr>]*"));
              }
          }
       argcnt++;
@@ -1720,7 +1742,7 @@ add_symbol_file_command (char *args, int from_tty)
   /* Print the prompt for the query below. And save the arguments into
      a sect_addr_info structure to be passed around to other
      functions.  We have to split this up into separate print
-     statements because local_hex_string returns a local static
+     statements because hex_string returns a local static
      string. */
 
   printf_unfiltered ("add symbol table from file \"%s\" at\n", filename);
@@ -1739,8 +1761,7 @@ add_symbol_file_command (char *args, int from_tty)
       section_addrs->other[sec_num].name = sec;
       section_addrs->other[sec_num].addr = addr;
       printf_unfiltered ("\t%s_addr = %s\n",
-                      sec,
-                      local_hex_string ((unsigned long)addr));
+                      sec, hex_string ((unsigned long)addr));
       sec_num++;
 
       /* The object's sections are initialized when a
@@ -1751,7 +1772,7 @@ add_symbol_file_command (char *args, int from_tty)
     }
 
   if (from_tty && (!query ("%s", "")))
-    error ("Not confirmed.");
+    error (_("Not confirmed."));
 
   symbol_file_add (filename, from_tty, section_addrs, 0, flags);
 
@@ -1767,7 +1788,7 @@ add_shared_symbol_files_command (char *args, int from_tty)
 #ifdef ADD_SHARED_SYMBOL_FILES
   ADD_SHARED_SYMBOL_FILES (args, from_tty);
 #else
-  error ("This command is not available in this configuration of GDB.");
+  error (_("This command is not available in this configuration of GDB."));
 #endif
 }
 \f
@@ -1837,14 +1858,14 @@ reread_symbols (void)
                 BFD without closing the descriptor.  */
              obfd_filename = bfd_get_filename (objfile->obfd);
              if (!bfd_close (objfile->obfd))
-               error ("Can't close BFD for %s: %s", objfile->name,
+               error (_("Can't close BFD for %s: %s"), objfile->name,
                       bfd_errmsg (bfd_get_error ()));
              objfile->obfd = bfd_openr (obfd_filename, gnutarget);
              if (objfile->obfd == NULL)
-               error ("Can't open %s to read symbols.", objfile->name);
+               error (_("Can't open %s to read symbols."), objfile->name);
              /* bfd_openr sets cacheable to true, which is what we want.  */
              if (!bfd_check_format (objfile->obfd, bfd_object))
-               error ("Can't read symbols from %s: %s.", objfile->name,
+               error (_("Can't read symbols from %s: %s."), objfile->name,
                       bfd_errmsg (bfd_get_error ()));
 
              /* Save the offsets, we will nuke them with the rest of the
@@ -1862,11 +1883,11 @@ reread_symbols (void)
              /* FIXME: Do we have to free a whole linked list, or is this
                 enough?  */
              if (objfile->global_psymbols.list)
-               xmfree (objfile->md, objfile->global_psymbols.list);
+               xfree (objfile->global_psymbols.list);
              memset (&objfile->global_psymbols, 0,
                      sizeof (objfile->global_psymbols));
              if (objfile->static_psymbols.list)
-               xmfree (objfile->md, objfile->static_psymbols.list);
+               xfree (objfile->static_psymbols.list);
              memset (&objfile->static_psymbols, 0,
                      sizeof (objfile->static_psymbols));
 
@@ -1887,7 +1908,7 @@ reread_symbols (void)
              objfile->free_psymtabs = NULL;
              objfile->cp_namespace_symtab = NULL;
              objfile->msymbols = NULL;
-             objfile->sym_private = NULL;
+             objfile->deprecated_sym_private = NULL;
              objfile->minimal_symbol_count = 0;
              memset (&objfile->msymbol_hash, 0,
                      sizeof (objfile->msymbol_hash));
@@ -1911,7 +1932,7 @@ reread_symbols (void)
              obstack_init (&objfile->objfile_obstack);
              if (build_objfile_section_table (objfile))
                {
-                 error ("Can't find the file sections in `%s': %s",
+                 error (_("Can't find the file sections in `%s': %s"),
                         objfile->name, bfd_errmsg (bfd_get_error ()));
                }
               terminate_minimal_symbol_table (objfile);
@@ -2077,14 +2098,14 @@ set_ext_lang_command (char *args, int from_tty)
 
   /* First arg is filename extension, starting with '.' */
   if (*cp != '.')
-    error ("'%s': Filename extension must begin with '.'", ext_args);
+    error (_("'%s': Filename extension must begin with '.'"), ext_args);
 
   /* Find end of first arg.  */
   while (*cp && !isspace (*cp))
     cp++;
 
   if (*cp == '\0')
-    error ("'%s': two arguments required -- filename extension and language",
+    error (_("'%s': two arguments required -- filename extension and language"),
           ext_args);
 
   /* Null-terminate first arg */
@@ -2095,7 +2116,7 @@ set_ext_lang_command (char *args, int from_tty)
     cp++;
 
   if (*cp == '\0')
-    error ("'%s': two arguments required -- filename extension and language",
+    error (_("'%s': two arguments required -- filename extension and language"),
           ext_args);
 
   /* Lookup the language from among those we know.  */
@@ -2164,6 +2185,10 @@ init_filename_language_table (void)
       add_filename_language (".pas", language_pascal);
       add_filename_language (".p", language_pascal);
       add_filename_language (".pp", language_pascal);
+      add_filename_language (".adb", language_ada);
+      add_filename_language (".ads", language_ada);
+      add_filename_language (".a", language_ada);
+      add_filename_language (".ada", language_ada);
     }
 }
 
@@ -2690,11 +2715,11 @@ init_psymbol_list (struct objfile *objfile, int total_symbols)
 
   if (objfile->global_psymbols.list)
     {
-      xmfree (objfile->md, objfile->global_psymbols.list);
+      xfree (objfile->global_psymbols.list);
     }
   if (objfile->static_psymbols.list)
     {
-      xmfree (objfile->md, objfile->static_psymbols.list);
+      xfree (objfile->static_psymbols.list);
     }
 
   /* Current best guess is that approximately a twentieth
@@ -3083,12 +3108,12 @@ map_overlay_command (char *args, int from_tty)
   asection *bfdsec;
 
   if (!overlay_debugging)
-    error ("\
+    error (_("\
 Overlay debugging not enabled.  Use either the 'overlay auto' or\n\
-the 'overlay manual' command.");
+the 'overlay manual' command."));
 
   if (args == 0 || *args == 0)
-    error ("Argument required: name of an overlay section");
+    error (_("Argument required: name of an overlay section"));
 
   /* First, find a section matching the user supplied argument */
   ALL_OBJSECTIONS (objfile, sec)
@@ -3119,7 +3144,7 @@ the 'overlay manual' command.");
        }
       return;
     }
-  error ("No overlay section called %s", args);
+  error (_("No overlay section called %s"), args);
 }
 
 /* Function: unmap_overlay_command
@@ -3133,23 +3158,23 @@ unmap_overlay_command (char *args, int from_tty)
   struct obj_section *sec;
 
   if (!overlay_debugging)
-    error ("\
+    error (_("\
 Overlay debugging not enabled.  Use either the 'overlay auto' or\n\
-the 'overlay manual' command.");
+the 'overlay manual' command."));
 
   if (args == 0 || *args == 0)
-    error ("Argument required: name of an overlay section");
+    error (_("Argument required: name of an overlay section"));
 
   /* First, find a section matching the user supplied argument */
   ALL_OBJSECTIONS (objfile, sec)
     if (!strcmp (bfd_section_name (objfile->obfd, sec->the_bfd_section), args))
     {
       if (!sec->ovly_mapped)
-       error ("Section %s is not mapped", args);
+       error (_("Section %s is not mapped"), args);
       sec->ovly_mapped = 0;
       return;
     }
-  error ("No overlay section called %s", args);
+  error (_("No overlay section called %s"), args);
 }
 
 /* Function: overlay_auto_command
@@ -3197,7 +3222,7 @@ overlay_load_command (char *args, int from_tty)
   if (target_overlay_update)
     (*target_overlay_update) (NULL);
   else
-    error ("This target does not know how to read its overlay state.");
+    error (_("This target does not know how to read its overlay state."));
 }
 
 /* Function: overlay_command
@@ -3318,18 +3343,18 @@ simple_read_overlay_table (void)
   novlys_msym = lookup_minimal_symbol ("_novlys", NULL, NULL);
   if (! novlys_msym)
     {
-      error ("Error reading inferior's overlay table: "
+      error (_("Error reading inferior's overlay table: "
              "couldn't find `_novlys' variable\n"
-             "in inferior.  Use `overlay manual' mode.");
+             "in inferior.  Use `overlay manual' mode."));
       return 0;
     }
 
   ovly_table_msym = lookup_minimal_symbol ("_ovly_table", NULL, NULL);
   if (! ovly_table_msym)
     {
-      error ("Error reading inferior's overlay table: couldn't find "
+      error (_("Error reading inferior's overlay table: couldn't find "
              "`_ovly_table' array\n"
-             "in inferior.  Use `overlay manual' mode.");
+             "in inferior.  Use `overlay manual' mode."));
       return 0;
     }
 
This page took 0.031078 seconds and 4 git commands to generate.