find command, fix -Wpoint-sign
authorPedro Alves <palves@redhat.com>
Fri, 8 Mar 2013 15:22:44 +0000 (15:22 +0000)
committerPedro Alves <palves@redhat.com>
Fri, 8 Mar 2013 15:22:44 +0000 (15:22 +0000)
From: Pedro Alves <palves@redhat.com>

The find command's patter/buffer that is passed to the target is a
binary blob, not a string.

$ make WERROR_CFLAGS="-Wpointer-sign -Werror" findcmd.o -k 2>&1 1>/dev/null
../../src/gdb/findcmd.c: In function ‘find_command’:
../../src/gdb/findcmd.c:278:6: error: pointer targets in passing argument 3 of ‘target_search_memory’ differ in signedness [-Werror=pointer-sign]
In file included from ../../src/gdb/findcmd.c:26:0:
../../src/gdb/target.h:1582:12: note: expected ‘const gdb_byte *’ but argument is of type ‘char *’

gdb/
2013-03-08  Pedro Alves  <palves@redhat.com>

* findcmd.c (put_bits): Change type of parameter to 'gdb_byte *'.
(parse_find_args, find_command): Change type of pattern buffer
locals to 'gdb_byte *'.

gdb/ChangeLog
gdb/findcmd.c

index 4ad179529ec5ade93b5d964353fd3988d0edb7da..1b0e80f58a75e81240f5f02844e770ee3bf1ba1f 100644 (file)
@@ -1,3 +1,9 @@
+2013-03-08  Pedro Alves  <palves@redhat.com>
+
+       * findcmd.c (put_bits): Change type of parameter to 'gdb_byte *'.
+       (parse_find_args, find_command): Change type of pattern buffer
+       locals to 'gdb_byte *'.
+
 2012-03-08  Stan Shebs  <stan@codesourcery.com>
            Hafiz Abid Qadeer  <abidh@codesourcery.com>
 
index cd26f04ebedc679a41f8c3ce633e5b32e24cedd0..07c1d4e845ec699e364269f6504d53e6475ddaa1 100644 (file)
@@ -29,7 +29,7 @@
 /* Copied from bfd_put_bits.  */
 
 static void
-put_bits (bfd_uint64_t data, char *buf, int bits, bfd_boolean big_p)
+put_bits (bfd_uint64_t data, gdb_byte *buf, int bits, bfd_boolean big_p)
 {
   int i;
   int bytes;
@@ -51,7 +51,7 @@ put_bits (bfd_uint64_t data, char *buf, int bits, bfd_boolean big_p)
 
 static void
 parse_find_args (char *args, ULONGEST *max_countp,
-                char **pattern_bufp, ULONGEST *pattern_lenp,
+                gdb_byte **pattern_bufp, ULONGEST *pattern_lenp,
                 CORE_ADDR *start_addrp, ULONGEST *search_space_lenp,
                 bfd_boolean big_p)
 {
@@ -59,13 +59,13 @@ parse_find_args (char *args, ULONGEST *max_countp,
   char size = '\0';
   ULONGEST max_count = ~(ULONGEST) 0;
   /* Buffer to hold the search pattern.  */
-  char *pattern_buf;
+  gdb_byte *pattern_buf;
   /* Current size of search pattern buffer.
      We realloc space as needed.  */
 #define INITIAL_PATTERN_BUF_SIZE 100
   ULONGEST pattern_buf_size = INITIAL_PATTERN_BUF_SIZE;
   /* Pointer to one past the last in-use part of pattern_buf.  */
-  char *pattern_buf_end;
+  gdb_byte *pattern_buf_end;
   ULONGEST pattern_len;
   CORE_ADDR start_addr;
   ULONGEST search_space_len;
@@ -249,7 +249,7 @@ find_command (char *args, int from_tty)
   /* Command line parameters.
      These are initialized to avoid uninitialized warnings from -Wall.  */
   ULONGEST max_count = 0;
-  char *pattern_buf = 0;
+  gdb_byte *pattern_buf = 0;
   ULONGEST pattern_len = 0;
   CORE_ADDR start_addr = 0;
   ULONGEST search_space_len = 0;