diff options
author | Pedro Alves <palves@redhat.com> | 2013-03-07 19:10:46 +0000 |
---|---|---|
committer | Pedro Alves <palves@redhat.com> | 2013-03-07 19:10:46 +0000 |
commit | 2898e56054c7a35f85908729b01c6eb763317269 (patch) | |
tree | 0fdd7210d07f603d9e91c1531feb2f27fca8f620 | |
parent | a09b444817a6a61ec6323e7e6dcc4ccbf465826f (diff) | |
download | gdb-2898e56054c7a35f85908729b01c6eb763317269.zip gdb-2898e56054c7a35f85908729b01c6eb763317269.tar.gz gdb-2898e56054c7a35f85908729b01c6eb763317269.tar.bz2 |
charset.c: fix -Wpointer-sign
$ make WERROR_CFLAGS="-Wpointer-sign -Werror" charset.o 2>&1 1>/dev/null
../../src/gdb/charset.c: In function ‘wchar_iterate’:
../../src/gdb/charset.c:665:13: error: pointer targets in assignment differ in signedness [-Werror=pointer-sign]
../../src/gdb/charset.c:691:13: error: pointer targets in assignment differ in signedness [-Werror=pointer-sign]
../../src/gdb/charset.c:706:12: error: pointer targets in assignment differ in signedness [-Werror=pointer-sign]
The encoding conversion code works with gdb_byte arrays as the generic
buffers that hold strings of any encoding/width. Changing the type of
this field to gdb_byte* removes the need for one cast, and makes
everything work with the same types. That's good -- WRT to strings,
"char *" is (almost) consistently throughout GDB only used for
ascii-ish strings.
gdb/
2013-03-07 Pedro Alves <palves@redhat.com>
* charset.c (struct wchar_iterator) <input>: Change type to 'const
gdb_byte *'.
(make_wchar_iterator): Remove cast to char*.
(wchar_iterate): Change type of local.
-rw-r--r-- | gdb/ChangeLog | 7 | ||||
-rw-r--r-- | gdb/charset.c | 6 |
2 files changed, 10 insertions, 3 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index ceeecb7..a57e2c1 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,12 @@ 2013-03-07 Pedro Alves <palves@redhat.com> + * charset.c (struct wchar_iterator) <input>: Change type to 'const + gdb_byte *'. + (make_wchar_iterator): Remove cast to char*. + (wchar_iterate): Change type of local. + +2013-03-07 Pedro Alves <palves@redhat.com> + * regcache.c (regcache_xmalloc_1): Call XCALLOC with signed char for 'regcache->register_status'. diff --git a/gdb/charset.c b/gdb/charset.c index 165f90f..4cd6f20 100644 --- a/gdb/charset.c +++ b/gdb/charset.c @@ -571,7 +571,7 @@ struct wchar_iterator iconv_t desc; /* The input string. This is updated as convert characters. */ - char *input; + const gdb_byte *input; /* The number of bytes remaining in the input. */ size_t bytes; @@ -597,7 +597,7 @@ make_wchar_iterator (const gdb_byte *input, size_t bytes, result = XNEW (struct wchar_iterator); result->desc = desc; - result->input = (char *) input; + result->input = input; result->bytes = bytes; result->width = width; @@ -641,7 +641,7 @@ wchar_iterate (struct wchar_iterator *iter, while (iter->bytes > 0) { char *outptr = (char *) &iter->out[0]; - char *orig_inptr = iter->input; + const gdb_byte *orig_inptr = iter->input; size_t orig_in = iter->bytes; size_t out_avail = out_request * sizeof (gdb_wchar_t); size_t num; |