This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

FYI: make psymtabs more const-correct


I'm checking this in.

This patch makes a couple more fields in psymtabs const-qualified, and
fixes a couple function arguments as well.  The rest of the patch is
just the fallout from this.

Built and regtested on x86-64 (compile farm).

Tom

2010-10-01  Tom Tromey  <tromey@redhat.com>

	* symfile.h (allocate_symtab): Update.
	* symfile.c (allocate_symtab): Make 'filename' const.
	* psymtab.c (add_psymbol_to_bcache): Make 'name' const.
	(add_psymbol_to_list): Likewise.
	* psympriv.h (struct partial_symtab) <filename, dirname>: Now
	const.
	(add_psymbol_to_list): Update.
	* mdebugread.c (new_symtab): Make 'name' const.
	(psymtab_to_symtab_1): Make 'filename' const.
	* elfread.c (elfstab_offset_sections): Update.
	* dwarf2read.c (dwarf_decode_lines): Make 'comp_dir' const.
	(dwarf2_start_subfile): Make 'dirname' and 'comp_dir' const.
	(psymtab_include_file_name): Update.
	* dbxread.c (find_stab_function_addr): Make 'filename' const.
	* buildsym.h (start_subfile): Update.
	* buildsym.c (start_subfile): Make arguments const.

Index: buildsym.c
===================================================================
RCS file: /cvs/src/src/gdb/buildsym.c,v
retrieving revision 1.80
diff -u -r1.80 buildsym.c
--- buildsym.c	13 May 2010 22:44:02 -0000	1.80
+++ buildsym.c	1 Oct 2010 20:01:39 -0000
@@ -523,7 +523,7 @@
    the directory in which the file was compiled (or NULL if not known).  */
 
 void
-start_subfile (char *name, char *dirname)
+start_subfile (const char *name, const char *dirname)
 {
   struct subfile *subfile;
 
Index: buildsym.h
===================================================================
RCS file: /cvs/src/src/gdb/buildsym.h,v
retrieving revision 1.24
diff -u -r1.24 buildsym.h
--- buildsym.h	1 Jan 2010 07:31:30 -0000	1.24
+++ buildsym.h	1 Oct 2010 20:01:39 -0000
@@ -253,7 +253,7 @@
 
 extern void really_free_pendings (void *dummy);
 
-extern void start_subfile (char *name, char *dirname);
+extern void start_subfile (const char *name, const char *dirname);
 
 extern void patch_subfile_names (struct subfile *subfile, char *name);
 
Index: dbxread.c
===================================================================
RCS file: /cvs/src/src/gdb/dbxread.c,v
retrieving revision 1.117
diff -u -r1.117 dbxread.c
--- dbxread.c	30 Sep 2010 19:14:30 -0000	1.117
+++ dbxread.c	1 Oct 2010 20:01:39 -0000
@@ -1125,7 +1125,7 @@
 }
 
 static CORE_ADDR
