Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
* [rfc] More ``char *'' -> ``const char *'' symtab.c and source.c
@ 2001-06-11 15:01 Andrew Cagney
  2001-06-11 15:47 ` Daniel Berlin
  0 siblings, 1 reply; 2+ messages in thread
From: Andrew Cagney @ 2001-06-11 15:01 UTC (permalink / raw)
  To: gdb-patches

Hello,

This patch propogates another const-char-* down through several functions.
It is actually fallout from looking at basename() which currently casts
(const char *) -> (char *).

thoughts?

	Andrew

Mon Jun 11 17:26:43 2001  Andrew Cagney  <cagney@b1.cygnus.com>

	* source.c (openp): Make parameters ``path'' and ``string''
 	constant.
	(openp): Use alloca to safely duplicate ``string''. Make local
 	variables ``p'' and ``p1'' constant. Delete char* casts.
	* defs.h: Update.

	* symtab.c (lookup_symtab_1): Make parameter ``name'' constant.
	(lookup_symtab, lookup_partial_symtab): Ditto.
	* symtab.h (lookup_symtab, lookup_partial_symtab): Update.

Index: defs.h
===================================================================
RCS file: /cvs/src/src/gdb/defs.h,v
retrieving revision 1.52
diff -p -r1.52 defs.h
*** defs.h	2001/06/10 16:25:51	1.52
--- defs.h	2001/06/11 21:55:18
*************** extern void print_address (CORE_ADDR, st
*** 698,704 ****
  
  /* From source.c */
  
! extern int openp (char *, int, char *, int, int, char **);
  
  extern int source_full_path_of (char *, char **);
  
--- 698,704 ----
  
  /* From source.c */
  
! extern int openp (const char *, int, const char *, int, int, char **);
  
  extern int source_full_path_of (char *, char **);
  
Index: source.c
===================================================================
RCS file: /cvs/src/src/gdb/source.c,v
retrieving revision 1.15
diff -p -r1.15 source.c
*** source.c	2001/06/06 10:27:59	1.15
--- source.c	2001/06/11 21:55:18
*************** source_info (char *ignore, int from_tty)
*** 515,526 ****
  /*  >>>> This should only allow files of certain types,
     >>>>  eg executable, non-directory */
  int
! openp (char *path, int try_cwd_first, char *string, int mode, int prot,
         char **filename_opened)
  {
    register int fd;
    register char *filename;
!   register char *p, *p1;
    register int len;
    int alloclen;
  
--- 515,528 ----
  /*  >>>> This should only allow files of certain types,
     >>>>  eg executable, non-directory */
  int
! openp (const char *path, int try_cwd_first, const char *string,
!        int mode, int prot,
         char **filename_opened)
  {
    register int fd;
    register char *filename;
!   const char *p;
!   const char *p1;
    register int len;
    int alloclen;
  
*************** openp (char *path, int try_cwd_first, ch
*** 534,540 ****
    if (try_cwd_first || IS_ABSOLUTE_PATH (string))
      {
        int i;
!       filename = string;
        fd = open (filename, mode, prot);
        if (fd >= 0)
  	goto done;
--- 536,543 ----
    if (try_cwd_first || IS_ABSOLUTE_PATH (string))
      {
        int i;
!       filename = alloca (strlen (string) + 1);
!       strcpy (filename, string);
        fd = open (filename, mode, prot);
        if (fd >= 0)
  	goto done;
*************** openp (char *path, int try_cwd_first, ch
*** 548,558 ****
      string += 2;
  
    alloclen = strlen (path) + strlen (string) + 2;
!   filename = (char *) alloca (alloclen);
    fd = -1;
    for (p = path; p; p = p1 ? p1 + 1 : 0)
      {
!       p1 = (char *) strchr (p, DIRNAME_SEPARATOR);
        if (p1)
  	len = p1 - p;
        else
--- 551,561 ----
      string += 2;
  
    alloclen = strlen (path) + strlen (string) + 2;
!   filename = alloca (alloclen);
    fd = -1;
    for (p = path; p; p = p1 ? p1 + 1 : 0)
      {
!       p1 = strchr (p, DIRNAME_SEPARATOR);
        if (p1)
  	len = p1 - p;
        else
*************** openp (char *path, int try_cwd_first, ch
*** 570,576 ****
  	  if (newlen > alloclen)
  	    {
  	      alloclen = newlen;
! 	      filename = (char *) alloca (alloclen);
  	    }
  	  strcpy (filename, current_directory);
  	}
--- 573,579 ----
  	  if (newlen > alloclen)
  	    {
  	      alloclen = newlen;
! 	      filename = alloca (alloclen);
  	    }
  	  strcpy (filename, current_directory);
  	}
*************** done:
*** 597,603 ****
    if (filename_opened)
      {
        if (fd < 0)
! 	*filename_opened = (char *) 0;
        else if (IS_ABSOLUTE_PATH (filename))
  	*filename_opened = savestring (filename, strlen (filename));
        else
--- 600,606 ----
    if (filename_opened)
      {
        if (fd < 0)
! 	*filename_opened = NULL;
        else if (IS_ABSOLUTE_PATH (filename))
  	*filename_opened = savestring (filename, strlen (filename));
        else
Index: symtab.c
===================================================================
RCS file: /cvs/src/src/gdb/symtab.c,v
retrieving revision 1.39
diff -p -r1.39 symtab.c
*** symtab.c	2001/06/11 16:05:24	1.39
--- symtab.c	2001/06/11 21:55:19
*************** static struct partial_symbol *lookup_par
*** 79,85 ****
  						     const char *, int,
  						     namespace_enum);
  
! static struct symtab *lookup_symtab_1 (char *);
  
  static struct symbol *lookup_symbol_aux (const char *name, const
  					 struct block *block, const
--- 79,85 ----
  						     const char *, int,
  						     namespace_enum);
  
! static struct symtab *lookup_symtab_1 (const char *);
  
  static struct symbol *lookup_symbol_aux (const char *name, const
  					 struct block *block, const
*************** cplusplus_hint (char *name)
*** 138,144 ****
     in the symtab filename will also work.  */
  
  static struct symtab *
! lookup_symtab_1 (char *name)
  {
    register struct symtab *s;
    register struct partial_symtab *ps;
--- 138,144 ----
     in the symtab filename will also work.  */
  
  static struct symtab *
! lookup_symtab_1 (const char *name)
  {
    register struct symtab *s;
    register struct partial_symtab *ps;
*************** got_symtab:
*** 192,198 ****
     of variations if the first lookup doesn't work.  */
  
  struct symtab *
! lookup_symtab (char *name)
  {
    register struct symtab *s;
  #if 0
--- 192,198 ----
     of variations if the first lookup doesn't work.  */
  
  struct symtab *
! lookup_symtab (const char *name)
  {
    register struct symtab *s;
  #if 0
*************** lookup_symtab (char *name)
*** 229,235 ****
     in the psymtab filename will also work.  */
  
  struct partial_symtab *
! lookup_partial_symtab (char *name)
  {
    register struct partial_symtab *pst;
    register struct objfile *objfile;
--- 229,235 ----
     in the psymtab filename will also work.  */
  
  struct partial_symtab *
! lookup_partial_symtab (const char *name)
  {
    register struct partial_symtab *pst;
    register struct objfile *objfile;
Index: symtab.h
===================================================================
RCS file: /cvs/src/src/gdb/symtab.h,v
retrieving revision 1.22
diff -p -r1.22 symtab.h
*** symtab.h	2001/06/11 16:05:24	1.22
--- symtab.h	2001/06/11 21:55:19
*************** extern int asm_demangle;
*** 1072,1078 ****
  
  /* lookup a symbol table by source file name */
  
! extern struct symtab *lookup_symtab (char *);
  
  /* lookup a symbol by name (optional block, optional symtab) */
  
--- 1072,1078 ----
  
  /* lookup a symbol table by source file name */
  
! extern struct symtab *lookup_symtab (const char *);
  
  /* lookup a symbol by name (optional block, optional symtab) */
  
*************** find_pc_sect_partial_function (CORE_ADDR
*** 1122,1128 ****
  
  /* lookup partial symbol table by filename */
  
! extern struct partial_symtab *lookup_partial_symtab (char *);
  
  /* lookup partial symbol table by address */
  
--- 1122,1128 ----
  
  /* lookup partial symbol table by filename */
  
! extern struct partial_symtab *lookup_partial_symtab (const char *);
  
  /* lookup partial symbol table by address */
  


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [rfc] More ``char *'' -> ``const char *'' symtab.c and source.c
  2001-06-11 15:01 [rfc] More ``char *'' -> ``const char *'' symtab.c and source.c Andrew Cagney
@ 2001-06-11 15:47 ` Daniel Berlin
  0 siblings, 0 replies; 2+ messages in thread
