This is the mail archive of the gdb-cvs@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]

[binutils-gdb] -Wwrite-strings: Constify macroexp.c:init_shared_buffer


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=b38ef47f47bda5509babd768092ceb09ab98828d

commit b38ef47f47bda5509babd768092ceb09ab98828d
Author: Pedro Alves <palves@redhat.com>
Date:   Wed Apr 5 19:21:33 2017 +0100

    -Wwrite-strings: Constify macroexp.c:init_shared_buffer
    
    There's one call in the file that passes a string literal, like:
    
    	init_shared_buffer (&va_arg_name, "__VA_ARGS__",
    				  strlen ("__VA_ARGS__"));
    
    Instead of adding a cast here, make init_shared_buffer take a 'const
    char *', and remove the several casts in the file that are made
    obsolete.
    
    gdb/ChangeLog:
    2017-04-05  Pedro Alves  <palves@redhat.com>
    
    	* macroexp.c (macro_buffer::shared): Now a bool.
    	(init_buffer): Update.
    	(init_shared_buffer): Constify 'addr' parameter.
    	(substitute_args, expand, macro_expand, macro_expand_next): Remove
    	casts.

Diff:
---
 gdb/ChangeLog  |  8 ++++++++
 gdb/macroexp.c | 26 +++++++++++++++-----------
 2 files changed, 23 insertions(+), 11 deletions(-)

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 1d0270c..4b00247 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,13 @@
 2017-04-05  Pedro Alves  <palves@redhat.com>
 
+	* macroexp.c (macro_buffer::shared): Now a bool.
+	(init_buffer): Update.
+	(init_shared_buffer): Constify 'addr' parameter.
+	(substitute_args, expand, macro_expand, macro_expand_next): Remove
+	casts.
+
+2017-04-05  Pedro Alves  <palves@redhat.com>
+
 	* arm-tdep.c (show_disassembly_style_sfunc): Constify local.
 	* disasm.c (set_disassembler_options): Constify local.
 	* i386-tdep.c (i386_print_insn): Remove cast and FIXME comment.
diff --git a/gdb/macroexp.c b/gdb/macroexp.c
index 3cc2d0b..5537d9d 100644
--- a/gdb/macroexp.c
+++ b/gdb/macroexp.c
@@ -53,8 +53,9 @@ struct macro_buffer
 
   /* Zero if TEXT can be safely realloc'ed (i.e., it's its own malloc
      block).  Non-zero if TEXT is actually pointing into the middle of
-     some other block, and we shouldn't reallocate it.  */
-  int shared;
+     some other block, or to a string literal, and we shouldn't
+     reallocate it.  */
+  bool shared;
 
   /* For detecting token splicing. 
 
@@ -85,19 +86,22 @@ init_buffer (struct macro_buffer *b, int n)
   else
     b->text = NULL;
   b->len = 0;
-  b->shared = 0;
+  b->shared = false;
   b->last_token = -1;
 }
 
 
 /* Set the macro buffer *BUF to refer to the LEN bytes at ADDR, as a
    shared substring.  */
+
 static void
-init_shared_buffer (struct macro_buffer *buf, char *addr, int len)
+init_shared_buffer (struct macro_buffer *buf, const char *addr, int len)
 {
-  buf->text = addr;
+  /* The function accept a "const char *" addr so that clients can
+     pass in string literals without casts.  */
+  buf->text = (char *) addr;
   buf->len = len;
-  buf->shared = 1;
+  buf->shared = true;
   buf->size = 0;
   buf->last_token = -1;
 }
@@ -980,7 +984,7 @@ substitute_args (struct macro_buffer *dest,
      lexed.  */
   char *lookahead_rl_start;
 
-  init_shared_buffer (&replacement_list, (char *) def->replacement,
+  init_shared_buffer (&replacement_list, def->replacement,
                       strlen (def->replacement));
 
   gdb_assert (dest->len == 0);
@@ -1199,7 +1203,7 @@ expand (const char *id,
     {
       struct macro_buffer replacement_list;
 
-      init_shared_buffer (&replacement_list, (char *) def->replacement,
+      init_shared_buffer (&replacement_list, def->replacement,
                           strlen (def->replacement));
 
       scan (dest, &replacement_list, &new_no_loop, lookup_func, lookup_baton);
@@ -1236,7 +1240,7 @@ expand (const char *id,
 		     substitution parameter is the name of the formal
 		     argument without the "...".  */
 		  init_shared_buffer (&va_arg_name,
-				      (char *) def->argv[def->argc - 1],
+				      def->argv[def->argc - 1],
 				      len - 3);
 		  is_varargs = 1;
 		}
@@ -1415,7 +1419,7 @@ macro_expand (const char *source,
   struct macro_buffer src, dest;
   struct cleanup *back_to;
 
-  init_shared_buffer (&src, (char *) source, strlen (source));
+  init_shared_buffer (&src, source, strlen (source));
 
   init_buffer (&dest, 0);
   dest.last_token = 0;
@@ -1448,7 +1452,7 @@ macro_expand_next (const char **lexptr,
   struct cleanup *back_to;
 
   /* Set up SRC to refer to the input text, pointed to by *lexptr.  */
-  init_shared_buffer (&src, (char *) *lexptr, strlen (*lexptr));
+  init_shared_buffer (&src, *lexptr, strlen (*lexptr));
 
   /* Set up DEST to receive the expansion, if there is one.  */
   init_buffer (&dest, 0);


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