-find_stab_function_addr (char *namestring, char *filename,
+find_stab_function_addr (char *namestring, const char *filename,
 			 struct objfile *objfile)
 {
   struct minimal_symbol *msym;
Index: dwarf2read.c
===================================================================
RCS file: /cvs/src/src/gdb/dwarf2read.c,v
retrieving revision 1.463
diff -u -r1.463 dwarf2read.c
--- dwarf2read.c	29 Sep 2010 16:41:24 -0000	1.463
+++ dwarf2read.c	1 Oct 2010 20:01:40 -0000
@@ -1007,10 +1007,10 @@
                             (unsigned int offset,
                              bfd *abfd, struct dwarf2_cu *cu));
 
-static void dwarf_decode_lines (struct line_header *, char *, bfd *,
+static void dwarf_decode_lines (struct line_header *, const char *, bfd *,
 				struct dwarf2_cu *, struct partial_symtab *);
 
-static void dwarf2_start_subfile (char *, char *, char *);
+static void dwarf2_start_subfile (char *, const char *, const char *);
 
 static struct symbol *new_symbol (struct die_info *, struct type *,
 				  struct dwarf2_cu *);
@@ -9994,7 +9994,8 @@
   char *include_name = fe.name;
   char *include_name_to_compare = include_name;
   char *dir_name = NULL;
-  char *pst_filename;
+  const char *pst_filename;
+  char *copied_name = NULL;
   int file_is_pst;
 
   if (fe.dir_index)
@@ -10039,16 +10040,17 @@
   pst_filename = pst->filename;
   if (!IS_ABSOLUTE_PATH (pst_filename) && pst->dirname != NULL)
     {
-      pst_filename = concat (pst->dirname, SLASH_STRING,
-			     pst_filename, (char *)NULL);
+      copied_name = concat (pst->dirname, SLASH_STRING,
+			    pst_filename, (char *)NULL);
+      pst_filename = copied_name;
     }
 
   file_is_pst = strcmp (include_name_to_compare, pst_filename) == 0;
 
   if (include_name_to_compare != include_name)
     xfree (include_name_to_compare);
-  if (pst_filename != pst->filename)
-    xfree (pst_filename);
+  if (copied_name != NULL)
+    xfree (copied_name);
 
   if (file_is_pst)
     return NULL;
@@ -10078,7 +10080,7 @@
    A good testcase for this is mb-inline.exp.  */
 
 static void
-dwarf_decode_lines (struct line_header *lh, char *comp_dir, bfd *abfd,
+dwarf_decode_lines (struct line_header *lh, const char *comp_dir, bfd *abfd,
 		    struct dwarf2_cu *cu, struct partial_symtab *pst)
 {
   gdb_byte *line_ptr, *extended_end;
@@ -10421,7 +10423,7 @@
    subfile's name.  */
 
 static void
-dwarf2_start_subfile (char *filename, char *dirname, char *comp_dir)
+dwarf2_start_subfile (char *filename, const char *dirname, const char *comp_dir)
 {
   char *fullname;
 
Index: elfread.c
===================================================================
RCS file: /cvs/src/src/gdb/elfread.c,v
retrieving revision 1.98
diff -u -r1.98 elfread.c
--- elfread.c	30 Sep 2010 19:14:30 -0000	1.98
+++ elfread.c	1 Oct 2010 20:01:40 -0000
@@ -979,7 +979,7 @@
 void
 elfstab_offset_sections (struct objfile *objfile, struct partial_symtab *pst)
 {
-  char *filename = pst->filename;
+  const char *filename = pst->filename;
   struct dbx_symfile_info *dbx = objfile->deprecated_sym_stab_info;
   struct stab_section_info *maybe = dbx->stab_section_info;
   struct stab_section_info *questionable = 0;
Index: mdebugread.c
===================================================================
RCS file: /cvs/src/src/gdb/mdebugread.c,v
retrieving revision 1.114
diff -u -r1.114 mdebugread.c
--- mdebugread.c	9 Aug 2010 19:42:48 -0000	1.114
+++ mdebugread.c	1 Oct 2010 20:01:41 -0000
@@ -232,7 +232,7 @@
 
 static struct block *new_block (enum block_type);
 
-static struct symtab *new_symtab (char *, int, struct objfile *);
+static struct symtab *new_symtab (const char *, int, struct objfile *);
 
 static struct linetable *new_linetable (int);
 
@@ -248,7 +248,7 @@
 
 static struct partial_symtab *new_psymtab (char *, struct objfile *);
 
-static void psymtab_to_symtab_1 (struct partial_symtab *, char *);
+static void psymtab_to_symtab_1 (struct partial_symtab *, const char *);
 
 static void add_block (struct block *, struct symtab *);
 
@@ -3888,7 +3888,7 @@
    The flow of control and even the memory allocation differs.  FIXME.  */
 
 static void
-psymtab_to_symtab_1 (struct partial_symtab *pst, char *filename)
+psymtab_to_symtab_1 (struct partial_symtab *pst, const char *filename)
 {
   bfd_size_type external_sym_size;
   bfd_size_type external_pdr_size;
@@ -4671,7 +4671,7 @@
    linenumbers MAXLINES we'll put in it */
 
 static struct symtab *
-new_symtab (char *name, int maxlines, struct objfile *objfile)
+new_symtab (const char *name, int maxlines, struct objfile *objfile)
 {
   struct symtab *s = allocate_symtab (name, objfile);
 
Index: psympriv.h
===================================================================
RCS file: /cvs/src/src/gdb/psympriv.h,v
retrieving revision 1.3
diff -u -r1.3 psympriv.h
--- psympriv.h	14 Sep 2010 22:50:30 -0000	1.3
+++ psympriv.h	1 Oct 2010 20:01:41 -0000
@@ -73,7 +73,7 @@
 
   /* Name of the source file which this partial_symtab defines */
 
-  char *filename;
+  const char *filename;
 
   /* Full path of the source file.  NULL if not known.  */
 
@@ -81,7 +81,7 @@
 
   /* Directory in which it was compiled, or NULL if we don't know.  */
 
-  char *dirname;
+  const char *dirname;
 
   /* Information about the object file from which symbols should be read.  */
 
@@ -156,7 +156,7 @@
 /* Add any kind of symbol to a psymbol_allocation_list.  */
 
 extern const
-struct partial_symbol *add_psymbol_to_list (char *, int, int, domain_enum,
+struct partial_symbol *add_psymbol_to_list (const char *, int, int, domain_enum,
 					    enum address_class,
 					    struct psymbol_allocation_list *,
 					    long, CORE_ADDR,
Index: psymtab.c
===================================================================
RCS file: /cvs/src/src/gdb/psymtab.c,v
retrieving revision 1.15
diff -u -r1.15 psymtab.c
--- psymtab.c	14 Sep 2010 22:50:30 -0000	1.15
+++ psymtab.c	1 Oct 2010 20:01:41 -0000
@@ -1368,7 +1368,7 @@
    different domain (or address) is possible and correct.  */
 
 static const struct partial_symbol *
-add_psymbol_to_bcache (char *name, int namelength, int copy_name,
+add_psymbol_to_bcache (const char *name, int namelength, int copy_name,
 		       domain_enum domain,
 		       enum address_class class,
 		       long val,	/* Value as a long */
@@ -1465,7 +1465,7 @@
    cache.  */
 
 const struct partial_symbol *
-add_psymbol_to_list (char *name, int namelength, int copy_name,
+add_psymbol_to_list (const char *name, int namelength, int copy_name,
 		     domain_enum domain,
 		     enum address_class class,
 		     struct psymbol_allocation_list *list, 
Index: symfile.c
===================================================================
RCS file: /cvs/src/src/gdb/symfile.c,v
retrieving revision 1.296
diff -u -r1.296 symfile.c
--- symfile.c	30 Sep 2010 19:14:30 -0000	1.296
+++ symfile.c	1 Oct 2010 20:01:41 -0000
@@ -2724,7 +2724,7 @@
  */
 
 struct symtab *
-allocate_symtab (char *filename, struct objfile *objfile)
+allocate_symtab (const char *filename, struct objfile *objfile)
 {
   struct symtab *symtab;
 
Index: symfile.h
===================================================================
RCS file: /cvs/src/src/gdb/symfile.h,v
retrieving revision 1.74
diff -u -r1.74 symfile.h
--- symfile.h	30 Sep 2010 19:14:30 -0000	1.74
+++ symfile.h	1 Oct 2010 20:01:41 -0000
@@ -374,7 +374,7 @@
 extern bfd_byte *default_symfile_relocate (struct objfile *objfile,
                                            asection *sectp, bfd_byte *buf);
 
-extern struct symtab *allocate_symtab (char *, struct objfile *);
+extern struct symtab *allocate_symtab (const char *, struct objfile *);
 
 extern void add_symtab_fns (const struct sym_fns *);
 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]