summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPedro Alves <palves@redhat.com>2013-03-07 23:53:12 +0000
committerPedro Alves <palves@redhat.com>2013-03-07 23:53:12 +0000
commit0c1f71e72813ee9096d7bcc7124cff430da79a18 (patch)
treece1a40476498671ac3312ee5557f7bd3a5fdb203
parentc8af03a2f5d51f4c2de96ad9b6431553f0208f5c (diff)
downloadbinutils-gdb-0c1f71e72813ee9096d7bcc7124cff430da79a18.tar.gz
target.c: fix -Wpointer-sign
$ make WERROR_CFLAGS="-Wpointer-sign -Werror" target.o -k 2>&1 1>/dev/null ../../src/gdb/target.c: In function ‘target_read_stralloc’: ../../src/gdb/target.c:2376:3: error: pointer targets in passing argument 1 of ‘strlen’ differ in signedness [-Werror=pointer-sign] In file included from build-gnulib/import/string.h:27:0, from ../../src/gdb/common/gdb_string.h:24, from ../../src/gdb/target.c:24: /usr/include/string.h:399:15: note: expected ‘const char *’ but argument is of type ‘gdb_byte *’ ... This is about the same as the previous patch. Functions that take or return ascii-ish string arguments usually use char* for parameters/return. That means that at points we call into target methods that work with binary blobs, we need casts to/from gdb_byte*/char*. To choose which type for the variables, I usually go based on which requires the fewer casts, and what the contents of the variable are supposed to hold, which often gives the same answer. gdb/ 2013-03-07 Pedro Alves <palves@redhat.com> * target.c (target_read_stralloc, target_fileio_read_alloc): *Cast pointer to 'gdb_byte *' in target call.
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/target.c14
2 files changed, 13 insertions, 6 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 29203fe3ff7..da506b4d1ed 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,10 @@
2013-03-07 Pedro Alves <palves@redhat.com>
+ * target.c (target_read_stralloc, target_fileio_read_alloc):
+ *Cast pointer to 'gdb_byte *' in target call.
+
+2013-03-07 Pedro Alves <palves@redhat.com>
+
* corefile.c (read_memory_string): Cast pointer to gdb_byte* in
call.
diff --git a/gdb/target.c b/gdb/target.c
index ecb1325a410..eaf8b31f19e 100644
--- a/gdb/target.c
+++ b/gdb/target.c
@@ -2359,10 +2359,11 @@ char *
target_read_stralloc (struct target_ops *ops, enum target_object object,
const char *annex)
{
- gdb_byte *buffer;
+ char *buffer;
LONGEST i, transferred;
- transferred = target_read_alloc_1 (ops, object, annex, &buffer, 1);
+ transferred = target_read_alloc_1 (ops, object, annex,
+ (gdb_byte **) &buffer, 1);
if (transferred < 0)
return NULL;
@@ -2382,7 +2383,7 @@ target_read_stralloc (struct target_ops *ops, enum target_object object,
break;
}
- return (char *) buffer;
+ return buffer;
}
/* Memory transfer methods. */
@@ -3522,10 +3523,11 @@ target_fileio_read_alloc (const char *filename, gdb_byte **buf_p)
char *
target_fileio_read_stralloc (const char *filename)
{
- gdb_byte *buffer;
+ char *buffer;
LONGEST i, transferred;
- transferred = target_fileio_read_alloc_1 (filename, &buffer, 1);
+ transferred = target_fileio_read_alloc_1 (filename,
+ (gdb_byte **) &buffer, 1);
if (transferred < 0)
return NULL;
@@ -3545,7 +3547,7 @@ target_fileio_read_stralloc (const char *filename)
break;
}
- return (char *) buffer;
+ return buffer;
}