aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2013-03-07Fix -Wpointer-sign around strings/encoding conversions.Pedro Alves6-9/+21
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.
2013-03-07charset.c: fix -Wpointer-signPedro Alves2-3/+10
$ 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.
2013-03-07regcache.c: fix -Wpointer-signPedro Alves2-2/+7
$ make WERROR_CFLAGS="-Wpointer-sign -Werror" regcache.o 2>&1 1>/dev/null ../../src/gdb/regcache.c: In function ‘regcache_xmalloc_1’: ../../src/gdb/regcache.c:228:2: error: pointer targets in assignment differ in signedness [-Werror=pointer-sign] ../../src/gdb/regcache.c:235:2: error: pointer targets in assignment differ in signedness [-Werror=pointer-sign] cc1: all warnings being treated as errors regcache->register_status is "signed char". gdb/ 2013-03-07 Pedro Alves <palves@redhat.com> * regcache.c (regcache_xmalloc_1): Call XCALLOC with signed char for 'regcache->register_status'.
2013-03-07Fix typo.Pedro Alves1-1/+1
2013-03-07breakpoint.c: fix -Wpointer-signPedro Alves2-1/+6
$ make WERROR_CFLAGS="-Wpointer-sign -Werror" breakpoint.o 2>&1 1>/dev/null ../../src/gdb/breakpoint.c: In function ‘breakpoint_xfer_memory’: ../../src/gdb/breakpoint.c:1578:2: error: pointer targets in passing argument 3 of ‘gdbarch_breakpoint_from_pc’ differ in signedness [-Werror=pointer-sign] In file included from ../../src/gdb/defs.h:644:0, from ../../src/gdb/breakpoint.c:20: ../../src/gdb/gdbarch.h:495:25: note: expected ‘int *’ but argument is of type ‘unsigned int *’ target_info.placed_size is an 'int', and gdbarch_breakpoint_from_pc takes an int too. gdb/ 2013-03-07 Pedro Alves <palves@redhat.com> * breakpoint.c.c (breakpoint_xfer_memory): Change type of local to int.
2013-03-07stap-probe.c: fix -Wpointer-signPedro Alves2-1/+5
$ make WERROR_CFLAGS="-Wpointer-sign -Werror" stap-probe.o 2>&1 1>/dev/null ../../src/gdb/stap-probe.c: In function ‘handle_stap_probe’: ../../src/gdb/stap-probe.c:1306:19: error: pointer targets in assignment differ in signedness [-Werror=pointer-sign] cc1: all warnings being treated as errors make: *** [stap-probe.o] Error 1 provider is a string, so it's rightfully a char*. 'data' holds raw bytes (bfd_byte), so a cast is the right thing to do. gdb/ 2013-03-07 Pedro Alves <palves@redhat.com> * stap-probe.c (handle_stap_probe): Add cast to char*.
2013-03-07linux-record.c:record_linux_system_call: fix -Wpointer-signPedro Alves2-3/+10
$ make WERROR_CFLAGS="-Wpointer-sign -Werror" linux-record.o 2>&1 1>/dev/null ... ../../src/gdb/linux-record.c: In function ‘record_linux_system_call’: ../../src/gdb/linux-record.c:1152:9: error: pointer targets in passing argument 3 of ‘regcache_raw_read_signed’ differ in signedness [-Werror=pointer-sign] In file included from ../../src/gdb/linux-record.c:23:0: ../../src/gdb/regcache.h:76:3: note: expected ‘long int *’ but argument is of type ‘long unsigned int *’ ../../src/gdb/linux-record.c:1186:13: error: pointer targets in passing argument 3 of ‘regcache_raw_read_signed’ differ in signedness [-Werror=pointer-sign] In file included from ../../src/gdb/linux-record.c:23:0: ../../src/gdb/regcache.h:76:3: note: expected ‘long int *’ but argument is of type ‘long unsigned int *’ I believe the read_signed calls are correct, and the variables are in the wrong. Tested on x86_64 Fedora 17. gdb/ 2013-03-07 Pedro Alves <palves@redhat.com> * linux-record.c (record_linux_system_call) <gdb_sys_msgrcv, RECORD_MSGRCV>: Pass a signed variable to regcache_raw_read_signed, instead of an unsigned one.
2013-03-07remote-notif.[h|c]:notif_debug: Change type to int.Pedro Alves3-2/+7
notif_debug is installed as variable of a "signed" command: add_setshow_boolean_cmd ("notification", no_class, &notif_debug, _("\ and: command.h:extern void add_setshow_boolean_cmd (char *name, command.h- enum command_class class, command.h- int *var, 2013-03-07 Pedro Alves <palves@redhat.com> * remote-notif.c (notif_debug): Change type to int. * remote-notif.h (notif_debug): Likewise.
2013-03-07ser-tcp.c:tcp_retry_limit: Change type to unsigned int.Pedro Alves2-1/+5
tcp_retry_limit is installed as variable of an unsigned command: add_setshow_uinteger_cmd ("connect-timeout", class_obscure, &tcp_retry_limit, _("\ and I found no uses of the variable treating it as signed (like < 0 checks or some such). 2013-03-07 Pedro Alves <palves@redhat.com> * ser-tcp.c (tcp_retry_limit): Change type to unsigned int.
2013-03-07hex2bin, bin2hex: move declarations to header.Pedro Alves4-7/+10
Move the declarations to a header, rather than declaring them in (multiple) .c files. gdb/ 2013-03-07 Pedro Alves <palves@redhat.com> * remote.c (hex2bin, bin2hex): Move extern declarations to ... * remote.h (hex2bin, bin2hex): ... here. * tracepoint.c (hex2bin, bin2hex): Remove extern declarations.
2013-03-07gdb/gdbserver/Yao Qi2-8/+16
* tracepoint.c (cur_action, cur_step_action): Make them unsigned. (cmd_qtfp): Initialize cur_action and cur_step_action 0 instead of -1. (cmd_qtsp): Adjust condition. Do post increment. Set cur_action and cur_step_action back to 0.
2013-03-07 * utils.c (initialize_utils): Improve doc strings of "set/showEli Zaretskii2-7/+19
width", "set/show height", and "set/show pagination".
2013-03-07PR gdb/15236: gdbserver write to linux memory with zero length corrupts stackPedro Alves2-1/+13
PROBLEM: The function linux_write_memory () in linux-low.c allocates a buffer on the stack to hold a copy of the data to be written. register PTRACE_XFER_TYPE *buffer = (PTRACE_XFER_TYPE *) alloca (count * sizeof (PTRACE_XFER_TYPE)); "count" is the number of bytes to be written, rounded up to the nearest multiple of sizeof (PTRACE_XFER_TYPE) and allowing for not being an aligned address. The function later uses buffer[0] = ptrace (PTRACE_PEEKTEXT, pid, (PTRACE_ARG3_TYPE) (uintptr_t) addr, 0); The problem is that this function can be called to write zero bytes on an aligned address, for example when receiving an X packet of length 0 (used to test if 8-bit write is supported). Under these circumstances, count can be zero. Since in this case, buffer[0] may never have been allocated, the stack is corrupted and gdbserver may crash. SOLUTION: Writing zero bytes should always succeed. The patch below returns successfully early if the length is zero, so avoiding the stack corruption. Verified on the ARC GDB 7.5.1 port. 2013-03-07 Jeremy Bennett <jeremy.bennett@embecosm.com> PR server/15236 * linux-low.c (linux_write_memory): Return early success if LEN is zero.
2013-03-07 * testsuite/discard_locals_relocatable_test.c: Add a powerpcAlan Modra3-2/+15
relocation referencing .LC0. * testsuite/discard_locals_test.sh: Remove FIXMEs.
2013-03-07 * testsuite/ifunc-sel.h (ifunc_sel, ifunc_one): MarkAlan Modra2-11/+82
always_inline. Add assembly for powerpc to avoid GOT.
2013-03-07 * testsuite/script_test_10.sh: Don't test .bss sectionAlan Modra2-1/+6
header number.
2013-03-07 * ax-gdb.c (gen_printf): Make FORMAT const.Keith Seitz5-4/+12
* ax-gdb.h (gen_printf): Likewise. * ax-general.c (ax_string): Make STR const. * ax.h (ax_string): Likewise.
2013-03-07*** empty log message ***gdbadmin1-1/+1
2013-03-06daily updateAlan Modra1-1/+1
2013-03-06 * elfread.c (elf_symfile_read): Move debugging printf to moreDoug Evans2-3/+8
logical location.
2013-03-06Garbage collect py-utils.c:target_string_to_unicode.Pedro Alves3-14/+6
The strlen in this function looked suspicious, for the function documents that STR is in the target's charset (what if it is utf-32, etc.). On closer inspection, nothing is calling the function, and it's been that way ever since the function was added. gdb/ 2013-03-06 Pedro Alves <palves@redhat.com> * python/py-utils.c (target_string_to_unicode): Delete function. * python/python-internal.h (target_string_to_unicode): Delete declaration.
2013-03-06 * ldfile.c (ldfile_open_command_file_1): Return after einfoAlan Modra2-0/+6
to avoid warning.
2013-03-06 * strings.c (get_char): Dispense with buf[]. Instead shiftAlan Modra2-19/+12
chars into big-endian value and byte-swap later if little-endian. Don't EOF check value read from object.
2013-03-06 * powerpc.cc (class Powerpc_relobj): Move some member functions.Alan Modra2-47/+70
(Target_powerpc::symval_for_branch): Add symtab param. Update all callers. Handle folded sections. (Target_powerpc::do_gc_add_reference): Don't cast dynamic object to Powerpc_relobj. (Global_symbol_visitor_opd::operator()): Likewise.
2013-03-06tstatus.exp: use UNSUPPORTED for optional features that are not supportedPedro Alves2-20/+31
The current tstatus.exp tests shows PASSes if either the target support or not the optional tstatus bits: PASS: gdb.trace/tstatus.exp: tstatus does not report trace stop reason PASS: gdb.trace/tstatus.exp: tstatus reports trace stop reason The former (and any other similar case) should be UNSUPPORTED rather than PASS. That'd make it much easier to spot actually problems with the test (e.g., the one Yao's previous patch addressed), along with regressions and progressions. The "not supported" paths in tstatus.exp explicitly check for output you'd get if the feature wasn't supported, so real unexpected failures will still be caught as FAILs. So now e.g., where we wanted to check if tstatus reports the trace stop reason, and if the target does support it, we get PASS: tstatus reports trace stop reason if the target actually reports what we'd expect if the trace stop reason isn't supported, we get: UNSUPPORTED: tstatus reports trace stop reason and if the target reports something else unexpected, we get: FAIL: tstatus reports trace stop reason That has the added bonus that the test string is always the same and only the test results change (PASS/FAIL/UNSUPPORTED), which makes it easier for testers see regressions, compared to the previous: -PASS: gdb.trace/tstatus.exp: tstatus reports trace stop reason +PASS: gdb.trace/tstatus.exp: tstatus does not report trace stop reason which clearly easily goes by unnoticed, as evidenced by the existing problem Yao's previous patch addressed. Tested on x86_64 Fedora 17. gdb/testsuite/ 2013-03-06 Pedro Alves <palves@redhat.com> * gdb.trace/tstatus.exp (run_trace_experiment): When the target doesn't support the tested optional feature, call "unsupported" with the same test message as the "pass" case, instead of calling "pass" with a different message. Use the same text for the "fail" cases too.
2013-03-06 * linespec.c (get_current_search_block): ARI fix, use (void)Pierre Muller2-1/+6
for empty parameter list.
2013-03-06gdb/testsuite/Yao Qi2-44/+7
* gdb.trace/tstatus.exp: Remove the invocation of gdb_load_shlibs, gdb_compile, clean_restart and runto_main. (test_tracepoints): Don't set fast tracepoint. (top level): Don't check agent library is loaded or not.
2013-03-06gdb/testsuite/Yao Qi2-1/+6
* gdb.trace/tstatus.exp (run_trace_experiment): Escape parentheses by "\\".
2013-03-06*** empty log message ***gdbadmin1-1/+1
2013-03-05daily updateAlan Modra1-1/+1
2013-03-05 * ada-lang.c (ada_lookup_symbol_list_worker): New function, contentsDoug Evans7-103/+146
of old ada_lookup_symbol_list. In !full_search case, don't search superblocks. (ada_lookup_symbol_list): Delete arg full_search, all callers updated. Call ada_lookup_symbol_list_worker. (ada_iterate_over_symbols): Call ada_lookup_symbol_list_worker. * ada-lang.h (ada_lookup_symbol_list): Update. * language.h (language_defn): Update comment for la_iterate_over_symbols. * linespec.c (iterate_over_file_blocks): New function. (iterate_over_all_matching_symtabs): Call it. (lookup_prefix_sym): Ditto. (get_current_search_block): New function. (get_search_block): Delete. (find_label_symbols): Call get_current_search_block. (add_matching_symbols_to_info): Call iterate_over_file_blocks. * symtab.c (iterate_over_symbols): Don't search superblocks.
2013-03-05Add to the AArch64 GAS the missing support for hexadecimal-formatYufeng Zhang9-31/+188
floating-point literal in the FMOV instruction. gas/ * config/tc-aarch64.c (aarch64_imm_float_p): Rename 'e' to 'pattern'; add comment. (aarch64_double_precision_fmovable): New function. (parse_aarch64_imm_float): Add parameter 'dp_p'; call the new function; handle hexadecimal representation of IEEE754 encoding. (parse_operands): Update the call to parse_aarch64_imm_float. gas/testsuite/ * gas/aarch64/diagnostic.s: Add test. * gas/aarch64/diagnostic.l: Update. * gas/aarch64/illegal.s: Add test. * gas/aarch64/illegal.l: Update. * gas/aarch64/fpmov.s: New file. * gas/aarch64/fpmov.d: New file.
2013-03-05Fix ChangeLog entry.Corinna Vinschen1-1/+1
2013-03-05gdb/Yao Qi3-4/+12
* cli/cli-decode.c (add_setshow_zuinteger_unlimited_cmd): Change parameter VAR's type from "unsigned int" to "int". * command.h (var_zuinteger_unlimited): Update its comments. (add_setshow_zuinteger_unlimited_cmd): Update the declaration.
2013-03-05 * NEWS: Mention new target x86_64-*-cygwin*.Corinna Vinschen2-0/+5
2013-03-05 * configure.host: Add x86_64-*-cygwin* as host.Corinna Vinschen6-1/+36
* configure.tgt: Add x86_64-*-cygwin* as target. * config/i386/cygwin64.mh: New file. * gdbserver/configure.srv: Add x86_64-*-cygwin* as target.
2013-03-05 * configure.host: Add x86_64-*-cygwin* as valid host.Corinna Vinschen4-4/+56
* configure.tgt: Add x86_64-*-cygwin* as valid target. * emultempl/pep.em: Handle different requirements for Cygwin in terms of start addresses for executables and DLLs, based on memory model in http://cygwin.com/ml/cygwin-developers/2013-02/msg00027.html
2013-03-05 * configure.in: Build DLL tools on x86_64-*-cygwin* as well.Corinna Vinschen3-2/+7
* configure: Regenerate.
2013-03-05 * config.bfd: Add x86_64-*-cygwin to list of supported targets.Corinna Vinschen2-1/+5
2013-03-05 PR ld/15222Alan Modra8-0/+65
ld/ * ldlang.c (lang_size_sections_1): When given an lma_region align LMA as per VMA only if lma_region is the same as region. ld/testsuite/ * ld-scripts/rgn-at6.s, * ld-scripts/rgn-at6.t, * ld-scripts/rgn-at6.d, * ld-scripts/rgn-at7.t, * ld-scripts/rgn-at7.d: New tests.
2013-03-05*** empty log message ***gdbadmin1-1/+1
2013-03-04daily updateAlan Modra1-1/+1
2013-03-04gdb/Jan Kratochvil2-1/+5
* linespec.c (decode_line_2): Fix duplicate request off by two message.
2013-03-04gdb/Jan Kratochvil7-49/+285
* linespec.c (struct linespec_canonical_name): New. (struct linespec_state): Change canonical_names type to it. (add_sal_to_sals): Change variable canonical_name to canonical. Change xrealloc element size. Initialize the different CANONICAL fields. (canonical_to_fullform): New. (filter_results): Use it. Add variables canonical, fullform and cleanup. (struct decode_line_2_item, decode_line_2_compare_items): New. (decode_line_2): Remove variables iter and item_names, add variables items and items_count. Modify the code for these new variables. gdb/testsuite/ * gdb.linespec/base/one/thefile.cc (twodup): New. (m): Call it. * gdb.linespec/base/two/thefile.cc (dupname): New. (n): Call it. * gdb.linespec/break-ask.exp: New file. * gdb.linespec/lspec.cc (body_elsewhere): New comment marker.
2013-03-04 * coff-pe-read.c (read_pe_exported_syms): Don't return withoutCorinna Vinschen2-0/+8
calling do_cleanup.
2013-03-04 * elfcomm.c (error): Flush stdout before emitting the errorNick Clifton2-0/+12
message. (warn): Likewise.
2013-03-042013-03-04 Luis Machado <lgustavo@codesourcery.com>Hui Zhu2-0/+11
* tracepoint.c (build_traceframe_info): Add code for byte order.
2013-03-04 * elf32-ppc.c (ppc_elf_relocate_section <R_PPC_PLTREL24>): AdjustAlan Modra2-29/+39
non-zero addends when relocatable, rather than addends >= 32768. Always zero "addend" before applying relocation.
2013-03-04 * archive64.c (bfd_elf64_archive_write_armap): Fix calculation ofNick Clifton2-6/+12
file pointer offsets for thin archives.
2013-03-04 * testsuite/Makefile.am (final_layout_script.lds): Add .sbss.Alan Modra3-2/+7
* testsuite/Makefile.in: Regenerate.