From: Daniel Berlin @ 2001-06-11 15:47 UTC (permalink / raw)
  To: Andrew Cagney; +Cc: gdb-patches

ac131313@localhost.cygnus.com (Andrew Cagney) writes:

If you really want to get them all, make name in struct symbol and
struct type, as well as tag_name in struct type, const char *.

It'll force you to change all of the places we *should* be using
const, but aren't (the names of symbols and types should never
change).

> Hello,
> 
> This patch propogates another const-char-* down through several functions.
> It is actually fallout from looking at basename() which currently casts
> (const char *) -> (char *).
> 
> thoughts?
> 
> 	Andrew
> 
> Mon Jun 11 17:26:43 2001  Andrew Cagney  <cagney@b1.cygnus.com>
> 
> 	* source.c (openp): Make parameters ``path'' and ``string''
>  	constant.
> 	(openp): Use alloca to safely duplicate ``string''. Make local
>  	variables ``p'' and ``p1'' constant. Delete char* casts.
> 	* defs.h: Update.
> 
> 	* symtab.c (lookup_symtab_1): Make parameter ``name'' constant.
> 	(lookup_symtab, lookup_partial_symtab): Ditto.
> 	* symtab.h (lookup_symtab, lookup_partial_symtab): Update.
> 
> Index: defs.h
> ===================================================================
> RCS file: /cvs/src/src/gdb/defs.h,v
> retrieving revision 1.52
> diff -p -r1.52 defs.h
> *** defs.h	2001/06/10 16:25:51	1.52
> --- defs.h	2001/06/11 21:55:18
> *************** extern void print_address (CORE_ADDR, st
> *** 698,704 ****
>   
>   /* From source.c */
>   
> ! extern int openp (char *, int, char *, int, int, char **);
>   
>   extern int source_full_path_of (char *, char **);
>   
> --- 698,704 ----
>   
>   /* From source.c */
>   
> ! extern int openp (const char *, int, const char *, int, int, char **);
>   
>   extern int source_full_path_of (char *, char **);
>   
> Index: source.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/source.c,v
> retrieving revision 1.15
> diff -p -r1.15 source.c
> *** source.c	2001/06/06 10:27:59	1.15
> --- source.c	2001/06/11 21:55:18
> *************** source_info (char *ignore, int from_tty)
> *** 515,526 ****
>   /*  >>>> This should only allow files of certain types,
>     >>>>  eg executable, non-directory */
>   int
> ! openp (char *path, int try_cwd_first, char *string, int mode, int prot,
>          char **filename_opened)
>   {
>     register int fd;
>     register char *filename;
> !   register char *p, *p1;
>     register int len;
>     int alloclen;
>   
> --- 515,528 ----
>   /*  >>>> This should only allow files of certain types,
>     >>>>  eg executable, non-directory */
>   int
> ! openp (const char *path, int try_cwd_first, const char *string,
> !        int mode, int prot,
>          char **filename_opened)
>   {
>     register int fd;
>     register char *filename;
> !   const char *p;
> !   const char *p1;
>     register int len;
>     int alloclen;
>   
> *************** openp (char *path, int try_cwd_first, ch
> *** 534,540 ****
>     if (try_cwd_first || IS_ABSOLUTE_PATH (string))
>       {
>         int i;
> !       filename = string;
>         fd = open (filename, mode, prot);
>         if (fd >= 0)
>   	goto done;
> --- 536,543 ----
>     if (try_cwd_first || IS_ABSOLUTE_PATH (string))
>       {
>         int i;
> !       filename = alloca (strlen (string) + 1);
> !       strcpy (filename, string);
>         fd = open (filename, mode, prot);
>         if (fd >= 0)
>   	goto done;
> *************** openp (char *path, int try_cwd_first, ch
> *** 548,558 ****
>       string += 2;
>   
>     alloclen = strlen (path) + strlen (string) + 2;
> !   filename = (char *) alloca (alloclen);
>     fd = -1;
>     for (p = path; p; p = p1 ? p1 + 1 : 0)
>       {
> !       p1 = (char *) strchr (p, DIRNAME_SEPARATOR);
>         if (p1)
>   	len = p1 - p;
>         else
> --- 551,561 ----
>       string += 2;
>   
>     alloclen = strlen (path) + strlen (string) + 2;
> !   filename = alloca (alloclen);
>     fd = -1;
>     for (p = path; p; p = p1 ? p1 + 1 : 0)
>       {
> !       p1 = strchr (p, DIRNAME_SEPARATOR);
>         if (p1)
>   	len = p1 - p;
>         else
> *************** openp (char *path, int try_cwd_first, ch
> *** 570,576 ****
>   	  if (newlen > alloclen)
>   	    {
>   	      alloclen = newlen;
> ! 	      filename = (char *) alloca (alloclen);
>  	    }
>   	  strcpy (filename, current_directory);
>  	}
> --- 573,579 ----
>   	  if (newlen > alloclen)
>   	    {
>   	      alloclen = newlen;
> ! 	      filename = alloca (alloclen);
>  	    }
>   	  strcpy (filename, current_directory);
>  	}
> *************** done:
> *** 597,603 ****
>     if (filename_opened)
>       {
>         if (fd < 0)
> ! 	*filename_opened = (char *) 0;
>         else if (IS_ABSOLUTE_PATH (filename))
>   	*filename_opened = savestring (filename, strlen (filename));
>         else
> --- 600,606 ----
>     if (filename_opened)
>       {
>         if (fd < 0)
> ! 	*filename_opened = NULL;
>         else if (IS_ABSOLUTE_PATH (filename))
>   	*filename_opened = savestring (filename, strlen (filename));
>         else
> Index: symtab.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/symtab.c,v
> retrieving revision 1.39
> diff -p -r1.39 symtab.c
> *** symtab.c	2001/06/11 16:05:24	1.39
> --- symtab.c	2001/06/11 21:55:19
> *************** static struct partial_symbol *lookup_par
> *** 79,85 ****
>   						     const char *, int,
>   						     namespace_enum);
>   
> ! static struct symtab *lookup_symtab_1 (char *);
>   
>   static struct symbol *lookup_symbol_aux (const char *name, const
>   					 struct block *block, const
> --- 79,85 ----
>   						     const char *, int,
>   						     namespace_enum);
>   
> ! static struct symtab *lookup_symtab_1 (const char *);
>   
>   static struct symbol *lookup_symbol_aux (const char *name, const
>   					 struct block *block, const
> *************** cplusplus_hint (char *name)
> *** 138,144 ****
>      in the symtab filename will also work.  */
>   
>   static struct symtab *
> ! lookup_symtab_1 (char *name)
>   {
>     register struct symtab *s;
>     register struct partial_symtab *ps;
> --- 138,144 ----
>      in the symtab filename will also work.  */
>   
>   static struct symtab *
> ! lookup_symtab_1 (const char *name)
>   {
>     register struct symtab *s;
>     register struct partial_symtab *ps;
> *************** got_symtab:
> *** 192,198 ****
>      of variations if the first lookup doesn't work.  */
>   
>   struct symtab *
> ! lookup_symtab (char *name)
>   {
>     register struct symtab *s;
>   #if 0
> --- 192,198 ----
>      of variations if the first lookup doesn't work.  */
>   
>   struct symtab *
> ! lookup_symtab (const char *name)
>   {
>     register struct symtab *s;
>   #if 0
> *************** lookup_symtab (char *name)
> *** 229,235 ****
>      in the psymtab filename will also work.  */
>   
>   struct partial_symtab *
> ! lookup_partial_symtab (char *name)
>   {
>     register struct partial_symtab *pst;
>     register struct objfile *objfile;
> --- 229,235 ----
>      in the psymtab filename will also work.  */
>   
>   struct partial_symtab *
> ! lookup_partial_symtab (const char *name)
>   {
>     register struct partial_symtab *pst;
>     register struct objfile *objfile;
> Index: symtab.h
> ===================================================================
> RCS file: /cvs/src/src/gdb/symtab.h,v
> retrieving revision 1.22
> diff -p -r1.22 symtab.h
> *** symtab.h	2001/06/11 16:05:24	1.22
> --- symtab.h	2001/06/11 21:55:19
> *************** extern int asm_demangle;
> *** 1072,1078 ****
>   
>   /* lookup a symbol table by source file name */
>   
> ! extern struct symtab *lookup_symtab (char *);
>   
>   /* lookup a symbol by name (optional block, optional symtab) */
>   
> --- 1072,1078 ----
>   
>   /* lookup a symbol table by source file name */
>   
> ! extern struct symtab *lookup_symtab (const char *);
>   
>   /* lookup a symbol by name (optional block, optional symtab) */
>   
> *************** find_pc_sect_partial_function (CORE_ADDR
> *** 1122,1128 ****
>   
>   /* lookup partial symbol table by filename */
>   
> ! extern struct partial_symtab *lookup_partial_symtab (char *);
>   
>   /* lookup partial symbol table by address */
>   
> --- 1122,1128 ----
>   
>   /* lookup partial symbol table by filename */
>   
> ! extern struct partial_symtab *lookup_partial_symtab (const char *);
>   
>   /* lookup partial symbol table by address */
>   

-- 
"I've never seen electricity, so I don't pay for it.  I write
right on the bill, "I'm sorry, I haven't seen it all month."
"-Steven Wright


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2001-06-11 15:47 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-06-11 15:01 [rfc] More ``char *'' -> ``const char *'' symtab.c and source.c Andrew Cagney
2001-06-11 15:47 ` Daniel Berlin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox