diff options
author | Pedro Alves <palves@redhat.com> | 2013-03-07 19:24:32 +0000 |
---|---|---|
committer | Pedro Alves <palves@redhat.com> | 2013-03-07 19:24:32 +0000 |
commit | ac91cd701edad8df82aa7f12c9c51c1a3e7ba09e (patch) | |
tree | 4901d24600112d529c6af07d603b93ce84378092 /gdb/varobj.c | |
parent | charset.c: fix -Wpointer-sign (diff) | |
download | binutils-gdb-ac91cd701edad8df82aa7f12c9c51c1a3e7ba09e.tar.gz binutils-gdb-ac91cd701edad8df82aa7f12c9c51c1a3e7ba09e.tar.bz2 binutils-gdb-ac91cd701edad8df82aa7f12c9c51c1a3e7ba09e.zip |
Fix -Wpointer-sign around strings/encoding conversions.
Trimmed for brevity:
$ make WERROR_CFLAGS="-Wpointer-sign -Werror" c-lang.o expprint.o utils.o valprint.o varobj.o -k 2>&1 1>/dev/null
../../src/gdb/c-lang.c: In function ‘parse_one_string’:
../../src/gdb/c-lang.c:540:8: error: pointer targets in passing argument 3 of ‘convert_between_encodings’ differ in signedness [-Werror=pointer-sign]
In file included from ../../src/gdb/c-lang.c:30:0:
../../src/gdb/charset.h:64:6: note: expected ‘const gdb_byte *’ but argument is of type ‘char *’
../../src/gdb/expprint.c: In function ‘print_subexp_standard’:
../../src/gdb/expprint.c:205:2: error: pointer targets in passing argument 3 of ‘current_language->la_printstr’ differ in signedness [-Werror=pointer-sign]
../../src/gdb/expprint.c:205:2: note: expected ‘const gdb_byte *’ but argument is of type ‘char *’
cc1: all warnings being treated as errors
make: *** [expprint.o] Error 1
../../src/gdb/utils.c: In function ‘host_char_to_target’:
../../src/gdb/utils.c:1474:9: error: pointer targets in passing argument 3 of ‘convert_between_encodings’ differ in signedness [-Werror=pointer-sign]
../../src/gdb/varobj.c: In function ‘value_get_print_value’:
../../src/gdb/varobj.c:2934:8: error: pointer targets in return differ in signedness [-Werror=pointer-sign]
../../src/gdb/varobj.c:2968:12: error: pointer targets in assignment differ in signedness [-Werror=pointer-sign]
../../src/gdb/varobj.c:2971:3: error: pointer targets in return differ in signedness [-Werror=pointer-sign]
cc1: all warnings being treated as errors
make: *** [varobj.o] Error 1
As with the previous patch, the encoding conversion code works with
gdb_byte arrays as the generic buffers that hold strings of any
encoding/width. This patch adds casts where appropriate.
gdb/
2013-03-07 Pedro Alves <palves@redhat.com>
* c-lang.c (parse_one_string): Cast argument to gdb_byte *.
* expprint.c (print_subexp_standard): Likewise.
* utils.c (host_char_to_target): Likewise.
* valprint.c (generic_emit_char, generic_printstr): Likewise.
* varobj.c (value_get_print_value): Change type of local to char*.
Cast it gdb_byte * in call to language printer.
Diffstat (limited to 'gdb/varobj.c')
-rw-r--r-- | gdb/varobj.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/gdb/varobj.c b/gdb/varobj.c index 9255dc4dced..33ed7cf5194 100644 --- a/gdb/varobj.c +++ b/gdb/varobj.c @@ -2844,7 +2844,7 @@ value_get_print_value (struct value *value, enum varobj_display_formats format, { struct ui_file *stb; struct cleanup *old_chain; - gdb_byte *thevalue = NULL; + char *thevalue = NULL; struct value_print_options opts; struct type *type = NULL; long len = 0; @@ -2956,7 +2956,7 @@ value_get_print_value (struct value *value, enum varobj_display_formats format, /* If the THEVALUE has contents, it is a regular string. */ if (thevalue) - LA_PRINT_STRING (stb, type, thevalue, len, encoding, 0, &opts); + LA_PRINT_STRING (stb, type, (gdb_byte *) thevalue, len, encoding, 0, &opts); else if (string_print) /* Otherwise, if string_print is set, and it is not a regular string, it is a lazy string. */ |