2012-12-28  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* symtab.c (find_line_symtab): Call symtab_to_fullname instead of
	accessing FULLNAME directly.

2012-12-25  Sergio Durigan Junior  <sergiodj@redhat.com>

	* frv-linux-tdep.c (frv_linux_pc_in_sigtramp): Fix typo.

2012-12-25  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* ada-lang.c (is_known_support_routine): New variable fullname.  Use
	access call to verify the symtab_to_fullname result.
	* breakpoint.c (print_breakpoint_location, update_static_tracepoint):
	Remove NULL check of symtab_to_fullname result.
	* cli/cli-cmds.c (edit_command): Likewise.
	* mi/mi-cmd-file.c (mi_cmd_file_list_exec_source_file)
	(mi_cmd_file_list_exec_source_files): Likewise.
	* python/py-symtab.c (stpy_fullname): Likewise.
	* source.c (symtab_to_fullname): Update function comment.  Rename
	variable r to fd, move it to inner block.  Always provide non-NULL
	result.
	(print_source_lines_base): Remove NULL check of symtab_to_fullname
	result.
	* stack.c (print_frame): Likewise.
	* symtab.c (iterate_over_some_symtabs, find_line_symtab, sources_info):
	Likewise.
	* tracepoint.c (print_one_static_tracepoint_marker): Likewise.

2012-12-24  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Code cleanup.
	* dwarf2read.c (fixup_go_packaging): Do not check symtab->FILENAME for
	NULL.
	* linespec.c (add_sal_to_sals): Likewise.
	* psympriv.h (allocate_psymtab): Add ATTRIBUTE_NONNULL.
	* stack.c (print_frame): Do not check symtab->FILENAME for NULL.
	* symfile.h (allocate_symtab): Add ATTRIBUTE_NONNULL.
	* symtab.h (struct symtab): Add comment it is never NULL for filename.
	* tracepoint.c (set_traceframe_context): Do not check symtab->FILENAME
	for NULL.
	* tui/tui-source.c (tui_set_source_content): Likewise.

2012-12-24  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* breakpoint.c (breakpoint_re_set): Remove the skip_re_set call.
	* infrun.c (handle_inferior_event): Rename the called function to
	function_name_is_marked_for_skip, pass it TMP_SAL.
	* skip.c (struct skiplist_entry): Update function_name comment.  Remove
	fields pc, gdbarch and pending.
	(skip_function_pc): Rename this forward declaration to ...
	(skip_function): ... here.
	(skip_file_command): Remove variable pending and its use, remove
	initialization of E fields pending and gdbarch.  Do not use SYMTAB
	filename, use the specified one.
	(skip_function_command): Remove variable func_pc, do not set it.
	Update the caller of skip_function.  Replace decode_line_1 call by
	a lookup_symbol call.  Remove variables orig_arg, decode_exception and
	sals.  Update the caller of skip_function.
	(skip_info): Remove variable address_width and its use.  Do not print
	address (PC).  Renumber column 5 to 4.
	(skip_function_pc): Rename to ...
	(skip_function): ... here and remove its parameters pc, arch and
	pending.  Update the function comment and no longer use those
	parameters.
	(function_pc_is_marked_for_skip): Rename to ...
	(function_name_is_marked_for_skip): ... here, update function comment
	just to a skip.h reference, replace pc parameter by function_name and
	function_sal.  No longer use E field pending and pc.  Remove variables
	searched_for_sal, sal and filename.  Call compare_filenames_for_search
	instead of just strcmp.
	(skip_re_set): Remove the function.
	* skip.h (struct symtab_and_line): New declaration.
	(function_pc_is_marked_for_skip): Rename to ...
	(function_name_is_marked_for_skip): ... here, replace pc parameter by
	function_name and function_sal, update the function comment.

2012-12-18  Pierre Muller  <muller@sourceware.org>

	* ui-file.h (tee_file_new): Add extern modifier in header declaration.

2012-12-20  Tom Tromey  <tromey@redhat.com>

	* serial.c (deprecated_serial_fd): Remove.
	* serial.h (deprecated_serial_fd): Remove.

2012-12-20  Yao Qi  <yao@codesourcery.com>

	* maint.c (_initialize_maint_cmds): Move code ...
	* symmisc.c (_initialize_symmisc): ... to here.
	(maintenance_print_msymbols): Make it static.
	(maintenance_print_objfiles): Likewise.
	(maintenance_print_symbols): Likewise.
	(maintenance_info_symtabs): Likewise.
	* symtab.h (maintenance_print_msymbols): Remove declaration.
	(maintenance_print_objfiles, maintenance_print_symbols): Likewise.
	(maintenance_info_symtabs): Likewise.

2012-12-20  Yao Qi  <yao@codesourcery.com>

	* maint.c (_initialize_maint_cmds): Move code to ...
	* psymtab.c (_initialize_psymtab): ... here.  New.
	Include "gdbcmd.h".
	(maintenance_print_psymbols): Make it static.
	(maintenance_info_psymtabs, maintenance_check_symtabs): Likewise.
	* symtab.h (maintenance_print_psymbols): Remove declaration.
	(maintenance_check_symtabs, maintenance_info_psymtabs): Likewise.

2012-12-19  Maxim Kuvyrkov  <maxim@codesourcery.com>

	* MAINTAINERS: Add myself to write-after-approval maintainers.

2012-12-19  Andreas Tobler  <andreast@neon.andreas.nets>

	* mips-tdep.c (micromips_deal_with_atomic_sequence): Initialize
	branch_bp to keep gcc happy.

2012-12-19  Joel Brobecker  <brobecker@adacore.com>

	* gdbarch.sh (copyright): Update copyright years.
	* gdbarch.h, gdbarch.c: Regenerate.
	* copyright.py (EXCLUDE_LIST): Remove gdbarch.h and gdbarch.c.
	(MULTIPLE_COPYRIGHT_HEADERS): Add 'gdb/gdbarch.sh'.

2012-12-19  Joel Brobecker  <brobecker@adacore.com>

	* acinclude.m4: Update contact info in copyright notice.

2012-12-19  Yao Qi  <yao@codesourcery.com>

	* maint.c (maintenance_print_statistics): Make it static.
	* symtab.h (maintenance_print_statistics): Remove declaration.

2012-12-19  Joel Brobecker  <brobecker@adacore.com>

	* NEWS: Add entry announcing ppc-lynx178 support.

2012-12-19  Joel Brobecker  <brobecker@adacore.com>

	Revert the following change (compatibility issues with libiconv):
	* gnulib/update-gnulib.sh (IMPORTED_GNULIB_MODULES): Add errno.
	* gnulib/import/errno.in.h: Import.
	* gnulib/import/m4/errno_h.m4: Import.
	* gnulib/aclocal.m4: Regenerate.
	* gnulib/configure: Regenerate.
	* gnulib/import/Makefile.am: Update.
	* gnulib/import/Makefile.in: Update.
	* gnulib/import/m4/gnulib-cache.m4: Update.
	* gnulib/import/m4/gnulib-comp.m4: Update.

2012-12-18  Tom Tromey  <tromey@redhat.com>

	* defs.h (directory_command): Don't declare.
	* source.c (directory_command): Now static.

2012-12-18  Tom Tromey  <tromey@redhat.com>

	* infcmd.c (all_registers_info, nexti_command, stepi_command)
	(continue_command, interrupt_target_command): Now static.
	(registers_info): Remove declaration.
	* inferior.h (all_registers_info, nexti_command, stepi_command)
	(continue_command, interrupt_target_command): Don't declare.

2012-12-18  Tom Tromey  <tromey@redhat.com>

	* cli/cli-cmds.c (apropos_command): Now static.

2012-12-18  Tom Tromey  <tromey@redhat.com>

	* breakpoint.c (dprintf_command): Now static.

2012-12-18  Tom Tromey  <tromey@redhat.com>

	* Makefile.in (init.c): Declare initialize_all_files;
	don't include call-cmds.h.
	* call-cmds.h: Remove.
	* symtab.c: Don't include call-cmds.h.
	* top.c: Don't include call-cmds.h.  Declare
	initialize_all_files.

2012-12-18  Tom Tromey  <tromey@redhat.com>

	* symfile.c (list_overlays_command, map_overlay_command)
	(unmap_overlay_command): Now static.

2012-12-18  Tom Tromey  <tromey@redhat.com>

	* cli/cli-cmds.c (_initialize_cli_cmds): Remove "document",
	"define", "while", and "if" commands.
	* cli/cli-script.c (while_command, if_command, define_command)
	(document_command): Now static.
	(_initialize_cli_script): New function.
	* cli/cli-script.h (while_command, if_command, define_command)
	(document_command): Don't declare.

2012-12-18  Tom Tromey  <tromey@redhat.com>

	* cli/cli-cmds.c (_initialize_cli_cmds): New function.
	(init_cli_cmds): Move most code into new function.

2012-12-18  Tom Tromey  <tromey@redhat.com>

	* minsyms.c (lookup_solib_trampoline_symbol_by_pc): Now static.
	* minsyms.h (lookup_solib_trampoline_symbol_by_pc): Don't
	declare.

2012-12-18  Joel Brobecker  <brobecker@adacore.com>

	* defs.h (enum gdb_osabi): Add GDB_OSABI_LYNXOS178.
	* osabi.c (gdb_osabi_names): Add entry for GDB_OSABI_LYNXOS178.
	* xcoffread.c (xcoff_get_core_n_import_files): New function.
	(xcoff_get_n_import_files): New function.
	* xcoffread.h (xcoffread.h): Add declaration.
	* rs6000-aix-tdep.c: #include "xcoffread.h".
	(rs6000_aix_osabi_sniffer): Do not return GDB_OSABI_AIX for
	XCOFF executables that do not depend on any shared library.
	* rs6000-lynx178-tdep.c: New file.
	* configure.tgt: Add powerpc-*-lynx*178 handling.
	* Makefile.in (ALL_TARGET_OBS): Add rs6000-lynx178-tdep.o.
	(ALLDEPFILES): Add rs6000-lynx178-tdep.c.

2012-12-18  Hui Zhu  <hui_zhu@mentor.com>

	* ui-file.c (ui_file): Add to_fseek.
	(ui_file_new): Call set_ui_file_fseek.
	(null_file_fseek, ui_file_fseek, set_ui_file_fseek,
	 stdio_file_fseek): New functions.
	(stdio_file_new): Call set_ui_file_fseek.
	* ui-file.h (ui_file_fseek_ftype): New typedef.
	(set_ui_file_fseek, ui_file_fseek): New externs.

2012-12-18  Hui Zhu  <hui_zhu@mentor.com>

	* ui-file.c (set_ui_file_flush): Change flush to flush_ptr.
	(set_ui_file_isatty): Change isatty to isatty_ptr.
	(set_ui_file_rewind): Change rewind to rewind_ptr.
	(set_ui_file_put): Change put to put_ptr.
	(set_ui_file_write): Change write to write_ptr.
	(set_ui_file_write_async_safe): Change write_async_safe to
	write_async_safe_ptr.
	(set_ui_file_read): Change read to read_ptr.
	(set_ui_file_fputs): Change fputs to fputs_ptr.
	(set_ui_file_data): Change delete to delete_ptr.

2012-12-18  Joel Brobecker  <brobecker@adacore.com>

	* solib-darwin.c (darwin_current_sos): Fix indentation.
	(darwin_read_exec_load_addr): New function.
	(darwin_solib_create_inferior_hook): Rebase executable.
	* objfiles.c (objfile_rebase1, objfile_rebase): New functions.
	* objfiles.h (objfile_rebase1, objfile_rebase): Add prototypes.

2012-12-18  Joel Brobecker  <brobecker@adacore.com>

	* gnulib/update-gnulib.sh (IMPORTED_GNULIB_MODULES): Add errno.
	* gnulib/import/errno.in.h: Import.
	* gnulib/import/m4/errno_h.m4: Import.
	* gnulib/aclocal.m4: Regenerate.
	* gnulib/configure: Regenerate.
	* gnulib/import/Makefile.am: Update.
	* gnulib/import/Makefile.in: Update.
	* gnulib/import/m4/gnulib-cache.m4: Update.
	* gnulib/import/m4/gnulib-comp.m4: Update.

2012-12-18  Joel Brobecker  <brobecker@adacore.com>

	* gnulib/update-gnulib.sh (GNULIB_COMMIT_SHA1): Set to
	8d5bd1402003bd0153984b138735adf537d960b0.
	* gnulib/aclocal.m4, configure, config.in: Regenerate.
	* gnulib/import/m4/extern-inline.m4: Import.
	* gnulib/import/wctype-h.c: Import.
	* gnulib/import/Makefile.am: Update.
	* gnulib/import/Makefile.in: Update.
	* gnulib/import/alloca.in.h: Update.
	* gnulib/import/extra/snippet/warn-on-use.h: Update.
	* gnulib/import/localcharset.c: Update.
	* gnulib/import/m4/fcntl-o.m4: Update.
	* gnulib/import/m4/gnulib-cache.m4: Update.
	* gnulib/import/m4/gnulib-comp.m4: Update.
	* gnulib/import/m4/wctype_h.m4: Update.
	* gnulib/import/stdbool.in.h: Update.
	* gnulib/import/verify.h: Update.
	* gnulib/import/wctype.in.h: Update.

2012-12-18  Joel Brobecker  <brobecker@adacore.com>

	* gnulib/update-gnulib.sh: Add call to autoheader.

2012-12-17  Tom Tromey  <tromey@redhat.com>

	* top.c (xgdb_verbose): Remove.

2012-12-16  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Code cleanup.
	* skip.c (skip_function_command, skip_file_command, skip_info): Remove
	unused forward declarations.
	(skip_file_command): Make variables symtab and filename targets const.
	Use proper 0 vs. NULL constant everywhere.
	(skip_function_command): Use proper 0 vs. NULL constant everywhere.
	Include empty line after declarations.  Use GNU spacing in a comment.
	Do not use strlen for end of string check.
	(skip_info): Use proper 0 vs. NULL constant everywhere.  Add column 5
	comments.
	(skip_enable_command, skip_disable_command, skip_delete_command)
	(add_skiplist_entry): Use proper 0 vs. NULL constant everywhere.
	(function_pc_is_marked_for_skip): Make variable filename target const.
	Use proper 0 vs. NULL constant everywhere.  Fix GNU non-compliant
	comment formatting.
	(skip_re_set): Add empty line after function comment.  Use proper 0 vs.
	NULL constant everywhere.  Include empty line after declarations.  Make
	variable symtab target const.  Do not use strlen for end of string
	check.

2012-12-16  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Code cleanup.
	* breakpoint.c (clear_command): Remove variable sal_name_len and its
	initialization, remove it from the compare_filenames_for_search call.
	* dwarf2read.c (dw2_map_symtabs_matching_filename): Remove variable
	name_len and its initialization, remove it from the
	compare_filenames_for_search calls.
	* psymtab.c (partial_map_symtabs_matching_filename): Likewise.
	* symtab.c (compare_filenames_for_search): Remove the search_len
	parameter, update the function comment, new variable search_len
	initialized from SEARCH_NAME.
	(iterate_over_some_symtabs): Remove variable name_len and its
	initialization, remove it from the compare_filenames_for_search calls.
	* symtab.h (compare_filenames_for_search): Remove the search_len
	parameter.

2012-12-16  Joel Brobecker  <brobecker@adacore.com>

	* Makefile.in (SFILES): Move ravenscar-thread.c from here...
	(ALLDEPFILES): ... to there.

2012-12-15  Joel Brobecker  <brobecker@adacore.com>

	* configure.tgt (sparc-*-*): Add missing '\' in gdb_target_ops.

2012-12-15  Joel Brobecker  <brobecker@adacore.com>

	* ppc-ravenscar-thread.h, ppc-ravenscar-thread.c: New files.
	* Makefile.in (ALL_TARGET_OBS): Add ppc-ravenscar-thread.o.
	(HFILES_NO_SRCDIR): Add ppc-ravenscar-thread.h.
	(ALLDEPFILES): Add ppc-ravenscar-thread.c.
	* configure.tgt: Add ravenscar-thread.o and ppc-ravenscar-thread.o
	to gdb_target_obs for every target that uses rs6000-tdep.o.
	* rs6000-tdep.c: #include "ppc-ravenscar-thread.h".
	(rs6000_gdbarch_init): Call register_e500_ravenscar_ops
	or register_ppc_ravenscar_ops.

2012-12-15  Joel Brobecker  <brobecker@adacore.com>

	* sparc-ravenscar-thread.h: SPARC_RAVENSCAR_THREAD_H renames
	RAVENSCAR_SPARC_THREAD_H.
	* sparc-ravenscar-thread.c: Rename all global entities
	whose name is uses "ravenscar_sparc" as the prefix to use
	"sparc_ravenscar" instead.

2012-12-15  Joel Brobecker  <brobecker@adacore.com>

	* sparc-ravenscar-thread.h: Renames ravenscar-sparc-thread.h.
	* sparc-ravenscar-thread.c: Renames ravenscar-sparc-thread.c.
	Adjust sparc-ravenscar-thread.h #include.
	* sparc-tdep.c: Adjust sparc-ravenscar-thread.h #include
	accordingly.
	* Makefile.in: Replace ravenscar-sparc-thread with
	sparc-ravenscar-thread throughout.
	* configure.tgt: Likewise.

2012-12-15  Joel Brobecker  <brobecker@adacore.com>

	* gdbarch.sh: Add "struct ravenscar_arch_ops" forward
	declaration.
	(ravenscar_ops): New gdbarch variable.
	* gdbarch.h, gdbarch.c: Regenerate.
	* ravenscar-thread.h (ravenscar_register_arch_ops): Delete.
	* ravenscar-thread.c (current_arch_ops): Delete.
	(ravenscar_fetch_registers): Get the ravenscar_arch_ops
	from the gdbarch.
	(ravenscar_store_registers, ravenscar_prepare_to_store): Likewise.
	(ravenscar_inferior_created): Add gdbarch_ravenscar_ops check.
	(ravenscar_register_arch_ops): Delete.
	* ravenscar-sparc-thread.h: New file.
	* ravenscar-sparc-thread.c: #include "ravenscar-sparc-thread.h".
	(ravenscar_sparc_ops): Define value statically.
	(_initialize_ravenscar_sparc): Delete.
	(register_sparc_ravenscar_ops): New function.
	* sparc-tdep.c: #include "ravenscar-sparc-thread.h".
	(sparc32_gdbarch_init): Add call to register_sparc_ravenscar_ops.
	* Makefile.in (ALL_TARGET_OBS): Add ravenscar-thread.o and
	ravenscar-sparc-thread.o.
	(SFILES): Add ravenscar-thread.c.
	(HFILES_NO_SRCDIR): Add ravenscar-sparc-thread.h.
	(ALLDEPFILES): ravenscar-sparc-thread.c.
	* configure.tgt: Add ravenscar-thread.o and ravenscar-sparc-thread.o
	to gdb_target_obs
	for all the targets that use sparc-tdep.o.

2012-12-15  Joel Brobecker  <brobecker@adacore.com>

	* ravenscar-thread.c (ravenscar_is_open): Delete.
	(ravenscar_initialize): Move most of the code from here...
	(ravenscar_inferior_created): ... to there.  Invert logic.
	(ravenscar_close): Delete.
	(init_ravenscar_thread_ops): Remove setting of
	ravenscar_ops.to_close.

2012-12-15  Joel Brobecker  <brobecker@adacore.com>

	* objfiles.c (init_entry_point_info): Move function from here...
	* symfile.c (init_entry_point_info): ... to there.  Make static.
	* objfiles.h (objfiles.h): Delete declaration.

2012-12-15  Joel Brobecker  <brobecker@adacore.com>

	* symfile.c (syms_from_objfile_1): Renames syms_from_objfile.
	Remove call to init_entry_point_info.  Add OBJFILE's
	section_offsets and num_sections initialization.  Add note
	about entry info in the function documentation.
	(syms_from_objfile): New function.
	* coffread.c (coff_symfile_init): Remove call to
	init_entry_point_info.
	* machoread.c (macho_symfile_init): Likewise.
	* xcoffread.c(xcoff_symfile_init): Likewise.

2012-12-15  Yao Qi  <yao@codesourcery.com>

	* remote-notif.c (_initialize_notif): Add new commands
	'set debug notification' and 'show debug notification'.
	* NEWS: Mention these new commands.

2012-12-15  Yao Qi  <yao@codesourcery.com>

	* Makefile.in (REMOTE_OBS): Add "remote-notif.o".
	(SFILES): Add "remote-notif.c".
	(HFILES_NO_SRCDIR): Add "remote-notif.h" and "common/queue.h".
	* remote-notif.c: New.  Factored out from remote.c.
	* remote-notif.h: New.
	* remote.c: Include "remote-notif.h".
	(stop_reply_xmalloc, do_stop_reply_xfree):
	(remote_parse_stop_reply, remote_get_pending_stop_replies):
	(remote_async_get_pending_events_handler): Remove declarations.
	(remote_parse_stop_reply): Declare.
	(pending_stop_reply): Remove.
	(remote_async_get_pending_events_token): Move to
	remote-notif.c.
	(remote_close): Replace 'delete_async_event_handler' with
	remote_notif_unregister_async_event_handler.
	Don't call discard_pending_stop_replies.
	(remote_start_remote): Replace code with remote_notif_parse
	and remote_notif_get_pending_replies.
	(remote_open_1): Replace 'create_async_event_handler' with
	remote_notif_register_async_event_handler.
	(extended_remote_attach_1): Call remote_notif_parse and
	notif_stop_reply_push.
	(struct stop_reply) <next>: Remove.
	<base>: New field.
	Callers update.
	(stop_reply_queue): Change its type.
	(stop_reply_xmalloc, do_stop_reply_xfree): Remove.
	(remote_notif_remove_all): New.
	(discard_pending_stop_replies): Update.
	(remote_notif_stop_ack, stop_reply_dtr): New.
	(remote_notif_stop_alloc_event): New.
	(notif_client_stop): New variable.
	(stop_reply_match_ptid, stop_reply_match_ptid_and_ws: New.
	(queued_stop_reply, peek_stop_reply): Adjust.
	(remote_get_pending_stop_replies): Rename to
	remote_notif_get_pending_events.
	(handle_notification): Move to remote-notif.c.
	(remote_async_get_pending_events_handler): Likewise.
	(remote_wait_as): Adjust to call remote_notif_parse.
	Call 'getpkt_or_notif_sane' instead of 'getpkt_sane'.
	Return minus_one_ptid early if gets a notification.
	(remote_wait): Call QUEUE_is_empty (notif_reply_p).
	(_initialize_remote): Call QUEUE_alloc.  Update caller.
	(remote_resume): Call 'remote_notif_process' in all-stop mode.
	* remote.h: Include "remote-notif.h".
	(remote_notif_get_pending_replies): Declare.

2012-12-15  Yao Qi  <yao@codesourcery.com>

	* remote.c (discard_pending_stop_replies): Update declaration.
	(remote_detach_1, extended_remote_mourn_1): Likewise.
	(discard_pending_stop_replies): Change parameter from PID to
	INF.
	(remote_close): Update caller.
	(_initialize_remote): Attach discard_pending_stop_replies to
	inferior_exit observer.

2012-12-15  Yao Qi  <yao@codesourcery.com>

	* remote.c (getpkt_or_notif_sane): Add one more argument in
	its declaration.
	(getpkt_or_notif_sane_1): Add one more argument.
	(getpkt_sane): Update caller.
	(getpkt_or_notif_sane): Likewise.  Update call
	togetpkt_or_notif_sane_1.
	(remote_wait_ns): Update caller.

2012-12-15  Yao Qi  <yao@codesourcery.com>
	    Doug Evans  <dje@google.com>

	* common/queue.h: New.

2012-12-15  Yao Qi  <yao@codesourcery.com>

	* breakpoint.c (print_one_breakpoint_location): Display the
	state of 'installed' of each non-pending location of a tracepoint
	in both CLI and MI.
	(download_tracepoint_locations): Notify 'breakpoint-modified'
	observer if any tracepoint location is downloaded.
	* tracepoint.c (start_tracing): Likewise.
	(merge_uploaded_tracepoints): Record all modified
	tracepoints and notify 'breakpoint-modified' observer for them.

	* NEWS: Mention the change for CLI and MI.

2012-12-15  Yao Qi  <yao@codesourcery.com>

	* breakpoint.c (download_tracepoint_locations): Iterate over
	ALL_TRACEPOINTS first and then iterate over locations of
	each tracepoint.

2012-12-14  Pierre Muller  <muller@sourceware.org>
	    Pedro Alves  <palves@redhat.com>

	* solib-target.c (solib_target_current_sos): Remove 'const'
	qualifier from type of library_document local variable to be
	able to free it and avoid a memory leak.
	Use cleanup chain to avoid leak even if exceptino is generated.

2012-12-14  Tom Tromey  <tromey@redhat.com>

	PR c++/8888:
	* symtab.c (lookup_symbol_aux): If constructor is found, consider
	returning the type instead.
	* c-exp.y (classify_name): Check STRUCT_DOMAIN if a constructor is
	found.

2012-12-14  Tom Tromey  <tromey@redhat.com>

	Partial fix for PR c++/14160:
	* c-typeprint.c (c_type_print_base): Use TYPE_FN_FIELD_CONSTRUCTOR.
	* dwarf2read.c (dwarf2_is_constructor): New function.
	(dwarf2_add_member_fn): Use it.
	* gnu-v3-abi.c (gnuv3_pass_by_reference): Use
	TYPE_FN_FIELD_CONSTRUCTOR.
	* jv-typeprint.c (java_type_print_base): Use
	TYPE_FN_FIELD_CONSTRUCTOR.
	* gdbtypes.h (struct fn_field) <is_constructor>: New field.
	<dummy>: Shrink.
	(TYPE_FN_FIELD_CONSTRUCTOR): New macro.

2012-12-14  Tom Tromey  <tromey@redhat.com>

	* c-exp.y (block, variable, name_not_typename, lex_one_token,
	classify_name): Update.
	* c-valprint.c (c_val_print): Update.
	* f-exp.y (yylex): Update.
	* go-exp.y (package_name_p, classify_packaged_name)
	(classify_name): Update.
	* jv-exp.y (push_variable): Update.
	* m2-exp.y (variable): Update.
	* mi/mi-cmd-stack.c (list_args_or_locals): Update.
	* p-exp.y (block, variable, yylex): Update.
	* p-valprint.c (pascal_val_print): Update.
	* parse.c (write_dollar_variable): Update.
	* printcmd.c (address_info): Update.
	* python/py-symbol.c (gdbpy_lookup_symbol): Update.
	* symtab.c (lookup_symbol_aux, lookup_symbol_in_language)
	(lookup_symbol): Change type of 'is_a_field_of_this'.
	(check_field): Add 'is_a_field_of_this' argument.
	* symtab.h (struct field_of_this_result): New.
	(lookup_symbol, lookup_symbol_in_language): Update.

2012-12-14  Tom Tromey  <tromey@redhat.com>

	* symtab.c (check_field): Now static.  Move from...
	* valops.c (check_field): ... here.  Remove.
	* value.h (check_field): Don't declare.

2012-12-14  Tom Tromey  <tromey@redhat.com>

	* NEWS: Mention "info proc" and core files.
	* corelow.c (core_info_proc): New function.
	(init_core_ops): Set to_info_proc.
	* gdbarch.c, gdbarch.h: Rebuild.
	* gdbarch.sh (core_info_proc): New method.
	* infcmd.c (info_proc_cmd_1): Invoke target_info_proc first.
	* linux-tdep.c (linux_core_info_proc_mappings)
	(linux_core_info_proc): New functions.
	(linux_find_memory_region_ftype): New typedef.
	(linux_find_memory_regions_full): New function, from
	linux_find_memory_regions.
	(struct linux_find_memory_regions_data): New.
	(linux_find_memory_regions_thunk): New function.
	(linux_find_memory_regions): Rewrite.
	(struct linux_make_mappings_data): New.
	(linux_make_mappings_callback)
	(linux_make_mappings_corefile_notes): New functions.
	(linux_make_corefile_notes): Call linux_make_mappings_corefile_notes.
	(linux_init_abi): Call set_gdbarch_core_info_proc.
	* target.c (target_info_proc): Return 'int'.
	* target.h (target_info_proc): Update.

2012-12-14  Pierre Muller  <muller@sourceware.org>

	* windows-nat.c (windows_xfer_shared_libraries): Avoid
	memory leak when OFFSET >= LEN_AVAIL.

2012-12-13  Tom Tromey  <tromey@redhat.com>

	* solib-svr4.c (enable_break): Use SECT_OFF_TEXT.

2012-12-13  Tom Tromey  <tromey@redhat.com>

	* acinclude.m4 (CY_AC_C_WORKS): Remove.

2012-12-13  Pierre Muller  <muller@sourceware.org>

	* coff-pe-read.c (pe_text_section_offset): Increase size of sname
	local variable and zero terminate it to avoid possible problems
	in strcmp.

2012-12-13  Pedro Alves  <palves@redhat.com>

	* coff-pe-read.c: Include coff/internal.h.
	(read_pe_exported_syms): Use SCNNMLEN instead of hardcoded 8.
	Null terminate buffer explicitly instead of memset the whole
	buffer.

2012-12-13  Pierre Muller  <muller@sourceware.org>

	* coff-pe-read.c (IMAGE_SCN_CNT_TEXT, IMAGE_SCN_CNT_INITIALIZED_DATA)
	(IMAGE_SCN_CNT_UNINITIALIZED_DATA): Remove useless checks
	for already defined macros.

2012-12-13  Pierre Muller  <muller@sourceware.org>

	* coff-pe-read.h (pe_text_section_offset): Declare new function.
	* coff-pe-read.c (debug_coff_pe_read): New static variable.
	(struct read_pe_section_data): Add section_name field.
	(IMAGE_SCN_CNT_CODE): New macro, if not already defined.
	(IMAGE_SCN_CNT_INITIALIZED_DATA): Ditto.
	(IMAGE_SCN_CNT_UNINITIALIZED_DATA): Ditto.
	(get_pe_section_index): New function.
	(struct pe_sections_info): New type.
	(get_section_vmas): Use new struct pe_sections_info.
	(add_pe_exported_sym): Handle unnamed exported function.
	(add_pe_forwarded_sym): New function.
	(read_pe_truncate_name): Truncate at last dot.
	(pe_as16): New function.
	(read_pe_exported_syms): Use ordinal of function to
	retrieve correct RVA address of function and handle
	forwarded symbol.
	(pe_text_section_offset): New function.
	(show_debug_coff_pe_read): New function.
	(_initialize_coff_pe_read): New function adding
	'set/show debug coff_pe_read' commands.

	* windows-tdep.c (windows_xfer_shared_library): Use
	pe_text_section_offset function instead of possibly wrong
	0x1000 constant for .text sextion offset.

2012-12-13  Pedro Alves  <palves@redhat.com>

	* gdbarch.sh (do_read): Set IFS to blank.

2012-12-12  Mircea Gherzan  <mircea.gherzan@intel.com>

	* NEWS: Mention the -catch-load/-catch-unload MI commands.

2012-12-12  Mircea Gherzan  <mircea.gherzan@intel.com>

	* Makefile.in (SUBDIR_MI_OBS): Add mi-cmd-catch.o.
	(SUBDIR_MI_SRCS): Add mi/mi-cmd-catch.c.
	* breakpoint.c (add_solib_catchpoint): New function that
	can be used by both CLI and MI, factored out from
	catch_load_or_unload.
	(catch_load_or_unload): Strip it down and make it use the
	new add_solib_catchpoint.
	* breakpoint.h (add_solib_catchpoint): Declare it.
	* mi/mi-cmd-break.h: New file.
	* mi/mi-cmd-break.c: Include mi-cmd-break.h.
	(setup_breakpoint_reporting): New function used for both
	catchpoints and breakpoints.
	(mi_cmd_break_insert): Use setup_breakpoint_reporting.
	* mi/mi-cmd-catch.c: New file.
	* mi/mi-cmds.c (mi_cmds): Add the handlers for -catch-load
	and -catch-unload.
	* mi/mi-cmds.h: Declare the handlers for -catch-load and
	-catch-unload.

2012-11-28  Tom Tromey  <tromey@redhat.com>

	* dbxread.c (read_dbx_symtab): Update.
	(end_psymtab, dbx_psymtab_to_symtab_1, dbx_psymtab_to_symtab)
	(read_ofile_symtab): Add 'objfile' argument.
	* dwarf2read.c (process_psymtab_comp_unit_reader)
	(build_type_psymtabs_reader): Update.
	(dwarf2_psymtab_to_symtab): Add 'objfile' argument.
	* mdebugread.c (mdebug_psymtab_to_symtab): Add 'objfile'
	argument.
	(parse_procedure, parse_partial_symbols): Update.
	(psymtab_to_symtab_1): Add 'objfile' argument.
	* psympriv.h (struct partial_symtab) <objfile>: Remove.
	<read_symtab>: Add 'objfile' argument.
	(sort_pst_symbols, discard_psymtab): Update.
	* psymtab.c (partial_map_expand_apply): Update.
	(find_pc_sect_psymtab_closer): Add 'objfile' argument.
	(find_pc_sect_psymtab, find_pc_sect_symtab_from_partial): Update.
	(find_pc_sect_psymbol): Add 'objfile' argument.
	(lookup_symbol_aux_psymtabs): Update.
	(match_partial_symbol, lookup_partial_symbol, psymtab_to_symtab):
	Add 'objfile' argument.
	(find_last_source_symtab_from_partial, dump_psymtab)
	(dump_psymtabs_for_objfile, read_symtabs_for_function)
	(expand_partial_symbol_tables, read_psymtabs_with_filename)
	(find_symbol_file_from_partial, map_matching_symbols_psymtab)
	(expand_symtabs_matching_via_partial): Update.
	(sort_pst_symbols): Add 'objfile' argument.
	(allocate_psymtab): Update.
	(discard_psymtab): Add 'objfile' argument.
	(maintenance_info_psymtabs, maintenance_check_symtabs): Update.
	* stabsread.h (end_psymtab): Update.
	* xcoffread.c (this_symtab_objfile): New global.
	(process_linenos, enter_line_range, xcoff_next_symbol_text):
	Update.
	(read_xcoff_symtab): Add 'objfile' argument.
	(read_symbol, read_symbol_lineno): Update.
	(xcoff_psymtab_to_symtab_1, xcoff_psymtab_to_symtab)
	(xcoff_end_psymtab): Add 'objfile' argument.
	(scan_xcoff_symtab): Update.

2012-12-12  Paul Koning  <paul_koning@dell.com>

	Add support for Python 3.
	* NEWS: Mention Python 3 support.
	* varobj.c (value_get_print_value): Use
	python_string_to_target_string.
	* python/py-block.c: Use PyVarObject_HEAD_INIT in initialization
	of type objects.
	* python/py-breakpoint.c: Ditto.
	* python/py-cmd.c:  Ditto.
	* python/py-event.c: Ditto.
	* python/py-event.h: Ditto.
	* python/py-evtregistry.c: Ditto.
	* python/py-finishbreakpoint.c: Ditto.
	* python/py-frame.c: Ditto.
	* python/py-function.c: Ditto.
	* python/py-infthread.c: Ditto.
	* python/py-lazy-string.c: Ditto.
	* python/py-progspace.c: Ditto.
	* /python/py-symbol.c: Ditto.
	* python/py-evts.c:  (gdbpy_initialize_py_events): Add module
	initialization for Python 3.
	* python/py-inferior.c: Use PyVarObject_HEAD_INIT in initialization
	of type objects.
	(infpy_read_memory): Return memoryview object if Python 3.
	(infpy_write_memory): Use "s*" operand parsing code for Python 3.
	(infpy_search_memory): Ditto.
	(get_buffer): New function for Python 3.
	* python/py-objfile.c: Use PyVarObject_HEAD_INIT in initialization
	of type objects.
	(objfpy_dealloc): Use Py_TYPE to call tp_free.
	* python/py-param.c: Use PyVarObject_HEAD_INIT in initialization
	of type objects.
	(get_attr): Use PyUnicode_CompareWithASCIIString if Python 3.
	(set_attr): Ditto.
	* python/py-prettyprint.c (print_string_repr): use PyBytes methods
	instead of PyString methods if Python 3.
	(print_children): Skip push_dummy_python_frame call if Python 3.
	* python/py-symtab.c: Use PyVarObject_HEAD_INIT in initialization
	of type objects.
	(salpy_dealloc): Use Py_TYPE to call tp_free.
	* python/py-type.c: Use PyVarObject_HEAD_INIT in initialization
	of type objects.
	(field_dealloc): Use Py_TYPE to call tp_free.
	(typy_dealloc): Ditto.
	(type_object_as_number): Adjust struct initializations for
	differences in layout for Python 2 vs. Python 3.
	* python/py-utils.c (python_string_to_unicode): Omit non-Unicode
	string case for Python 3.
	(unicode_to_encoded_python_string): Shorten code (no functional
	change).
	(python_string_to_target_python_string): Comment that in Python 3
	returned value is a Python "bytes" type.
	(gdbpy_is_string): Omit non-Unicode string check in Python 3.
	(gdb_py_object_from_longest): Omit non-long integer case in Python
	3.
	(gdb_py_object_from_ulongest): Ditto.
	* python/py-value.c: Use PyVarObject_HEAD_INIT in initialization
	of type objects.
	(valpy_dealloc): Use Py_TYPE to call tp_free.
	(valpy_int): Omit function if Python 3.
	(convert_value_from_python): Use "%S" format (Python object as a
	string) if Python 3.
	(value_object_as_number): Adjust struct initializations for
	differences in layout for Python 2 vs. Python 3.
	* python/python-config.py: Adjust syntax for Python 3
	compatibility.
	Include "sys.abiflags" string as part of python library name, if
	that attribute exists (Python 3).
	* python/python-internal.h (IS_PY3): Define if Python 3.
	(Py_TPFLAGS_HAVE_ITER, Py_TPFLAGS_CHECKTYPES): Define with
	placeholder value if Python 3.
	(PyInt_Check, PyInt_FromLong, PyInt_AsLong, PyString_FromString,
	PyString_Decode, PyString_FromFormat, PyString_Check): Define as
	analogous Python 3 API function if Python 3.
	(PyVarObject_HEAD_INIT): Define if not already defined.
	(Py_TYPE): Ditto.
	* python/python.c (eval_python_command): Omit Py_FlushLine call if
	Python 3.
	Check return values of all Python API calls for error.
	Supply dummy "python" and "python-interactive" commands if Python
	initialization failed.
	(_initialize_python): Convert argc to wchar_t** if Python 3.
	Add module initialization for Python 3.
	(finish_python_initialization): Pass wchar_t * argument to
	PySys_SetPath if Python 3.
	* python/lib/gdb/__init__.py: Define "reload" if Python 3.
	(_GdbFile): New class for common output file behavior.
	(GdbOutFile): Subclass from _GdbFile.
	(GdbOutputErrorFile): Ditto.
	(auto_load_packages): Adjust syntax for Python 3 compatibility.
	* python/lib/gdb/printing.py: Define basestr and int if Python 3.
	* python/lib/gdb/prompt.py: Use sorted() function rather than
	sort() method.
	* python/lib/gdb/command/explore.py: Define raw_input if Python 3.
	Adjust syntax for Python 3 compatibility.
	* python/lib/gdb/command/pretty_printers.py: Use sorted() function
	rather than sort() method.
	Adjust syntax for Python 3 compatibility.
	* python/lib/gdb/command/type_printers.py: Ditto.

2012-12-12  Tom Tromey  <tromey@redhat.com>

	* coffread.c (coff_objfile_data_key): New global.
	(coff_symfile_init): Use set_objfile_data.
	(coff_symfile_read): Use objfile_data.
	(coff_symfile_finish): Don't free deprecated_sym_private.
	(coff_free_info): New function.
	(_initialize_coffread): Initialize coff_objfile_data_key.
	* mdebugread.c (pending_list): Update comment.
	* objfiles.h (struct objfile) <deprecated_sym_private>: Remove.
	* symfile.c (reread_symbols): Don't mention
	deprecated_sym_private.
	* xcoffread.c (xcoff_objfile_data_key): New global.
	(XCOFF_DATA): New macro.
	(process_linenos, enter_line_range, xcoff_next_symbol_text)
	(read_xcoff_symtab, coff_getfilename, read_symbol_lineno): Use
	XCOFF_DATA.
	(xcoff_new_init) Use set_objfile_data.
	(xcoff_symfile_finish): Don't free deprecated_sym_private.
	(init_stringtab, swap_sym, scan_xcoff_symtab)
	(xcoff_get_toc_offset, xcoff_initial_scan): Use XCOFF_DATA.
	(xcoff_free_info): New function.
	(_initialize_xcoffread): Initialize xcoff_objfile_data_key.

2012-12-12  Mircea Gherzan  <mircea.gherzan@intel.com>

	* MAINTAINERS (Write After Approval): Add "Mircea Gherzan".

2012-12-12  Tom Tromey  <tromey@redhat.com>

	* coffread.c (coff_symfile_init): Use set_objfile_data.
	(coff_symfile_read): Use DBX_SYMFILE_INFO.
	* dbxread.c (dbx_objfile_data_key): New global.
	(dbx_symfile_init): Use set_objfile_data.
	(dbx_symfile_finish): Don't free deprecated_sym_stab_info.
	(dbx_free_symfile_info): New function.
	(coffstab_build_psymtabs, elfstab_build_psymtabs): Use
	DBX_SYMFILE_INFO.
	(stabsect_build_psymtabs): Use set_objfile_data.
	(_initialize_dbxreadb): Initialize dbx_objfile_data_key.
	* elfread.c (elf_symtab_read): Use DBX_SYMFILE_INFO,
	set_objfile_data.
	(free_elfinfo): Use DBX_SYMFILE_INFO.
	(elf_symfile_finish): Don't free deprecated_sym_stab_info.
	(elfstab_offset_sections): Use DBX_SYMFILE_INFO.
	* gdb-stabs.h (dbx_objfile_data_key): Declare.
	(DBX_SYMFILE_INFO): Rewrite to use objfile_data.
	* objfiles.h (struct objfile) <deprecated_sym_stab_info>: Remove.
	* somread.c (som_symfile_finish): Don't free
	deprecated_sym_stab_info.

2012-12-12  Joel Brobecker  <brobecker@adacore.com>

	* gdbarch.sh (software_single_step): Remove trailing space in
	comment (gdbarch.h is already correct).

2012-12-11  Tom Tromey  <tromey@redhat.com>

	* dwarf2read.c (dwarf2_get_dwz_file): Set 'dwz_file'.

2012-12-11  Tom Tromey  <tromey@redhat.com>

	* dsrec.c (report_transfer_performance): Don't declare.
	(load_srec): Use gettimeofday, print_transfer_performance.
	* symfile.c (report_transfer_performance): Remove.

2012-12-11  Pedro Alves  <pedro@codesourcery.com>
	    Pedro Alves  <palves@redhat.com>

	* procfs.c (procfs_make_note_section) [NEW_PROC_API]: Output a
	NT_PSTATUS note.
	* sol2-tdep.c (sol2_core_pid_to_str): Print process IDs
	differently from LWP IDs.

2012-12-11  Pedro Alves  <palves@redhat.com>

	* configure.ac (detect type of /proc): Remove Unixware handling.
	* configure: Regenerate.
	* proc-api.c (ioctl_table) [PIOCLSTATUS]: Don't mention Unixware.
	(ioctl_table) [PCRESET]: Remove entry.
	* proc-events.c (SYS_lwp_create, SYS_lwp_exit, SYS_lwp_wait)
	(SYS_lwp_self, SYS_lwp_info, SYS_lwp_private, SYS_lwp_kill)
	(SYS_lwp_suspend, SYS_lwp_continue): Don't define.
	* proc-why.c (pr_why_table) [PR_SUSPENDED]: Don't mention Unixware.
	* procfs.c: Remove all UNIXWARE guarded code, and all traces of
	Unixware in comments throughout.
	* i386-tdep.c (i386_svr4_sigtramp_p): Don't match _sigacthandler,
	and remove mention of Unixware.

2012-12-10  Doug Evans  <dje@google.com>

	* dwarf2read.c (dwarf2_cu): Enhance comment.
	(dwarf2_get_pc_bounds): Only add ranges_base for DIEs that live in
	the DWO file.
	(dwarf2_record_block_ranges): Ditto.

	* dwarf2read.c (create_dwo_in_dwp): Tweak comment.

	* symtab.c (find_pc_sect_symtab): Add comment.

2012-12-10  Tom Tromey  <tromey@redhat.com>

	* defs.h: Don't check for definition of LONGEST.
	(min, max): Remove duplicates.

2012-12-10  Tom Tromey  <tromey@redhat.com>

	* dwarf2read.c (dwarf2_fetch_die_loc_sect_off): New function.
	(dwarf2_fetch_die_loc_cu_off): Rename from
	dwarf2_fetch_die_location_block.  Rewrite to use
	dwarf2_fetch_die_loc_sect_off.
	* dwarf2loc.h (dwarf2_fetch_die_loc_sect_off): Declare.
	(dwarf2_fetch_die_loc_cu_off): Rename.
	* dwarf2loc.c (indirect_pieced_value): Use
	dwarf2_fetch_die_loc_sect_off.
	* dwarf2expr.h (struct dwarf_expr_context) <len, data>: Update
	comment.
	(struct dwarf_expr_piece) <v.ptr.die>: Now a sect_offset.
	* dwarf2expr.c (add_piece): Update.
	(execute_stack_op) <DW_OP_GNU_implicit_pointer>: Update comment.

2012-12-10  Tom Tromey  <tromey@redhat.com>

	* buildsym.c (struct pending_block): Move from buildsym.h.
	(pending_blocks): Likewise; now static.
	(pending_block_obstack): New global.
	(free_pending_blocks): Free blocks.
	(record_pending_block): Use pending_block_obstack.
	* buildsym.h (struct pending_block): Move definition to
	buildsym.c.
	(pending_blocks): Don't declare.

2012-12-10  Pedro Alves  <palves@redhat.com>

	* solib-svr4.c (svr4_solib_create_inferior_hook) [_SCO_DS]: Remove
	dead SCO code, and adjust function description comment.

2012-12-09  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* configure.ac (CC_HAS_LONG_LONG): Replace by AC_MSG_ERROR.
	* defs.h (LONGEST, ULONGEST): Remove conditionalization for
	CC_HAS_LONG_LONG.
	* dwarf2-frame.c (DW64_CIE_ID): Likewise.
	* dwarf2read.c (extract_cu_value): Remove the function.
	(create_cus_from_index_list): Make the return type void, inline the
	extract_cu_value caller, include new gdb_static_assert.
	(create_cus_from_index): Make the return type void, update the function
	comment, update the create_cus_from_index_list caller.
	(create_signatured_type_table_from_index): Make the return type void,
	inline the extract_cu_value caller, include new gdb_static_assert.
	(dwarf2_read_index): Update the create_cus_from_index and
	create_signatured_type_table_from_index caller.
	* printcmd.c (ui_printf): Remove conditionalizations for
	CC_HAS_LONG_LONG.
	* config.in: Regenerate.
	* configure: Regenerate.

2012-12-09  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* dwarf2read.c (struct dwarf2_cu): New field producer_is_gcc_lt_4_3.
	Update the comment for checked_producer.
	(check_producer): New forward declaration.
	(producer_is_gcc_lt_4_3): New function.
	(find_file_and_directory): Simulate *COMP_DIR only for gcc < 4.3.
	(check_producer): Initialize also PRODUCER_IS_GCC_LT_4_3.

2012-12-07  Tom Tromey  <tromey@redhat.com>

	* ada-lang.c (ada_make_symbol_completion_list): Add 'code'
	argument, assertion.
	* c-exp.y (typebase): Add completion productions.
	* completer.c (expression_completer): Handle tag completion.
	* expression.h (parse_expression_for_completion): Add argument.
	* f-lang.c (f_make_symbol_completion_list): Add 'code'
	argument.
	* language.h (struct language_defn)
	<la_make_symbol_completion_list>: Add 'code' argument.
	* parse.c (expout_tag_completion_type, expout_completion_name):
	New globals.
	(mark_struct_expression): Add assertion.
	(mark_completion_tag): New function.
	(parse_exp_in_context): Initialize new globals.
	(parse_expression_for_completion): Add 'code' argument.  Handle
	tag completion.
	* parser-defs.h (mark_completion_tag): Declare.
	* symtab.c (default_make_symbol_completion_list_break_on): Add
	'code' argument.  Update.
	(default_make_symbol_completion_list): Add 'code' argument.
	(make_symbol_completion_list): Update.
	(make_symbol_completion_type): New function.
	* symtab.h (default_make_symbol_completion_list_break_on)
	(default_make_symbol_completion_list): Update.
	(make_symbol_completion_type): Declare.

2012-12-07  Tom Tromey  <tromey@redhat.com>

	* expression.h (parse_expression_for_completion): Rename
	from parse_field_expression.
	(parse_completion): Rename from in_parse_field.
	* c-exp.y (lex_one_token): Update.
	* completer.c (expression_completer): Update.
	* go-exp.y (lex_one_token): Update.
	* p-exp.y (yylex): Update.
	* parse.c (parse_completion): Rename from in_parse_field.
	(parse_exp_in_context): Update.
	(parse_expression_for_completion): Rename from
	parse_field_expression.  Update.

2012-12-07  Tom Tromey  <tromey@redhat.com>

	* typeprint.c (_initialize_typeprint): Set completer
	for "whatis" and "ptype".

2012-12-07  Joel Brobecker  <brobecker@adacore.com>

	* copyright.py (NOT_FSF_LIST): Remove duplicate entry
	"sim/common/cgen-fpu.h".  Remove invalid entries
	"sim/common/sim-fpu.c" and "sim/mn10300/sim-main.h",
	which actually have an FSF copyright header.

2012-12-07  Joel Brobecker  <brobecker@adacore.com>

	* osf-share/AT386/cma_thread_io.h: Delete.
	* osf-share/HP800/cma_thread_io.h: Delete.
	* osf-share/README: Delete.
	* osf-share/RIOS/cma_thread_io.h: Delete.
	* osf-share/cma_attr.h: Delete.
	* osf-share/cma_deb_core.h: Delete.
	* osf-share/cma_debug_client.h: Delete.
	* osf-share/cma_errors.h: Delete.
	* osf-share/cma_handle.h: Delete.
	* osf-share/cma_init.h: Delete.
	* osf-share/cma_list.h: Delete.
	* osf-share/cma_mutex.h: Delete.
	* osf-share/cma_sched.h: Delete.
	* osf-share/cma_semaphore_defs.h: Delete.
	* osf-share/cma_sequence.h: Delete.
	* osf-share/cma_stack.h: Delete.
	* osf-share/cma_stack_int.h: Delete.
	* osf-share/cma_tcb_defs.h: Delete.
	* osf-share/cma_util.h: Delete.
	* Makefile.in (HFILES_NO_SRCDIR): Remove entries for the files
	in osf-share.
	* config/djgpp/fnchange.lst: Remove osf-share/cma_stack_int.h entry.
	* contrib/ari/gdb_find.sh: Remove handling of osf-share.
	* copyright.sh (NOT_FSF_LIST): Remove "gdb/osf-share" entry.

2012-12-06  Pedro Alves  <palves@redhat.com>
	    Tom Tromey  <tromey@redhat.com>

	* valops.c (value_cast): Move TYPE_CODE_VOID case earlier.

2012-12-06  Jens Elmenthaler <jens.elmenthaler@advantest.com>

	PR mi/14741:
	* mi/mi-cmd-var.c (varobj_update_one): Take value of
	attribute "dynamic" and "displayhint" from printed child,
	not the root variable.

2012-12-06  Joel Brobecker  <brobecker@adacore.com>

	* aix-thread.c (getthrds): Fix type of 4th parameter.
	(get_signaled_thread): Change type of variable ktid to tid_t.

2012-12-06  Hui Zhu  <hui_zhu@mentor.com>

	* dwarf2loc.c (dwarf_expr_frame_base): Add check for the return
	value of get_frame_block.

2012-12-05  Pierre Muller  <muller@sourceware.org>

	Avoid memory leaks on struct cmd_list_element.doc field.
	* cli/cli-decode.c (add_alias_cmd): Make a copy of doc field
	if flags contains DOC_ALLOCATED.
	(add_setshow_cmd_full): Add DOC_ALLOCATED to set and show
	flags.
	(delete_cmd): Handle DOC_ALLOCATED flag.
	* cli/cli-decode.h (DOC_ALLOCATED): New macro for use
	in flags filed of struct cmd_list_element.
	(struct cmd_list_element): Document new flag item.

2012-12-04  Doug Evans  <dje@google.com>

	* symmisc.c: Whitespace fixes.

2012-12-04  Karthik Bhat  <kv.bhat@samsung.com>

	* i386-tdep.c (i386_skip_prologue): Using symbol table
	to find the end of prologue for clang compiled binaries.
	* amd64-tdep.c (amd64_skip_prologue): Using symbol table
	to find the end of prologue for clang compiled binaries.

2012-12-03  Doug Evans  <dje@google.com>

	* dwarf2read.c (struct dwarf2_per_objfile): Clarify comment.
	(dw2_find_symbol_file): Delete unused local file_data.

2012-12-03  Tom Tromey  <tromey@redhat.com>

	* ada-exp.y (write_object_renaming, write_var_or_type)
	(write_ambiguous_var, write_var_from_sym): Make blocks const.
	* ada-lang.c (replace_operator_with_call)
	(find_old_style_renaming_symbol): Make blocks const.
	* ada-lang.h (ada_find_renaming_symbol): Update.
	(struct ada_symbol_info) <block>: Now const.
	* breakpoint.c (watch_command_1): Update.
	* breakpoint.h (struct watchpoint) <exp_valid_block,
	cond_exp_valid_block>: Now const.
	* c-exp.y (classify_inner_name, classify_name): Make block
	argument const.
	* expprint.c (print_subexp_standard) <OP_VAR_VALUE>: Make 'b'
	const.
	* expression.h (innermost_block, parse_exp_1): Update.
	(union exp_element) <block>: Now const.
	* gdbtypes.c (lookup_template_type, lookup_enum, lookup_union)
	(lookup_struct): Make block argument const.
	* gdbtypes.h (lookup_template_type): Update.
	* go-exp.y (classify_name, classify_packaged_name)
	(package_name_p): Make block argument const.
	* objc-lang.c (lookup_struct_typedef): Make block argument const.
	* objc-lang.h (lookup_struct_typedef): Update.
	* parse.c (parse_exp_in_context, parse_exp_1)
	(write_exp_elt_block): Make block arguments const.
	(expression_context_block, innermost_block): Now const.
	* parser-defs.h (write_exp_elt_block): Update.
	(expression_context_block, innermost_block, block_found): Now
	const.
	* printcmd.c (struct display) <block>: Now const.
	* symtab.h (lookup_struct, lookup_union, lookup_enum): Update.
	* valops.c (address_of_variable): Make block argument const.
	* value.h (value_of_variable): Update.
	* varobj.c (struct varobj_root) <valid_block>: Now const.

2012-11-30  Yao Qi  <yao@codesourcery.com>

	* breakpoint.c (print_one_breakpoint_location): Indent code.

2012-11-30  Yao Qi  <yao@codesourcery.com>

	* breakpoint.c (print_one_breakpoint_location): Combine two
	blocks handling 'hit count' together.

2012-11-30  Yao Qi  <yao@codesourcery.com>

	* infrun.c (error_is_running, ensure_not_running): Move them
	to ...
	* infcmd.c (error_is_running, ensure_not_running): ... here.
	Make them 'static'.
	* inferior.h: Remove declarations of error_is_running and
	ensure_not_running.

2012-11-30  Yao Qi  <yao@codesourcery.com>

	* tic6x-linux-tdep.c (tic6x_register_sigcontext_offset): Don't
	check REGNUM >= 0.

2012-11-30  Yao Qi  <yao@codesourcery.com>

	* infrun.c: Make the declaration of 'init_infwait_state'
	static.
	(init_infwait_state): Make it 'static'.

2012-11-29  Ulrich Weigand  <uweigand@de.ibm.com>

	* python/python.c (finalize_python): Cast unused PyGILState_Ensure
	return value to void to avoid compiler warning.

2012-11-29  Ulrich Weigand  <uweigand@de.ibm.com>

	* opencl-lang.c (opencl_print_type): New function.
	(opencl_language_arch_info): Install it.

2012-11-29  Tom Tromey  <tromey@redhat.com>

	* contrib/ari/gdb_ari.sh: Remove rules for xasprintf and
	xvasprintf.
	* common/common-utils.c (xasprintf, xvasprintf): Remove.
	* common/common-utils.h (xasprintf, xvasprintf): Remove.

2012-11-29  Jerome Guitton  <guitton@adacore.com>

	* ada-lang.c (ada_is_interface_tag): New function.
	(ada_is_ignored_field): Add interface tags to the list
	of ignored fields.

2012-11-29  Jerome Guitton  <guitton@adacore.com>

	* ada-lang.h (ada_tag_value_at_base_address): New function
	declaration.
	* ada-lang.c (is_ada95_tag, ada_tag_value_at_base_address):
	New functions.
	(ada_to_fixed_type_1, ada_evaluate_subexp): Let ada_tag_base_address
	relocate the class-wide value if need be.
	(ada_value_struct_elt, ada_value_ind, ada_coerce_ref):
	Let ada_tag_value_at_base_address relocate the class-wide access/ref
	before dereferencing it.
	* ada-valprint.c (ada_val_print_1): Relocate to base address
	before displaying the content of an interface-wide ref.

2012-11-29  Jerome Guitton  <guitton@adacore.com>

	* ada-lang.c (ada_evaluate_subexp): Unwrap only in EVAL_NORMAL.

2012-11-29  Joel Brobecker  <brobecker@adacore.com>

	GDB 7.5.1 released.

2012-11-29  Yao Qi  <yao@codesourcery.com>
	    Tom Tromey  <tromey@redhat.com>

	* eval.c (evaluate_subexp_standard): Get the correct pointer
	type for TYPE_CODE_MEMBERPTR.

2012-11-28  Edjunior Machado  <emachado@linux.vnet.ibm.com>

	* rs6000-tdep.c (gdb_print_insn_powerpc): Remove info->mach checking,
	since now it is being done by binutils' powerpc_init_dialect().

2012-11-28  Tom Tromey  <tromey@redhat.com>

	PR gdb/14290:
	* solib-darwin.c (gdb_bfd_mach_o_fat_extract): New function.
	(darwin_solib_get_all_image_info_addr_at_init, darwin_bfd_open):
	Use it.
	* gdb_bfd.h (gdb_bfd_mark_parent): Declare.
	* gdb_bfd.c (gdb_bfd_mark_parent): New function.
	(gdb_bfd_openr_next_archived_file): Use it.

2012-11-28  Markus Metzger  <markus.t.metzger@intel.com>

	* configure.ac: Check for linux/perf_event.h.
	* config.in: Regenerated.
	* configure: Regenerated.

2012-11-28  Yao Qi  <yao@codesourcery.com>

	* breakpoint.c (_initialize_breakpoint): Call add_alias_cmd to
	abbreviate 'delete tracepoints' to 'delete tr'.
	* corefile.c (_initialize_core): Call add_alias_cmd to
	abbreviate 'set gnutarget' to 'set g'.
	* value.c (_initialize_values): Call add_alias_cmd to abbreviate
	'show convenience' to 'show conv'.

2012-11-27  Joel Brobecker  <brobecker@adacore.com>

	* sparc-sol2-nat.c (supply_gregset): Fix first parameter in
	call to sparc_supply_fpregset.
	(fill_fpregset): Fix first parameter in call to
	sparc_collect_fpregset.

2012-11-27  Daniel Jacobowitz  <dan@codesourcery.com>
	    Kazu Hirata  <kazu@codesourcery.com>
	    Yao Qi  <yao@codesourcery.com>

	* objfiles.c (init_entry_point_info): Call
	gdbarch_convert_from_func_ptr_addr and
	gdbarch_addr_bits_remove here ...
	(entry_point_address_query): ... instead of here.
	* solib-svr4.c (exec_entry_point): Call
	gdbarch_addr_bits_remove.
	* symfile.c (generic_load): Call gdbarch_addr_bits_remove on
	the entry address.

2012-11-27  Daniel Jacobowitz  <dan@codesourcery.com>
	    Yao Qi  <yao@codesourcery.com>

	* eval.c (evaluate_subexp_standard): Add handling of
	TYPE_CODE_MEMBERPTR when calling functions.  Correct the
	result of ptype for calling a TYPE_CODE_METHODPTR.

2012-11-27  Yao Qi  <yao@codesourcery.com>

	* symtab.c (symtab_symbol_info): Fix a -Wformat-extra-args
	warning.
	Add i18n markup.

2012-11-26  Alexander Larsson  <alexl@redhat.com>
	    Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Tom Tromey  <tromey@redhat.com>

	* NEWS: Mention mini debuginfo feature.
	* minidebug.c: New file.
	* configure.ac: Check for lzma.
	* configure, config.in: Rebuild.
	* Makefile.in (LIBLZMA): New variable.
	(CLIBS): Include LIBLZMA.
	(SFILES): Mention minidebug.c.
	(COMMON_OBS): Mention minidebug.o.
	* symfile.c (read_symbols): New function.
	(syms_from_objfile, reread_symbols): Call it.
	* symfile.h (find_separate_debug_file_in_section): Declare.

2012-11-26  Keith Seitz  <keiths@redhat.com>

	* exec.c (exec_file_attach): Move cleanup after verifying that
	memory has in fact been allocated.

2012-11-26  Tom Tromey  <tromey@redhat.com>

	* ada-lang.c (user_select_syms): Use SYMBOL_SYMTAB.
	* dwarf2read.c (dw2_find_symbol_file, fixup_go_packaging): Use
	SYMBOL_SYMTAB.
	* skip.c (skip_info): Use SYMBOL_SYMTAB.

2012-11-26  Maxime Villard  <rustyBSD@gmx.fr>
	    Pedro Alves  <palves@redhat.com>

	* common/linux-osdata.c (linux_xfer_osdata_fds): Decrease buffer
	size parameter passed to readlink by one byte.
	* fbsd-nat.c (fbsd_pid_to_exec_file): Ditto.
	* linux-nat.c (linux_child_pid_to_exec_file): Ditto.
	* nbsd-nat.c (nbsd_pid_to_exec_file): Ditto.
	* inf-child.c (inf_child_fileio_readlink): Decrease local buffer's
	size by one byte.

2012-11-26  Yao Qi  <yao@codesourcery.com>

	* f-valprint.c (f77_create_arrayprint_offset_tbl): Remove
	extraneous parentheses.

2012-11-26  Yao Qi  <yao@codesourcery.com>

	* remote.c (remote_start_remote): Typo fix.

2012-11-23  David S. Miller  <davem@davemloft.net>

	* sparc-tdep.h (struct sparc_fpregset): New data structure.
	(sparc32_sunos4_fpregset, sparc32_bsd_fpregset,
	sparc32_sol2_fpregset): Declare new globals.
	(sparc32_supply_fpregset, sparc32_collect_fpregset): Add new
	'fpregset' argument.
	* sparc64-tdep.h (sparc64_supply_fpregset,
	sparc64_collect_fpregset): Likewise.
	(sparc64_sol2_fpregset, sparc64_bsd_fpregset): Declare new
	globals.
	* sparc-nat.h (struct sparc_fpregset): Add forward declaration.
	(sparc_fpregset): Declare new global.
	(sparc_supply_fpregset, sparc_collect_fpregset): Add new
	'fpregset' argument.
	* sparc-linux-nat.c (supply_fpregset): Pass sparc_fpregset down
	into handler.
	(fill_fpregset): Likewise.
	(_initialize_sparc_linux_nat): Set sparc_fpregset to
	sparc32_bsd_fpregset.
	* sparc-linux-tdep.c (sparc32_linux_supply_core_fpregset): Pass
	sparc32_bsd_fpregset down into handler.
	(sparc32_linux_collect_core_fpregset): Likewise.
	* sparc-nat.c (sparc_fpregset): Define.
	(sparc_supply_fpregset): Add 'fpregset' argument.
	(sparc_collect_fpregset): Likewise.
	(sparc_fetch_inferior_registers): Pass sparc_fpregset down
	into fpregset handler.
	(sparc_store_inferior_registers): Likewise.
	(_initialize_sparc_nat): Set sparc_fpregset to
	sparc32_sunos4_fpregset if NULL.
	* sparc-sol2-nat.c (supply_gregset): Pass sparc_sol2_fpregset
	down into handler.
	(fill_fpregset): Likewise.
	* sparc-sol2-tdep.c (sparc32_sol2_fpregset): Define.
	* sparc-tdep.c (sparc32_supply_fpregset): Add fpregset arg and
	use it to compute offsets.
	(sparc32_collect_fpregset): Likewise.
	(sparc32_sunos4_fpregset, sparc32_bsd_fpregset): Define.
	* sparc64-linux-nat.c (supply_fpregset): Pass sparc64_bsd_fpregset
	down into handler.
	(fill_fpregset): Likewise.
	* sparc64-linux-tdep.c (sparc64_linux_supply_core_fpregset):
	Likewise.
	(sparc64_linux_collect_core_fpregset): Likewise.
	* sparc64-sol2-tdep.c (sparc64_sol2_fpregset): Define.
	* sparc64-tdep.c (sparc64_supply_fpregset): Add fpregset arg and
	use it to compute offsets.
	(sparc64_collect_fpregset): Likewise.
	(sparc64_bsd_fpregset): Define.
	* sparc64fbsd-tdep.c (sparc64fbsd_supply_fpregset): Padd
	sparc64_bsd_fpregset down into handler.
	(sparc64fbsd_collect_fpregset): Likewise.
	* sparc64nbsd-nat.c (sparc64nbsd_supply_fpregset): Add fpregset arg
	and pass sparc{32,64}_bsd_fpregset down into handler.
	(sparc64nbsd_collect_fpregset): Likewise.
	* sparc64nbsd-tdep.c (sparc64nbsd_supply_fpregset): Pass
	sparc64_bsd_fpregset down into handler.
	* sparc64obsd-tdep.c (sparc64obsd_supply_gregset): Likewise.
	* sparcnbsd-nat.c (_initialize_sparcnbsd_nat): Set sparc_fpregset
	to sparc32_bsd_fpregset.
	* sparcnbsd-tdep.c (sparc32nbsd_supply_gregset): Pass
	sparc32_bsd_fpregset down into sparc32_supply_fpregset.
	(sparc32nbsd_supply_fpregset): Likewise.

2012-11-21  Tom Tromey  <tromey@redhat.com>

	* gdbtypes.h (struct cplus_struct_type) <localtype_ptr>: Remove
	field.
	(TYPE_LOCALTYPE_PTR, TYPE_LOCALTYPE_FILE, TYPE_LOCALTYPE_LINE):
	Remove.
	* c-typeprint.c (c_type_print_base): Update.

2012-11-21  Yao Qi  <yao@codesourcery.com>

	PR tdep/7438
	* gdbarch.sh (smash_text_address): Remove.
	* gdbarch.c, gdbarch.h: Regenerate.
	* arm-tdep.c (arm_smash_text_address): Remove.
	(arm_gdbarch_init): Don't call set_gdbarch_smash_text_address.
	* hppa-tdep.c (hppa_smash_text_address): Remove.
	(hppa_addr_bits_remove): Rename from hppa_smash_text_address.
	(hppa_gdbarch_init): Don't call set_gdbarch_smash_text_address.
	Caller update.
	* coffread.c (coff_symtab_read): Caller update.
	* dbxread.c (process_one_symbol): Likewise.
	* elfread.c (record_minimal_symbol): Likewise.
	* somread.c (som_symtab_read): Likewise.

2012-11-20  Pierre Muller  <muller@sourceware.org>

	ARI fixes: sprintf rule.
	Replace sprintf function calls for char arrays by
	calls to xsnprintf calls.
	* arm-tdep.c (arm_push_dummy_call): Replace sprintf by xsnprintf.
	(arm_dwarf_reg_to_regnum, arm_return_value): Ditto.
	(arm_neon_quad_read, arm_pseudo_read): Ditto.
	(arm_neon_quad_write, arm_pseudo_write): Ditto.
	* breakpoint.c (condition_completer): Ditto.
	(create_tracepoint_from_upload): Ditto.
	* dwarf2read.c (file_full_name): Ditto.
	* gcore.c (gcore_command): Ditto.
	* gnu-nat.c (proc_string, gnu_pid_to_str): Ditto.
	* go32-nat.c (go32_sysinfo): Ditto.
	* interps.c (interp_set): Ditto.
	* m32c-tdep.c (make_types): Ditto.
	* ppc-linux-nat.c (fetch_register, store_register): Ditto.
	* remote-m32r-sdi.c (m32r_open): Ditto.
	* sol-thread.c (td_err_string): Ditto.
	(td_state_string, solaris_pid_to_str): Ditto.
	* symtab.c (gdb_mangle_name): Ditto.
	* cli/cli-script.c (execute_control_command): Ditto.
	(define_command, document_command): Ditto.
	* tui/tui-io.c (tui_rl_display_match_list): Ditto.
	* tui/tui-stack.c (tui_make_status_line): Ditto.
	* tui/tui-win.c (tui_update_gdb_sizes): Ditto.

2012-11-20  Mike Frysinger  <vapier@gentoo.org>

	* cli/cli-decode.c (complete_on_cmdlist): Add a fourth arg and check
	it when looking at ptr->func.
	* command.h (complete_on_cmdlist): Add a fourth arg.
	* completer.c (complete_line_internal): Add local ignore_help_classes,
	and set it to 1 when reason is not handle_help.  Pass this down to
	lookup_cmd_1 and complete_on_cmdlist.

2012-11-20  Tom Tromey  <tromey@redhat.com>

	* completer.c (count_struct_fields): Remove.
	(expression_completer): Don't call count_struct_fields.

2012-11-20  Pedro Alves  <palves@redhat.com>

	* annotate.c (breakpoints_changed): Rename to ...
	(annotate_breakpoints_changed): ... this.
	(annotate_stopped, breakpoint_changed): Adjust caller.
	* annotate.h (breakpoints_changed): Rename to ...
	(annotate_breakpoints_changed): ... this.
	* breakpoint.c (set_breakpoint_condition, breakpoint_set_commands)
	(do_map_commands_command, init_raw_breakpoint, clear_command)
	(set_ignore_count, enable_breakpoint_disp): Adjust callers.

2012-11-20  David S. Miller  <davem@davemloft.net>

	* common/linux-osdata.c (get_number_of_cpu_cores): Delete.
	(linux_xfer_osdata_processes): Fetch _SC_NPROCESSORS_ONLN via
	sysconf.
	(get_cores_used_by_process): Update comment.

2012-11-20  Yao Qi  <yao@codesourcery.com>

	* objfiles.c (init_entry_point_info): Remove trailing spaces.

2012-11-20  Yao Qi  <yao@codesourcery.com>

	* infrun.c (handle_inferior_event): Pass 'saved_singlestep_ptid'
	to deprecated_context_hook.

2012-11-19  Yao Qi  <yao@codesourcery.com>

	* infrun.c (infwait_state): Add static.

2012-11-16  Keith Seitz  <keiths@redhat.com>

	PR c++/13615
	* cp-namespace.c (cp_lookup_symbol_in_namespace): Add SEARCH
	parameter and pass it to lookup_symbol_file.
	(cp_lookup_symbol_imports): Tell cp_lookup_symbol_in_namespace
	to search base classes.
	(cp_lookup_symbol_namespace): Likewise.
	(lookup_namespace_scope): Likewise.
	(lookup_symbol_file): Add SEARCH parameter.
	If SEARCH is non-zero and no symbol is found, lookup the class
	and call cp_lookup_nested_symbol.
	(find_symbol_in_baseclass): New function.
	(cp_lookup_nested_symbol): Do not let
	cp_lookup_symbol_in_namespace search through base classes.
	Do that later when there is no global symbol match.

2012-11-16  Doug Evans  <dje@google.com>

	* main.c (gdb_datadir_provided): New static global.
	(get_init_files): If --data-directory is provided,
	and SYSTEM_GDBINIT lives in data-directory, look for it there.
	* NEWS: Mention it.

2012-11-15  Pierre Muller  <muller@sourceware.org>

	ARI fixes: move gdb_wait and gdb_stat headers to common subdirectory.
	* gdb_stat.h: Delete. Moved to common directory.
	* common/gdb_stat.h: New file.
	* gdb_wait.h: Delete. Moved to common directory.
	* common/gdb_wait.h: New file.
	* Makefile.in (H_FILES_NO_SRC): Adapt to new header
	location.
	* contrib/ari/gdb_ari.sh (wait.h rule): Adapt to new gdb_wait.h
	location.
	(stat.h rule): Adapt to new gdb_stat.h location.
	* common/linux-osdata.c: Include "gdb_stat.h" header instead of
	<sys/stat.h> header.
	* common/linux-ptrace.c: Include "gdb_wait.h" header instead of
	<sys/wait.h> header.

2012-11-15  Pierre Muller  <muller@sourceware.org>

	* configure.ac (AC_HEADER_STAT): Remove.
	* gdb_stat.h (STAT_MACROS_BROKEN): Remove macro use
	and corresponding code.
	* configure: Regenerate.
	* config.in: Regenerate.

2012-11-15  Pierre Muller  <muller@sourceware.org>

	ARI xasprintf rule fixes.
	* dwarf2read.c (create_dwo_in_dwp): Use xstrprintf function
	instead of xasprintf.
	(open_and_init_dwp_file): Ditto.

2012-11-14  Luis Machado  <lgustavo@codesourcery.com>

	* value.c (value_actual_type): Check for TYPE_CODE_STRUCT
	target types.

2012-11-14  Tom Tromey  <tromey@redhat.com>

	* configure, config.in: Rebuild.
	* configure.ac: Don't check for ctype.h, time.h.
	* expprint.c: Don't use HAVE_CTYPE_H.

2012-11-13  Tom Tromey  <tromey@redhat.com>

	* gdbarch.h, gdbarch.c: Rebuild.
	* gdbarch.sh (set_target_gdbarch): Rename from
	deprecated_target_gdbarch_select_hack.
	* arch-utils.c (gdbarch_update_p): Update.
	(set_gdbarch_from_file): Update.

2012-11-14  Pierre Muller  <muller@sourceware.org>

	* MAINTAINERS (Responsible Maintainers/misc): Add myself
	as responsible of contrib/ari directory.

2012-11-14  Daniel Jacobowitz  <dan@codesourcery.com>
	    Yao Qi  <yao@codesourcery.com>

	* arm-tdep.c (arm_addr_bits_remove): Do not adjust the low
	bit of EXC_RETURN.
	(arm_m_exception_cache, arm_m_exception_this_id)
	(arm_m_exception_prev_register, arm_m_exception_unwind_sniffer)
	(arm_m_exception_unwind): New.
	(arm_gdbarch_init): Register arm_m_exception_unwind.

2012-11-13  Giuseppe Montalto  <giuseppe.montalto@st.com>

	* mi/mi-main.c (mi_cmd_data_write_memory): Handle additional
	parameter COUNT, for pattern filling of memory regions.
	* NEWS: Mention it.

2012-11-13 Markus Metzger  <markus.t.metzger@intel.com>

	* disasm.h (DISASSEMBLY_FILENAME): New macro.
	* disasm.c (do_mixed_source_and_assembly): Pass filename flag on
	to print_source_lines ().
	* symtab.h (PRINT_SOURCE_LINES_FILENAME): New print source lines
	flag.
	* source.c (print_source_lines_base): Prefix source line with
	filename if PRINT_SOURCE_LINES_FILENAME flag is set.

2012-11-13 Markus Metzger  <markus.t.metzger@intel.com>

	* symtab.h (print_source_lines_flags): New enum.
	* source.c (print_source_lines_base): Change noerror to flags.
	(print_source_lines): Change noerror to flags.

2012-11-13  Pierre Muller  <muller@sourceware.org>

	ARI fixes: Avoid sprintf function use rule.
	* charset.c (convert_between_encodings): Use xsnprintf.
	* cli-out.c (cli_field_int): Likewise.
	* cp-namespace.c (cp_lookup_nested_symbol): Likewise.
	* expprint.c (op_name_standard): Likewise.
	* frv-tdep.c (set_variant_num_gprs): Likewise.
	(set_variant_num_fprs): Likewise.
	* m68hc11-tdep.c (m68hc11_initialize_register_info): Likewise.
	* nto-tdep.c (nto_find_and_open_solib): Likewise.
	(nto_init_solib_absolute_prefix): Likewise.
	* source.c (init_source_path): Likewise.
	(print_source_lines_base): Likewise.
	* valprint.c (print_wchar): Likewise.
	* mi/mi-out.c (mi_field_int): Likewise.
	windows-nat.c (windows_pid_to_exec_file): Likewise.
	(windows_create_inferior): Likewise.
	(_initialize_check_for_gdb_ini): Likewise.

2012-11-12  Joel Brobecker  <brobecker@adacore.com>

	* frame.h (deprecated_frame_register_read): Renames
	frame_register_read.
	* frame.c (deprecated_frame_register_read): Renames
	frame_register_read.  Update all callers.
	* i386-tdep.c: Update all callers of frame_register_read.
	* infcmd.c: Likewise.
	* jit.c: Likewise.
	* mips-tdep.c: Likewise.
	* mt-tdep.c: Likewise.
	* sh64-tdep.c: Likewise.

2012-11-12  Joel Brobecker  <brobecker@adacore.com>

	* frame.h (frame_register_read): Remove FIXME comment.
	* frame.c (frame_register_read): Add suggestion explaining
	which function to use in place of this one.

2012-11-12  Tom Tromey  <tromey@redhat.com>

	* python/python.c (start_type_printers): Initialize 'result_obj'.

2012-11-12  Tom Tromey  <tromey@redhat.com>

	* NEWS: Update.
	* data-directory/Makefile.in (PYTHON_FILES): Add
	type_printers.py.
	* python/lib/gdb/command/type_printers.py: New file.
	* python/lib/gdb/command/types.py (TypePrinter): New class.
	(_get_some_type_recognizers, get_type_recognizers,
	apply_type_recognizers, register_type_printer): New
	functions.
	* python/py-objfile.c (objfile_object) <type_printers>: New
	field.
	(objfpy_dealloc): Decref new field.
	(objfpy_new): Set new field.
	(objfpy_get_type_printers, objfpy_set_type_printers): New
	functions.
	(objfile_to_objfile_object): Set new field.
	(objfile_getset): Add "type_printers".
	* python/py-progspace.c (pspace_object) <type_printers>: New
	field.
	(pspy_dealloc): Decref new field.
	(pspy_new): Set new field.
	(pspy_get_type_printers, pspy_set_type_printers): New functions.
	(pspace_to_pspace_object): Set new field.
	(pspace_getset): Add "type_printers".
	* python/python.c (start_type_printers, apply_type_printers,
	free_type_printers): New functions.
	(_initialize_python): Set gdb.type_printers.
	* python/python.h (start_type_printers, apply_type_printers,
	free_type_printers): Declare.
	* typeprint.c (type_print_raw_options, default_ptype_flags):
	Update for new fields.
	(do_free_global_table, create_global_typedef_table,
	find_global_typedef): New functions.
	(find_typedef_in_hash): Use find_global_typedef.
	(whatis_exp): Use create_global_typedef_table.  Change cleanup
	handling.
	* typeprint.h (struct type_print_options) <global_typedefs,
	global_printers>: New fields.

2012-11-12  Tom Tromey  <tromey@redhat.com>

	* c-typeprint.c (find_typedef_for_canonicalize,
	print_name_maybe_canonical): New functions.
	(c_print_type): Look up type name.
	(cp_type_print_derivation_info): Add flags argument.  Use
	print_name_maybe_canonical.
	(cp_type_print_method_args): Add wrapping.
	(c_type_print_varspec_prefix): Use print_name_maybe_canonical.
	(c_type_print_template_args): New function.
	(c_type_print_base): Change wrapping.  Use
	print_name_maybe_canonical.
	<TYPE_CODE_STRUCT>: Possibly create a typedef hash, and do
	type name lookups.
	* gdbtypes.c (types_equal): No longer static.
	* gdbtypes.h (types_equal): Declare.
	* typeprint.c (type_print_raw_options, default_ptype_flags):
	Update.
	(struct typedef_hash_table): New.
	(hash_typedef_field, eq_typedef_field,
	recursively_update_typedef_hash, add_template_parameters,
	create_typedef_hash, free_typedef_hash, do_free_typedef_hash,
	make_cleanup_free_typedef_hash, copy_typedef_hash_element,
	copy_typedef_hash, find_typedef_in_hash): New functions.
	* typeprint.h (struct type_print_options) <local_typedefs>:
	New field.
	(recursively_update_typedef_hash, add_template_parameters,
	create_typedef_hash, free_typedef_hash,
	make_cleanup_free_typedef_hash, copy_typedef_hash,
	find_typedef_in_hash): Declare.

2012-11-12  Tom Tromey  <tromey@redhat.com>

	* cp-support.c (inspect_type,
	replace_typedefs_qualified_name, replace_typedefs): Add
	finder, data arguments.  Call as needed.
	(cp_canonicalize_string_full): New function.
	(cp_canonicalize_string_no_typedefs): Rewrite.
	* cp-support.h (canonicalization_ftype): New typedef.
	(cp_canonicalize_string_full): Declare.

2012-11-12  Tom Tromey  <tromey@redhat.com>

	* NEWS: Update.
	* c-typeprint.c (c_type_print_base): Handle print_method and
	print_typedefs flags.
	* gdbcmd.h (setprinttypelist, showprinttypelist): Declare.
	* python/py-type.c (typy_str): Use LA_PRINT_TYPE and raw
	options.
	* typeprint.c (type_print_raw_options, default_ptype_flags):
	Update for new field.s
	(whatis_exp): Parse flags.  Use LA_PRINT_TYPE.
	(setprinttypelist, showprinttypelist, print_methods,
	print_typedefs): New globals.
	(set_print_type, show_print_type, set_print_type_methods,
	show_print_type_methods, set_print_type_typedefs,
	show_print_type_typedefs): New functions.
	(_initialize_typeprint): Update documentation.  Add "print
	type methods" and "print type typedefs" parameters.
	* typeprint.h (struct type_print_options) <print_methods,
	print_typedefs>: New fields.

2012-11-12  Tom Tromey  <tromey@redhat.com>

	* c-typeprint.c (cp_type_print_method_args): Add flags
	argument.  Call c_print_type, not type_print.
	(c_type_print_base): Call c_print_type, not type_print.
	Update.

2012-11-12  Tom Tromey  <tromey@redhat.com>

	* ada-lang.c (user_select_syms, ada_print_subexp): Pass flags
	to type-printing functions.
	* ada-lang.h (ada_print_type): Add argument.
	* ada-typeprint.c (print_array_type, print_variant_clauses,
	print_variant_part, print_selected_record_field_types,
	print_record_field_types, print_unchecked_union_type,
	print_func_type, ada_print_type): Add flags argument.
	(ada_print_typedef): Update.
	* c-exp.y (OPERATOR conversion_type_id): Update.
	* c-lang.h (c_print_type, c_type_print_base): Update.
	* c-typeprint.c (c_print_type, c_type_print_varspec_prefix,
	c_type_print_modifier, c_type_print_args,
	c_type_print_varspec_suffix, c_type_print_base): Add flags
	argument.
	* cp-valprint.c (cp_print_class_member): Update.
	* dwarf2read.c (dwarf2_compute_name): Update.
	* f-lang.h (f_print_type): Add argument.
	* f-typeprint.c (f_print_type): Add flags argument.
	* gnu-v3-abi.c (gnuv3_print_method_ptr): Update.
	* go-lang.h (go_print_type): Add argument.
	* go-typeprint.c (go_print_type): Add flags argument.
	* jv-lang.h (java_print_type): Add argument.
	* jv-typeprint.c (java_type_print_base, java_print_type): Add
	flags argument.
	* language.c (unk_lang_print_type): Add flags argument.
	* language.h (struct language_defn) <la_print_type>: Add flags
	argument.
	(LA_PRINT_TYPE): Likewise.
	* m2-lang.h (m2_print_type): Add argument.
	* m2-typeprint.c (m2_print_type, m2_range, m2_typedef,
	m2_array, m2_pointer, m2_ref, m2_procedure, m2_long_set,
	m2_unbounded_array, m2_record_fields): Add flags argument.
	* p-lang.h (pascal_print_type, pascal_type_print_base,
	pascal_type_print_varspec_prefix): Add argument.
	* p-typeprint.c (pascal_print_type,
	pascal_type_print_varspec_prefix, pascal_print_func_args,
	pascal_type_print_varspec_suffix, pascal_type_print_base): Add
	flags argument.
	* symmisc.c (print_symbol): Update.
	* typeprint.c (type_print_raw_options, default_ptype_flags):
	New globals.
	(type_print): Update.
	* typeprint.h (struct type_print_options): New.
	(type_print_raw_options): Declare.
	(c_type_print_varspec_suffix, c_type_print_args): Add argument.

2012-11-10  Keith Seitz  <keiths@redhat.com>

	* breakpoint.c (clear_command): Add cleanup for
	sals.sals if an argument is given.

	* linespec.c (parse_linespec): Do cleanups after
	parsing a convenience variable.

2012-11-10  Keith Seitz  <keiths@redhat.com>

	PR gdb/14288
	* c-valprint.c (c_val_print): For character arrays
	with "print null" option on, print ellipses if
	the output is truncated and the next character is not \000.
	* valprint.c (MAX_WCHARS): Define.
	(WCHAR_BUFLEN): Likewise.
	(WCHAR_BUFLEN_MAX): Likewise.
	(struct converted_character): New structure.
	(count_next_character): New function.
	(print_converted_chars_to_obstack): New function.
	(generic_printstr): Rewrite using count_next_character
	and print_converted_chars_to_obstack.

2012-11-10  Stephane Carrez  <Stephane.Carrez@gmail.com>

	* tui/tui.c (tui_rl_command_key): Switch to TUI_ONE_COMMAND_MODE
	while executing the gdb command.
	(tui_rl_startup_hook): Do not switch back to TUI_SINGLE_KEY_MODE if we
	are called from prompt_for_continue.
	* tui/tui-io.c (tui_redisplay_readline): Likewise.

2012-11-10  Stephane Carrez  <Stephane.Carrez@gmail.com>

	PR tui/9584

	* tui/tui.c (tui_rl_command_key): Do not call execute_command
	but insert the command to execute in readline's buffer.

2012-11-09  Tom Tromey  <tromey@redhat.com>

	* gdbarch.sh (target_gdbarch): Remove macro.
	(get_target_gdbarch): Rename to target_gdbarch.
	* gdbarch.c, gdbarch.h: Rebuild.
	* ada-tasks.c, aix-thread.c, amd64-linux-nat.c, arch-utils.c,
	arm-tdep.c, auxv.c, breakpoint.c, bsd-uthread.c, corefile.c,
	darwin-nat-info.c, dcache.c, dsrec.c, exec.c, fbsd-nat.c,
	filesystem.c, gcore.c, gnu-nat.c, i386-darwin-nat.c, i386-nat.c,
	ia64-vms-tdep.c, inf-ptrace.c, infcmd.c, jit.c, linux-nat.c,
	linux-tdep.c, linux-thread-db.c, m32r-rom.c, memattr.c,
	mep-tdep.c, microblaze-tdep.c, mips-linux-nat.c,
	mips-linux-tdep.c, mips-tdep.c, monitor.c, moxie-tdep.c,
	nto-procfs.c, nto-tdep.c, ppc-linux-nat.c, proc-service.c,
	procfs.c, progspace.c, ravenscar-thread.c, record.c,
	remote-m32r-sdi.c, remote-mips.c, remote-sim.c, remote.c,
	rl78-tdep.c, rs6000-nat.c, rx-tdep.c, s390-nat.c, sol-thread.c,
	solib-darwin.c, solib-dsbt.c, solib-frv.c, solib-ia64-hpux.c,
	solib-irix.c, solib-pa64.c, solib-som.c, solib-spu.c,
	solib-sunos.c, solib-svr4.c, solib.c, spu-linux-nat.c,
	spu-multiarch.c, spu-tdep.c, symfile-mem.c, symfile.c, symtab.c,
	target-descriptions.c, target.c, target.h, tracepoint.c,
	windows-nat.c, windows-tdep.c, xcoffsolib.c, cli/cli-dump.c,
	common/agent.c, mi/mi-interp.c, python/py-finishbreakpoint.c,
	python/py-inferior.c, python/python.c: Update.

2012-11-09  Andrew Burgess  <aburgess@broadcom.com>

	* source.c (print_source_lines_base): Add fullname field giving
	full path to file in mi output.
	* NEWS: Mention the new fullname field.

2012-11-09  Yao Qi  <yao@codesourcery.com>

	* NEWS: Mention the fix to the ambiguity of 'fo' command.

2012-11-09  Pedro Alves  <palves@redhat.com>

	PR gdb/14306

	* infrun.c: Include target-descriptions.h.
	(follow_exec): Fetch new target description.

2012-11-09  Yao Qi  <yao@codesourcery.com>

	* i386-tdep.c (i386_analyze_frame_setup): Handle opcode
	0x8d (lea).

2012-11-09  Yao Qi  <yao@codesourcery.com>

	* breakpoint.c: Declare set_tracepoint_count.
	(install_breakpoint): Call set_tracepoint_count if B is a
	tracepoint.
	(trace_command): Don't call set_tracepoint_count.  Re-indent.
	(strace_command, ftrace_command):
	(create_tracepoint_from_upload): Likewise.

2012-11-09  Pedro Alves  <palves@redhat.com>

	* gdbarch.sh (target_gdbarch) <gdbarch.h>: Reimplement as macro.
	(get_target_gdbarch) <gdbarch.h>: New function.
	(startup_gdbarch) <gdbarch.h>: Declare.
	<gdbarch.c> (target_gdbarch): Delete.
	<gdbarch.c> (deprecated_target_gdbarch_select_hack): Set the
	current inferior's gdbarch.
	<gdbarch.c> (get_target_gdbarch): New function.
	* inferior.c: Include target-descriptions.h.
	(free_inferior): Free target description info.
	(add_inferior_with_spaces): Set the inferior's initial
	architecture.
	(clone_inferior_command): Copy the original inferior's target
	description if it was user specified.
	(initialize_inferiors): Add comment.
	* inferior.h (struct target_desc_info): Forward declare.
	(struct inferior) <gdbarch>: New field.
	* linux-nat.c: Include target-descriptions.h.
	(linux_child_follow_fork): Copy the parent's architecture and
	target description to the child.
	* target-descriptions.c: Include inferior.h.
	(struct target_desc_info): New structure, holding the equivalents
	of ...
	(target_desc_fetched, current_target_desc)
	(target_description_filename): ... these removed globals.
	(get_tdesc_info, target_desc_info_from_user_p)
	(copy_inferior_target_desc_info, target_desc_info_free): New.
	(target_desc_fetched, current_target_desc)
	(target_description_filename): Reimplemented as convenience
	macros.
	(tdesc_filename_cmd_string): New global.
	(set_tdesc_filename_cmd): Copy the string manipulated by the "set
	tdescs filename ..." commands to the per-inferior equivalent.
	(show_tdesc_filename_cmd): Get the value to show from the
	per-inferior description filename.
	(_initilize_target_descriptions): Change the "set/show tdesc
	filename" commands' variable.
	* target-descriptions.h (struct target_desc, struct target_desc_info)
	(struct inferior): Forward declare.
	(target_find_description, target_clear_description)
	(target_current_description): Adjust comments.
	(copy_inferior_target_desc_info, target_desc_info_free)
	(target_desc_info_from_user_p). Declare.

2012-11-08  Stephane Carrez  <Stephane.Carrez@gmail.com>

	* tui/tui-hooks.c (tui_about_to_proceed): New function.
	(tui_target_wait_hook): Remove.
	(tui_install_hooks): Install the about_to_proceed observer.
	(tui_remove_hooks): And remove it here.

2012-11-08  Tom Tromey  <tromey@redhat.com>

	* linux-tdep.c (linux_make_siginfo_note): New function.
	(linux_make_corefile_notes): Use it.
	* corelow.c (get_core_siginfo): New function.
	(core_xfer_partial) <TARGET_OBJECT_SIGNAL_INFO>: New case.

2012-11-08  Tom Tromey  <tromey@redhat.com>

	PR gdb/14704:
	* gdb_bfd.c (gdb_bfd_ref): Set BFD_DECOMPRESS.
	(zlib_decompress_section): Remove.
	(gdb_bfd_map_section): Only check for compressed section
	in mmap case.  Use bfd_get_full_section_contents.
	* osabi.c (check_note): Add 'sectsize' argument.  Read
	section data.
	(generic_elf_osabi_sniff_abi_tag_sections): Don't read
	section data.  Update for check_note change.
	* xcoffread.c (xcoff_initial_scan): Use
	bfd_get_full_section_contents.
	* py-auto-load.c (auto_load_section_scripts): Use
	bfd_get_full_section_contents.
	* contrib/cc-with-tweaks.sh: Add -Z option.

2012-11-08  Tom Tromey  <tromey@redhat.com>

	* python/py-bpevent.c: Include defs.h.
	* python/py-continueevent.c: Include defs.h.
	* python/py-event.c: Include defs.h.
	* python/py-event.h: Don't include defs.h.
	* python/py-events.h: Don't include defs.h.
	* python/py-evts.c: Include defs.h.
	* python/py-exitedevent.c: Include defs.h.
	* python/py-newobjfileevent.c: Include defs.h.
	* python/py-signalevent.c: Include defs.h.
	* python/py-stopevent.c: Include defs.h.
	* python/py-threadevent.c: Include defs.h.

2012-11-08  Pierre Muller  <muller@sourceware.org>

	* update-web-ari.sh (print_heading): Add number of files
	checked.
	(nb_files): New variable counting the number of sources
	files found by gdb_find.sh script.
	(debug_awk): New variable to allow extra debug output.
	(indexes): Add more information if DEBUG_AWK is set.

2012-11-08  Edjunior Machado  <emachado@linux.vnet.ibm.com>

	* ppc-linux-tdep.c (ppc64_standard_linkage1, ppc64_standard_linkage2,
	ppc64_standard_linkage3): Mark ld r11 instructions as optional,
	following the change in PLT call stubs on linker.

2012-11-08  Pierre Muller  <muller@sourceware.org>

	* contrib/ari/gdb_ari.sh (LANG, LC_ALL): Use 'C' instead of 'c'
	as default language.
	(AWK): Use = instead of == for sh test to avoid warning.
	(Linux rule): Correct [:digit] into [[:digit:]].
	(__func__ rule): Adapt to "gdb_assert.h" move to common subdirectory.
	(vasprintf rule): Adapt to common subdirectory moves.
	(xasprintf rule): Idem.
	(xvasprintf rule): Idem.
	(var_boolean rule): Accept occurence in == or != test.

	* contrib/ari/gdb_find.sh: Also prune gdbtk directory.

2012-11-08  Stephane Carrez  <Stephane.Carrez@gmail.com>

	* tui/tui-hooks.c (tui_inferior_exit): New function.
	(tui_detach_hook): Remove.
	(tui_install_hooks): Install the inferior exit observer.
	(tui_remove_hooks): Remove it.

2012-11-08  Yao Qi  <yao@codesourcery.com>

	PR gdb/14777.
	* source.c (_initialize_source): Call add_com_alias to abbreviate
	'forward-search' as 'fo'.

2012-11-07  Pedro Alves  <palves@redhat.com>

	* arm-tdep.c: Make defs.h be the first include.
	* coff-pe-read.c: Ditto.
	* gnu-nat.c: Ditto.
	* go32-nat.c: Ditto.
	* i386-nat.c: Ditto.
	* ppcnbsd-nat.c: Ditto.
	* ada-varobj.h: Don't include defs.h.
	* i386-darwin-tdep.h: Ditto.
	* i386-nat.h: Ditto.

2012-11-07  Pedro Alves  <palves@redhat.com>

	* MAINTAINERS: New FSF-appointed maintainers replace the Steering
	Committee.

2012-11-07  Pierre Muller  <muller@sourceware.org>

	* common/linux-osdata.c (dirent.h): ARI fix: Remove.
	File already uses "gdb_dirent.h" header.

2012-11-07  Yao Qi  <yao@codesourcery.com>

	* breakpoint.c (get_tracepoint_by_number): Remove 'extern int
	tracepoint_count'.

2012-11-06  Tom Tromey  <tromey@redhat.com>

	* target.h (inferior_has_forked, inferior_has_vforked)
	(inferior_has_execd, inferior_has_called_syscall): Remove
	declarations.

2012-11-06  Pierre Muller  <muller@sourceware.org>

	* remote.c (remote_insert_hw_breakpoint): ARI fix,
	add missing internalization markup.

2012-11-06  Pedro Alves  <palves@redhat.com>

	PR gdb/14810

	* breakpoint.c (bpstat_stop_status): Skip disabled locations.

2012-11-06  Pierre Muller  <muller@sourceware.org>

	* contrib/ari/create-web-ari-in-src.sh: Avoid problem if script
	is not executable.

2012-11-05  Joel Brobecker  <brobecker@adacore.com>

	* gnulib/update-gnulib.sh: New script.

2012-11-05  Stephane Carrez  <Stephane.Carrez@gmail.com>

	* MAINTAINERS: Update my email address.

2012-11-05  Tom Tromey  <tromey@redhat.com>

	* frame.c (put_frame_register): Don't use temporary buffer.

2012-11-05  Pedro Alves  <palves@redhat.com>

	* inferior.c (exit_inferior_1): Clear 'vfork_parent' in the vfork
	child.  Clear 'pending_detach'.
	* infrun.c (handle_vfork_child_exec_or_exit): Clear
	'pending_detach' in the vfork parent.

2012-11-05  Doug Evans  <dje@google.com>

	Add support for DWP files.  http://gcc.gnu.org/wiki/DebugFissionDWP
	* contrib/cc-with-tweaks.sh: Add -p parameter to invoke dwp.
	* dwarf2read.c: #include "elf-bfd.h".
	(struct dwarf2_per_objfile): New members dwp_checked, dwp_file.
	(dwop_section_names): Renamed from dwo_section names.  All uses
	updated.  Add entries for .debug_cu_index, .debug_tu_index.
	(struct dwo_file): Rename dwo_name to name, dwo_bfd to dbfd.
	All uses updated.
	(struct dwp_sections): New type.
	(struct virtual_dwo_sections): New type.
	(struct dwp_hash_table): New type.
	(struct dwp_file): New type.
	(init_cutu_and_read_dies): Ensure DWO info/types section has been
	read in.  Handle DWOs coming from DWP files.
	(lookup_dwo_file_slot): New function.
	(dwarf2_locate_dwo_sections): Move definition closer to use.
	(create_dwo_debug_info_hash_table_reader): Renamed from
	create_debug_info_hash_table_reader.  All callers updated.
	(create_dwo_debug_info_hash_table): Renamed from
	create_debug_info_hash_table.  All callers updated.
	(create_dwp_hash_table): New function.
	(locate_virtual_dwo_sections, create_dwo_in_dwp): New functions.
	(lookup_dwo_in_dwp): New function.
	(try_open_dwop_file): Renamed from try_open_dwo_file.  New parameter
	is_dwp.  All callers updated.
	(open_dwop_file): Renamed from open_dwo_file.  All callers updated.
	(open_and_init_dwo_file): Renamed from init_dwo_file.
	All callers updated.
	(lookup_dwo_file): Delete.
	(dwarf2_locate_dwp_sections): New function.
	(hash_dwp_loaded_cutus, eq_dwp_loaded_cutus): New functions.
	(allocate_dwp_loaded_cutus_table): New function.
	(open_and_init_dwp_file): New function.
	(lookup_dwo_cutu): New function.
	(lookup_dwo_comp_unit, lookup_dwo_type_unit): Call it.

2012-11-03  Yao Qi  <yao@codesourcery.com>

	Fix PR gdb/14617.
	* breakpoint.c (trace_pass_set_count): Call
	observer_notify_breakpoint_modified instead of
	observer_notify_tracepoint_modified.
	* mi/mi-cmd-break.c (mi_cmd_break_passcount): Likewise.

2012-11-02  Tom Tromey  <tromey@redhat.com>

	* breakpoint.c (catch_syscall_completer): Pass 'word' as second
	argument to complete_on_enum.

2012-11-02  Tom Tromey  <tromey@redhat.com>

	* configure: Rebuild.
	* configure.ac (build_warnings): Add -Wempty-body.
	* m68k-tdep.c (m68k_gdbarch_init): Remove empty 'if'.
	* remote.c (handle_notification): Use braces for empty 'else' body.
	* s390-tdep.c (s390_analyze_prologue): Use braces for empty
	'else' body.
	* sh64-tdep.c (sh64_push_dummy_call): Use braces for empty
	'else' body.
	* solib-som.c (som_relocate_section_addresses): Use braces
	for empty 'else' body.
	* ui-file.c (stdio_file_write): Use braces for empty 'if' body.
	(stdio_file_write_async_safe, stdio_file_fputs): Likewise.

2012-11-02  Pedro Alves  <palves@redhat.com>

	PR gdb/14766

	* infrun.c (handle_inferior_event)
	<TARGET_WAITKIND_EXITED/TARGET_WAITKIND_SIGNALLED>: Switch to
	null_ptid before handling a vfork child exec or exit.  Switch to
	the event ptid afterwards.

2012-11-02  Yao Qi  <yao@codesourcery.com>

	* std-operator.def: Remove OP_LABELED.
	* eval.c: Remove the declaration of 'get_label'.
	(get_label): Remove.
	(evaluate_struct_tuple): Remove code handling OP_LABELED.
	Update comment.
	Remove local variable 'variantno' and related code.
	Replace 'substruct_type' with 'struct_type'.  Replace 'subfieldno'
	with 'fieldno'.
	* expprint.c (print_subexp_standard): Likewise.
	(dump_subexp_body_standard): Likewise.
	* parse.c (operator_length_standard): Likewise.

2012-11-01  Pierre Muller  <muller@ics.u-strasbg.fr>

	Incorporate ARI web page generator into GDB sources.
	* contrib/ari/create-web-ari-in-src.sh: New file.
	* contrib/ari/gdb_ari.sh: New file.
	* contrib/ari/gdb_find.sh: New file.
	* contrib/ari/update-web-ari.sh: New file.

2012-10-31  Tom Tromey  <tromey@redhat.com>

	* gdbarch.c: Rebuild.
	* gdbarch.sh: Remove references to gdbarch_swap.
	* corelow.c (core_open): Remove obsolete comment.

2012-10-31  Andrew Burgess  <aburgess@broadcom.com>

	PR cli/14772
	* c-typeprint.c (c_print_type): Don't print a space for vector
	types, this is handled within the suffix.
	(c_type_print_varspec_suffix): Add a space to vector suffix.

2012-10-26  Pedro Alves  <palves@redhat.com>

	* amd64-tdep.c (amd64_relocate_instruction): Use
	store_unsigned_integer instead of memcpy.
	* i386-tdep.c (i386_relocate_instruction): Ditto.

2012-10-26  Pedro Alves  <palves@redhat.com>

	* infrun.c (handle_inferior_event): Merge handling of
	TARGET_WAITKIND_EXITED and TARGET_WAITKIND_SIGNALLED into a single
	switch case.

2012-10-26  Pedro Alves  <palves@redhat.com>

	* infrun.c (handle_inferior_event) <TARGET_WAITKIND_SIGNALLED>:
	Remove comment.

2012-10-26  Pedro Alves  <palves@redhat.com>

	* target.c (target_waitstatus_to_string): Handle
	TARGET_WAITKIND_VFORK_DONE.

2012-10-26  Pedro Alves  <palves@redhat.com>

	* infrun.c (handle_inferior_event): Print TARGET_WAITKIND_VFORKED
	as "TARGET_WAITKIND_VFORKED", not "TARGET_WAITKIND_FORKED".

2012-10-24  Tristan Gingold  <gingold@adacore.com>

	* ravenscar-sparc-thread.c (ravenscar_sparc_fetch_registers):
	Add comments.

2012-10-24  Joel Brobecker  <brobecker@adacore.com>

	* ravenscar-thread.c (ravenscar_wait): Only update the list
	of threads and inferior_ptid if the inferior is still alive.

2012-10-24  Joel Brobecker  <brobecker@adacore.com>

	* ada-lang.c (is_known_support_routine): Use lbasename when
	matching the symtab's filename against
	known_runtime_file_name_patterns.

2012-10-24  Joel Brobecker  <brobecker@adacore.com>

	* ada-lang.c (ada_same_array_size_p): New function.
	(ada_promote_array_of_integrals): New function.
	(coerce_for_assign): Add handling of arrays where the elements
	are integrals of a smaller size than the size of the target
	array element type.

2012-10-24  Joel Brobecker  <brobecker@adacore.com>

	* doublest.c (convert_doublest_to_floatformat): Fix comparison
	against maximum exponent value.

2012-10-24  Joel Brobecker  <brobecker@adacore.com>

	* ada-lang.h (ADA_KNOWN_RUNTIME_FILE_NAME_PATTERNS): Add entry for
	"unwind-seh.c".

2012-10-24  Joel Brobecker  <brobecker@adacore.com>

	* ada-lang.c (ada_template_to_fixed_record_type_1): Do not
	strip typedef layer when computing the fixed type's field type,
	only when computing its size.

2012-10-24  Mark Kettenis  <kettenis@gnu.org>

	PR gdb/12783
	* i386-tdep.c (i386_return_value): Handle complex double and long
	double.

2012-10-24  Joel Brobecker  <brobecker@adacore.com>

	* windows-nat.c (windows_create_inferior) [!__CYGWIN__]:
	New local variable args_len.
	Quote the name of the executable when computing the command line.

2012-10-23  Mark Kettenis  <kettenis@gnu.org>

	PR gdb/12796
	PR gdb/12798
	PR gdb/12800
	* amd64-tdep.h (enum amd64_regnum): Add AMD64_ST1_REGNUM and
	AMD64_FTAG_REGNUM.
	* amd64-tdep.c (amd64_classify): Classify complex types.
	(amd64_return_value): Handle the COMPLEX_X87 class.

2012-10-23  Joel Brobecker  <brobecker@adacore.com>

	* rs6000-aix-tdep.c (rs6000_aix_auto_wide_charset): New function.
	(rs6000_aix_init_osabi): Set auto_wide_charset gdbarch method.

2012-10-23  Joel Brobecker  <brobecker@adacore.com>

	* amd64-windows-tdep.c (amd64_windows_auto_wide_charset): New
	function.
	(amd64_windows_init_abi): Set auto_wide_charset gdbarch method
	to amd64_windows_auto_wide_charset.

2012-10-23  Yao Qi  <yao@codesourcery.com>

	* event-top.c (mark_async_signal_handler_wrapper): Remove.
	* event-top.h: Remove its declaration.
	(async_request_quit): Call mark_async_signal_handler instead of
	mark_async_signal_handler_wrapper.
	(async_do_nothing, async_disconnect): Likewise.
	(async_stop_sig): Likewise.
	* remote.c (handle_remote_sigint): Likewise.
	(handle_remote_sigint_twice): Likewise.

2012-10-23  Yao Qi  <yao@codesourcery.com>

	* event-top.c (sigint_token, sighup_token): Replace 'void *'
	with 'static struct async_signal_handler *'.
	(sighup_token, sigquit_token, sigstp_token): Likewise.

2012-10-22  Ali Anwar  <ali_anwar@codesourcery.com>

	* gdbarch.sh (function_list): Use 'pstring' when printing
	a variable which could return NULL.
	* gdbarch.c: Regenerate.

2012-10-10  Joel Brobecker  <brobecker@adacore.com>
	    Tom Tromey  <tromey@redhat.com>

	* rs6000-aix-tdep.c (rs6000_aix_osabi_sniffer): Replace
	inneffective if condition by gdb assertion.  Add function
	description comment.

2012-10-19  Joel Brobecker  <brobecker@adacore.com>

	* parser-defs.h (struct exp_descriptor): Document constraint
	on return value for "op_name" callbacks.

2012-10-18  Tom Tromey  <tromey@redhat.com>

	* tracepoint.c (print_one_static_tracepoint_marker): Constify.
	* symtab.c (iterate_over_some_symtabs): Constify.
	* source.h (symtab_to_fullname): Return 'const char *'.
	* source.c (symtab_to_fullname): Return 'const char *'.
	* python/py-symtab.c (stpy_fullname): Constify.
	* cli/cli-cmds.c (edit_command): Constify.
	* breakpoint.c (print_breakpoint_location)
	(update_static_tracepoint): Constify.

2012-10-18  Tom Tromey  <tromey@redhat.com>

	* breakpoint.c (compare_breakpoints): Fix comparison.

2012-10-18  Tom Tromey  <tromey@redhat.com>

	* valprint.c (generic_emit_char, generic_printstr): Pass size of
	gdb_wchar_t to convert_between_encodings.

2012-10-17  Yao Qi  <yao@codesourcery.com>

	* breakpoint.c (invalidate_bp_value_on_memory_change): Add one
	more parameter 'inferior'.
	* corefile.c (write_memory_with_notification): Caller update.

	* mi/mi-cmd-var.c: Include "mi-main.h".
	(mi_cmd_var_assign): Set mi_suppress_notification.data_write_memory
	to 1 and restore it later.
	* mi/mi-cmds.c (mi_cmd mi_cmds): Update for "data-write-memory"
	and "data-write-memory-bytes.
	* mi/mi-interp.c: Include objfiles.h.
	(mi_interpreter_init): Call observer_attach_memory_changed.
	(mi_memory_changed): New.
	* mi/mi-main.h (struct mi_suppress_notification) <memory>:
	New field.

	* NEWS: Mention new MI notification "memory-changed".

2012-10-16  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* dwarf2loc.c (dwarf_expr_reg_to_entry_parameter): Remove comment.

2012-10-15  Doug Evans  <dje@google.com>

	New option -nh: inhibit loading of ~/.gdbinit.
	* NEWS: Mention -nh.
	* main.c (captured_main): Recognize and process -nh.
	(print_gdb_help): Mention -nh.
	* gdb.1: Mention -nh.  Remove erroneous docs on -nx behavior.

2012-10-15  H.J. Lu  <hongjiu.lu@intel.com>

	PR backtrace/14646
	PR gdb/14647
	* i386-tdep.h (gdbarch_tdep): Remove sp_regnum_from_eax and
	pc_regnum_from_eax.
	* i386-tdep.c (i386_gdbarch_init): Don't use sp_regnum_from_eax
	nor pc_regnum_from_eax.
	* amd64-tdep.c (amd64_x32_init_abi): Don't set sp_regnum_from_eax
	nor pc_regnum_from_eax.

2012-10-15  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix entry values resolving in inlined frames.
	* dwarf2loc.c (dwarf_expr_reg_to_entry_parameter): Move func_addr,
	gdbarch and caller_frame initialization later.  Skip INLINE_FRAME
	entries of FRAME.

2012-10-15  Joel Brobecker  <brobecker@adacore.com>

	* configure.ac: Build with -DMS_WIN64 if building with Python
	enabled using GCC on amd64-windows.
	* configure: Regenerate.

2012-10-15  Tom Tromey  <tromey@redhat.com>

	PR python/14635:
	* python/py-symtab.c (del_objfile_sal): Set 'symtab' field
	to Py_None.

2012-10-15  Tom Tromey  <tromey@redhat.com>

	PR python/14634:
	* python/py-symbol.c (sympy_dealloc): Check for NULL symbol.

2012-10-11  Andrew Burgess  <aburgess@broadcom.com>

	* remote-sim.c (gdbsim_create_inferior): Call init_thread_list to
	reset thread numbering back to 1.

2012-10-11  Doug Evans  <dje@google.com>

	PR breakpoints/14643.
	* linespec.c (struct ls_parser): New member keyword_ok.
	(linespec_lexer_lex_string): Add comment.
	(linespec_lexer_lex_one): Ignore keywords if it's the wrong place
	for one.
	(parse_linespec): Set keyword_ok.

2012-10-10  Doug Evans  <dje@google.com>

	* dwarf2read.c (process_psymtab_comp_unit_reader): Remove duplicate
	"0x" prefix on address in log message.

	* dwarf2read.c (read_1_byte): Add const to buf parameter.
	(read_1_signed_byte, read_2_bytes, read_2_signed_bytes): Ditto.
	(read_4_bytes, read_4_signed_bytes, read_8_bytes): Ditto.
	(lookup_dwo_file): Add const to dwo_name parameter.
	(lookup_dwo_comp_unit, lookup_dwo_type_unit): Ditto.

2012-10-06  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix crash during stepping on ppc32.
	* ppc-linux-tdep.c (powerpc_linux_in_dynsym_resolve_code): Test NULL
	SYM.

2012-10-03  Doug Evans  <dje@google.com>

	PR symtab/14601
	* buildsym.c (buildsym_init): Reset using_directives to NULL.

2012-10-02  Andrew Burgess  <aburgess@broadcom.com>

	* remote-sim.c (dump_mem): Always dump buffer contents, zero fill
	output and use uint32_t not long to ensure 4 byte size.

2012-10-02  Joel Brobecker  <brobecker@adacore.com>

	* rs6000-nat.c (add_vmap): Set "last" to "next" after having
	unref'ed it.

2012-10-01  Andrew Burgess  <aburgess@broadcom.com>

	* target.c (simple_search_memory): Include access length in
	warning message.

2012-09-28  Nathan Miller  <nathanm2@us.ibm.com>
	    Edjunior Machado  <emachado@linux.vnet.ibm.com>

	PR gdb/13989
	* solib.c (solib_find): Prevent GDB from loading native libraries when
	debugging a cross-target corefile.

2012-09-28  selven  <pcthegreat@gmail.com>

	Make definition match declaration.

	* regcache.c (regcache_register_status): Change return type to
	enum register_status.

2012-09-28  Yao Qi  <yao@codesourcery.com>

	* mi/mi-main.c (mi_cmd_data_write_memory): Call
	write_memory_with_notification instead of write_memory.
	(mi_cmd_data_write_memory_bytes): Call write_memory_with_notification
	instead of target_write_memory.

2012-09-28  Yao Qi  <yao@codesourcery.com>

	* mi/mi-main.c (mi_cmd_data_write_memory_bytes): Emit error
	when the length of content is not an even number.

2012-09-27  Tom Tromey  <tromey@redhat.com>

	Fix https://bugzilla.redhat.com/show_bug.cgi?id=849357
	* cp-valprint.c (cp_print_value_fields): Use get_vptr_fieldno.

2012-09-27  Joel Brobecker  <brobecker@adacore.com>

	* sol-thread.c (sol_thread_fetch_registers)
	(sol_thread_store_registers): Delete commented out code.

2012-09-27  Joel Brobecker  <brobecker@adacore.com>

	* sol-thread.c (ps_lgetxregsize, ps_lgetxregs, ps_lsetxregs):
	Move these functions to sparc-sol-thread.c.
	* sparc-sol-thread.c: New file.
	* configure.ac: Add sparc-sol-thread.o to CONFIG_OBS and
	sparc-sol-thread.c to CONFIG_SRCS for sparc-solaris native
	configurations.
	* configure: Regenerate.

2012-09-27  Joel Brobecker  <brobecker@adacore.com>

	* sol-thread.c (ps_lgetxregsize, ps_lgetxregs, ps_lsetxregs):
	Remove commented-out code.

2012-09-27  Joel Brobecker  <brobecker@adacore.com>

	* sol-thread.c (ps_lgetxregsize, ps_lgetxregs, ps_lsetxregs):
	Enable this code for sparc hosts only.

2012-09-27  Joel Brobecker  <brobecker@adacore.com>

	* procfs.h (procfs_find_LDT_entry): Add declaration.
	* sol-thread.c (ps_lgetLDT): Delete local declaration of
	function procfs_find_LDT_entry.

2012-09-27  Joel Brobecker  <brobecker@adacore.com>

	* procfs.c (proc_get_LDT_entry): Make static.

2012-09-27  Joel Brobecker  <brobecker@adacore.com>

	* procfs.c (proc_find_memory_regions): Fix declaration.

2012-09-27  Siddhesh Poyarekar  <siddhesh@redhat.com>

	* amd64-tdep.c (amd64_return_value): Revert previous change
	that used TYPE_LENGTH directly.
	* bfin-tdep.c (bfin_extract_return_value): Likewise.
	(bfin_store_return_value): Likewise.
	* cris-tdep.c (cris_store_return_value): Likewise.
	(cris_extract_return_value): Likewise.
	* h8300-tdep.c (h8300_extract_return_value): Likewise.
	* hppa-tdep.c (hppa64_return_value): Likewise.
	* lm32-tdep.c (lm32_store_return_value): Likewise.
	* microblaze-tdep.c (microblaze_store_return_value): Likewise.
	* spu-tdep.c (spu_value_from_register): Likewise.
	* vax-tdep.c (vax_return_value): Likewise.

2012-09-27  Siddhesh Poyarekar  <siddhesh@redhat.com>

	* gdbtypes.c (lookup_array_range_type): Expand parameters
	LOW_BOUND and HIGH_BOUND to LONGEST.
	(lookup_string_range_type): Likewise.
	* gdbtypes.h (lookup_array_range_type): Likewise.
	(lookup_string_range_type): Likewise.
	* valops.c (value_cstring): Expand parameter LEN to ssize_t.
	Expand HIGHBOUND to ssize_t.
	(value_string): Likewise.
	* value.h (value_cstring): Expand parameter LEN to ssize_t.
	(value_string): Likewise.

2012-09-27  Yao Qi  <yao@codesourcery.com>

	PR breakpoints/13898
	* breakpoint.h (tracepoint_breakpoint_ops): Forward declaration.
	* mi/mi-cmd-break.c (mi_cmd_break_insert): Set breakpoint_ops
	per breakpoint type.

2012-09-26  Pierre Muller  <muller@ics.u-strasbg.fr>

	* procfs.c: Add gdb_bfd header.
	* rs6000-nat.c: Likewise.
	* solib-pa64.c: Likewise.
	* spu-linux-nat.c: Likewise.
	* windows-nat.c: Likewise.

2012-09-26  Tom Tromey  <tromey@redhat.com>

	* f-lang.h (BLANK_COMMON_NAME_LOCAL): Remove.

2012-09-26  Tom Tromey  <tromey@redhat.com>

	* dwarf2read.c (mark_common_block_symbol_computed): New function.
	(read_common_block): Handle child DIEs with
	DW_AT_data_member_location.
	(new_symbol_full): Add special case for common blocks.

2012-09-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Tom Tromey  <tromey@redhat.com>

	* dwarf2read.c (read_common_block): Rewrite.
	(new_symbol_full): Handle DW_TAG_common_block.
	* f-lang.c (head_common_list, find_common_for_function):
	Remove.
	* f-lang.h (struct common_entry, struct saved_f77_common,
	SAVED_F77_COMMON, SAVED_F77_COMMON_PTR, COMMON_ENTRY,
	COMMON_ENTRY_PTR, head_common_list, find_common_for_function,
	BLANK_COMMON_NAME_LOCAL): Remove.
	(struct common_block): New.
	* f-valprint.c (list_all_visible_commons): Remove.
	(info_common_command_for_block): New function.
	(info_common_command): Use it.
	* stack.c (iterate_over_block_locals): Special case for
	COMMON_BLOCK_DOMAIN.
	* symtab.h (enum domain_enum_tag) <COMMON_BLOCK_DOMAIN>: New
	constant.
	(struct general_symbol_info) <value.common_block>: New field.
	(SYMBOL_VALUE_COMMON_BLOCK): New define.

2012-09-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Tom Tromey  <tromey@redhat.com>

	* f-lang.c (allocate_saved_bf_node,
	allocate_saved_function_node, allocate_saved_f77_common_node,
	allocate_common_entry_node, tail_common_list, current_common,
	saved_bf_list, saved_bf_list_end, current_head_bf_list,
	tmp_bf_ptr, add_common_block, add_common_entry,
	find_first_common_named, patch_common_entries,
	patch_all_commons_by_name, ADD_BF_SYMNUM, clear_bf_list,
	global_remote_debug, get_bf_for_fcn, saved_function_list,
	saved_function_list_end, clear_function_list, struct saved_fcn,
	struct saved_bf_symnum, SAVED_FUNCTION, SAVED_FUNCTION_PTR,
	SAVED_BF, SAVED_BF_PTR): Remove.
	* f-lang.h (tail_common_list, current_common,
	UNINITIALIZED_SECNUM, COMMON_NEEDS_PATCHING,
	BLANK_COMMON_NAME_ORIGINAL, BLANK_COMMON_NAME_MF77,
	DEFAULT_UPPER_BOUND, DEFAULT_LOWER_BOUND, real_main_name,
	real_main_c_value): Remove.
	* f-valprint.c (there_is_a_visible_common_named): Remove.

2012-09-26  Andrew Burgess  <aburgess@broadcom.com>

	* breakpoint.c (update_global_location_list): Ignore previous
	duplicate status of a breakpoint when starting a new scan for
	duplicate breakpoints.

2012-09-26  Karthik Bhat  <kv.bhat@samsung.com>
	PR breakpoints/14419
	* arm-tdep.c (arm_skip_prologue): Extending producer check to
	support LLVM compiler.

2012-09-26  Siddhesh Poyarekar  <siddhesh@redhat.com>

	* amd64-tdep.c (amd64_return_value): Use TYPE_LENGTH directly.
	* bfin-tdep.c (bfin_extract_return_value): Likewise.
	(bfin_store_return_value): Likewise.
	* cris-tdep.c (cris_store_return_value): Likewise.
	(cris_extract_return_value): Likewise.
	* h8300-tdep.c (h8300_extract_return_value): Likewise.
	* hppa-tdep.c (hppa64_return_value): Likewise.
	* lm32-tdep.c (lm32_store_return_value): Likewise.
	* microblaze-tdep.c (microblaze_store_return_value): Likewise.
	* spu-tdep.c (spu_value_from_register): Likewise.
	* vax-tdep.c (vax_return_value): Likewise.

2012-09-26  Siddhesh Poyarekar  <siddhesh@redhat.com>

	* breakpoint.c (invalidate_bp_value_on_memory_change): Expand
	parameter LEN to ssize_t.

2012-09-25  Siddhesh Poyarekar  <siddhesh@redhat.com>

	* ada-valprint.c (ada_val_print_1): Eliminate single-use
	variable LEN.
	* alpha-tdep.c (alpha_extract_return_value): Use TYPE_LENGTH
	directly.
	(alpha_store_return_value): Likewise.
	* amd64-tdep.c (amd64_classify_aggregate): Likewise.
	(amd64_push_arguments): Likewise.
	* ax-gdb.c (gen_trace_static_fields): Likewise.
	(gen_traced_pop): Likewise.
	* bfin-tdep.c (bfin_push_dummy_call): Likewise.
	* breakpoint.c (update_watchpoint): Likewise.
	* findcmd.c (parse_find_args): Use local variable for type
	instead of length.
	* findvar.c (default_read_var_value): Use TYPE_LENGTH directly.
	* h8300-tdep.c (h8300h_extract_return_value): Likewise.
	(h8300_store_return_value): Likewise.
	* i386-darwin-tdep.c (i386_darwin_push_dummy_call): Likewise.
	Use i386_darwin_arg_type_alignment directly.
	* infcall.c (call_function_by_hand): Use TYPE_LENGTH directly.
	* lm32-tdep.c (lm32_push_dummy_call): Likewise.
	* m68hc11-tdep.c (m68hc11_push_dummy_call): Likewise.
	(m68hc11_extract_return_value): Likewise.
	* mep-tdep.c (mep_push_dummy_call): Likewise.
	* printcmd.c (float_type_from_length): Likewise.
	* s390-tdep.c (s390_value_from_register): Likewise.
	* stack.c (read_frame_arg): Likewise.
	* tracepoint.c (encode_actions_1): Likewise.
	* valops.c (value_fetch_lazy): Use local variable for type
	instead of length.  Use TYPE_LENGTH directly.
	* value.c (value_contents_equal): Use TYPE_LENGTH directly.

2012-09-25  Joel Brobecker  <brobecker@adacore.com>

	* symtab.c (skip_prologue_sal): Fix typo in comment.

2012-09-25  Joel Brobecker  <brobecker@adacore.com>

	* linespec.c (create_sals_line_offset): Fix typo in comment.

2012-09-25  Siddhesh Poyarekar  <siddhesh@redhat.com>

	* c-typeprint.c (c_type_print_varspec_suffix): Remove cast and
	use plongest to print the array size.

2012-09-24  Siddhesh Poyarekar  <siddhesh@redhat.com>

	* m2-typeprint.c (m2_enum): Expand LASTVAL to LONGEST.
	* p-valprint.c (pascal_type_print_base): Likewise.

2012-09-22  Yao Qi  <yao@codesourcery.com>

	* remote.c (remote_get_trace_status): Remove setting default
	values of fields of 'ts'.

2012-09-21  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix internal error on canonicalization of clang types.
	* cp-name-parser.y (operator): New comment at make_operator call for
	new, delete, new[] and delete[].
	(exp): Use "sizeof ".  Add new comment at make_operator call.

2012-09-21  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix disassemble without parameters in tailcall frame.
	* cli/cli-cmds.c (disassemble_current_function): Use
	get_frame_address_in_block.

2012-09-21  Tom Tromey  <tromey@redhat.com>

	* c-typeprint.c (c_type_print_base) <TYPE_CODE_STRUCT,
	TYPE_CODE_UNION>: Unify, removing a goto.

2012-09-21  Tom Tromey  <tromey@redhat.com>

	* c-typeprint.c (cp_type_print_derivation_info): Fix comment.

2012-09-21  Andrew Burgess  <aburgess@broadcom.com>

	* findvar.c (read_frame_register_value): Mark the result value as
	optimized out if any of the input registers have been optimized out.

2012-09-21  Andreas Schwab  <schwab@linux-m68k.org>

	* python/python.c (finalize_python): Only define if HAVE_PYTHON.

2012-09-21  Siddhesh Poyarekar  <siddhesh@redhat.com>

	* eval.c (evaluate_subexp_standard): Eliminate single-use
	variable LOWER.

2012-09-21  Yao Qi  <yao@codesourcery.com>

	* mi/mi-interp.c: Declare mi_record_changed.
	(mi_interpreter_init): Call observer_attach_record_changed.
	(mi_record_changed): New.
	* record.c (record_open): Call observer_notify_record_changed.
	(cmd_record_stop): Call observer_notify_record_changed.
	* NEWS: Mention it.

2012-09-20  Tom Tromey  <tromey@redhat.com>

	* NEWS: Update.
	* python/python.c (finalize_python): New function.
	(_initialize_python): Make a final cleanup.

2012-09-19  Doug Evans  <dje@google.com>

	* buildsym.h (param_symbols): Delete, unused.
	(context_stack): Delete member "params", unused.
	* buildsym.c (push_context): Update.
	* dwarf2read.c (read_func_scope): Update.

2012-09-19  Thomas Schwinge  <thomas@codesourcery.com>

	* sh-tdep.c (sh_register_convert_to_virtual)
	(sh_register_convert_to_raw): Add a gdbarch parameter.  Update
	all callers.  Just do a memcpy if not the little-endian case.

	* h8300-tdep.c (h8300_gdbarch_init): Invoke
	set_gdbarch_double_format and set_gdbarch_long_double_format.
	* m68hc11-tdep.c (m68hc11_gdbarch_init): Invoke
	set_gdbarch_double_format.
	* sh-tdep.c (sh_gdbarch_init): Likewise.

	* NEWS: Document the removal of SH's 'regs' command.
	* sh-tdep.c (_initialize_sh_tdep): Remove the deprecated 'regs'
	command.

2012-09-18  Sergio Durigan Junior  <sergiodj@redhat.com>

	* infcmd.c (_initialize_infcmd): Register `j' as an alias for
	`jump'.

2012-09-18  Joel Brobecker  <brobecker@adacore.com>

	* linespec.c (iterate_over_all_matching_symtabs): Use the correct
	language when iterating over symbols.

2012-09-18  Yao Qi  <yao@codesourcery.com>

	* mi/mi-interp.c: Declare mi_tsv_created and mi_tsv_deleted.
	(mi_interpreter_init): Call observer_attach_tsv_created and
	observer_attach_tsv_deleted.
	(mi_tsv_created, mi_tsv_deleted): New.
	* tracepoint.c (delete_trace_state_variable): Call
	observer_notify_tsv_deleted.
	(trace_variable_command): Call observer_notify_tsv_created.
	(delete_trace_variable_command): Call
	observer_notify_tsv_deleted.
	(create_tsv_from_upload): Call observer_notify_tsv_created.
	* NEWS: Mention it.

2012-09-18  Yao Qi  <yao@codesourcery.com>

	* tracepoint.c (tfind_1): Call observer_notify_traceframe_changed
	if traceframe changed.
	* mi/mi-cmds.c (mi_cmd mi_cmds): Adjust for command
	"trace-find".
	* mi/mi-interp.c: Declare 'mi_traceframe_changed'.
	(mi_interpreter_init): Hook mi_traceframe_changed to observer
	'traceframe_changed'.
	(mi_traceframe_changed): New.
	* mi/mi-main.h (struct mi_suppress_notification) <traceframe>:
	New field.
	* NEWS: Mention the new MI notification.

2012-09-17  Mike Wrighton  <wrighton@codesourcery.com>

	* MAINTAINERS (Write After Approval): Add "Mike Wrighton".

2012-09-17  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* common/linux-ptrace.c: Change __i386__ to __i386__ || __x86_64__.
	(linux_ptrace_test_ret_to_nx): Extend comment for x86_64.  Change
	__i386__ to __i386__ || __x86_64__. Extend code also for __x86_64__.
	Extend code also for PaX support.  Convert all gdb_assert to warning
	calls.

2012-09-17  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Implement auto-load user conveniences suggested by Doug Evans.
	* auto-load.c: Include top.h.
	(file_is_auto_load_safe): New variable advice_printed.  Print advice.
	(_initialize_auto_load): New variable scripts_directory_help.  Mention
	GDBPY_AUTO_FILE_NAME and GDB_AUTO_FILE_NAME for set auto-load
	scripts-directory.  Document in online help one can use also files for
	set auto-load safe-path.
	* python/py-auto-load.c: (GDBPY_AUTO_FILE_NAME): Move it from here ...
	* python/python.h (GDBPY_AUTO_FILE_NAME): ... to here.

2012-09-17  Siddhesh Poyarekar  <siddhesh@redhat.com>

	* tic6x-tdep.c (tic6x_push_dummy_call): Remove unused definition
	of LEN.

2012-09-17  Siddhesh Poyarekar  <siddhesh@redhat.com>

	* m2-valprint.c (m2_print_array_contents): Eliminate variable
	ELTLEN and use TYPE_LENGTH directly.
	(m2_val_print): Likewise.
	* m68k-tdep.c (m68k_svr4_extract_return_value): Eliminate
	variable LEN and use TYPE_LENGTH directly.
	(m68k_svr4_store_return_value): Likewise.
	* mips-tdep.c (mips_o32_push_dummy_call): Eliminate variable
	ARGLEN and use TYPE_LENGTH directly.
	(mips_o64_push_dummy_call): Likewise.
	* s390-tdep (s390_function_arg_pass_by_reference): Eliminate
	variable LENGTH and use TYPE_LENGTH directly.
	(s390_function_arg_float): Likewise.
	(s390_function_arg_integer): Likewise.
	(s390_push_dummy_call): Likewise.
	(s390_return_value_convention): Likewise.
	* spu-tdep.c (spu_push_dummy_call): Eliminate LEN and use
	TYPE_LENGTH directly.

2012-09-17  Yao Qi  <yao@codesourcery.com>

	* cli/cli-decode.c (add_setshow_zuinteger_unlimited_cmd): New.
	Update comment to add_setshow_integer_cmd.
	* cli/cli-setshow.c (do_set_command): Handle case
	'var_zuinteger_unlimited'.
	(do_show_command): Likewise.
	* cli/cli-cmds.c (init_cmds): Call add_setshow_zuinteger_unlimited_cmd
	for command 'remotetimeout'.
	* command.h (enum var_types): New zuinteger_unlimited.  Update comment
	to var_integer.
	* source.c (_initialize_source): Call
	add_setshow_zuinteger_unlimited_cmd for command 'set listsize'.

2012-09-17  Siddhesh Poyarekar  <siddhesh@redhat.com>

	* infrun.c (restore_infcall_suspend_state): Eliminate single-use
	variable LEN.

2012-09-17  Jan Kratochvil  <jan.kratochvil@redhat.com>

	PR 14119
	* frame.c (skip_inlined_frames): Skip also TAILCALL_FRAME frames.
	(frame_pop): Drop also TAILCALL_FRAME frames.
	* infcmd.c (finish_command): Ignore also TAILCALL_FRAME frames.

2012-09-17  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Pedro Alves  <palves@redhat.com>

	PR 14548
	* infrun.c (handle_inferior_event): Do not reverse-continue back to the
	function start if we are already at function start.  Both for
	reverse-next and for reverse-step into function without line number
	info.

2012-09-17  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Code cleanup - rename 'inline' depth to 'artificial' depth.
	* breakpoint.c (set_momentary_breakpoint): Rename at a caller to
	frame_id_artificial_p, extend the comment.
	* dwarf2-frame-tailcall.c (tailcall_frame_this_id): Rename at a user.
	* frame.c (fprint_frame_id): Rename at a user, change debug output
	text to "artificial=".
	(skip_inlined_frames): Rename to ...
	(skip_artificial_frames): ... here.  Extend the comment.
	(get_stack_frame_id, frame_unwind_caller_id): Rename at a caller.
	(frame_id_inlined_p): Rename to ...
	(frame_id_artificial_p): ... here.  Rename at a user.
	(frame_id_eq, frame_id_inner, frame_unwind_caller_pc)
	(frame_unwind_caller_pc_if_available, frame_unwind_caller_arch): Rename
	at a user.
	* frame.h (struct frame_id): Rename inline_depth to artificial_depth.
	Extend the comment.
	(frame_id_inlined_p): Rename to ...
	(frame_id_artificial_p): ... here.
	* inline-frame.c (inline_frame_this_id): Rename at a user.

2012-09-14  Andrew Burgess  <aburgess@broadcom.com>

	* c-typeprint.c (c_type_print_varspec_suffix): Display the size of
	vector variables using vector_size syntax rather than array
	syntax.

2012-09-14  Siddhesh Poyarekar  <siddhesh@redhat.com>

	* valarith.c (value_concat): Replace unsafe ALLOCA with
	XMALLOC/XFREE.

2012-09-14  Pedro Alves  <palves@redhat.com>

	* gdb.1 (SEE ALSO): Expand pointer to GDB's Texinfo manual.

2012-09-14  Khoo Yit Phang  <khooyp@cs.umd.edu>

	Point contrib/cc-with-tweaks.sh to the build-local data-directory.
	* contrib/cc-with-tweaks.sh (GDB): Add -data-directory
	data-directory as appropriate.

2012-09-14  Siddhesh Poyarekar  <siddhesh@redhat.com>

	* printcmd.c (ui_printf): Eliminate single-use variable
	PARAM_LEN.

2012-09-14  Yao Qi  <yao@codesourcery.com>
	    Pedro Alves  <palves@redhat.com>

	* valops.c (value_assign): Move observer_notify_target_changed
	below to replace reinit_frame_cache.

2012-09-13  Khoo Yit Phang  <khooyp@cs.umd.edu>

	Refactor Python "gdb" module into a proper Python package, by
	introducing a new "_gdb" module for code implemented in C, and
	using reload/__import__ instead of exec.
	* python/lib/gdb/__init__.py: Import * from _gdb.
	(GdbOutputFile, sys.stdout, GdbOutputErrorFile, sys.stderr,
	prompt_hook, sys.argv): Moved from finish_python_initialization.
	(pretty_printers, PYTHONDIR): Moved from _initialize_python.
	(packages, auto_load_packages): New list and function replacing
	module_dict and auto-loading code, using __file__ instead of
	gdb.PYTHONDIR and reload/__import__ instead of exec.
	(GdbSetPythonDirectory): Replacing function of the same name
	from finish_python_initialization, using reload/__import__ instead
	of exec, as well as call auto_load_packages.
	* python/py-prettyprint.c (find_pretty_printer_from_gdb): Check
	gdb_python_module and not gdb_module.
	* python/python-internal.h (gdb_python_module): Declare.
	* python/python.c (gdb_python_module): New global.
	(before_prompt_hook): Check gdb_python_module and not gdb_module.
	(_initialize_python): Rename gdb module to _gdb.
	Move gdb.PYTHONDIR and gdb.pretty_printer to lib/gdb/__init__.py.
	(finish_python_initialization): Move Python code to
	lib/gdb/__init__.py; instead, set up sys.path and import gdb into
	__main__.

2012-09-13  Pedro Alves  <palves@redhat.com>

	* Makefile.in (COMMON_OBS): Add registry.o.
	* registry.c: New file.
	* registry.h (struct registry_container): Declare.
	(registry_data_callback): New typedef.
	(struct registry_data, struct registry_data_registration, struct
	registry_data_registry): New type.
	(register_data_with_cleanup, registry_alloc_data)
	(registry_callback_adaptor, registry_clear_data)
	(registry_container_free_data, registry_set_data, registry_data):
	Declare.
	(DEFINE_REGISTRY): Refactor structures and functions as shims over
	the new common structures and functions.
	(DECLARE_REGISTRY): Declare struct TAG ## _data.  Use the tagged
	callback typedefs.

2012-09-12  Mike Wrighton  <wrighton@codesourcery.com>

	* remote.c (remote_insert_hw_breakpoint): Throw exception if
	there is an error inserting hardware breakpoints and use the
	error message from the target.

	* breakpoint.c (insert_bp_location, insert_breakpoint_locations):
	Catch this exception and print the error message contained within.
	Do not print the default hardware error breakpoint message in this
	case.

2012-09-12  Doug Evans  <dje@google.com>

	* dwarf2read.c (dwarf2_read_addr_index): Fix handling the case where
	cu == NULL.

2012-09-11  Doug Evans  <dje@google.com>

	* dwarf2read.c (dw2_do_expand_symtabs_matching): Don't examine
	.gdb_index symbol attributes if there are none.

2012-09-11  Joel Brobecker  <brobecker@adacore.com>

	* symtab.h (struct minimal_symbol) [has_size]: New field.
	(MSYMBOL_SIZE): Adjust to forbid macro from being used as lvalue.
	(SET_MSYMBOL_SIZE, MSYMBOL_HAS_SIZE): New macros.
	* printcmd.c (build_address_symbolic): Only filter out zero-sized
	minimal symbols if the symbol's size is actually known.
	* minsyms.c (prim_record_minimal_symbol_full): Adjust setting
	of msymbol's size field.  Add comment.
	* elfread.c (elf_symtab_read, elf_rel_plt_read): Use
	SET_MSYMBOL_SIZE to set the minimal symbol size.

2012-09-11  Joel Brobecker  <brobecker@adacore.com>

	* minsyms.c (install_minimal_symbols): Use memset to fill entire
	minimal_symbol struct object, rather than setting some of its
	fields one by one.

2012-09-11  Andrew Burgess  <aburgess@broadcom.com>

	* c-typeprint.c (c_type_print_varspec_prefix): Pass through the
	passed_a_ptr flag when displaying typedef types.

2012-09-10  Joel Brobecker  <brobecker@adacore.com>

	* ada-lang.c (coerce_unspec_val_to_type): Make sure that
	the optimized_out flag is preserved.

2012-09-10  Anthony Green  <green@moxielogic.com>

	* moxie-tdep.c (moxie_analyze_prologue): Update for function
	prologue changes in GCC.

2012-09-10  Keith Seitz  <keiths@redhat.com>

	PR gdb/13483
	* gdbtypes.h (BOOL_PTR_CONVERSION_BADNESS): Rename to ...
	(BOOL_CONVERSION_BADNESS): ... this.
	* gdbtypes.c (BOOL_PTR_CONVERSION_BADNESS): Likewise.
	(rank_one_type): Allow all boolean conversions
	permitted by the standard.

2012-09-06  Tom Tromey  <tromey@redhat.com>

	* python/py-newobjfileevent.c (create_new_objfile_event_object):
	Don't decref py_objfile.

2012-09-02  Khoo Yit Phang  <khooyp@cs.umd.edu>

	Do not enable -lmcheck by default when Python is enabled with
	threading support.
	* configure.ac: (python_has_threads) New variable, by testing
	if WITH_THREAD is defined in Python.h.
	Move --enable-lmcheck after --with-python.
	Do not enable -lmcheck by default if python_has_threads=yes.
	Warn if --enable-lmcheck and python_has_threads=yes.
	* configure: Regenerate.

2012-08-31  Yao Qi  <yao@codesourcery.com>

	* mi/mi-cmds.c (mi_cmds): New macros DEF_MI_CMD_CLI
	DEF_MI_CMD_MI DEF_MI_CMD_CLI_1 and DEF_MI_CMD_CLI_1.
	Update some commands.
	* mi/mi-cmds.h (struct mi_cmd) <suppress_notification>: New field.
	* mi/mi-main.c (mi_cmd_execute): Set
	'*parse->cmd->suppress_notification' to 1.

2012-08-31  Yao Qi  <yao@codesourcery.com>

	* mi/mi-cmds.c (mi_cmds): Add 'static'.

2012-08-30  Khoo Yit Phang  <khooyp@cs.umd.edu>

	* MAINTAINERS (Write After Approval): Add "Khoo Yit Phang".

2012-08-29  Doug Evans  <dje@google.com>

	* main.c (print_gdb_help): Remove reference to
	--use-deprecated-index-sections.

2012-08-28  Yao Qi  <yao@codesourcery.com>

	* cli/cli-cmds.c (max_user_call_depth): Add 'unsigned'.
	(init_cmds): Call add_setshow_uinteger_cmd for command
	'max-user-call-depth'.
	* cli/cli-script.c (execute_user_command): Add 'unsigned' to the
	declaration of 'max_user_call_depth'.
	* frame.c (backtrace_limit): Add 'unsigned'.
	(_initialize_frame): Call add_setshow_uinteger_cmd for command
	'limit'.
	* remote.c (remoteaddresssize): Add 'unsigned'.
	(remote_address_masked): Change local var 'address_size' to
	'unsigned'.
	(_initialize_remote): Call add_setshow_uinteger_cmd for
	'remoteaddresssize'.
	* top.c (history_size): Add 'unsigned'.
	(show_commands): Change local variables to 'unsigned'.
	(set_history_size_command): Don't check history_size is negative.
	Adjust the condition to call unstifle_history and set history_size
	to UNIT_MAX.

2012-08-28  Pedro Alves  <palves@redhat.com>

	PR gdb/14428

	* infcmd.c (default_print_one_register_info): New, factored out
	from default_print_registers_info.
	(default_print_registers_info): Use it.  Mark value unavailable if
	necessary.
	(registers_info): Print user registers with
	default_print_one_register_info.

2010-08-27  H.J. Lu  <hongjiu.lu@intel.com>

	PR tui/14486
	* tui/tui-source.c (tui_source_is_displayed): Check if TUI_SRC_WIN
	is not NULL before referencing it.

2012-08-27  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* breakpoint.c (parse_breakpoint_sals) <(*address) == NULL>: New
	variable pc.  Call find_pc_line instead of find_pc_overlay, restore
	original PC for it.

2012-08-27  Eli Zaretskii  <eliz@gnu.org>
	    Jan Kratochvil  <jan.kratochvil@redhat.com>

	* auto-load.c (auto_load_objfile_script): Rename to ...
	(auto_load_objfile_script_1): ... here, change variable realname to
	parameter realname, document it, add return value, add variable retval.
	(auto_load_objfile_script): New function.

2012-08-27  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* cli/cli-decode.c (print_doc_line): Keep skipping '.' and ',' not
	followed by a whitespace.

2012-08-27  Jan Kratochvil  <jan.kratochvil@redhat.com>

	PR gdb/14494.
	* dwarf2read.c (dwarf2_locate_sections): Move variable aflag here.
	Move the SEC_HAS_CONTENTS check here - for any NAMES use.
	(dwarf2_locate_sections) <eh_frame>: Move the variable and check from
	here.

2012-08-27  Wei-cheng Wang  <cole945@gmail.com>

	* memattr.c (create_mem_region): Fix memory region overlapping
	checking.

2012-08-24  Siddhesh Poyarekar  <siddhesh@redhat.com>

	* h8300-tdep.c (h8300_push_dummy_call): Replace unsafe alloca
	with xmalloc/cleanup.
	* mt-tdep.c (mt_push_dummy_call): Likewise.
	* tilegx-tdep.c (tilegx_push_dummy_call): Likewise.
	* xstormy16-tdep.c (xstormy16_push_dummy_call): Likewise.

2012-08-24  Yao Qi  <yao@codesourcery.com>

	* jv-exp.y (push_expression_name): Add "." at the end of error
	message.

2012-08-23  Khoo Yit Phang <khooyp@cs.umd.edu>

	Document how to return from "python-interactive" to GDB.
	* python/python.c (_initialize_python): Update documentation.

2012-08-23  Pedro Alves  <palves@redhat.com>

	* infrun.c (_initialize_infrun) <handle command help text>:
	Mention that multiple signals are supported.

2012-08-23  Pedro Alves  <palves@redhat.com>

	* infcmd.c (_initialize_infcmd) <signal command>: Fix typo in help
	string.

2012-08-23  Yao Qi  <yao@codesourcery.com>

	* tracepoint.c (disconnect_tracing): Call set_tracepoint_num.
	(tfind_1): Don't call registers_changed, set_traceframe_num,
	and clear_traceframe_info.
	Call set_current_traceframe.
	(set_current_traceframe): call set_traceframe_num.

2012-08-22  Sergio Durigan Junior  <sergiodj@redhat.com>

	* remote-sim.c (_initialize_remote_sim): Pass NULL argument to
	`register_inferior_data_with_cleanup', fixing regression on PowerPC64.

2012-08-22  Khoo Yit Phang <khooyp@cs.umd.edu>

	Enable readline in Python in a GDB-specific way and block the
	standard Python readline module to prevent conflicts with GDB.
	* Makefile.in (SUBDIR_PYTHON_OBS): Add py-gdb-readline.o.
	(SUBDIR_PYTHON_SRCS): Add python/py-gdb-readline.c.
	(py-gdb-readline.o): Add rule to compile python/py-gdb-readline.c.
	* python/py-gdb-readline.c: New file.
	* python/python-internal.h (gdbpy_initialize_gdb_readline): New
	prototype.
	* python/python.c (_initialize_python): Call
	gdbpy_initialize_gdb_readline.

2012-08-22  Keith Seitz  <keiths@redhat.com>

	* defs.h: Include build-gnulib/config.h

2012-08-22  Joseph Myers  <joseph@codesourcery.com>

	* arm-tdep.c (thumb_get_next_pc_raw): Mask off low bits for bx pc
	and blx pc.

2012-08-22  Khoo Yit Phang <khooyp@cs.umd.edu>

	Add a new "python-interactive" command that starts a standard
	Python interactive prompt with "pi" as alias, and add "py" as
	an alias to "python".
	* NEWS: Mention the new commands.
	* python/python.c (eval_python_command): New function.
	(python_interactive_command): For "python-interactive" with
	arguments, call eval_python_command.  For "python-interactive"
	without arguments, call PyRun_InteractiveLoop.
	(_initialize_python): Add "python-interactive" command with
	"pi" as alias, and add "py" as an alias to "python".

2012-08-22  Tom Tromey  <tromey@redhat.com>

	* defs.h (quit_flag): Don't declare.
	(clear_quit_flag, check_quit_flag, set_quit_flag): Declare.
	(QUIT): Use new functions.
	* event-top.c (command_handler): Use clear_quit_flag.
	(handle_sigint): Use set_quit_flag.
	(async_request_quit): Use check_quit_flag.  Don't check
	immediate_quit.
	* exceptions.c (throw_exception): Use clear_quit_flag.
	* main.c (captured_main): Use clear_quit_flag.
	* python/python.c (clear_quit_flag, set_quit_flag)
	(check_quit_flag): New functions.
	* remote-sim.c (gdb_os_poll_quit): Use check_quit_flag,
	clear_quit_flag.
	* remote.c (remote_wait_as): Use check_quit_flag,
	clear_quit_flag.
	(remote_start_remote): Call QUIT.
	* symfile.c (load_progress): Use check_quit_flag.
	* top.c (command_loop): Use clear_quit_flag.
	(command_line_input): Call QUIT.
	* utils.c (quit_flag): Conditionally define.
	(clear_quit_flag, check_quit_flag, set_quit_flag): New
	functions.
	(prompt_for_continue): Call QUIT.  Use quit, not
	async_request_quit.
	* remote-mips.c (mips_expect_timeout): Call QUIT.
	* monitor.c (monitor_expect): Call QUIT.

2012-08-22  Tom Tromey  <tromey@redhat.com>

	* event-top.c (sigwinch_token, handle_sigwinch): Remove.
	(async_init_signals): Update.
	* utils.c (init_page_info): Don't use SIGWINCH_HANDLER.
	(SIGWINCH_HANDLER_BODY): Remove.

2012-08-22  Tom Tromey  <tromey@redhat.com>

	* jit.c (jit_object_close_impl): Don't malloc the objfile
	name.
	* objfiles.c (allocate_objfile): Don't malloc the objfile
	name.
	(free_objfile): Don't free the objfile name.
	* objfiles.h (struct objfile) <name>: Update comment.
	* symfile.c (reread_symbols): Fix reference counting.  Don't
	malloc objfile name.

2012-08-22  Tom Tromey  <tromey@redhat.com>

	* windows-nat.c (windows_make_so): Use gdb_bfd_open.
	* symfile.c (bfd_open_maybe_remote): Use gdb_bfd_open.
	(symfile_bfd_open): Likewise.
	(generic_load): Likewise.
	* solib.c (solib_bfd_fopen): Use gdb_bfd_open.
	* solib-pa64.c (pa64_solib_create_inferior_hook): Use
	gdb_bfd_open.
	* solib-darwin.c (darwin_solib_get_all_image_info_addr_at_init):
	Use gdb_bfd_open.
	* rs6000-nat.c (add_vmap): Use gdb_bfd_open.
	* remote-mips.c (mips_load_srec): Use gdb_bfd_open.
	(pmon_load_fast): Likewise.
	* remote-m32r-sdi.c (m32r_load): Use gdb_bfd_open.
	* procfs.c (insert_dbx_link_bpt_in_file): Use gdb_bfd_open.
	* machoread.c (macho_symfile_read_all_oso): Use gdb_bfd_open.
	(macho_check_dsym): Likewise.
	* m32r-rom.c (m32r_load): Use gdb_bfd_open.
	(m32r_upload_command): Likewise.
	* gdb_bfd.h (gdb_bfd_cache): Declare.
	* gdb_bfd.c (struct gdb_bfd_data): New.
	(gdb_bfd_cache): New global.
	(struct gdb_bfd_cache_search): New.
	(hash_bfd): New function.
	(eq_bfd): Likewise.
	(gdb_bfd_open): Likewise.
	(gdb_bfd_ref): Allocate a gdb_bfd_data and attach to the BFD.
	(gdb_bfd_unref): Remove closed BFD from cache.  Update for
	gdb_bfd_data.
	* exec.c (exec_file_attach): Use gdb_bfd_open.
	* dsrec.c (load_srec): Use gdb_bfd_open.

2012-08-22  Tom Tromey  <tromey@redhat.com>

	* dwarf2read.c (macro_start_file): Update.
	* objfiles.c (get_objfile_bfd_data): Initialize macro_cache.
	(free_objfile_per_bfd_storage): Destroy macro_cache.
	(allocate_objfile, free_objfile): Update.
	* objfiles.h (struct objfile_per_bfd_storage) <macro_cache>:
	New field.
	(struct objfile) <macro_cache>: Remove.
	* symfile.c (reread_symbols): Update.
	* symmisc.c (print_symbol_bcache_statistics): Update.
	(print_objfile_statistics): Update.

2012-08-22  Tom Tromey  <tromey@redhat.com>

	* elfread.c (elf_symtab_read): Update.
	* objfiles.c (objfiles_bfd_data): New global.
	(get_objfile_bfd_data, free_objfile_per_bfd_storage)
	(objfile_bfd_data_free, set_objfile_per_bfd): New functions.
	(allocate_objfile, free_objfile): Update.
	(_initialize_objfiles): Initialize objfiles_bfd_data.
	* objfiles.h (struct objfile_per_bfd_storage): New.
	(struct objfile) <per_bfd>: New field.
	<filename_cache>: Remove.
	(set_objfile_per_bfd): Declare.
	* symfile.c (reread_symbols): Update.  Call
	set_objfile_per_bfd.
	(allocate_symtab): Update.
	* symmisc.c (print_symbol_bcache_statistics): Update.
	(print_objfile_statistics): Print the size of the BFD obstack.

2012-08-22  Tom Tromey  <tromey@redhat.com>

	* gdb_bfd.h: Include registry.h.  Use DECLARE_REGISTRY.
	* gdb_bfd.c: Use DEFINE_REGISTRY.
	(struct gdb_bfd_data): Add REGISTRY_FIELDS.
	(gdb_bfd_ref): Call bfd_alloc_data.
	(gdb_bfd_unref): Call bfd_free_data.

2012-08-22  Tom Tromey  <tromey@redhat.com>

	* registry.h (struct registry_fields): New.
	(REGISTRY_FIELDS): Redefine.
	(REGISTRY_ACCESS_FIELD): New macro.
	(DEFINE_REGISTRY): Add ACCESS argument.  Update defined
	functions.

2012-08-22  Tom Tromey  <tromey@redhat.com>

	* auto-load.c (_initialize_auto_load): Update.
	* solib-svr4.c (_initialize_svr4_solib): Update
	* solib-dsbt.c (_initialize_dsbt_solib): Update.
	* solib-darwin.c (_initialize_darwin_solib): Update.
	* registry.h: New file.
	* python/py-progspace.c (gdbpy_initialize_pspace): Update.
	* python/py-inferior.c (gdbpy_initialize_inferior): Update.
	* progspace.h: Include registry.h.  Use DECLARE_REGISTRY.
	(register_program_space_data_with_cleanup)
	(register_program_space_data, program_space_alloc_data)
	(clear_program_space_data, set_program_space_data)
	(program_space_data): Don't declare.
	* progspace.c: Use DEFINE_REGISTRY.
	(struct program_space_data, struct
	program_space_data_registration, struct
	program_space_data_registry, program_space_data_registry)
	(register_program_space_data_with_cleanup)
	(register_program_space_data, program_space_alloc_data)
	(program_space_free_data, clear_program_space_data)
	(set_program_space_data, program_space_data): Remove.
	* objfiles.h: Include registry.h.  Use DECLARE_REGISTRY.
	(struct objfile) <data, num_data>: Replace with REGISTRY_FIELDS.
	(register_objfile_data_with_cleanup, register_objfile_data)
	(clear_objfile_data, set_objfile_data, objfile_data): Don't
	declare.
	* objfiles.c: Use DEFINE_REGISTRY.
	(struct objfile_data, struct objfile_data_registration, struct
	objfile_data_registry, objfile_data_registry)
	(register_objfile_data_with_cleanup, register_objfile_data)
	(objfile_alloc_data, objfile_free_data, clear_objfile_data)
	(set_objfile_data, objfile_data): Remove.
	(_initialize_objfiles): Update.
	* jit.c (_initialize_jit): Update.
	* inflow.c (_initialize_inflow): Update.
	* inferior.h: Include registry.h.  Use DECLARE_REGISTRY.
	(struct inferior) <data, num_data>: Replace with REGISTRY_FIELDS.
	(register_inferior_data_with_cleanup, register_inferior_data)
	(clear_inferior_data, set_inferior_data, inferior_data): Don't
	declare.
	* inferior.c: Use DEFINE_REGISTRY.
	(struct inferior_data, struct inferior_data_registration, struct
	inferior_data_registry, inferior_data_registry)
	(register_inferior_data_with_cleanup, register_inferior_data)
	(inferior_alloc_data, inferior_free_data  clear_inferior_data)
	(set_inferior_data, inferior_data): Remove.
	* auxv.c (_initialize_auxv): Update.
	* ada-lang.c (_initialize_ada_language): Update.
	* breakpoint.c (_initialize_breakpoint): Update.
	* i386-nat.c (i386_use_watchpoints): Update.

2012-08-22  Tom Tromey  <tromey@redhat.com>

	* exec.c (exec_close, exec_file_attach): Update.
	(add_to_section_table): Initialize 'key' field.
	(add_target_sections, remove_target_sections): Add 'key' argument.
	* exec.h (add_target_sections, remove_target_sections): Add
	'key' argument.
	* solib.c (solib_map_sections, update_solib_list, clear_solib)
	(reload_shared_libraries_1): Update.
	* target.h (struct target_section) <key>: New field.

2012-08-22  Tom Tromey  <tromey@redhat.com>

	* cli/cli-cmds.c (filter_sals): Handle nelts == 0 case.

2012-08-21  Pierre Muller  <muller@ics.u-strasbg.fr>

	* symfile.c (allocate_symtab): Use host_address_to_string
	function instead of cast of pointer to long which is not
	compatible with x86_64-w64-mingw32 build.

2012-08-19  Andrew Pinski  <apinski@cavium.com>

	* mips-tdep.c (is_octeon): New function.
	(is_octeon_bbit_op): New function.
	(mips32_next_pc): Handle Octeon's bbit instructions.
	(mips32_instruction_has_delay_slot): Likewise.

2012-08-19  Andrew Pinski  <apinski@cavium.com>

	* mips-tdep.c (mips32_next_pc): Fix line spacing of the comment
	before the function.

2012-08-19  Andrew Pinski  <apinski@cavium.com>

	* mips-tdep.c (mips32_next_pc): Consolidate calls to itype_op.

2012-08-19  Keith Seitz  <keiths@redhat.com>

	PR c++/14365
	* c-typeprint.c (c_type_print_varspec_prefix): Pass
	-1 for SHOW to c_type_print_base for METHODPTR and MEMBERPTR.

2012-08-18  Eli Zaretskii  <eliz@gnu.org>

	* Makefile.in (HFILES_NO_SRCDIR): Fix a typo: golang.h -> go-lang.h.
	The typo broke "make TAGS".

2012-08-17  Joel Brobecker  <brobecker@adacore.com>

	GDB 7.5 released.

2012-08-17  Keith Seitz  <keiths@redhat.com>

	PR c++/13356
	* gdbtypes.c (strict_type_checking): New variable.
	(show_strict_type_checking): New function.
	(rank_one_type): Return NS_POINTER_INTEGER_CONVERSION_BADNESS
	if strict type checking is disabled.
	(_initialize_gdbtypes): Add "check type" subcommand.
	* gdbtypes.h (NS_INTEGER_POINTER_CONVERSION_BADNESS): New struct.

2012-08-17  Keith Seitz  <keiths@redhat.com>

	* language.h (type_mode): Remove.
	(type_check): Remove.
	(struct language_defn): Remove la_type_check.
	(STRICT_TYPE): Remove unused macro.
	(type_error): Remove.
	* language.c (set_type_range_case): Renamed to ...
	(set_range_case): ... this.  Update all callers.
	Remove type_mode/type_check.
	(type_mode): Remove.
	(type_check): Remove.
	(show_type_command): Remove.
	(set_type_command): Remove.
	(language_info): Remove type checking output.
	(type_error): Remove unused function.
	(range_error): Update comment.
	(unknown_language_defn): Remove la_type_check.
	(auto_language_defn): Likewise.
	(local_language_defn): Likewise.
	(_initialize_language): Remove "check type" subcommand.
	* ada-lang.c (ada_language_defn): Remove la_type_check.
	* c-lang.c (c_language_defn): Likewise.
	(cplus_language_defn): Likewise.
	(asm_language_defn): Likewise.
	(minimal_language_defn): Likewise.
	* d-lang.c (d_language_defn): Likewise.
	* f-lang.c (f_language_defn): Likewise.
	* go-lang.c (go_language_defn): Likewise.
	* jv-lang.c (java_language_defn): Likewise.
	* m2-lang.c (m2_language_defn): Likewise.
	* objc-lang.c (objc_language_defn): Likewise.
	* opencl-lang.c (opencl_language_defn): Likewise.
	* p-lang.c (pascal_language_defn): Likewise.

2012-08-16  Mike Frysinger  <vapier@gentoo.org>

	* infcmd.c (_initialize_infcmd): Remove trailing ) in next help text.

2012-08-16  Joel Brobecker  <brobecker@adacore.com>

	* ia64-hpux-nat.c (ia64_hpux_get_register_from_save_state_t):
	New function.
	(ia64_hpux_xfer_memory): Check if inferior_ptid is known before
	using the regache.  Use ia64_hpux_get_register_from_save_state_t
	to access the bsp and bspstore registers if not.

2012-08-16  Joel Brobecker  <brobecker@adacore.com>

	* breakpoint.h (detach_breakpoints): pid parameter is now a ptid.
	* breakpoint.c (detach_breakpoints): Change pid parameter into
	a ptid.  Adjust code accordingly.
	* infrun.c (handle_inferior_event): Delete variable child_pid.
	Update call to detach_breakpoints to pass the child ptid for
	fork events.
	* linux-nat.c (linux_nat_iterate_watchpoint_lwps): Remove
	assert that inferior_ptid's lwp is zero.
	(linux_handle_extended_wait): Update call to detach_breakpoints.
	* inf-ttrace.c (inf_ttrace_follow_fork): Update call to
	detach_breakpoints.

2012-08-16  Joel Brobecker  <brobecker@adacore.com>

	* inf-ttrace.c (inf_ttrace_follow_fork): When following the
	parent, only call detach_breakpoints if tts.tts_event ==
	TTEVT_VFORK.

2012-08-16  Joel Brobecker  <brobecker@adacore.com>

	* dwarf2-frame.c (dwarf2_frame_cache): Use
	get_frame_address_in_block instead of get_frame_pc as
	the bound for executing the frame's FDE.

2012-08-16  Yao Qi  <yao@codesourcery.com>

	* gdbtypes.h (enum type_code): Define TYPE_CODE_BITSTRING -1.
	* arm-tdep.c (arm_type_align): Remove code handling TYPE_CODE_BITSTRING.
	* c-typeprint.c (c_type_print_varspec_prefix): Likewise.
	(c_type_print_varspec_suffix): Likewise.
	* eval.c (evaluate_subexp_standard): Likewise.
	* f-typeprint.c (f_type_print_varspec_prefix): Likewise.
	(f_type_print_varspec_suffix): Likewise.
	* gdbtypes.c (is_scalar_type): Likewise.
	(recursive_dump_type): Likewise.
	* infcall.c (value_arg_coerce): Likewise.
	* m2-valprint.c (m2_val_print): Likewise.
	* p-typeprint.c (pascal_type_print_varspec_prefix): Likewise.
	(pascal_type_print_varspec_suffix): Likewise.
	(pascal_type_print_base): Likewise.
	* p-valprint.c (pascal_val_print): Likewise.
	(pascal_val_print): Likewise.
	* valops.c (value_slice): Likewise.
	* valprint.c (scalar_type_p): Likewise.
	* valarith.c (value_bitstring_subscript): Remove.
	(value_concat): Remove code handling TYPE_CODE_BITSTRING.
	Remove comment on TYPE_CODE_BITSTRING.

	* stabsread.c (read_type): Don't set TYPE_CODE (type) to
	TYPE_CODE_BITSTRING.

	* python/py-type.c (pyty_codes): Move ENTRY (TYPE_CODE_BITSTRING) to
	slot 0.

2012-08-16  Yao Qi  <yao@codesourcery.com>

	* tracepoint.c (trace_find_none_command): Remove.
	(_initialize_tracepoint): Call add_alias_cmd for "tfind none".

2012-08-16  Yao Qi  <yao@codesourcery.com>

	* remote.c (handle_notification): Remove parameter 'length'.
	(putpkt_binary, getpkt_or_notif_sane_1): Caller update.

2012-08-15  Keith Seitz  <keiths@redhat.com>

	* gdbtypes.c (opaque_type_resolution): Make static.
	Add missing comment.
	(overload_debug): Add missing comment.
	(show_opaque_type_resolution): Likewise.
	(show_overload_debug): Likewise.
	(print_bit_vector): Remove unnecessary forward declaration.
	(print_arg_types): Likewise.
	(dump_fn_fieldlists): Likewise.
	(print_cplus_stuff): Likewise.

2012-08-15  Tom Tromey  <tromey@redhat.com>

	* gdb_bfd.c (struct gdb_bfd_data) <archive_bfd>: New field.
	(gdb_bfd_ref): Initialize new field.
	(gdb_bfd_unref): Unref the archive BFD.
	(gdb_bfd_openr_next_archived_file): Acquire a reference to the
	parent archive.

2012-08-15  Tom Tromey  <tromey@redhat.com>

	PR python/14387:
	* python/py-bpevent.c (create_breakpoint_event_object): Update
	comment.
	* python/py-event.c (evpy_add_attribute): Update comment.
	* python/py-exitedevent.c (create_exited_event_object): Fix
	reference counting and error handling.
	* python/py-newobjfileevent.c (create_new_objfile_event_object):
	Fix reference counting.
	* python/py-signalevent.c (create_signal_event_object): Fix
	reference counting and error handling.
	* python/py-stopevent.c (emit_stop_event): Fix reference
	counting.
	* python/py-threadevent.c (get_event_thread): Return a
	borrowed reference.
	* python/py-type.c (convert_field): Fix reference counting.

2012-08-15  Tom Tromey  <tromey@redhat.com>

	* dwarf2read.c (dwarf_decode_macro_bytes)
	<DW_MACRO_GNU_transparent_include>: Use pointer to included data
	as hash key.

2012-08-14  Mike Frysinger  <vapier@gentoo.org>

	* infcmd.c (_initialize_infcmd): Update help text for the signal,
	stepi, nexti, finish, next, step, jump, and continue commands.
	* infrun.c (_initialize_infrun): Update help text for the handle
	command.

2012-08-14  Doug Evans  <dje@google.com>

	* gdbtypes.c (struct extra): Delete, unused.

	* gdbtypes.c: Whitespace cleanup.
	(address_space_name_to_int): Remove "extern" from definition.
	(_initialize_gdbtypes): Declare with initialize_file_ftype.

	* gdbtypes.c (make_pointer_type): Remove redundant setting of
	TYPE_POINTER_TYPE (type).

2012-08-14  Gary Benson  <gbenson@redhat.com>

	* solib-svr4.c (svr4_free_library_list): Use free_so.

2012-08-13  Mike Frysinger  <vapier@gentoo.org>

	* .gitignore: Add go-exp.c.

2012-08-13  Doug Evans  <dje@google.com>

	* value.c (show_convenience): Tweak comment.
	(_initialize_values): Mention convenience functions in the help text
	for "show convenience".

2012-08-13  Yao Qi  <yao@codesourcery.com>

	* std-operator.def: Remove TERNOP_SLICE_COUNT.
	* breakpoint.c (watchpoint_exp_is_const): Remove handling to
	TERNOP_SLICE_COUNT.
	* eval.c (evaluate_subexp_standard): Likewise.
	* expprint.c (print_subexp_standard): Likewise.
	(dump_subexp_body_standard): Likewise.
	* parse.c (operator_length_standard): Likewise.

2012-08-13  Yao Qi  <yao@codesourcery.com>

	* std-operator.def: Remove OP_BITSTRING.
	* breakpoint.c (watchpoint_exp_is_const): Update.
	* eval.c (evaluate_subexp_standard): Remove handling to
	OP_BITSTRING.
	* expprint.c (print_subexp_standard): Likewise.
	(dump_subexp_body_standard): Likewise.
	* parse.c (operator_length_standard): Likewise.
	* valops.c (value_bitstring): Remove.
	* value.h: Remove the declaration of 'value_bitstring'.

2012-08-10  Sergio Durigan Junior  <sergiodj@redhat.com>

	* linespec.c (find_methods): Remove unused variables `i1' and
	`name_len'.
	(decode_line_full): Likewise for `arg_start'.

2012-08-10  Sergio Durigan Junior  <sergiodj@redhat.com>

	* gdb_bfd.c (gdb_bfd_unref): Remove unused variable `slot'.
	(zlib_decompress_section): Likewise for `section_data'.
	(gdb_bfd_map_section): Likewise for `buf' and `retbuf'.

2012-08-10  Doug Evans  <dje@google.com>

	Add $_memeq, $_regex, $_streq, $_strlen convenience functions.
	* NEWS: Document them.
	* data-directory/Makefile.in (PYTHON_FILES): Add function/__init__.py,
	function/strfns.py.
	* python/py-type.c (typy_array_1): New function.
	(typy_array): Call it.
	(typy_vector): New function.
	(type_object_methods): Add "vector".
	* python/lib/gdb/function/__init__.py: New file.
	* python/lib/gdb/function/strfns.py: New file.

2012-08-10  Siddhesh Poyarekar  <siddhesh@redhat.com>

	* python/py-type.c (convert_field): Use gdb_py_long_from_longest
	for TYPE_FIELD_BITPOS.
	(typy_get_sizeof): Likewise for TYPE_LENGTH.

2012-08-10  Mike Frysinger  <vapier@gentoo.org>

	PR cli/10436:
	* common/vec.h (VEC_merge): Define.
	(DEF_VEC_ALLOC_FUNC_I): Add a merge helper.
	(DEF_VEC_ALLOC_FUNC_P): Likewise.
	(DEF_VEC_ALLOC_FUNC_O): Likewise.
	* completer.c: Include gdb_signals.h.
	(signal_completer): Define.
	* completer.h (signal_completer): Add prototype.
	* infcmd.c (_initialize_infcmd): Assign the command
	completer for "signal" to handle_completer.
	* infrun.c: Include completer.h.
	(handle_completer): Define.
	(_initialize_infrun): Declare a new local variable c.  Store the
	result of add_com("handle") to it.  Assign the command
	completer for "handle" to handle_completer.

2012-08-09  Yao Qi  <yao@codesourcery.com>

	* cli/cli-decode.c (set_cmd_prefix): New.
	(lookup_cmd_for_prefixlist): New.
	(add_prefix_cmd): Call set_cmd_prefix and update field 'prefix'
	of each cmd_list_element in *prefixlist.
	(add_setshow_cmd_full): set_cmd_prefix.
	(add_alias_cmd): Likewise.
	* cli/cli-decode.h (struct cmd_list_element) <prefix>: New field.
	Declare 'auto_boolean_enums'.
	* cli/cli-setshow.c: Include "observer.h".
	(notify_command_param_changed_p): New.
	(add_setshow_auto_boolean_cmd): Move auto_boolean_enums out.
	Remove 'static'.
	(do_setshow_command): Split it to ...
	(do_set_command, do_show_command): ... them.  New.
	(do_set_command): Call observer_notify_command_param_changed if
	notify_command_param_changed_p returns true.
	(cmd_show_list): Caller update.
	* auto-load.c (set_auto_load_cmd): Likewise.
	* remote.c (show_remote_cmd): Likewise.
	* cli/cli-setshow.h: Update declarations.
	* top.c (execute_command): Call do_set_command and do_show_command.

	* NEWS: Mention new MI notification.
	* mi/mi-interp.c: Declare mi_command_param_changed.
	(mi_interpreter_init): Attach mi_command_param_changed to
	observer command_param_changed.
	(mi_command_param_changed): New.
	Remove mi_suppress_breakpoint_notifications.
	Define global variable mi_suppress_notification.
	(mi_breakpoint_created): Update.
	(mi_breakpoint_deleted): Likewise.
	(mi_breakpoint_modified): Likewise.
	* mi/mi-main.c (mi_cmd_execute): Likewise.  Check command
	'gdb-set' and set mi_suppress_notification.
	* mi/mi-main.h: (mi_suppress_notification): New struct.

2012-08-09  Andreas Tobler  <andreast@fgznet.ch>
	    Jan Kratochvil  <jan.kratochvil@redhat.com>

	* fbsd-nat.h (fbsd_find_memory_regions): Use find_memory_region_ftype.

2012-08-09  Yao Qi  <yao@codesourcery.com>

	* cli/cli-cmds.c (enablebreaklist): Move it to breakpoint.c.
	(skiplist): Move it to skip.c.
	(init_cmd_lists): Remove code setting enablebreaklist and
	skiplist to NULL.
	* breakpoint.c (enablebreaklist): Moved from cli/cli-cmds.c.
	* cli/cli-cmds.h: Remove declaration of enablebreaklist and
	skiplist.
	* gdbcmd.h: Likewise.
	* skip.c (_initialize_step_skip): Move 'skiplist' from
	cli/cli-cmds.c.

2012-08-09  Yao Qi  <yao@codesourcery.com>

	* cli/cli-dump.c: Add 'static' to some cmd_list_element variables.
	* gnu-nat.c, symfile.c: Likewise.

2012-08-08  Aaron Gamble  <agamble@google.com>

	* utils.c (prompt_for_continue_wait_time): New static global.
	(make_command_stats_cleanup): Initialize it.
	(report_command_stats): Subtract time waiting for user.
	(prompt_for_continue): Track time waiting for user.
	(defaulted_query): Track time waiting for user.

2012-08-08  Doug Evans  <dje@google.com>

	* eval.c (evaluate_subexp_standard): Fix thinko in handling
	UNOP_MEMVAL_TYPE.
	* expprint.c (print_subexp_standard, case OP_TYPE): New.
	(print_subexp_standard, case UNOP_CAST_TYPE): Don't increment pos.
	(print_subexp_standard, case UNOP_DYNAMIC_CAST): Ditto.
	(print_subexp_standard, case UNOP_REINTERPRET_CAST): Ditto.
	(print_subexp_standard, case UNOP_MEMVAL_TYPE): Ditto.
	(dump_subexp_body_standard, case UNOP_DYNAMIC_CAST): Don't increment
	elt.
	(dump_subexp_body_standard, case UNOP_REINTERPRET_CAST): Ditto.
	(dump_subexp_body_standard, case UNOP_CAST_TYPE): Ditto.
	(dump_subexp_body_standard, case UNOP_MEMVAL_TYPE): Ditto.
	(dump_prefix_expression): Handle OP_TYPE.

2012-08-08  Keith Seitz  <keiths@redhat.com>

	* breakpoint.c (parse_breakpoint_sals): Remove unused variable
	addr_start.

2012-08-08  Doug Evans  <dje@google.com>

	* linux-thread-db.c: #include "gdb_vecs.h".
	(try_thread_db_load_from_pdir_1): New arg "subdir".  All callers
	updated.
	(try_thread_db_load_from_pdir): New arg "subdir".  All callers updated.
	(thread_db_load_search): Use a vector to iterate over path elements.
	Handle text appearing after "$pdir".

	* gdb_string.h: Moved to ...
	* common/gdb_string.h: ... here.
	* common/vec.h: Remove #ifndef GDBSERVER conditional inclusion of
	gdb_string.h and gdb_assert.h.

2012-08-08  Yao Qi  <yao@codesourcery.com>

	* tic6x-tdep.c (tic6x_register_to_value): Remove.
	(tic6x_value_to_register): Likewise.
	(tic6x_gdbarch_init): Don't call set_gdbarch_register_to_value
	and set_gdbarch_value_to_register.

2012-08-07  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Jean-Marc Saffroy  <saffroy@gmail.com>

	PR 11804
	* defs.h (find_memory_region_ftype): New comment.  New arg modified.
	* fbsd-nat.c (fbsd_find_memory_regions): Add the passed modified value.
	* gcore.c (gcore_create_callback): New function comment.  Add modified
	parameter.  Only write modified regions.  Set SEC_READONLY exactly
	according to MODIFIED.
	(objfile_find_memory_regions): Ignore separate debug info files.  Ass
	the passed modified value to FUNC.
	* gnu-nat.c (gnu_find_memory_regions): Add the passed modified value.
	* linux-tdep.c (linux_find_memory_regions): Try to reads smaps file
	first.  New variables modified and has_anonymous.  Parse the lines of
	smaps file.  Add the passed MODIFIED value to FUNC.
	* procfs.c (find_memory_regions_callback): Add the passed modified
	value.

2012-08-06  Tom Tromey  <tromey@redhat.com>

	* dwarf2-frame.c (clear_pointer_cleanup): New function.
	(dwarf2_frame_cache): Use it.
	* frame-unwind.h (frame_sniffer_ftype): Document prologue
	cache initialization constraint.

2012-08-06  Tom Tromey  <tromey@redhat.com>

	PR python/14386:
	* varobj.c (update_dynamic_varobj_children): Don't call
	PyIter_Check.

2012-08-06  Tom Tromey  <tromey@redhat.com>

	PR cli/14392:
	* cli/cli-cmds.c (list_command): Filter 'sals_end'.

2012-08-06  Nathaniel Flath  <flat0103@gmail.com>

	* NEWS: New entry for 'cd' default parameters.
	* cli/cli-cmds.c (cd_command): Replace error_no_arg by DIR assignment.

2012-08-03  Tom Tromey  <tromey@redhat.com>

	* dwarf2-frame.c (dwarf2_frame_cache): Call do_cleanups before
	return.

2012-08-02  Ulrich Weigand  <ulrich.weigand@linaro.org>

	* inf-child.c (inf_child_fileio_pwrite): If pwrite fails, fall back
	to attempting lseek/write.
	(inf_child_fileio_pread): Likewise for pread.

2012-08-02  Yao Qi  <yao@codesourcery.com>

	* dwarf2loc.c (entry_values_debug): Add 'unsigned'.
	(_initialize_dwarf2loc): Call add_setshow_zuinteger_cmd instead of
	add_setshow_zinteger_cmd.
	* dwarf2loc.h: Update the declaration of 'entry_values_debug'.
	* dwarf2read.c (dwarf2_die_debug): Add 'unsigned'.
	(_initialize_dwarf2_read): Call add_setshow_zuinteger_cmd
	instead of add_setshow_zinteger_cmd.
	* darwin-nat.c (dwarwin_debug_flag): Add 'unsigned'.
	(_initialize_darwin_inferior): Call add_setshow_zuinteger_cmd
	instead of add_setshow_zinteger_cmd.
	* frame.c (frame_debug): Add 'unsigned'.
	(_intialize_frame): Call add_setshow_zuinteger_cmd instead of
	add_setshow_zinteger_cmd.
	* frame.h: Update the declaration of 'frame_debug'.
	* gdbtypes.c (overload_debug): Add 'unsigned'.
	(_initialize_gdbtypes): Call add_setshow_zuinteger_cmd instead of
	add_setshow_zinteger_cmd.
	* inferior.h: Update declaration of 'debug_infrun'.
	* infrun.c (debug_infrun): Add 'unsigned'.
	(_initialize_infrun): Call add_setshow_zuinteger_cmd instead of
	add_setshow_zinteger_cmd.
	* jit.c (jit_debug): Add 'unsigned'.
	(_initialize_jit): Call add_setshow_zuinteger_cmd instead of
	add_setshow_zinteger_cmd.
	* linux-nat.c (debug_linux_nat): Add 'unsigned'.
	(_initialize_linux_nat): Call add_setshow_zuinteger_cmd
	instead of add_setshow_zinteger_cmd.
	* linux-thread-db.c (libthread_db_debug): Add 'unsigned'.
	(_initialize_thread_db): Call add_setshow_zuinteger_cmd instead of
	add_setshow_zinteger_cmd.
	* machoread.c (mach_o_debug_level): Add 'unsigned'.
	(_initialize_machoread): Call add_setshow_zuinteger_cmd
	instead of add_setshow_zinteger_cmd.
	* mi/mi-cmd-var.c: Update the declaration of 'varobjdebug'.
	* microblaze-tdep.c (microblaze_debug_flag): Add 'unsigned'.
	(_initialize_microblaze_tdep): Call add_setshow_zuinteger_cmd
	intead of add_setshow_zinteger_cmd.
	* mips-tdep.c (mips_debug): Add 'unsigned'.
	(_initialize_mips_tdep): Call add_setshow_zuinteger_cmd
	instead of add_setshow_zinteger_cmd.
	* monitor.c (monitor_debug): Add 'unsigned'.
	(_initialize_remote_monitors): Call add_setshow_zuinteger_cmd instead of
	add_setshow_zinteger_cmd.
	* observer.c (observer_debug): Add 'unsigned'.
	(_initialize_observer): Call add_setshow_zuinteger_cmd instead of
	add_setshow_zinteger_cmd.
	* parse.c (expressiondebug): Add 'unsigned'.
	(_initialize_parse): Call add_setshow_zuinteger_cmd instead of
	add_setshow_zinteger_cmd.
	* record.c (record_debug): Add 'unsigned'.
	(_initialize_record): Call add_setshow_zuinteger_cmd instead of
	add_setshow_zinteger_cmd.
	* record.h: Update the declaration of 'record_debug'.
	* stap-probe.c (stap_expression_debug): Add 'unsigned'.
	(_initialize_stap_probe): Call add_setshow_zuinteger_cmd instead of
	add_setshow_zinteger_cmd.
	* serial.c (global_serial_debug_p): Add 'unsigned'.
	(_initialize_serial): Call add_setshow_zuinteger_cmd instead of
	add_setshow_zinteger_cmd.
	* solib-dsbt.c (solib_dsbt_debug): Add 'unsigned'.
	(_initialize_dsbt_solib): Call add_setshow_zuinteger_cmd instead of
	add_setshow_zinteger_cmd.
	* solib-frv.c (solib_frv_debug): Add 'unsigned'.
	(_initialize_frv_solib): Call add_setshow_zuinteger_cmd instead of
	add_setshow_zinteger_cmd.
	* target.c (targetdebug): Add 'unsigned'.
	(initialize_targets): Call add_setshow_zuinteger_cmd instead of
	add_setshow_zinteger_cmd.
	* valops.c (overload_debug): Add 'unsigned'.
	* varobj.c (varobjdebug): Add 'unsigned'.
	(_initialize_varobj): Call add_setshow_zuinteger_cmd instead of
	add_setshow_zinteger_cmd.
	* xtensa-tdep.c (xtensa_debug_level): Add 'unsigned'.
	(_initialize_xtensa_tdep): Call add_setshow_zuinteger_cmd
	instead of add_setshow_zinteger_cmd.

	* arch-utils.h: Remove the declaration of 'gdbarch_debug'.
	* gdbarch.sh (gdbarch_debug): Add 'unsigned'.
	(extern void _initialize_gdbarch): Call add_setshow_zuinteger_cmd
	instead of add_setshow_zinteger_cmd.
	* gdbarch.c, gdbarch.h: Re-generated.

2012-08-02  Yao Qi  <yao@codesourcery.com>

	* nto-tdep.c: Don't include cli/cli-decode.h and
	cli/cli-cmds.h.
	(_initialize_nto_tdep): Remove.
	* nto-tdep.h (struct nto_target_ops) <internal_debugging>:
	Remove field.
	Remove macro nto_internal_debugging.

2012-08-01  Richard Henderson  <rth@redhat.com>

	* configure.tgt (m32c-*-*) [gdb_target_obs]: Remove prologue-value.o.
	(mep-*-*) [gdb_target_obs]: Likewise.

2012-07-31  Andreas Schwab  <schwab@linux-m68k.org>

	* ppc-linux-tdep.c (ppc_linux_init_abi): Register
	linux_get_siginfo_type.

2012-07-31  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* infcall.c (call_function_by_hand): Move BP_ADDR comment to
	AT_ENTRY_POINT.
	(call_function_by_hand) <ON_STACK>: Call write_memory with
	gdbarch_breakpoint_from_pc, if possible.
	(call_function_by_hand) <AT_ENTRY_POINT>: The BP_ADDR comment is moved
	here.

2012-07-31  Yao Qi  <yao@codesourcery.com>

	* tracepoint.c: Add 'static' for some variables.

2012-07-31  Yao Qi  <yao@codesourcery.com>

	* go32-nat.c: Declare _initialize_go32_nat.
	* ser-go32.c: Declare _initialize_ser_dos.
	* top.c (do_chdir_cleanup): Add 'static'.

2012-07-30  Keith Seitz  <keiths@redhat.com>

	* linespec.c (linespec_lex_number): A number followed
	by quotes is a valid number, too.

2012-07-30  Tom Tromey  <tromey@redhat.com>

	* remote-sim.c (gdb_os_poll_quit): Don't check immediate_quit.

2012-07-30  Ulrich Weigand  <ulrich.weigand@linaro.org>

	* arm-linux-nat.c (arm_linux_hw_breakpoint_initialize): Do not
	attempt to 4-byte-align HW breakpoint addresses for Thumb.

2012-07-30  Andrew Burgess  <aburgess@broadcom.com>

	* varobj.c (varobj_invalidate_iter): All varobj must be marked as
	invalid or reevaluated to prevent prevent references to possibly
	delete'd type objects being left in the varobj.

2012-07-27  Tom Tromey  <tromey@redhat.com>
	    Jan Kratochvil  <jan.kratochvil@redhat.com>

	* copying.awk: Print buffer-read-only and vi ro markers.
	* copying.c: Rebuild.
	* gdbarch.sh (copyright): Print buffer-read-only and vi ro markers.
	* gdbarch.c, gdbarch.h: Rebuild.
	* target-descriptions.c (maint_print_c_tdesc_cmd): Print
	buffer-read-only and vi ro markers.
	* features/arm-with-iwmmxt.c: Rebuild.
	* features/arm-with-m-fpa-layout.c: Rebuild.
	* features/arm-with-m-vfp-d16.c: Rebuild.
	* features/arm-with-m.c: Rebuild.
	* features/arm-with-neon.c: Rebuild.
	* features/arm-with-vfpv2.c: Rebuild.
	* features/arm-with-vfpv3.c: Rebuild.
	* features/i386/amd64-avx-linux.c: Rebuild.
	* features/i386/amd64-avx.c: Rebuild.
	* features/i386/amd64-linux.c: Rebuild.
	* features/i386/amd64.c: Rebuild.
	* features/i386/i386-avx-linux.c: Rebuild.
	* features/i386/i386-avx.c: Rebuild.
	* features/i386/i386-linux.c: Rebuild.
	* features/i386/i386-mmx-linux.c: Rebuild.
	* features/i386/i386-mmx.c: Rebuild.
	* features/i386/i386.c: Rebuild.
	* features/i386/x32-avx-linux.c: Rebuild.
	* features/i386/x32-avx.c: Rebuild.
	* features/i386/x32-linux.c: Rebuild.
	* features/i386/x32.c: Rebuild.
	* features/mips-dsp-linux.c: Rebuild.
	* features/mips-linux.c: Rebuild.
	* features/mips64-dsp-linux.c: Rebuild.
	* features/mips64-linux.c: Rebuild.
	* features/rs6000/powerpc-32.c: Rebuild.
	* features/rs6000/powerpc-32l.c: Rebuild.
	* features/rs6000/powerpc-403.c: Rebuild.
	* features/rs6000/powerpc-403gc.c: Rebuild.
	* features/rs6000/powerpc-405.c: Rebuild.
	* features/rs6000/powerpc-505.c: Rebuild.
	* features/rs6000/powerpc-601.c: Rebuild.
	* features/rs6000/powerpc-602.c: Rebuild.
	* features/rs6000/powerpc-603.c: Rebuild.
	* features/rs6000/powerpc-604.c: Rebuild.
	* features/rs6000/powerpc-64.c: Rebuild.
	* features/rs6000/powerpc-64l.c: Rebuild.
	* features/rs6000/powerpc-7400.c: Rebuild.
	* features/rs6000/powerpc-750.c: Rebuild.
	* features/rs6000/powerpc-860.c: Rebuild.
	* features/rs6000/powerpc-altivec32.c: Rebuild.
	* features/rs6000/powerpc-altivec32l.c: Rebuild.
	* features/rs6000/powerpc-altivec64.c: Rebuild.
	* features/rs6000/powerpc-altivec64l.c: Rebuild.
	* features/rs6000/powerpc-cell32l.c: Rebuild.
	* features/rs6000/powerpc-cell64l.c: Rebuild.
	* features/rs6000/powerpc-e500.c: Rebuild.
	* features/rs6000/powerpc-e500l.c: Rebuild.
	* features/rs6000/powerpc-isa205-32l.c: Rebuild.
	* features/rs6000/powerpc-isa205-64l.c: Rebuild.
	* features/rs6000/powerpc-isa205-altivec32l.c: Rebuild.
	* features/rs6000/powerpc-isa205-altivec64l.c: Rebuild.
	* features/rs6000/powerpc-isa205-vsx32l.c: Rebuild.
	* features/rs6000/powerpc-isa205-vsx64l.c: Rebuild.
	* features/rs6000/powerpc-vsx32.c: Rebuild.
	* features/rs6000/powerpc-vsx32l.c: Rebuild.
	* features/rs6000/powerpc-vsx64.c: Rebuild.
	* features/rs6000/powerpc-vsx64l.c: Rebuild.
	* features/rs6000/rs6000.c: Rebuild.
	* features/s390-linux32.c: Rebuild.
	* features/s390-linux32v1.c: Rebuild.
	* features/s390-linux32v2.c: Rebuild.
	* features/s390-linux64.c: Rebuild.
	* features/s390-linux64v1.c: Rebuild.
	* features/s390-linux64v2.c: Rebuild.
	* features/s390x-linux64.c: Rebuild.
	* features/s390x-linux64v1.c: Rebuild.
	* features/s390x-linux64v2.c: Rebuild.
	* features/tic6x-c62x-linux.c: Rebuild.
	* features/tic6x-c62x.c: Rebuild.
	* features/tic6x-c64x-linux.c: Rebuild.
	* features/tic6x-c64x.c: Rebuild.
	* features/tic6x-c64xp-linux.c: Rebuild.
	* features/tic6x-c64xp.c: Rebuild.

2012-07-27  Tom Tromey  <tromey@redhat.com>

	* c-exp.y (classify_name): Avoid assignment in condition.

2012-07-27  Roland Schwingel  <roland.schwingel@onevision.com>

	* amd64-windows-tdep.c: Include "frame.h".
	(amd64_windows_skip_trampoline_code): New function.
	(amd64_windows_init_abi): Add trampoline registration.

2012-07-27  Yao Qi  <yao@codesourcery.com>

	* tracepoint.c (cur_traceframe_number): Remove.
	(set_tfile_traceframe): Remove.
	(tfile_trace_find, tfile_fetch_registers): Update callers.
	(tfile_xfer_partial, tfile_get_trace_state_variable_value): Likewise.
	(tfile_open, tfile_trace_find): Likewise.

2012-07-27  Yao Qi  <yao@codesourcery.com>

	* thread.c (switch_to_thread): Don't call registers_changed.

2012-07-26  Tom Tromey  <tromey@redhat.com>

	* Makefile.in (SFILES): Remove objc-exp.y.
	(YYFILES): Remove objc-exp.c.
	(YYOBJ): Remove objc-exp.o.
	(local-maintainer-clean): Don't mention objc-exp.c.
	* c-exp.y: Include objc-lang.h.
	(%union) <class>: New field.
	(NSSTRING, SELECTOR, CLASSNAME, OBJC_LBRAC): New tokens.
	(exp): Clone subscript production for OBJC_LBRAC.  Add various
	Objective C productions.
	(msglist, msgarglist, msgarg): New productions.
	(array_mod, func_mod, operator): Clone productions for
	OBJC_LBRAC.
	(parse_string_or_char): Handle '@' strings.
	(lex_one_token): Return OBJC_LBRAC.  Recognize @selector.
	(classify_name): Check la_name_of_this.  Recognize ObjC class
	names.
	* objc-exp.y: Remove.
	* objc-lang.c (objc_language_defn): Use c_parse, c_error.
	* objc-lang.h (objc_parse, objc_error): Don't declare.

2012-07-26  Markus Metzger  <markus.t.metzger@intel.com>

	* python/py-inferior.c (infpy_threads): Call update_thread_list ().

2012-07-26  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* auto-load.c (auto_load_info_scripts): Remove immediate_quit increment
	and decrement.

2012-07-26  Tom Tromey  <tromey@redhat.com>

	* copying.c: Rebuild.
	* copying.awk: Don't use immediate_quit.  Use 'no_set_class', not
	'no_class'.

2012-07-26  Tom Tromey  <tromey@redhat.com>

	* symmisc.c (print_symbol_bcache_statistics): Use QUIT, not
	immediate_quit.
	(print_objfile_statistics): Likewise.
	(maintenance_print_symbols): Likewise.
	(maintenance_print_msymbols): Likewise.
	(maintenance_print_objfiles): Likewise.
	* psymtab.c (print_partial_symbols): Call QUIT.
	(maintenance_print_psymbols): Likewise.  Don't modify
	immediate_quit.
	* copying.c (show_copying_command): Don't modify immediate_quit.
	(show_warranty_command): Likewise.
	* cli/cli-cmds.c (show_version): Don't modify immediate_quit.

2012-07-26  Keith Seitz  <keiths@redhat.com>

	* linespec.c (linespec_lexer_lex_number): The input
	is also a valid number if the next character is a comma
	or colon.

2012-07-26  Joel Brobecker  <brobecker@adacore.com>

	* NEWS: Document new --enable-libmcheck/--disable-libmcheck
	configure options.

2012-07-26  Tristan Gingold  <gingold@adacore.com>

	* machoread.c: Include gdb_bfd.h.

2012-07-26  Tristan Gingold  <gingold@adacore.com>

	* dwarf2loc.c (locexpr_describe_location_piece): Use uint64_t for
	offset.

2012-07-26  Siddhesh Poyarekar  <siddhesh@redhat.com>

	* dwarf2loc.c (dwarf2_evaluate_loc_desc_full): Expand parameter
	SIZE to size_t.
	(dwarf2_evaluate_loc_desc): Likewise.
	(dwarf2_loc_desc_needs_frame): Likewise.
	(locexpr_describe_location_1): Likewise.
	* dwarf2loc.h (struct dwarf2_locexpr_baton): Make SIZE as
	size_t.
	(struct dwarf2_loclist_baton): Likewise.
	* dwarf2read.c (struct dwarf_block): Likewise.
	(dump_die_shallow): Use pulongest to print dwarf_block.size.
	(decode_locdesc): Expand SIZE and I to size_t.

2012-07-25  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* contrib/cc-with-tweaks.sh: Put into comment path gdb/contrib/.

2012-07-25  Joel Brobecker  <brobecker@adacore.com>

	* doublest.c (convert_doublest_to_floatformat): If the exponent
	is too small, treat the value as zero.  If the exponent is too
	large, treat the value as infinity.

2012-07-25  Joel Brobecker  <brobecker@adacore.com>

	* configure.ac: Add --enable-lmcheck configure option.
	* configure: Regenerate.

2012-07-25  Tom Tromey  <tromey@redhat.com>

	* NEWS: Mention maint info bfds.
	* gdb_bfd.c (all_bfds): New global.
	(gdb_bfd_ref, gdb_bfd_unref): Update all_bfds.
	(print_one_bfd, maintenance_info_bfds, _initialize_gdb_bfd):
	New functions.

2012-07-25  Ralf Corsépius  <ralf.corsepius@rtems.org>

	* configure.tgt: Add v850*-*-rtems*.

2012-07-25  Tom Tromey  <tromey@redhat.com>

	* macrotab.c (macro_bcache_str): Remove cast.

2012-07-25  Hui Zhu  <hui_zhu@mentor.com>

	* linespec.c (linespec_lexer_lex_number): Update comments,
	change the return and add check to make sure the input is
	the decimal numbers.
	(linespec_lexer_lex_one): If linespec_lexer_lex_number return
	false, call linespec_lexer_lex_string.

2012-07-24  Tom Tromey  <tromey@redhat.com>

	* symfile.c (symbol_file_add): Don't open BFD twice.

2012-07-24  Marc Khouzam  <marc.khouzam@ericsson.com>

	* breakpoint.c (create_breakpoint): Store condition for pending
	breakpoints.

2012-07-24  Andreas Schwab  <schwab@linux-m68k.org>

	* m68k-tdep.c (m68k_reg_struct_return_p): Accept complex types.
	(m68k_return_value): Handle complex types like structures.
	(m68k_svr4_return_value): Likewise.

2012-07-24  Marcus Shawcroft  <marcus.shawcroft@arm.com>

	* gdb_bfd.c (zlib_decompress_section) <!HAVE_ZLIB_H>: Adjust
	parameters to bfd_get_section_name.

2012-07-24  Yao Qi  <yao@codesourcery.com>

	* cli/cli-setshow.c: Handle case 'var_uinteger'
	and 'var_zuninteger' together.  Handle case 'var_integer' and
	'var_zinteger' together.

2012-07-23  Keith Seitz  <keiths@redhat.com>

	* linespec.c (convert_linespec_to_sal): Don't add
	any symbols to the result vector if symbol_to_sal
	returns zero.

2012-07-23  Keith Seitz  <keiths@redhat.com>

	* linespec.c (decode_objc): Record the function name
	in the linespec.

2012-07-23  Tom Tromey  <tromey@redhat.com>

	* rs6000-nat.c (add_vmap): Rewrite archive loop.  Fix reference
	counting.
	* exec.c (exec_close_1): Unconditionally release vmap's BFD.
	(map_vmap): Acquire a reference to the BFD.

2012-07-23  Siddhesh Poyarekar  <siddhesh@redhat.com>

	* p-valprint.c (pascal_object_print_value): Replace potentially
	unsafe alloca with xmalloc/xfree.
	* valops.c (search_struct_method): Likewise.

2012-07-23  Tom Tromey  <tromey@redhat.com>

	* solib-svr4.c (enable_break): Update.
	* bfd-target.h (target_bfd_reopen): Update documentation.

2012-07-23  Tom Tromey  <tromey@redhat.com>

	* symfile.c (separate_debug_file_exists): Update.
	(gdb_bfd_open_maybe_remote): Rename from bfd_open_maybe_remote.
	(reread_symbols): Update.
	* elfread.c (build_id_verify): Update.
	* symfile.h (gdb_bfd_open_maybe_remote): Rename from
	bfd_open_maybe_remote.

2012-07-23  Tom Tromey  <tromey@redhat.com>

	* gdb_bfd.c (gdb_bfd_ref, gdb_bfd_unref): Fix comment.

2012-07-23  Tom Tromey  <tromey@redhat.com>

	* coffread.c (coff_symfile_read): Make a cleanup for 'debugfile'
	and 'abfd'.
	* elfread.c (elf_symfile_read): Make a cleanup for 'debugfile'
	and 'abfd'.
	* jit.c (jit_bfd_try_read_symtab): Make a cleanup for 'nbfd'.
	* machoread.c (macho_add_oso_symfile): Make a cleanup for
	'abfd'.
	(macho_symfile_read): Make a cleanup for 'dsym_bfd'.
	* objfiles.c (allocate_objfile): Acquire a new reference.
	* rs6000-nat.c (add_vmap): Don't acquire a BFD reference.
	* solib.c (solib_read_symbols): Don't acquire a BFD reference.
	* spu-linux-nat.c (spu_symbol_file_add_from_memory): Make
	a cleanup for 'nbfd'.
	* symfile-mem.c (symbol_file_add_from_memory): Make a cleanup
	for 'nbfd'.
	* symfile.c (symbol_file_add_with_addrs_or_offsets): Don't
	make a cleanup for 'abfd'.
	(symbol_file_add): Make a BFD cleanup.

2012-07-23  Tom Tromey  <tromey@redhat.com>

	* cli/cli-dump.c (bfd_openr_with_cleanup): Use gdb_bfd_openr.
	(bfd_openw_with_cleanup): Use gdb_bfd_openw.
	* corelow.c (core_open): Use gdb_bfd_fopen.
	* dsrec.c (load_srec): Use gdb_bfd_openr.
	* exec.c (exec_file_attach): Use gdb_bfd_fopen.
	* gcore.c (gcore_memory_sections): Use gdb_bfd_openw.
	* gdb_bfd.c (gdb_bfd_fopen, gdb_bfd_openr, gdb_bfd_openw)
	(gdb_bfd_openr_iovec, gdb_bfd_openr_next_archived_file)
	(gdb_bfd_fdopenr): New functions.
	* gdb_bfd.h (gdb_bfd_fopen, gdb_bfd_openr, gdb_bfd_openw)
	(gdb_bfd_openr_iovec, gdb_bfd_openr_next_archived_file)
	(gdb_bfd_fdopenr): Declare.
	* jit.c (bfd_open_from_target_memory): Use gdb_bfd_openr_iovec.
	* m32-rom.c (m32r_load, m32r_upload_command): Use gdb_bfd_openr.
	* machoread.c (macho_symfile_read_all_oso): Use gdb_bfd_openr,
	gdb_bfd_openr_next_archived_file.
	(macho_check_dsym): Use gdb_bfd_openr.
	(macho_add_oso_symfile): Don't call gdb_bfd_stash_filename.
	* procfs.c (insert_dbx_link_bpt_in_file): Use gdb_bfd_fdopenr.
	* remote-m32r-sdi.c (m32r_load): Use gdb_bfd_openr.
	* remote-mips.c (mips_load_srec, pmon_load_fast): Use
	gdb_bfd_openr.
	* remote.c (remote_bfd_open): Use gdb_bfd_openr_iovec.
	* rs6000-nat.c (add_vmap): Use gdb_bfd_openr, gdb_bfd_fdopenr,
	gdb_bfd_openr_next_archived_file.
	* solib-darwin.c (darwin_solib_get_all_image_info_addr_at_init):
	Use gdb_bfd_openr.
	* solib-pa64.c (pa64_solib_create_inferior_hook): Use
	gdb_bfd_openr.
	* solib-spu.c (spu_bfd_fopen): Use gdb_bfd_openr_iovec.
	* solib.c (solib_bfd_fopen): Use gdb_bfd_fopen.
	* spu-linux-nat.c (spu_bfd_open): Use gdb_bfd_openr_iovec.
	* symfile.c (bfd_open_maybe_remote): Use gdb_bfd_openr.
	(symfile_bfd_open): Use gdb_bfd_fopen.
	(generic_load): Use gdb_bfd_openr.
	* windows-nat.c (windows_make_so): Use gdb_bfd_openr.

2012-07-23  Tom Tromey  <tromey@redhat.com>

	* bfd-target.c (target_bfd_reopen): Update.
	* cli/cli-dump.c (bfd_openr_with_cleanup)
	(bfd_openw_with_cleanup): Update.
	* corelow.c (core_open): Update.
	* dsrec.c (load_srec): Update.
	* exec.c (exec_file_attach): Update.
	* gcore.c (create_gcore_bfd): Update.
	* gdb_bfd.c (gdb_bfd_ref): Return void.
	(gdb_bfd_open): Update.
	* gdb_bfd.h (gdb_bfd_ref): Return void.
	Update comments.
	* jit.c (jit_bfd_try_read_symtab): Update.
	* m32r-rom.c (m32r_load, m32r_upload_command): Update.
	* machoread.c (macho_symfile_read_all_oso): Update.
	(macho_check_dsym): Update.
	* procfs.c (insert_dbx_link_bpt_in_file): Update.
	* remote-m32r-sdi.c (m32r_load): Update.
	* remote-mips.c (mips_load_srec, pmon_load_fast): Update.
	* rs6000-nat.c (add_vmap): Update.
	* solib-darwin.c (darwin_solib_get_all_image_info_addr_at_init):
	Update.
	* solib-pa64.c (pa64_solib_create_inferior_hook): Update.
	* solib-spu.c (spu_bfd_open): Update.
	* solib.c (solib_bfd_fopen, solib_read_symbols): Update.
	* spu-linux-nat.c (spu_bfd_open): Update.
	* symfile.c (bfd_open_maybe_remote, symfile_bfd_open)
	(generic_load): Update.
	* windows-nat.c (windows_make_so): Update.

2012-07-22  Siddhesh Poyarekar  <siddhesh@redhat.com>

	* sh-tdep.c (sh_treat_as_flt_p): Remove unused variable LEN.

2012-07-20  Jeff Kenton  <jkenton@tilera.com>

	* tilegx-linux-tdep.c (tilegx_linux_sigframe_init): Fix
	SIGTRAMP_FRAME unwinding.

2012-07-20  Doug Evans  <dje@google.com>

	* NEWS: Document new options "set/show use-deprecated-index-sections",
	and delete reference to --use-deprecated-index-sections.
	* symfile.h (use_deprecated_index_sections): Delete.
	* dwarf2read.c (use_deprecated_index_sections): Make static.
	(read_index_from_section): Update wording of how to load
	deprecated index sections.
	(_initialize_dwarf2_read): New options
	"set/show use-deprecated-index-sections".
	* main.c (captured_main): Delete --use-deprecated-index-sections.

2012-07-20  Pedro Alves  <palves@redhat.com>

	PR threads/11692
	PR gdb/12203

	* infrun.c (handle_inferior_event) <new thread>: Don't special
	case minus_one_ptid.
	<TARGET_WAITKIND_SPURIOUS>: Ditto.
	* linux-thread-db.c (thread_get_info_callback): Don't return early
	if the thread is zombie.
	(thread_from_lwp): Change return type to void.  Rewrite stale
	comment.
	(attach_thread): Don't return early if the thread is zombie,
	instead set its "dying" flag.
	(thread_db_wait): Don't return TARGET_WAITKIND_SPURIOUS anymore.
	(find_new_threads_callback): Don't return early if the thread is
	zombie.

2012-07-20  Pedro Alves  <palves@redhat.com>

	* linux-nat.c (linux_nat_wait): Dump the passed in target options.
	* target.c (target_wait): Likewise.
	(str_comma_list_concat_elem, do_option, target_options_to_string):
	New functions.
	* target.h (target_options_to_string): Declare.

2012-07-20  Jan Kratochvil <jan.kratochvil@redhat.com>
	    Tom Tromey  <tromey@redhat.com>

	* dwarf2read.c (dwarf_decode_macros)
	<DW_MACRO_GNU_define_indirect_alt, DW_MACRO_GNU_undef_indirect_alt,
	DW_MACRO_GNU_transparent_include_alt>: New cases.
	(dwarf_decode_macro_bytes) <DW_MACRO_GNU_define_indirect,
	DW_MACRO_GNU_undef_indirect>: Examine 'section_is_dwz'.

2012-07-20  Tom Tromey  <tromey@redhat.com>

	* dwarf2read.c (try_open_dwo_file): Don't call
	gdb_bfd_stash_filename.

2012-07-20  Pedro Alves  <palves@redhat.com>

	* i386-tdep.c (i386_record_modrm, i386_record_lea_modrm_addr)
	(i386_record_lea_modrm, i386_record_push, i386_record_floats)
	(i386_process_record): Tweak description comments.

2012-07-20  Pedro Alves  <palves@redhat.com>

	* i386-tdep.c (i386_record_modrm, i386_record_lea_modrm_addr)
	(i386_process_record): Use record_read_memory.
	* record.c (record_read_memory): New function.
	(record_arch_list_add_mem, record_exec_insn): Use
	record_read_memory.
	* record.h (record_read_memory): Declare.

2012-07-20  Yao Qi  <yao@codesourcery.com>

	* cli/cli-setshow.c (do_setshow_command): Don't check pointer is
	NULL for xfree.

2012-07-19  Pedro Alves  <palves@redhat.com>

	* record.c (record_resume): Ask the target beneath to report all
	signals.

2012-07-19  Doug Evans  <dje@google.com>

	* dwarf2read.c (dwarf2_ranges_read): Ignore ranges starting at zero if
	there's no section at address zero.
	(dwarf2_record_block_ranges): Ditto.

2012-07-19  Yao Qi  <yao@codesourcery.com>

	* command.h, remote.c: Fix a typo in comment.

2012-07-19  Tom Tromey  <tromey@redhat.com>

	PR exp/13206:
	* ax-gdb.c (gen_expr) <OP_TYPEOF, OP_DECLTYPE>: New cases.
	* breakpoint.c (watchpoint_exp_is_const) <OP_TYPEOF,
	OP_DECLTYPE>: New cases.
	* c-exp.y (TYPEOF, DECLTYPE): New tokens.
	(type_exp): Add new productions.
	(ident_tokens): Add __typeof__, typeof, __typeof, __decltype,
	and decltype.
	* eval.c (evaluate_subexp_standard) <OP_TYPEOF, OP_DECLTYPE>:
	New case.
	* expprint.c (dump_subexp_body_standard) <OP_TYPEOF,
	OP_DECLTYPE>: New case.
	* parse.c (operator_length_standard) <OP_TYPEOF, OP_DECLTYPE>:
	New case.
	* std-operator.def (OP_TYPEOF, OP_DECLTYPE): New constants.
	* varobj.c (varobj_create): Handle OP_TYPEOF, OP_DECLTYPE.

2012-07-19  Tom Tromey  <tromey@redhat.com>

	* c-exp.y (enum token_flags): New.
	(struct token) <cxx_only>: Remove.
	<flags>: New field.
	(tokentab3, tokentab2, ident_tokens): Update.
	(lex_one_token): Update.  Handle FLAG_SHADOW.

2012-07-19  Tom Tromey  <tromey@redhat.com>

	* ax-gdb.c (gen_expr): Handle UNOP_CAST_TYPE, UNOP_MEMVAL_TYPE.
	* breakpoint.c (watchpoint_exp_is_const): Handle UNOP_CAST_TYPE,
	UNOP_REINTERPRET_CAST, UNOP_DYNAMIC_CAST.
	* c-exp.y (exp): Emit UNOP_MEMVAL_TYPE, UNOP_CAST_TYPE.  Update
	for changes to UNOP_REINTERPRET_CAST, UNOP_DYNAMIC_CAST.  Use
	type_exp production where appropriate.
	* eval.c (evaluate_subexp_standard) <UNOP_CAST_TYPE>: New case.
	<UNOP_DYNAMIC_CAST, UNOP_REINTERPRET_CAST>: Update.
	<UNOP_MEMVAL_TYPE>: New case.
	(evaluate_subexp_for_address) <UNOP_MEMVAL_TYPE>: New case.
	(evaluate_subexp_for_sizeof) <UNOP_MEMVAL_TYPE>: New case.
	* expprint.c (print_subexp_standard) <UNOP_CAST_TYPE>: New case.
	<UNOP_MEMVAL_TYPE>: New case.
	(dump_subexp_body_standard) <UNOP_DYNAMIC_CAST,
	UNOP_REINTERPRET_CAST>: Update.
	<UNOP_CAST_TYPE, UNOP_MEMVAL_TYPE>: New cases.
	* parse.c (operator_length_standard) <UNOP_DYNAMIC_CAST,
	UNOP_REINTERPRET_CAST>: Update.
	<UNOP_CAST_TYPE, UNOP_MEMVAL_TYPE>: New cases.
	* stack.c (return_command): Also check for UNOP_CAST_TYPE.
	* std-operator.def (UNOP_CAST_TYPE, UNOP_MEMVAL_TYPE): New
	constants.

2012-07-19  Yao Qi  <yao@codesourcery.com>
	    Jan Kratochvil <jan.kratochvil@redhat.com>

	* cli/cli-setshow.c (do_setshow_command): Handle case 'var_filename'
	and case 'var_optional_filename' together.
	* infcmd.c (_initialize_infcmd): Call add_setshow_string_noescape_cmd
	instead of add_setshow_optional_filename_cmd for setshow command
	'args'.  Set completer for 'set args'.

2012-07-18  Doug Evans  <dje@google.com>

	* common/gdb_vecs.h: Moved here from ./gdb_vecs.h.
	* common/gdb_vecs.c: New file, contents from utils.c.
	* common/host-defs.h: New file, contents from defs.h.
	* utils.h: New file, contents from defs.h.
	* defs.h: Move all declarations of objects defined in utils.c
	to utils.h (except QUIT() and related).
	#include "utils.h", "host-defs.h".
	* probe.h (probe_p): Move here from gdb_vecs.h.
	* symfile.c: #include "probe.h" instead of "gdb_vecs.h".
	* utils.c (free_char_ptr_vec): Moved to common/gdb_vecs.c.
	(dirnames_to_char_ptr_vec_append, dirnames_to_char_ptr_vec): Ditto.
	* Makefile.in (SFILES): Add common/gdb_vecs.c.
	(HFILES_NO_SRCDIR): Add common/gdb_vecs.h, common/host-defs.h, utils.h.
	(COMMON_OBS): Add gdb_vecs.o.
	(gdb_vecs.o): New rule.

2012-07-18  Keith Seitz  <keiths@redhat.com>

	* linespec.c (add_sal_to_sals): Add LITERAL_CANONICAL
	parameter.  If non-zero, use SYMNAME as the canonical name
	for the SaL.
	Update all callers.
	(convert_linespec_to_sals): Use add_sal_to_sals for
	expressions, too.
	(decode_line_full): No need to "fill in missing canonical names"
	anymore. Simply make cleanups for the allocated names.

2012-07-18  Keith Seitz  <keiths@redhat.com>

	* linespec.c (struct linespec): Constify expression,
	source_filename, function_name, and label_name.
	(symbol_not_found_error): Make all parameters const.
	(linespec_parser_delete): No need to check for NULL
	when using xfree. Cast const char * to char * for xfree.

2012-07-18  Keith Seitz  <keiths@redhat.com>

	* breakpoint.c (invalid_thread_id_error): New function.
	(find_condition_and_thread): Use invalid_thread_id_error.
	(watch_command_1): Likewise.

2012-07-18  Tom Tromey  <tromey@redhat.com>

	* cc-with-index.sh, cc-with-dwz.sh: Remove.
	* contrib/cc-with-tweaks.sh: New file.

2012-07-18  Tom Tromey  <tromey@redhat.com>

	* dwarf2read.c (struct dwz_file) <gdb_index>: New field.
	(locate_dwz_sections): Recognize .gdb_index.
	(create_cus_from_index_list): New function.
	(create_cus_from_index): Use it.  Handle .dwz data.
	(read_index_from_section): New function, extracted from
	dwarf2_read_index.
	(dwarf2_read_index): Use it.  Read .gdb_index from dwz file,
	if needed.

2012-07-18  Tom Tromey  <tromey@redhat.com>

	* dwarf2read.c (struct dwarf2_per_objfile) <dwz_file>: New field.
	(struct dwarf2_per_cu_data) <length>: No longer bitfield.
	<is_dwz>: New field.
	(struct dwz_file): New.
	(struct partial_die_info) <is_dwz, spec_is_dwz>: New fields.
	(locate_dwz_sections, dwarf2_get_dwz_file)
	(get_abbrev_section_for_cu): New functions.
	(error_check_comp_unit_head, read_and_check_comp_unit_head)
	(read_and_check_type_unit_head): Add abbrev_section argument.
	(create_debug_types_hash_table): Update.
	(init_cutu_and_read_dies): Use proper abbrev section.
	(init_cutu_and_read_dies_no_follow): Likewise.
	(set_partial_user): Do nothing if PST==NULL.
	(read_comp_units_from_section): New function.
	(create_all_comp_units): Use it.
	(scan_partial_symbols, partial_die_parent_scope): Update.
	(skip_one_die): Handle DW_FORM_GNU_ref_alt, DW_FORM_GNU_strp_alt.
	(process_imported_unit_die, read_partial_die): Handle .dwz files.
	(find_partial_die): Add offset_in_dwz argument.  Update.
	(guess_partial_die_structure_name, fixup_partial_die): Update.
	(read_attribute_value): Handle DW_FORM_GNU_ref_alt,
	DW_FORM_GNU_strp_alt.
	(read_indirect_string_from_dwz): New function.
	(dwarf2_const_value_attr): Handle DW_FORM_GNU_strp_alt.
	(dump_die_shallow): Handle DW_FORM_GNU_ref_alt, DW_FORM_GNU_strp_alt.
	(is_ref_attr): Handle DW_FORM_GNU_ref_alt.
	(follow_die_offset): Add offset_in_dwz argument.
	(follow_die_ref, dwarf2_fetch_die_location_block): Update.
	(skip_form_bytes): Handle DW_FORM_GNU_strp_alt.
	(dwarf_decode_macro_bytes): Add section_is_dwz argument.
	Handle new macro forms.
	(dwarf_decode_macros): Update.
	(dwarf2_find_containing_comp_unit): Add offset_in_dwz argument.
	(dwarf2_per_objfile_free): Unref dwz_bfd, if it exists
	(lookup_die_type): Handle DW_FORM_GNU_ref_alt.
	(create_debug_types_hash_table): Use correct abbrev section.
	(get_debug_line_section): New function.
	(dwarf_decode_line_header, dwarf_decode_lines_1): Use it.
	(process_full_comp_unit): Pass 'required' argument to
	end_symtab_get_static_block.
	* buildsym.h (end_symtab_get_static_block): Update.
	* buildsym.c (end_symtab_get_static_block): Add 'required'
	argument.
	(end_symtab, end_expandable_symtab): Update.

2012-07-18  Tom Tromey  <tromey@redhat.com>

	* dwarf2read.c: Don't include zlib.h or sys/mman.h.
	(pagesize): Remove.
	(struct dwarf2_section_info) <map_addr, map_len>: Remove.
	(zlib_decompress_section): Remove.
	(dwarf2_read_section): Use gdb_bfd_map_section.
	(munmap_section_buffer): Remove.
	(free_dwo_file, dwarf2_per_objfile_free): Don't use
	munmap_section_buffer.
	* gdb_bfd.c: Include zlib.h, sys/mman.h.
	(struct gdb_bfd_section_data): New.
	(free_one_bfd_section): New function.
	(gdb_bfd_close_or_warn): Use free_one_bfd_section.
	(get_section_descriptor, zlib_decompress_section)
	(gdb_bfd_map_section): New functions.
	* gdb_bfd.h (gdb_bfd_map_section): Declare.

2012-07-18  Tom Tromey  <tromey@redhat.com>

	* dwarf2read.c (try_open_dwo_file): use gdb_bfd_open.

2012-07-18  Tom Tromey  <tromey@redhat.com>

	* gdb_bfd.c (struct gdb_bfd_data): New.
	(gdb_bfd_cache): New global.
	(struct gdb_bfd_cache_search): New.
	(hash_bfd, eq_bfd, gdb_bfd_open): New functions.
	(gdb_bfd_ref, gdb_bfd_unref): Use gdb_bfd_data.
	* gdb_bfd.h (gdb_bfd_open): Declare.

2012-07-18  Tom Tromey  <tromey@redhat.com>

	* utils.c (make_cleanup_bfd_unref): Rename from
	make_cleanup_bfd_close.
	* defs.h (make_cleanup_bfd_unref): Rename from
	make_cleanup_bfd_close.
	* cli/cli-dump.c (bfd_openr_with_cleanup): Update.
	(bfd_openw_with_cleanup): Update.
	* corelow.c (core_open): Update.
	* dsrec.c (load_srec): Update.
	* m32r-rom.c (m32r_load, m32r_upload_command): Update.
	* remote-m32r-sdi.c (m32r_load): Update.
	* remote-mips.c (mips_load_srec): Update.
	(pmon_load_fast): Update.
	* solib-darwin.c (darwin_solib_get_all_image_info_addr_at_init):
	Update.
	(darwin_bfd_open): Update.
	* solib.c (solib_bfd_fopen): Update.
	* symfile-mem.c (symbol_file_add_from_memory): Update.
	* symfile.c (symbol_file_add_with_addrs_or_offsets): Update.
	(symfile_bfd_open): Update.
	(generic_load): Update.

2012-07-18  Tom Tromey  <tromey@redhat.com>

	* remote-mips.c (mips_load_srec): Use make_cleanup_bfd_close.
	(pmon_load_fast): Likewise.
	* m32r-rom.c (m32r_load): Use make_cleanup_bfd_close.
	(m32r_upload_command): Likewise.
	* dsrec.c (load_srec): Use make_cleanup_bfd_close.
	* solib-darwin.c (darwin_solib_get_all_image_info_addr_at_init):
	Use make_cleanup_bfd_close.

2012-07-18  Tom Tromey  <tromey@redhat.com>

	* symfile.c (symfile_bfd_open): Don't copy name.  Call
	gdb_bfd_stash_filename.
	(load_command): Open the new BFD before freeing the old.
	(bfd_open_maybe_remote): Call gdb_bfd_stash_filename.
	* symfile-mem.c (symbol_file_add_from_memory): Don't copy name.
	Call gdb_bfd_stash_filename.
	* spu-linux-nat.c (spu_bfd_open): Don't copy name.
	* solib-spu.c (spu_bfd_fopen): Don't copy name.  Call
	gdb_bfd_stash_filename.
	* solib-darwin.c (darwin_solib_get_all_image_info_addr_at_init):
	Free found_pathname.
	* rs6000-nat.c (add_vmap): Don't copy filename.  Call
	gdb_bfd_stash_filename.
	* remote.c (remote_bfd_open): Call gdb_bfd_stash_filename.
	* machoread.c (macho_add_oso_symfile): Call
	gdb_bfd_stash_filename.
	(macho_symfile_read_all_oso): Arrange to free archive_name.  Call
	gdb_bfd_stash_filename.
	(macho_check_dsym): Don't copy filename.  Call
	gdb_bfd_stash_filename.
	* jit.c (bfd_open_from_target_memory): Don't copy the filename.
	* gdb_bfd.c (gdb_bfd_stash_filename): New function.
	* gdb_bfd.h (gdb_bfd_stash_filename): Declare.
	* gcore.c (create_gcore_bfd): Call gdb_bfd_stash_filename.
	* exec.c (exec_close): Don't free the BFD's filename.
	(exec_file_attach): Don't copy the filename.  Call
	gdb_bfd_stash_filename.
	* corelow.c (core_close): Don't free the BFD's filename.
	(core_open): Call gdb_bfd_stash_filename.
	* corefile.c (reopen_exec_file): Remove #if 0 code.
	* solib.c (solib_bfd_fopen): Call gdb_bfd_stash_filename.  Free
	pathname.
	* dwarf2read.c (try_open_dwo_file): Call gdb_bfd_stash_filename.

2012-07-18  Tom Tromey  <tromey@redhat.com>

	* dwarf2read.c (try_open_dwo_file): Use gdb_bfd_ref and
	gdb_bfd_unref.
	(free_dwo_file): Use gdb_bfd_unref.
	* cli/cli-dump.c: Include gdb_bfd.h.
	(bfd_openw_with_cleanup): Use gdb_bfd_ref.
	(bfd_openr_with_cleanup): Likewise.
	* windows-nat.c (windows_make_so): Use gdb_bfd_ref,
	gdb_bfd_unref.
	* utils.c: Include gdb_bfd.h.
	(do_bfd_close_cleanup): Use gdb_bfd_unref.
	* symfile.c: Include gdb_bfd.h.
	(separate_debug_file_exists): Use gdb_bfd_unref.
	(bfd_open_maybe_remote): Use gdb_bfd_ref.
	(symfile_bfd_open): Use gdb_bfd_ref, gdb_bfd_unref.
	(generic_load): Use gdb_bfd_ref.
	(reread_symbols): Use gdb_bfd_unref.
	* symfile-mem.c: Include gdb_bfd.h.
	(symbol_file_add_from_memory): Use make_cleanup_bfd_close.
	* spu-linux-nat.c (spu_bfd_open): Use gdb_bfd_ref, gdb_bfd_unref.
	* solib.c: Include gdb_bfd.h.
	(solib_bfd_fopen): Use gdb_bfd_ref.
	(solib_bfd_open): Use gdb_bfd_unref.
	(free_so_symbols): Use gdb_bfd_unref.
	(reload_shared_libraries_1): Use gdb_bfd_unref.
	* solib-spu.c: Include gdb_bfd.h.
	(spu_bfd_fopen): Use gdb_bfd_ref, gdb_bfd_unref.
	* solib-pa64.c (pa64_solib_create_inferior_hook): Use gdb_bfd_ref,
	gdb_bfd_unref.
	* solib-frv.c: Include gdb_bfd.h.
	(enable_break2): Use gdb_bfd_unref.
	* solib-dsbt.c: Include gdb_bfd.h.
	(enable_break2): Use gdb_bfd_unref.
	* solib-darwin.c: Include gdb_bfd.h.
	(darwin_solib_get_all_image_info_addr_at_init): Use gdb_bfd_ref,
	gdb_bfd_unref.
	(darwin_bfd_open): Use gdb_bfd_unref.
	* rs6000-nat.c (add_vmap): Use gdb_bfd_ref, gdb_bfd_unref.
	* remote-mips.c: Include gdb_bfd.h.
	(mips_load_srec): Use gdb_bfd_ref.
	(pmon_load_fast): Use gdb_bfd_ref.
	* remote-m32r-sdi.c: Include gdb_bfd.h.
	(m32r_load): Use gdb_bfd_ref.
	* record.c: Include gdb_bfd.h.
	(record_save_cleanups): Use gdb_bfd_unref.
	(cmd_record_save): Use gdb_bfd_unref.
	* procfs.c (insert_dbx_link_bpt_in_file): Use gdb_bfd_ref,
	gdb_bfd_unref.
	* objfiles.h (gdb_bfd_close_or_warn): Remove.
	(gdb_bfd_ref, gdb_bfd_unref): Move to gdb_bfd.h.
	* objfiles.c: Include gdb_bfd.h.
	(free_objfile): Use gdb_bfd_unref.
	(gdb_bfd_close_or_warn, gdb_bfd_ref, gdb_bfd_unref): Move to
	gdb_bfd.c.
	* machoread.c (macho_add_oso_symfile): Use gdb_bfd_unref.
	(macho_symfile_read_all_oso): Use gdb_bfd_ref, gdb_bfd_unref.
	(macho_check_dsym): Likewise.
	* m32r-rom.c: Include gdb_bfd.h.
	(m32r_load): Use gdb_bfd_ref.
	(m32r_upload_command): Use gdb_bfd_ref.
	* jit.c: Include gdb_bfd.h.
	(jit_bfd_try_read_symtab): Use gdb_bfd_ref, gdb_bfd_unref.
	* gdb_bfd.h: New file.
	* gdb_bfd.c: New file.
	* gcore.c: Include gdb_bfd.h.
	(create_gcore_bfd): Use gdb_bfd_ref.
	(do_bfd_delete_cleanup): Use gdb_bfd_unref.
	(gcore_command): Use gdb_bfd_unref.
	* exec.c: Include gdb_bfd.h.
	(exec_close): Use gdb_bfd_unref.
	(exec_close_1): Use gdb_bfd_unref.
	(exec_file_attach): Use gdb_bfd_ref.
	* elfread.c: Include gdb_bfd.h.
	(build_id_verify): Use gdb_bfd_unref.
	* dsrec.c: Include gdb_bfd.h.
	(load_srec): Use gdb_bfd_ref.
	* corelow.c: Include gdb_bfd.h.
	(core_close): Use gdb_bfd_unref.
	(core_open): Use gdb_bfd_ref.
	* bfd-target.c: Include gdb_bfd.h.
	(target_bfd_xclose): Use gdb_bfd_unref.
	(target_bfd_reopen): Use gdb_bfd_ref.
	* Makefile.in (SFILES): Add gdb_bfd.c.
	(HFILES_NO_SRCDIR): Add gdb_bfd.h.
	(COMMON_OBS): Add gdb_bfd.o.

2012-07-18  Keith Seitz  <keiths@redhat.com>

	* breakpoint.c (find_condition_and_thread): Initialize
	TASK and REST.
	(create_breakpiont): find_condition_and_thread will now
	initialize COND_STRING, THREAD, and REST (and TASK).
	(addr_string_to_sals): Likewise.

2012-07-18  Pedro Alves  <palves@redhat.com>

	* infrun.c (handle_inferior_event) <TARGET_WAITKIND_NO_HISTORY>:
	Pull the single step breakpoints out of the target.

2012-07-18  Sergio Durigan Junior  <sergiodj@redhat.com>

	* probe.c (probe_safe_evaluate_at_pc): Rename variable `n_probes'.
	* stap-probe.c (compile_probe_arg): Likewise.

2012-07-18  Sergio Durigan Junior  <sergiodj@redhat.com>

	* elfread.c (elf_get_probe_argument_count): Remove `objfile' argument.
	(elf_compile_to_ax): Likewise.
	* infrun.c (insert_exception_resume_from_probe): Likewise.
	(check_exception_resume): Remove `objfile' variable.
	* probe.c (find_probe_by_pc): Remove `objfile' argument.
	(struct probe_and_objfile, probe_and_objfile_s): Delete.
	(collect_probes): Adjust return value to `VEC (probe_p) *'.
	(compare_entries): Rename to...
	(compare_probes): ...this.  Adjust function to work with
	`struct probe *'.  Rename variables `ea' and `eb' to `pa' and `pb'
	respectively.
	(gen_ui_out_table_header_info): Adjust `probes' argument to be
	`VEC (probe_p) *'.
	(print_ui_out_info): Adjust argument to be `struct probe *'.
	(info_probes_for_ops): Adjust internal computations to use
	`VEC (probe_p) *'.
	(probe_safe_evaluate_at_pc): Refactor to not pass `objfile' anymore.
	* probe.h (struct probe_ops) <get_probe_argument_count, compile_to_ax,
	gen_info_probes_table_values>: Remove `objfile' argument.
	(struct probe) <objfile>: New field.
	(find_probe_by_pc): Remove `objfile' argument.
	* stap-probe.c (stap_parse_probe_arguments): Likewise.
	(stap_get_probe_argument_count): Likewise.
	(stap_get_arg): Likewise.
	(stap_evaluate_probe_argument): Likewise.
	(stap_compile_to_ax): Likewise.
	(compile_probe_arg): Refactor not to pass `objfile' anymore.
	(handle_stap_probe): Fill `objfile' field from `struct probe'.
	(stap_gen_info_probes_table_header): Remove `objfile' argument.
	* symfile.h (struct sym_probe_fns) <sym_evaluate_probe_argument,
	sym_compile_to_ax>: Likewise.

2012-07-18  Terry Guo  <terry.guo@arm.com>

	PR 14329
	* defs.h (GDB_MI_MSG_WIDTH): New.
	* ser_base (ser_base_read_error_fd): New function.
	(do_ser_base_readchar): Poll error file descriptor as well as
	standard output.
	(generic_readchar): Refactor error handling.

2012-07-18  Joel Brobecker  <brobecker@adacore.com>

	* NEWS: Create a new section for the next release branch.
	Rename the section of the current branch, now that it has
	been cut.

2012-07-18  Joel Brobecker  <brobecker@adacore.com>

	GDB 7.5 branch created (branch timestamp: 2012-07-18 03:22 UTC)
	* version.in: Bump version to 7.5.50.20120718-cvs.

2012-07-17  Keith Seitz  <keiths@redhat.com>

	* linespec.c (linespec_parse_line_offset): Make parameter
	const.

2012-07-16  Jan Kratochvil  <jan.kratochvil@redhat.com>

	PR 11914
	* f-valprint.c (info_common_command): New variable frame_id.
	Reinitialize FI form FRAME_ID after each print_variable_and_value.
	* printcmd.c (print_variable_and_value): Extend function comment.
	Add comment for invalidated FRAME.
	* stack.c (backtrace_command_1): New variable frame_id.  Reinitialize
	FI form FRAME_ID after each print_frame_local_vars.
	(struct print_variable_and_value_data): Change frame to frame_id.
	(do_print_variable_and_value): New variable frame, initialize it from
	p->frame_id.  Add comment for invalidated FRAME.
	(print_frame_local_vars, print_frame_arg_vars): New function comment.
	Update CB_DATA.FRAME to CB_DATA.FRAME_ID initialization.  Add comment
	for invalidated FRAME.

2012-07-16  Marc Khouzam  <marc.khouzam@ericsson.com>
	    Pedro Alves  <palves@redhat.com>

	* linux-nat.c (linux_nat_detach): Don't unregister from the event
	loop.

2012-07-16  Tom Tromey  <tromey@redhat.com>

	* jv-typeprint.c (c_type_print_varspec_suffix): Don't declare.

2012-07-15  Doug Evans  <dje@google.com>

	* dwarf2read.c (stmt_list_hash): New struct.
	(type_unit_group): Embed "per_cu" member, remove pointer.
	New union member "t", move member "tus" into it, all uses updated.
	New member "hash", replaces member "line_offset, all uses updated.
	(quick_file_names): Replace member "offset" with "hash", all uses
	updated.
	(hash_stmt_list_entry, eq_stmt_list_entry): New functions.
	(hash_file_name_entry, eq_file_name_entry): Call them.
	(hash_type_unit_group, eq_type_unit_group): Ditto.
	(dw2_get_cu, dw2_get_primary_cu): Replace assert with a better one.
	(dw2_get_file_names_reader): Fix file name table calculation for TUs.
	(dw2_get_file_names): Update.
	(create_type_unit_group): Replace "per_cu" arg with "cu".
	All callers updated.  Fix "quick" (.gdb_index) handling.
	(get_type_unit_group): Replace "per_cu" arg with "cu".
	All callers updated.
	(build_type_unit_groups): Don't reset tu_stats.

	* symtab.c (filename_seen_cache): Delete members "tab_alloc_size",
	"tab_cur_size".  Change member "tab" to be a htab_t.
	(create_filename_seen_cache): Update.
	(clear_filename_seen_cache, delete_filename_seen_cache): Update.
	(filename_seen): Update.

2012-07-13  Doug Evans  <dje@google.com>

	* symtab.c (filename_seen): Update comment.

2012-07-13  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Doug Evans  <dje@google.com>

	* buildsym.c (end_symtab_1): Split it to ...
	(end_symtab_get_static_block): ... this ...
	(end_symtab_from_static_block): ... and this function.
	(end_symtab, end_expandable_symtab): Call them.
	* buildsym.h (end_symtab_get_static_block)
	(end_symtab_from_static_block): New declarations.
	* dwarf2read.c (process_full_comp_unit): New variable static_block.
	Set its valid CU ranges.

2012-07-13  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* dwarf2loc.c (disassemble_dwarf_expression): Handle
	DW_OP_GNU_parameter_ref.

2012-07-13  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* dwarf2read.c (read_call_site_scope): Do not gdb_assert for invalid
	read-in CALL_SITE_PARAMETER_PARAM_OFFSET.

2012-07-13  Doug Evans  <dje@google.com>

	* symtab.c (output_source_filename): Delete unnecessary forward decl.
	(filename_seen_cache): New struct.
	(INITIAL_FILENAME_SEEN_CACHE_SIZE): New macro.
	(create_filename_seen_cache): New function.
	(clear_filename_seen_cache, delete_filename_seen_cache): New functions.
	(filename_seen): Delete arg "first".  New arg "cache".  All callers
	updated.
	(output_source_filename_data): New struct.
	(output_source_filename): Delete arg "first".  New arg "data".
	All callers updated.
	(sources_info): Delete local "first".  New locals "data", "cleanups".
	Rewrite to use filename_seen_cache.
	(add_partial_filename_data): Delete member "first".  New member
	"filename_seen_cache".  All uses updated.
	(make_source_files_completion_list): Rewrite to use
	filename_seen_cache.

2012-07-12  Doug Evans  <dje@google.com>

	* psymtab.c (map_symbol_filenames_psymtab): Skip shared psymtabs.

2012-07-10  Doug Evans  <dje@google.com>

	PR gdb/13498
	* dwarf2read.c (dwarf2_per_objfile): New members n_type_unit_groups,
	all_type_unit_groups, type_unit_groups, tu_stats.
	(dwarf2_per_cu_data): Move "imported_symtabs" into new union "s".
	All uses updated.  Add type_unit_group to union "s".
	(type_unit_group): New struct.
	(IS_TYPE_UNIT_GROUP): New macro.
	(abbrev_table): Delete unused member "section".
	(dw2_do_instantiate_symtab): Early exit if type_unit_group.
	(dw2_get_cu): Assert not used with type_unit_group.
	(dw2_get_primary_cu): New function.
	(dw2_build_type_unit_groups_reader): New function.
	(dw2_build_type_unit_groups): New function.
	(dw2_get_file_names): Assert not called on type units.
	(dw2_map_symtabs_matching_filename): Call dw2_build_type_unit_groups.
	Redo loop to iterate over type unit groups instead of type units.
	(dw2_expand_symtabs_matching, dw2_map_symbol_filenames): Ditto.
	(read_abbrev_offset): New function.
	(init_cutu_and_read_dies): New arg "abbrev_table".  All callers
	updated.
	(create_partial_symtab): New function.
	(process_psymtab_comp_unit_reader): Assert not used with type units.
	Call create_partial_symtab.
	(process_psymtab_type_unit): Delete.
	(hash_type_unit_group, eq_type_unit_group): New functions.
	(allocate_type_unit_groups_table): New function.
	(NO_STMT_LIST_TYPE_UNIT_PSYMTAB): New macro.
	(NO_STMT_LIST_TYPE_UNIT_PSYMTAB_SIZE): New macro.
	(create_type_unit_group, get_type_unit_group): New functions.
	(tu_abbrev_offset): New struct.
	(sort_tu_by_abbrev_offset): New function.
	(add_type_unit_group_to_table): New function.
	(build_type_unit_groups): New function.
	(build_type_psymtabs_reader): New function.
	(build_type_psymtab_dependencies): New function.
	(build_type_psymtabs): Rewrite.
	(scan_partial_symbols): Flag an error if a DW_TAG_imported_unit
	is seen in a type unit.
	(process_queue): Move symtab expansion debugging printfs here.
	Call process_full_type_unit for type units.
	(compute_symtab_includes): Assert not called for type units.
	(process_cu_includes): Don't call compute_symtab_includes for
	type units.
	(process_full_type_unit): New function.
	(process_imported_unit_die): Flag an error if called for type units.
	(handle_DW_AT_stmt_list): Delete arg "want_line_info".  All callers
	updated.  Assert not called for type units.
	(read_file_scope): Call dwarf2_start_symtab.
	(setup_type_unit_groups): New function.
	(read_type_unit_scope): Rewrite.
	(abbrev_table_read_table): Initialize abbrev_table->offset.
	(abbrev_table_free_cleanup): New function.
	(dwarf2_start_symtab): New function.
	(load_full_type_unit): Assert not called for type unit groups.
	* buildsym.c (finish_block_internal): New arg "expandable".
	All callers updated.
	(start_symtab): Move most contents to ...
	(restart_symtab): ... here.  New function.
	(reset_symtab_globals): New function.
	(end_symtab_1): Renamed from end_symtab.  New arg "expandable".
	Call reset_symtab_globals.
	(end_symtab, end_expandable_symtab): New functions.
	(set_missing_symtab, augment_type_symtab): New functions.
	* buildsym.h (end_expandable_symtab): Declare.
	(augment_type_symtab, restart_symtab): Declare.
	* psympriv.h (struct partial_symtab): New member "anonymous".
	* psymtab.c (partial_map_symtabs_matching_filename): Ignore
	anonymous psymtabs.
	(read_psymtabs_with_filename): Ditto.
	(map_symbol_filenames_psymtab, psymtab_to_fullname): Ditto.
	(expand_symtabs_matching_via_partial): Ditto.
	(dump_psymtab): Update.
	* dictionary.c (dict_add_pending): New function.
	* dictionary.h (dict_add_pending): Declare.

2012-07-09  Doug Evans  <dje@google.com>

	* buildsym.c (start_subfile): Remove unnecessary check for
	name == NULL.

	* psymtab.c (allocate_psymtab): Use host_address_to_string.

	* dwarf2read.c (load_full_type_unit): Simplify.

	* dwarf2read.c (dwarf2_per_objfile): Change type of all_type_units
	to struct signatured_type **.  All uses updated.

	* dwarf2read.c (dwarf2_attr_no_follow): Delete unused arg "cu".
	All callers updated.

2012-07-09  Tom Tromey  <tromey@redhat.com>

	* c-exp.y (check_parameter_typelist): New function.
	(parameter_typelist): Call it.
	* eval.c (make_params): Handle '(void)' case.
	* gdbtypes.c (lookup_function_type_with_arguments): Handle
	'(void)' case.

2012-07-07  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* common/linux-ptrace.c: Include gdb_assert.h.
	<__i386__> (linux_ptrace_test_ret_to_nx_instr): New declaration.
	<__i386__>: Include sys/reg.h, sys/mman.h, signal.h, sys/wait.h and
	stdint.h.
	(linux_ptrace_test_ret_to_nx, linux_ptrace_init_warnings): New
	functions.
	* common/linux-ptrace.h (linux_ptrace_init_warnings): New declarations.
	* linux-nat.c (linux_child_post_attach)
	(linux_child_post_startup_inferior): Call linux_ptrace_init_warnings.

2012-07-07  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* linux-thread-db.c (thread_db_find_new_threads_silently): Do not apply
	nptl <2.7 bug workaround for core files.

2012-07-06  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* linux-nat.c (resume_lwp, linux_nat_resume): Remove LP->SIGINFO
	clearing.
	(save_siginfo): Remove.
	(stop_wait_callback, linux_nat_filter_event): Remove the save_siginfo
	call.
	(resume_stopped_resumed_lwps): Remove LP->SIGINFO clearing.
	(linux_nat_get_siginfo): Use PTRACE_GETSIGINFO.
	* linux-nat.h (struct lwp_info): Remove field siginfo.

2012-07-06  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Code cleanup for the next patch.
	* arm-linux-nat.c (arm_linux_stopped_data_address): Change variable
	siginfo_p to siginfo, update its users incl. the linux_nat_get_siginfo
	call for it.
	* ia64-linux-nat.c (ia64_linux_stopped_data_address): Likewise.
	(ia64_linux_stopped_data_address):
	* linux-nat.c (linux_nat_get_siginfo): Add parameter siginfo, change
	the return value.
	* linux-nat.h (linux_nat_get_siginfo): Likewise.
	* ppc-linux-nat.c (ppc_linux_stopped_data_address): Change variable
	siginfo_p to siginfo, update its users incl. the linux_nat_get_siginfo
	call for it.

2012-07-06  Jan Kratochvil  <jan.kratochvil@redhat.com>

	PR 14321
	* findcmd.c (parse_find_args): New variable pattern_buf_size_need.
	Increase buffer sizes to 2x we need, not just 2x of the previous size.

2012-07-06  Tom Tromey  <tromey@redhat.com>

	* c-exp.y (DOTDOTDOT): New token.
	(func_mod, exp): Use parameter_typelist.
	(parameter_typelist): New production.
	(tokentab3): Add "..." token.
	* eval.c (make_params): Handle varargs.
	* gdbtypes.c (lookup_function_type_with_arguments): Handle
	varargs.

2012-07-06  Tom Tromey  <tromey@redhat.com>

	PR exp/9608:
	* c-exp.y (%union) <tvec>: Change type.
	(func_mod): Now uses <tvec> type.
	(exp): Update for tvec change.
	(direct_abs_decl): Push the typelist.
	(func_mod): Return a typelist.
	(nonempty_typelist): Update for tvec change.
	* gdbtypes.c (lookup_function_type_with_arguments): New function.
	* gdbtypes.h (lookup_function_type_with_arguments): Declare.
	* parse.c (pop_type_list): New function.
	(push_typelist): New function.
	(follow_types): Handle tp_function_with_arguments.
	* parser-defs.h (type_ptr): New typedef.  Define a VEC.
	(enum type_pieces) <tp_function_with_arguments>: New constant.
	(union type_stack_elt) <typelist_val>: New field.
	(push_typelist): Declare.

2012-07-06  Tom Tromey  <tromey@redhat.com>

	* c-exp.y (%union) <type_stack>: New field.
	(abs_decl, direct_abs_decl): Use <type_stack> type.  Update.
	(ptr_operator_ts): New production.
	(ptype): Update.
	* parse.c (type_stack_reserve): New function.
	(check_type_stack_depth): Use it.
	(pop_type_stack, append_type_stack, push_type_stack)
	(get_type_stack, type_stack_cleanup): New functions.
	(follow_types): Handle tp_type_stack.
	(_initialize_parse): Simplify initialization.
	* parser-defs.h (enum type_pieces) <tp_type_stack>: New
	constant.
	(union type_stack_elt) <stack_val>: New field.
	(get_type_stack, append_type_stack, push_type_stack)
	(type_stack_cleanup): Declare.

2012-07-06  Tom Tromey  <tromey@redhat.com>

	* parser-defs.h (type_stack, type_stack_size, type_stack_depth):
	Remove.
	(struct type_stack): New.
	* parse.c (type_stack, type_stack_size, type_stack_depth):
	Remove.
	(type_stack): New global.
	(parse_exp_in_context, check_type_stack_depth)
	(insert_into_type_stack, insert_type, push_type, push_type_int)
	(insert_type_address_space, pop_type, pop_type_int)
	(_initialize_parse): Update.

2012-07-06  Tom Tromey  <tromey@redhat.com>

	* c-exp.y (func_mod, direct_abs_decl, abs_decl, ptr_operator):
	Remove %type.

2012-07-06  Siddhesh Poyarekar  <siddhesh@redhat.com>

	* c-lang.c (c_printstr): Remove ununsed variable WIDTH.

2012-07-06  Siddhesh Poyarekar  <siddhesh@redhat.com>
	    Jan Kratochvil  <jan.kratochvil@redhat.com>

	* cp-valprint.c (cp_print_value): Replace potentially unsafe
	alloca with xmalloc/xfree.

2012-07-06  Siddhesh Poyarekar  <siddhesh@redhat.com>

	* MAINTAINERS (Write After Approval): Add myself to the list.

2012-07-05  Doug Evans  <dje@google.com>

	* dwarf2read.c (dw2_expand_symtabs_matching): Fix typo.

2012-07-05  Hui Zhu  <hui_zhu@mentor.com>

	* ax-gdb.c (cli/cli-utils.h): New include.
	(linespec.h): Ditto.
	(agent_eval_command_one): New function.
	(agent_command_1): Ditto.
	(agent_command): Call function agent_command_1.
	(agent_eval_command): Ditto.
	(_initialize_ax_gdb): Change help for "maint agent"
	and "maint agent-eval".

2012-07-05  Hui Zhu  <hui_zhu@mentor.com>

	* breakpoint.c (check_for_argument): Move to file cli/cli-utils.c.
	* cli/cli-utils.c (check_for_argument): New function.
	* cli/cli-utils.h (check_for_argument): Ditto.

2012-07-04  H.J. Lu  <hongjiu.lu@intel.com>

	* NEWS: Mention x32 ABI support.

2012-07-04  H.J. Lu  <hongjiu.lu@intel.com>

	* amd64-tdep.c (amd64_x32_init_abi): Set sp_regnum_from_eax to
	AMD64_RSP_REGNUM and pc_regnum_from_eax to AMD64_RIP_REGNUM.

	* i386-tdep.c (i386_gdbarch_init): Initialize sp_regnum_from_eax
	and pc_regnum_from_eax to -1.  Update SP regnum from
	sp_regnum_from_eax and PC regnum from pc_regnum_from_eax if
	needed.

	* i386-tdep.h (gdbarch_tdep): Add sp_regnum_from_eax and
	pc_regnum_from_eax.

2012-07-03  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix 'warning: parameter has incomplete type' with gcc-3.4.6.
	* dwarf2expr.h: Include gdbtypes.h.
	(enum call_site_parameter_kind, union call_site_parameter_u): Remove
	these forward declarations.
	(cu_offset, sect_offset): Move these ...
	* gdbtypes.h: Remove include dwarf2expr.h.
	(cu_offset, sect_offset): ... here.

2012-07-03  H.J. Lu  <hongjiu.lu@intel.com>

	* amd64-linux-tdep.c (linux_sigtramp_code): Renamed to ...
	(amd64_linux_sigtramp_code): This.
	(amd64_x32_linux_sigtramp_code): New.
	(LINUX_SIGTRAMP_LEN): Updated.
	(amd64_linux_sigtramp_start): Check x32 sigtramp.

2012-07-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* linux-thread-db.c (thread_db_new_objfile): Fix comment typos.

2012-07-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* config.in: Regenerate.
	* configure: Regenerate.
	* configure.ac: Remove check for gnu/libc-version.h.
	* linux-thread-db.c <HAVE_GNU_LIBC_VERSION_H>: Remove include of
	gnu/libc-version.h.
	(enable_thread_event_reporting) <HAVE_GNU_LIBC_VERSION_H>: Remove
	variables libc_version, libc_major and libc_minor.  Replace sscanf by
	inferior_has_bug.  Extend the comment.

2012-07-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* linux-thread-db.c (inferior_has_bug): New function.
	(thread_db_find_new_threads_silently): Return boolean as checked by
	inferior_has_bug, describe it in the comments.
	(try_thread_db_load_1): Move call to thread_db_find_new_threads_silently
	earlier.  Abort the initialization if it returned non-zero.
	(thread_db_new_objfile): Exclude debug files.
	(thread_db_find_new_threads_2): Preinitialize ERR.  Check errors also
	if UNTIL_NO_NEW,

2012-07-02  Doug Evans  <dje@google.com>

	* dwarf2read.c (maybe_queue_comp_unit): Move definition next to others
	related to queue management.

	* dwarf2read.c (create_debug_types_hash_table): Use "debug dwarf2-read"
	instead of "debug dwarf2-die" in debugging printfs.
	(create_debug_info_hash_table_reader): Ditto.
	(create_debug_info_hash_table): Ditto.
	(init_dwo_file): Ditto.
	(init_cutu_and_read_dies): Add debugging printf.
	(init_cutu_and_read_dies_no_follow): Ditto.
	(process_psymtab_comp_unit_reader): Ditto.

2012-07-02  Stan Shebs  <stan@codesourcery.com>

	Add target-side support for dynamic printf.
	* NEWS: Mention the additional style.
	* breakpoint.h (struct bp_target_info): New fields tcommands, persist.
	(struct bp_location): New field cmd_bytecode.
	* breakpoint.c: Include format.h.
	(disconnected_dprintf): New global.
	(parse_cmd_to_aexpr): New function.
	(build_target_command_list): New function.
	(insert_bp_location): Call it.
	(remove_breakpoints_pid): Skip dprintf breakpoints.
	(print_one_breakpoint_location): Ditto.
	(dprintf_style_agent): New global.
	(dprintf_style_enums): Add dprintf_style_agent.
	(update_dprintf_command_list): Add agent case.
	(agent_printf_command): New function.
	(_initialize_breakpoint): Add new commands.
	* common/ax.def (printf): New bytecode.
	* ax.h (ax_string): Declare.
	* ax-gdb.h (gen_printf): Declare.
	* ax-gdb.c: Include cli-utils.h, format.h.
	(gen_printf): New function.
	(maint_agent_print_command): New function.
	(_initialize_ax_gdb): Add maint agent-printf command.
	* ax-general.c (ax_string): New function.
	(ax_print): Add printf disassembly.
	* Makefile.in (SFILES): Add format.c
	(COMMON_OBS): Add format.o.
	* common/format.h: New file.
	* common/format.c: New file.
	* printcmd.c: Include format.h.
	(ui_printf): Call parse_format_string.
	* remote.c (remote_state): New field breakpoint_commands.
	(PACKET_BreakpointCommands): New enum.
	(remote_breakpoint_commands_feature): New function.
	(remote_protocol_features): Add new BreakpointCommands entry.
	(remote_can_run_breakpoint_commands): New function.
	(remote_add_target_side_commands): New function.
	(remote_insert_breakpoint): Call it.
	(remote_insert_hw_breakpoint): Ditto.
	(_initialize_remote): Add new packet configuration for
	target-side breakpoint commands.
	* target.h (struct target_ops): New field
	to_can_run_breakpoint_commands.
	(target_can_run_breakpoint_commands): New macro.
	* target.c (update_current_target): Handle
	to_can_run_breakpoint_commands.

2012-07-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Execute -ix and -iex only after system and user gdbinit files.
	* main.c (captured_main): Move CMDARG_INIT_FILE and CMDARG_INIT_COMMAND
	processing down after gdbinit files.

2012-07-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Add fnmatch-gnu module.
	* gnulib/Makefile.in (aclocal_m4_deps): Add new files and remove one.
	* gnulib/configure.ac (AC_INIT): Use now import/memmem.c.
	* gnulib/aclocal.m4: Regenerate.
	* gnulib/config.in: Regenerate.
	* gnulib/configure: Regenerate.
	* gnulib/import/dummy.c: Remove.
	* gnulib/import/Makefile.am: Regenerate.
	* gnulib/import/Makefile.in: Likewise.
	* gnulib/import/m4/gnulib-cache.m4: Likewise.
	* gnulib/import/m4/gnulib-comp.m4: Likewise.
	* gnulib/import/alloca.c: New file.
	* gnulib/import/alloca.in.h: Likewise.
	* gnulib/import/config.charset: Likewise.
	* gnulib/import/fnmatch.c: Likewise.
	* gnulib/import/fnmatch.in.h: Likewise.
	* gnulib/import/fnmatch_loop.c: Likewise.
	* gnulib/import/localcharset.c: Likewise.
	* gnulib/import/localcharset.h: Likewise.
	* gnulib/import/m4/alloca.m4: Likewise.
	* gnulib/import/m4/codeset.m4: Likewise.
	* gnulib/import/m4/configmake.m4: Likewise.
	* gnulib/import/m4/fcntl-o.m4: Likewise.
	* gnulib/import/m4/fnmatch.m4: Likewise.
	* gnulib/import/m4/glibc21.m4: Likewise.
	* gnulib/import/m4/localcharset.m4: Likewise.
	* gnulib/import/m4/locale-fr.m4: Likewise.
	* gnulib/import/m4/locale-ja.m4: Likewise.
	* gnulib/import/m4/locale-zh.m4: Likewise.
	* gnulib/import/m4/mbrtowc.m4: Likewise.
	* gnulib/import/m4/mbsinit.m4: Likewise.
	* gnulib/import/m4/mbsrtowcs.m4: Likewise.
	* gnulib/import/m4/mbstate_t.m4: Likewise.
	* gnulib/import/m4/stdbool.m4: Likewise.
	* gnulib/import/m4/wchar_h.m4: Likewise.
	* gnulib/import/m4/wctype_h.m4: Likewise.
	* gnulib/import/m4/wint_t.m4: Likewise.
	* gnulib/import/mbrtowc.c: Likewise.
	* gnulib/import/mbsinit.c: Likewise.
	* gnulib/import/mbsrtowcs-impl.h: Likewise.
	* gnulib/import/mbsrtowcs-state.c: Likewise.
	* gnulib/import/mbsrtowcs.c: Likewise.
	* gnulib/import/ref-add.sin: Likewise.
	* gnulib/import/ref-del.sin: Likewise.
	* gnulib/import/stdbool.in.h: Likewise.
	* gnulib/import/streq.h: Likewise.
	* gnulib/import/strnlen1.c: Likewise.
	* gnulib/import/strnlen1.h: Likewise.
	* gnulib/import/verify.h: Likewise.
	* gnulib/import/wchar.in.h: Likewise.
	* gnulib/import/wctype.in.h: Likewise.

2012-07-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Support shell wildcards for 'set auto-load safe-path'.
	* auto-load.c: Include fnmatch.h.
	(filename_is_in_dir): Rename to ...
	(filename_is_in_pattern_1, filename_is_in_pattern): ... here and split
	it.  Update function comment.  Rename dir_len to pattern_len.  New
	variables filename_len, pattern and filename.  Add more DEBUG_AUTO_LOAD
	messages.  Use gdb_filename_fnmatch.
	(filename_is_in_auto_load_safe_path_vec): Rename variable dir to
	pattern.
	(_initialize_auto_load): Extend the "set auto-load safe-path" help text.
	* defs.h (gdb_filename_fnmatch): New declaration.
	* utils.c: Include fnmatch.h.
	(gdb_filename_fnmatch): New function.

2012-07-02  Sergio Durigan Junior  <sergiodj@redhat.com>

	* breakpoint.c (BREAK_ARGS_HELP): Include help message for the new
	`-probe' and `-probe-stap' options.

2012-07-01  Yao Qi  <yao@codesourcery.com>

	* breakpoint.c: Removed always_inserted_auto, always_inserted_on,
	always_inserted_off, and always_inserted_enums.
	Change always_inserted_mode's type to 'enum auto_boolean'.
	(show_always_inserted_mode, breakpoint_always_inserted_mode): Update
	callers.
	(_initialize_breakpoint): Call add_setshow_auto_boolean_cmd instead
	of add_setshow_enum_cmd.
	* infrun.c: Remove can_use_displaced_stepping_auto,
	can_use_displaced_stepping_on, can_use_displaced_stepping_off, and
	can_use_displaced_stepping_enum.
	Change can_use_displaced_stepping's type to 'enum auto_boolean'.
	(show_can_use_displaced_stepping, use_displaced_stepping): Update
	callers.
	(_initialize_infrun): Call add_setshow_auto_boolean_cmd instead of
	add_setshow_enum_cmd.

2012-06-30  Doug Evans  <dje@google.com>

	* dwarf2read.c (signatured_type): Make "per_cu" member first.
	(init_cutu_and_read_dies): Handle rereading a DWO CU while it's
	currently being read.  Propagate DW_AT_comp_dir to DWO DIE.

2012-06-29  Doug Evans  <dje@google.com>

	* linespec.c: #include "stack.h".
	(decode_line_with_current_source): Moved here from symtab.c and
	renamed from decode_line_spec.  All callers updated.
	(decode_line_with_last_displayed): Moved here from breakpoint.c and
	renamed from decode_line_spec_1.  All callers updated.
	* linespec.h (decode_line_with_current_source): Move declaration here
	from symtab.h and renamed from decode_line_spec.
	(decode_line_with_last_displayed): Move declaration here from symtab.h
	and renamed from decode_line_spec_1.
	* macrocmd.c: #include "linespec.h".
	* symtab.c: Remove #include "linespec.h".

2012-06-28  Doug Evans  <dje@google.com>

	* dwarf2read.c (get_cu_length): New function.
	(offset_in_cu_p, error_check_comp_unit_head): Call it.
	(create_debug_types_hash_table): Ditto.
	(init_cutu_and_read_dies): Ditto.
	(init_cutu_and_read_dies_no_follow): Ditto.

	* dwarf2read.c (dwarf2_find_base_address): Move definition.

	* dwarf2read.c (ABBREV_HASH_SIZE): Remove enclosing #ifndef/#endif.
	(struct abbrev_table): Define.
	(dwarf2_cu): Replace members dwarf2_abbrevs, abbrev_obstack with
	abbrev_table.
	(init_cutu_and_read_dies): Update.
	(abbrev_table_alloc_abbrev): New function.  Replaces
	dwarf_alloc_abbrev.  All callers updated.
	(abbrev_table_add_abbrev): New function.
	(abbrev_table_lookup_abbrev): New function.  Replaces
	dwarf2_lookup_abbrev.  All callers updated.
	(abbrev_table_read_table): New function.  Contents moved here from
	dwarf2_read_abbrevs.
	(dwarf2_read_abbrevs): Call it.
	(abbrev_table_free): New function.
	(dwarf2_free_abbrev_table): Call it.

2012-06-28  Stan Shebs  <stan@codesourcery.com>

	* osdata.c (info_osdata_command): Filter out "Title" columns
	from non-MI uses.
	* common/linux-osdata.c (struct osdata_type): Add title field.
	(osdata_table): Add titles to each entry.
	(linux_command_xfer_osdata): Add a column for title data.

2012-06-28  Stan Shebs  <stan@codesourcery.com>

	Make logging work for MI.
	* NEWS: Mention it.
	* interps.h (interp_set_logging_ftype): New typedef.
	(struct interp_procs): New field set_logging_proc.
	(current_interp_set_logging): Declare.
	* interps.c (current_interp_set_logging): New function.
	* cli/cli-logging.c: Include interps.h.
	(set_logging_redirect): Call current_interp_set_logging.
	(pop_output_files): Ditto.
	(handle_redirections): Ditto, plus skip ui-out redirect if MI.
	* mi/mi-console.h (mi_console_set_raw): Declare.
	* mi/mi-console.c (mi_console_set_raw): New function.
	* mi/mi-interp.c (saved_raw_stdout): New global.
	(mi_set_logging): New function.
	(_initialize_mi_interp): Add it to interp procs.

2012-06-28  Doug Evans  <dje@google.com>

	* symtab.c (lookup_symbol_aux_objfile): Use
	ALL_OBJFILE_PRIMARY_SYMTABS.

	* gdbtypes.c (lookup_typename): Rename local variable "tmp" to "type".

2012-06-28  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* common/buffer.c: Include inttypes.h and stdint.h.
	(buffer_xml_printf): Use PRId64, PRIu64, PRIx64 and PRIo64.

2012-06-28  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Pedro Alves  <palves@redhat.com>

	* gdbthread.h (ALL_THREADS): New macro.
	(thread_list): Declare.
	* infrun.c (handle_inferior_event) <spurious signal>: Don't keep
	going, but instead fall through to the stepping handling.
	* linux-nat.c (resume_lwp): New parameter 'signo'.  Resume with
	the passed in signal.  Adjust debug output.
	(resume_callback): Rename to ...
	(linux_nat_resume_callback): ... this.  Pass the thread's last
	stop signal, if in "pass" state.
	(linux_nat_resume): Adjust to rename.
	(stop_wait_callback): New assertion.  Don't respawn signals;
	instead let the LWP remain with SIGNALLED set.
	(linux_nat_wait_1): Remove flushing of pending SIGSTOPs.
	* remote.c (append_pending_thread_resumptions): New.
	(remote_vcont_resume): Call it.
	* target.h (target_resume): Extend comment.

2012-06-28  Iain Sandoe  <iain@codesourcery.com>

	* auxv.c (fprint_target_auxv): Handle extended cache data tags.

2012-06-27  Doug Evans  <dje@google.com>

	* dwarf2read.c (dwarf2_cu): Add ranges_base.
	Delete have_addr_base, unused.  All uses updated.
	(init_cutu_and_read_dies): Process DW_AT_GNU_ranges_base.
	(dwarf2_get_pc_bounds): Add ranges_base.
	(dwarf2_record_block_ranges): Ditto.

2012-06-27  Tom Tromey  <tromey@redhat.com>

	PR macros/7961:
	* varobj.c (varobj_create): Update.
	(varobj_set_value): Update.
	* tracepoint.c (validate_actionline): Update.
	(encode_actions_1): Update.
	* parse.c (parse_exp_1): Add 'pc' argument.
	(parse_exp_in_context): Add 'pc' argument.  Change how
	expression_context_pc is set.
	(parse_expression): Update.
	(parse_field_expression): Update.
	* expression.h (parse_exp_1): Update.
	* eval.c (parse_to_comma_and_eval): Update.
	* breakpoint.c (set_breakpoint_condition): Update.
	(update_watchpoint): Update.
	(init_breakpoint_sal): Update
	(find_condition_and_thread): Update.
	(watch_command_1): Update.
	(update_breakpoint_locations): Update.
	* ada-lang.c (ada_read_renaming_var_value): Update.
	(create_excep_cond_exprs): Update.

2012-06-27  Doug Evans  <dje@google.com>

	* dwarf2read.c (per_cu_header_read_in): Simplify, and handle
	type units.

2012-06-26  Doug Evans  <dje@google.com>

	* dwarf2read.c (read_and_check_comp_unit_head): Delete unnecessary
	prototype.
	(error_check_comp_unit_head): New arg abbrev_section.  All callers
	updated.
	(read_and_check_comp_unit_head): Ditto.
	(read_and_check_type_unit_head): Ditto.

2012-06-26  Siva Chandra Reddy  <sivachandra@google.com>

	New attribute 'last' for gdb.Symtab_and_line.
	* NEWS (Python Scripting): Add entry about the new attribute.
	* python/py-symtab.c (salpy_get_last): New function which
	implements the get method for the 'last' attribute of
	gdb.Symtab_and_line.
	(sal_object_getset): Add entry for the 'last' attribute.

2012-06-26  Doug Evans  <dje@google.com>

	* dwarf2read.c (dwo_section_names): Add macinfo_dwo, macro_dwo.
	(dwo_sections): Add macinfo, macro.
	(dwarf2_locate_dwo_sections): Watch for macro sections.
	(dwarf_decode_macros): Remove args lh, abfd, section, section_name.
	All callers updated.  Handle DWO files.

	* NEWS: Mention new options "set debug dwarf2-read" and
	"set debug symtab-create".
	* dwarf2read.c (dwarf2_read_debug): New static global.
	(dwarf2_build_psymtabs_hard): Add debugging printfs.
	(process_queue): Ditto.
	(process_full_comp_unit): Ditto.
	(_initialize_dwarf2_read): Add new option "set debug dwarf2-read".
	* elfread.c (elf_symfile_read): Add debugging printf.
	* minsyms.c (install_minimal_symbols): Ditto.
	* psymtab.c (allocate_psymtab): Ditto.
	* symfile.c (allocate_symtab): Ditto.
	* symtab.c (symtab_create_debug): New global.
	(_initialize_symtab): Add new option "set debug symtab-create".
	* symtab.h (symtab_create_debug): Declare.

	* dwarf2read.c (lookup_dwo_comp_unit): Enhance comment.
	(lookup_dwo_type_unit): Ditto.

2012-06-26  Roland McGrath  <roland@hack.frob.com>
	    H.J. Lu  <hongjiu.lu@intel.com>

	* amd64-linux-nat.c: Include <sys/user.h>.
	(ps_get_thread_area): Use PTRACE_PEEKUSER to get fs_base/gs_base
	if HAVE_STRUCT_USER_REGS_STRUCT_FS_BASE or
	HAVE_STRUCT_USER_REGS_STRUCT_GS_BASE is defined.

	* configure.ac: Check if the fs_base and gs_base members of
	`struct user_regs_struct' exist.
	* config.in: Regenerated.
	* configure: Likewise.

2012-06-25  Michael Eager  <eager@eagercon.com>

	PR python/14291
	* python/python.c (gdbpy_write): Check for interrupted output.

2012-06-25  Greta Yorsh  <greta.yorsh@arm.com>

	* arm-tdep.c (arm_in_function_epilogue_p): Recognize POP with a single
	register as a stack alignment in ARM mode.

2012-06-24  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Update gnulib to GIT commit a39f53ccb70a613e647e1019fb4c63645220267e.
	* gnulib/config.in: Regenerate.
	* gnulib/configure: Likewise.
	* gnulib/import/m4/extensions.m4: Update it.
	* gnulib/import/m4/gnulib-common.m4: Likewise.
	* gnulib/import/m4/memmem.m4: Likewise.
	* gnulib/import/m4/mmap-anon.m4: Likewise.
	* gnulib/import/m4/multiarch.m4: Likewise.
	* gnulib/import/stdint.in.h: Likewise.

2012-06-24  Yao Qi  <yao@codesourcery.com>

	* corefile.c (write_memory_with_notification): New.
	* gdbcore.h: Declare write_memory_with_notification.
	* ada-lang.c (ada_value_assign): Replace 'write_memory' and
	'observer_notify_memory_changed' with 'write_memory_with_notification'.
	* valops.c (value_assign): Likewise.
	* python/py-inferior.c (infpy_write_memory): Call
	'write_memory_with_notification'.

2012-06-24  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* cc-with-index.sh: Use also -ex "set auto-load no".

2012-06-23  Doug Evans  <dje@google.com>

	PR 14125
	* NEWS: Document additions to .gdb_index.
	* dwarf2read.c: #include "gdb/gdb-index.h".
	(DW2_GDB_INDEX_SYMBOL_STATIC_SET_VALUE): New macro.
	(DW2_GDB_INDEX_SYMBOL_KIND_SET_VALUE): New macro.
	(DW2_GDB_INDEX_CU_SET_VALUE): New macro.
	(dwarf2_read_index): Recognize version 7.
	(dw2_do_expand_symtabs_matching): New args want_specific_block,
	block_kind, domain): All callers updated.
	(dw2_find_symbol_file): Handle new index CU values.
	(dw2_expand_symtabs_matching): Match symbol kind if requested.
	(add_index_entry): New args is_static, kind.  All callers updated.
	(offset_type_compare, uniquify_cu_indices): New functions
	(symbol_kind): New function.
	(write_psymtabs_to_index): Remove duplicate CU values.
	(write_psymtabs_to_index): Write .gdb_index version 7.

2012-06-22  Joel Brobecker  <brobecker@adacore.com>

	* configure.ac (build_warnings): Add -Wdeclaration-after-statement.
	* configure: Regenerate.

2012-06-20  Yao Qi  <yao@codesourcery.com>

	* python/py-inferior.c: Update comments of infpy_read_memory
	and infpy_write_memory.

2012-06-19  Tom Tromey  <tromey@redhat.com>

	PR exp/9514:
	* parser-defs.h (insert_type, insert_type_address_space): Declare.
	(push_type_address_space): Remove.
	* parse.c (insert_into_type_stack): New function.
	(insert_type): Likewise.
	(insert_type_address_space): Rename from push_type_address_space.
	Insert tp_space_identifier.
	* c-exp.y (ptr_operator): New production.
	(abs_decl): Use ptr_operator.
	(space_identifier): Call insert_type_address_space.
	(ptype): Don't use const_or_volatile_or_space_identifier.
	(const_or_volatile_noopt): Call insert_type.
	(conversion_type_id, conversion_declarator): New productions.
	(operator): Use conversion_type_id.

2012-06-18  Doug Evans  <dje@google.com>

	* symtab.h (minimal_symbol): New member created_by_gdb.
	* elfread.c (elf_symtab_read): Set created_by_gdb for @plt minsym
	created by gdb.
	* symtab.c (lookup_symbol_in_objfile_from_linkage_name): New function.
	(search_symbols): Call it instead of lookup_symbol.
	Skip symbols created by gdb.  Only scan minsyms if nfiles == 0.

	* dwarf2expr.c (execute_stack_op): Handle DW_OP_GNU_const_index.
	Adjust address for DW_OP_GNU_addr_index.
	* dwarf2expr.h (dwarf_expr_context): Update comment.
	* dwarf2loc.c (locexpr_describe_location_piece): New arg per_cu,
	all callers updated.  Handle TLS vars described with
	DW_OP_GNU_const_index.
	(disassemble_dwarf_expression): Handle DW_OP_GNU_addr_index
	and DW_OP_GNU_const_index.
	* dwarf2read.c (decode_locdesc): Handle DW_OP_GNU_addr_index.

	* block.c (find_block_in_blockvector): Make explicit the fact that we
	ignore GLOBAL_BLOCK.

2012-06-18  Tom Tromey  <tromey@redhat.com>

	* c-exp.y (operator): Remove trailing space after "delete" and
	"delete[]".

2012-06-18  Mark Kettenis  <kettenis@gnu.org>
	    Jan Kratochvil  <jan.kratochvil@redhat.com>

	Switch i386 and derived targets to ON_STACK.
	* amd64-dicos-tdep.c (amd64_dicos_push_dummy_code): Remove.
	(amd64_dicos_init_abi): Remove its installment.
	* dicos-tdep.c (dicos_init_abi): Remove the
	set_gdbarch_call_dummy_location call.  Update the comment here.
	* i386-dicos-tdep.c (i386_dicos_push_dummy_code): Remove.
	(i386_dicos_init_abi): Remove its installment.
	* i386-tdep.c (i386_push_dummy_code): New function.
	(i386_gdbarch_init): Call set_gdbarch_call_dummy_location, install
	i386_push_dummy_code.

2012-06-18  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Remove stale dummy frames.
	* breakpoint.c: Include dummy-frame.h.
	(longjmp_breakpoint_ops): New variable.
	(update_breakpoints_after_exec, breakpoint_init_inferior): Delete also
	bp_longjmp_call_dummy.
	(bpstat_what, bptype_string, print_one_breakpoint_location)
	(init_bp_location): Support bp_longjmp_call_dummy.
	(set_longjmp_breakpoint): Use longjmp_breakpoint_ops.  Comment why.
	(set_longjmp_breakpoint_for_call_dummy)
	(check_longjmp_breakpoint_for_call_dummy, longjmp_bkpt_dtor): New
	functions.
	(initialize_breakpoint_ops): Initialize longjmp_breakpoint_ops.
	* breakpoint.h (enum bptype): New item bp_longjmp_call_dummy.  Delete
	FIXME comment and extend the other comment for bp_call_dummy.
	(set_longjmp_breakpoint_for_call_dummy)
	(check_longjmp_breakpoint_for_call_dummy): New declarations.
	* dummy-frame.c: Include gdbthread.h.
	(pop_dummy_frame_bpt): New function.
	(pop_dummy_frame): Call pop_dummy_frame_bpt.
	(dummy_frame_discard): New function.
	(cleanup_dummy_frames): Update the comment about longjmps.
	* dummy-frame.h (dummy_frame_discard): New declaration.
	* gdbthread.h (struct thread_info): Extend initiating_frame comment.
	* infcall.c (call_function_by_hand): New variable longjmp_b.  Call
	set_longjmp_breakpoint_for_call_dummy.  Chain its breakpoints with BPT.
	* infrun.c (handle_inferior_event) <BPSTAT_WHAT_CLEAR_LONGJMP_RESUME>:
	Add case 4 comment.  Call check_longjmp_breakpoint_for_call_dummy and
	keep_going if IS_LONGJMP and there is no other reason to stop.

2012-06-18  Greta Yorsh  <Greta.Yorsh@arm.com>

	* remote-sim.c (sim_command_completer): Initialize
	variable 'result'.

2012-06-17  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* dwarf2expr.c (execute_stack_op): Support DW_OP_GNU_parameter_ref.
	* dwarf2loc.c (call_site_parameter_matches): Support
	CALL_SITE_PARAMETER_PARAM_OFFSET.
	(needs_dwarf_reg_entry_value): Push stub value.
	* dwarf2read.c (read_call_site_scope): New variable origin.  Support
	CALL_SITE_PARAMETER_PARAM_OFFSET and its DW_AT_abstract_origin.
	* gdbtypes.h (enum call_site_parameter_kind): New item
	CALL_SITE_PARAMETER_PARAM_OFFSET.
	(struct call_site.parameter.u): New field param_offset.

2012-06-17  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Code cleanup: Generalize call_site.parameter key.
	* dwarf2expr.c (execute_stack_op) <DW_OP_GNU_entry_value>: Remove
	variable dwarf_reg.  New variable kind_u.  Update parameters to
	push_dwarf_reg_entry_value.
	(ctx_no_push_dwarf_reg_entry_value): Update parameters.
	* dwarf2expr.h (enum call_site_parameter_kind)
	(union call_site_parameter_u): Forward declarations.
	(struct dwarf_expr_context_funcs): Update parameters and their
	description for push_dwarf_reg_entry_value.
	(ctx_no_push_dwarf_reg_entry_value): Update parameters.
	* dwarf2loc.c (call_site_parameter_matches): New function.
	(dwarf_expr_reg_to_entry_parameter): Update parameters and their
	description.  Use call_site_parameter_matches.
	(dwarf_expr_push_dwarf_reg_entry_value, value_of_dwarf_reg_entry):
	Update parameters and their description.
	(value_of_dwarf_block_entry): Remove variables dwarf_reg and fb_offset.
	New variable kind_u.  Adjust the caller for updated parameters.
	(needs_dwarf_reg_entry_value): Update parameters.
	* dwarf2read.c (read_call_site_scope): New variable loc.  Use it
	instead of attr.  Update for the changed fields of struct
	call_site_parameter.
	* gdbtypes.h: Include dwarf2expr.h.
	(enum call_site_parameter_kind): New.
	(struct call_site.parameter): New field kind.  Wrap dwarf_reg and
	fb_offset into new union u.

2012-06-16  H.J. Lu  <hongjiu.lu@intel.com>

	* amd64-tdep.c (amd64_x32_analyze_stack_align): New function.
	(amd64_analyze_prologue): Call amd64_x32_analyze_stack_align
	for x32.

2012-06-16  H.J. Lu  <hongjiu.lu@intel.com>

	* amd64-linux-nat.c (compat_x32_clock_t): New.
	(compat_x32_siginfo_t): Likewise.
	(compat_x32_siginfo_from_siginfo): Likewise.
	(siginfo_from_compat_x32_siginfo): Likewise.
	(amd64_linux_siginfo_fixup): Call compat_x32_siginfo_from_siginfo
	and siginfo_from_compat_x32_siginfo for x32.

2012-06-15  Hui Zhu  <hui_zhu@mentor.com>

	* tracepoint.c (tfile_xfer_partial): Add a lseek.

2012-06-15  H.J. Lu  <hongjiu.lu@intel.com>

	* amd64-linux-nat.c (ps_get_thread_area): Check bits_per_word
	instead of gdbarch_ptr_bit.
	* amd64-nat.c (amd64_native_gregset_reg_offset): Likewise.
	(amd64_supply_native_gregset): Likewise.
	(amd64_collect_native_gregset): Likewise.
	* amd64-tdep.c (amd64_supply_fxsave): Likewise.
	(amd64_supply_xsave): Likewise.
	(amd64_collect_fxsave): Likewise.
	(amd64_collect_xsave): Likewise.

2012-06-15  H.J. Lu  <hongjiu.lu@intel.com>

	* amd64-linux-nat.c (AMD64_LINUX_X32_DS): New.
	(amd64_linux_read_description): Check DS segment register for
	x32 process.

2012-06-15  Tom Tromey  <tromey@redhat.com>

	* dwarf2read.c (dw2_find_symbol_file): Unconditionally use
	init_cutu_and_read_dies.

2012-06-15  Iain Sandoe <iain@codesourcery.com>

	* MAINTAINERS (Write After Approval): Add myself to the list.

2012-06-15  Tom Tromey  <tromey@redhat.com>

	* valops.c (value_find_oload_method_list): Now static.
	* value.h (value_find_oload_method_list): Don't declare.

2012-06-15  Tom Tromey  <tromey@redhat.com>

	* valops.c (find_overload_match): Use value_ind.

2012-06-15  Maciej W. Rozycki  <macro@codesourcery.com>

	* infrun.c (handle_inferior_event): Correct indentation.

2012-06-14  Doug Evans  <dje@google.com>

	* dwarf2loc.c (debug_loc_kind): Add DEBUG_LOC_START_LENGTH.
	(DEBUG_LOC_START_END): Renamed from DEBUG_LOC_NORMAL.
	All uses updated.
	(decode_debug_loc_dwo_addresses): New arg "byte_order".  All callers
	updated.  Handle DEBUG_LOC_START_LENGTH.
	(dwarf2_find_location_expression): Handle DEBUG_LOC_START_LENGTH.
	(loclist_describe_location): Ditto.

2012-06-14  Maciej W. Rozycki  <macro@codesourcery.com>

	PR backtrace/13866
	* infrun.c (handle_inferior_event): Re-fetch frame and gdbarch
	after hiding inline functions.

2012-06-13  Joel Brobecker  <brobecker@adacore.com>

	* inf-ttrace.c (_initialize_hppa_hpux_nat): Rename into
	_initialize_inf_ttrace.

2012-06-13  Joel Brobecker  <brobecker@adacore.com>

	* ia64-hpux-nat.c (_initialize_ia64_hpux_nat): Renames
	_initialize_hppa_hpux_nat.

2012-06-13  Joel Brobecker  <brobecker@adacore.com>

	* remote-sim.c (sim_command_completer): Change type of return
	value to "VEC (char_ptr) *".  Adjust implementation accordingly.

2012-06-13  Mark Kettenis  <kettenis@gnu.org>
	    Jan Kratochvil  <jan.kratochvil@redhat.com>

	PR tdep/14222
	* i386-tdep.c (i386_push_dummy_call): Unconditionally align the
	stack on a 16-byte boundary.

2012-06-13  Kaushik Srenevasan  <kaushik@twitter.com>

	* jit.c (finalize_symtab): Set function's return type to 'void' by
	default.

2012-06-13  Mark Kettenis  <kettenis@gnu.org>
	    H.J. Lu  <hongjiu.lu@intel.com>

	* amd64-linux-tdep.c (amd64_linux_init_abi_common): New function.
	Move bits common to both the classic LP64 and the new x32 ILP32
	ABI here.
	(amd64_linux_init_abi): Call amd64_linux_init_abi_common.
	(amd64_x32_linux_init_abi): New function.
	(_initialize_amd64_linux_tdep): Register osabi for bfd_mach_x64_32
	subtype.

	* i386-tdep.h (i386_pseudo_register_name): New prototype.
	* i386-tdep.c (i386_pseudo_register_name): Make public.
	* amd64-tdep.h (amd64_x32_init_abi): New prototype.
	* amd64-tdep.c (amd64_dword_names): Add "eip".
	(amd64_x32_pseudo_register_type): New function
	(amd64_x32_init_abi): New function.

2012-06-13  Jan Kratochvil  <jan.kratochvil@redhat.com>

	PR build/14003
	* inferior.h (struct inferior_suspend_state): Comment out.
	(struct inferior): Comment out the field suspend.
	* infrun.c (struct infcall_suspend_state): Comment out the field
	inferior_suspend.
	(save_infcall_suspend_state, restore_infcall_suspend_state): Comment
	out its assignment.

2012-06-13  Jan Kratochvil  <jan.kratochvil@redhat.com>

	PR c++/14177 - Fix parsing TYPENAME:: in parentheses.
	* c-exp.y (classify_inner_name): Remove caller assumptions in the
	function comment.  Return ERROR for unresolved cases.  Implement
	returning proper NAME.
	(yylex): Accept also NAME from classify_inner_name.
	* cp-namespace.c (cp_lookup_nested_type): Rename to ...
	(cp_lookup_nested_symbol): ... here.  Return any found symbol, not just
	LOC_TYPEDEF type.
	* cp-support.h (cp_lookup_nested_type): Update its declaration.

2012-06-13  Tom Tromey  <tromey@redhat.com>

	* breakpoint.c (condition_completer): New function.
	(_initialize_breakpoint): Use it.
	* value.c (complete_internalvar): New function.
	* value.h (complete_internalvar): Declare.

2012-06-13  Tom Tromey  <tromey@redhat.com>

	* ada-lang.c (ada_make_symbol_completion_list): Return a VEC.
	* breakpoint.c (catch_syscall_completer): Return a VEC.
	* cli/cli-cmds.c (complete_command): Update.
	* cli/cli-decode.c (complete_on_cmdlist): Return a VEC.
	(complete_on_enum): Likewise.
	* command.h: Include gdb_vecs.h.
	(completer_ftype): Change return type.
	(complete_on_cmdlist, complete_on_enum): Likewise.
	* completer.c (noop_completer, filename_completer)
	(location_completer): Return a VEC.
	(add_struct_fields): Remove 'nextp' argument.  Change 'output'
	to a VEC.
	(expression_completer, complete_line_internal, complete_line)
	(command_completer): Return a VEC.
	(gdb_completion_word_break_characters, line_completion_function):
	Update.
	* completer.h: Include gdb_vecs.h.
	(complete_line, noop_completer, filename_completer)
	(expression_completer, location_completer, command_completer):
	Update.
	* f-lang.c (f_word_break_characters): Return a VEC.
	* interps.c (interpreter_completer): Return a VEC.
	* language.h (struct language_defn)
	<la_make_symbol_completion_list>: Return a VEC.
	* python/py-cmd.c (cmdpy_completer): Return a VEC.
	* symtab.c (free_completion_list): Take a VEC.
	(return_val_size, return_val_index): Remove.
	(return_val): Now a VEC.
	(completion_list_add_name): Update.
	(default_make_symbol_completion_list_break_on)
	(default_make_symbol_completion_list, make_symbol_completion_list)
	(make_symbol_completion_list_fn, make_file_symbol_completion_list):
	Return a VEC.
	(add_filename_to_list): Update.
	(struct add_partial_filename_data) <list_used, list_alloced>: Remove.
	<list>: Now a VEC.
	(maybe_add_partial_symtab_filename): Update.
	(make_source_files_completion_list): Return a VEC.
	* symtab.h (default_make_symbol_completion_list_break_on)
	(default_make_symbol_completion_list, make_symbol_completion_list)
	(make_symbol_completion_list_fn, make_file_symbol_completion_list)
	(make_source_files_completion_list): Update.

2012-06-13  Tom Tromey  <tromey@redhat.com>

	* breakpoint.c (add_catch_command): Use completer_ftype.
	* breakpoint.h: Include command.h.
	(add_catch_command): Use completer_ftype.
	* cli/cli-decode.c (set_cmd_completer): Use completer_ftype.
	* cli/cli-decode.h (struct cmd_list_element) <completer>:
	Use completer_ftype.
	* command.h (completer_ftype): New typedef.
	(set_cmd_completer): Use it.
	* python/py-cmd.c (struct cmdpy_completer) <completer>: Use
	completer_ftype.

2012-06-13  Pedro Alves  <palves@redhat.com>

	Partial revert of previous change.

	* serial.c (scb_base): New global.
	(serial_for_fd): New.
	(serial_open, serial_fdopen_ops): Link new serial in open serials
	chain.
	(do_serial_close): Unlink serial from the open serials chain.

2012-06-12  Pedro Alves  <palves@redhat.com>

	* infrun.c (infrun_thread_stop_requested_callback): Don't switch
	threads here.
	(prepare_for_detach): No longer context switch here in non-stop
	mode.
	(fetch_inferior_event): Ditto.
	(handle_inferior_event) <STOP_QUIETLY || NO_STOP_QUIETLY>: Switch
	to the event thread before removing breakpoints.  Switch to the
	event thread before inserting breakpoints and resuming.
	(handle_inferior_event) <TARGET_WAITKIND_SPURIOUS>: Switch to the
	event thread before resuming.
	(handle_inferior_event) <stepping_past_singlestep_breakpoint>:
	Switch to the event thread before removing breakpoints.

2012-06-12  Eli Zaretskii  <eliz@gnu.org>

	* infcmd.c (construct_inferior_arguments) [__MINGW32__]: Quote
	special characters correctly for the Windows shells.  See
	http://sourceware.org/ml/gdb/2012-06/msg00047.html for the bug
	report.
	[!__MINGW32__]: Remove extra double quote character from special
	characters.

2012-06-11  Stan Shebs  <stan@codesourcery.com>

	* ui-out.h: Remove #if 0 declarations.
	* ui-out.c: Remove #if 0 functions.

2012-06-11  Pedro Alves  <palves@redhat.com>

	* ser-base.c (run_async_handler_and_reschedule): New.
	(fd_event, push_event): Use it.
	* serial.c (serial_open, serial_fdopen_ops): Set the initial
	reference count to 1.
	(do_serial_close): Set the bufp field to NULL.  Use serial_unref
	instead of xfree.
	(serial_is_open, serial_ref, serial_unref): New.
	* serial.h (serial_open): Adjust comment.
	(serial_is_open): Declare.
	(serial_close): Adjust comment.
	(serial_ref, serial_unref) Declare.
	(struct serial): New field 'refcnt'.

2012-06-11  Pedro Alves  <palves@redhat.com>

	Remove #if 0'd "connect" command, and unnecessary associated
	refcounting and serial reuse bits.

	* serial.h (struct serial): Remove fields 'next' and 'refcnt'.
	* serial.c (last_serial_opened): Delete.
	(scb_base): Delete.
	(serial_open): Adjust.
	(serial_for_fd): Delete.
	(serial_fdopen_ops, do_serial_close): Adjust.
	(serial_fdopen_ops): Adjust.

2012-06-11  Pedro Alves  <palves@redhat.com>

	* serial.c (do_serial_close): Remove early return when SCB is
	null.

2012-06-11  Tom Tromey  <tromey@redhat.com>

	* dwarf2read.c (dw2_get_file_names_reader): Ignore partial units.

2012-06-11  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix regression by the "ambiguous linespec" series.
	* breakpoint.c (parse_breakpoint_sals): New variable cursal.  Use
	get_last_displayed_symtab and get_last_displayed_line and depending
	on CURSAL.

2012-06-11  Tom Tromey  <tromey@redhat.com>

	* dwarf2read.c (dw2_get_primary_filename_reader): New function.
	(dw2_find_symbol_file): Use it.

2012-06-11  Michael Eager  <eager@eagercon.com>

	* mips-linux-tdep.c (mips_gdb_signal_from_target): New
	* mips-linux-tdep.h (mips_signals): New

2012-06-11  Tom Tromey  <tromey@redhat.com>

	* infrun.c (handle_inferior_event)
	<BPSTAT_WHAT_SET_LONGJMP_RESUME>: Don't delete the step-resume
	breakpoint.
	<BPSTAT_WHAT_CLEAR_LONGJMP_RESUME>: Remove longjmp logic; use
	exception logic in all cases.  Update comments.
	(insert_longjmp_resume_breakpoint): Set the exception resume
	breakpoint.

2012-06-11  Maciej W. Rozycki  <macro@codesourcery.com>

	* mips-tdep.c (mips_push_dummy_code): Handle microMIPS code.

2012-06-09  Siva Chandra Reddy  <sivachandra@google.com>

	* valarith.c (binop_types_user_defined_p): Fix a typo.

2012-06-08  Yao Qi  <yao@codesourcery.com>
	    Chung-Lin Tang <cltang@codesourcery.com>

	* arch-utils.c (default_return_in_first_hidden_param_p): New.
	* arch-utils.h: Declare.
	* gdbarch.sh: Add return_in_first_hidden_param_p.
	* gdbarch.c, gdbarch.h: Regenerated.
	* infcall.c (call_function_by_hand): Call
	gdbarch_return_in_first_hidden_param_p instead of
	language_pass_by_reference.

	* m68k-tdep.c (m68k_return_in_first_hidden_param_p): New.
	(m68k_gdbarch_init): Install m68k_return_in_first_hidden_param_p.
	* sh-tdep.c (sh_return_in_first_hidden_param_p): New.
	(sh_gdbarch_init): Install sh_return_in_first_hidden_param_p.
	* tic6x-tdep.c (tic6x_push_dummy_call): Remove local variable
	`cplus_return_struct_by_reference'.
	(tic6x_return_value): Handle language cplusplus.
	(tic6x_return_in_first_hidden_param_p): New.
	(tic6x_gdbarch_init): Install tic6x_return_in_first_hidden_param_p.

2012-06-07  Doug Evans  <dje@google.com>

	* dwarf2read.c (dwarf2_cu): Add comment.

2012-06-06  Maciej W. Rozycki  <macro@codesourcery.com>

	* mips-tdep.c (mips_pseudo_register_type): Remove tdep local
	variable.
	(mips_eabi_push_dummy_call): Likewise.
	(mips_n32n64_push_dummy_call): Likewise.
	(mips_o32_push_dummy_call): Likewise.
	(mips_o64_push_dummy_call): Likewise.

2012-06-06  Maciej W. Rozycki  <macro@codesourcery.com>

	* mips-tdep.c (mips_convert_register_p): Correct coding style.

2012-06-06  Maciej W. Rozycki  <macro@codesourcery.com>

	* mips-tdep.c (mips_pseudo_register_type): Use
	mips_float_register_p.

2012-06-06  Pedro Alves  <palves@redhat.com>

	* infrun.c (handle_inferior_event): Remove calls to
	reinit_frame_cache that follow a context_switch call.

2012-06-06  Pedro Alves  <palves@redhat.com>

	* infrun.c (handle_inferior_event) <deferred_step_ptid>: Use
	context_switch and remove stale comment.

2012-06-06  Pedro Alves  <palves@redhat.com>

	* infrun.c (struct execution_control_state): Remove
	`new_thread_event' field.
	(handle_inferior_event): Simplify new threads handling; don't
	resume the inferior if we find a new thread.

2012-06-06  Thomas Schwinge  <thomas@codesourcery.com>

	* NEWS: Document the deprecation of SH's 'regs' command.
	* inferior.h (all_registers_info): Add function declaration.
	* sh-tdep.c (sh_show_regs): Remove variable.
	(sh_generic_show_regs, sh3_show_regs, sh2e_show_regs, sh2a_show_regs)
	(sh2a_nofpu_show_regs, sh3e_show_regs, sh3_dsp_show_regs)
	(sh4_show_regs, sh4_nofpu_show_regs, sh_dsp_show_regs)
	(sh_show_regs_command): Remove functions.
	(sh_gdbarch_init): Don't set sh_show_regs.
	(_initialize_sh_tdep): Make the 'regs' command an deprecated alias to
	'info all-registers'.
	* sh64-tdep.c (sh64_show_media_regs, sh64_show_compact_regs)
	(sh64_show_regs): Remove functions.
	* sh64-tdep.h (sh64_show_regs): Remove function declaration.

2012-06-06  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* configure.ac: Move development=true below AC_INIT.
	* configure: Regenerate.

2012-06-05  Stan Shebs  <stan@codesourcery.com>

	* mi/mi-interp.c (mi_interpreter_init): Set raw_stdout from
	gdb_stdout.

2012-06-05  Siddhesh Poyarekar  <siddhesh@redhat.com>

	* corefile.c (read_memory, read_stack, write_memory): Accept LEN
	argument as ssize_t.
	* gdbcore.h (read_memory, read_stack, write_memory): Likewise.
	* remote.c (remote_write_bytes_aux, remote_write_bytes): Likewise.
	* target.c (target_read_stack, target_write_memory)
	(target_write_raw_memory): Likewise.
	* target.h (target_read_stack, target_write_memory)
	(target_write_raw_memory): Likewise.

2012-06-05  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* symfile-mem.c: Change gdb_static_assert to ssize_t.
	(target_read_memory_bfd): Cast gdb_assert LEN to ssize_t.
	* target.c (target_read_memory): Change LEN to ssize_t.
	* target.h (target_read_memory): Change LEN to ssize_t.

2012-06-05  Pedro Alves  <palves@redhat.com>

	PR backtrace/13866

	* breakpoint.c (until_break_command): Only fetch the selected
	frame after decode_line_1.

2012-06-05  Joakim Tjernlund  <Joakim.Tjernlund@transmode.se>

	* solib-svr4.c (enable_break): Don't fallback to setting the solib
	event breakpoint at _start, __start or main if a program
	interpreter is not found.

2012-06-05  Joel Brobecker  <brobecker@adacore.com>

	* windows-tdep.h (windows_iterate_over_objfiles_in_search_order):
	Add declaration.
	* windows-tdep.c: #include "objfiles.h".
	(windows_iterate_over_objfiles_in_search_order): New function.
	* amd64-windows-tdep.c (amd64_windows_init_abi): Set
	iterate_over_objfiles_in_search_order gdbarch method to
	windows_iterate_over_objfiles_in_search_order.
	* i386-cygwin-tdep.c (i386_cygwin_init_abi): Likewise.

2012-06-05  Joel Brobecker  <brobecker@adacore.com>

	* gdbarch.sh: Add generation of
	"iterate_over_objfiles_in_search_order_cb_ftype" typedef in
	gdbarch.h.  Add include of "objfiles.h" in gdbarch.c.
	(iterate_over_objfiles_in_search_order): New gdbarch method.
	* gdbarch.h, gdbarch.c: Regenerate.
	* objfiles.h (default_iterate_over_objfiles_in_search_order):
	Add declaration.
	* objfiles.c (default_iterate_over_objfiles_in_search_order):
	New function.
	* symtab.c (lookup_symbol_aux_objfile): New function, extracted
	out of lookup_symbol_aux_symtabs.
	(lookup_symbol_aux_symtabs): Replace extracted-out code by
	call to lookup_symbol_aux_objfile.
	(struct global_sym_lookup_data): New type.
	(lookup_symbol_global_iterator_cb): New function.
	(lookup_symbol_global): Search for symbol using
	gdbarch_iterate_over_objfiles_in_search_order and
	lookup_symbol_global_iterator_cb.
	* findvar.c (struct minsym_lookup_data): New type.
	(minsym_lookup_iterator_cb): New function.
	(default_read_var_value) [case LOC_UNRESOLVED]: Resolve the
	symbol's address via gdbarch_iterate_over_objfiles_in_search_order
	and minsym_lookup_iterator_cb.

2012-06-05  Joel Brobecker  <brobecker@adacore.com>

	Revert the following patch:
	* findvar.c (default_read_var_value): For LOC_UNRESOLVED symbols,
	try locating the symbol in the symbol's own objfile first, before
	extending the search to all objfiles.
	* symtab.c (lookup_symbol_aux_objfile): New function, extracted
	out of lookup_symbol_aux_symtabs.
	(lookup_symbol_aux_symtabs): Add new parameter "exclude_objfile".
	Replace extracted-out code by call to lookup_symbol_aux_objfile.
	Do not search EXCLUDE_OBJFILE.
	(lookup_static_symbol_aux): Update call to lookup_symbol_aux_symtabs.
	(lookup_symbol_global): Search for matches in the block's objfile
	first, before searching all other objfiles.

2012-06-05  Joel Brobecker  <brobecker@adacore.com>

	* breakpoint.c (find_condition_and_thread): Stop parsing
	as soon as the first invalid keyword is found.

2012-06-05  Joel Brobecker  <brobecker@adacore.com>

	* copyright.py (EXCLUDE_LIST): Add 'gdb/CONTRIBUTE' to list.

2012-06-05  Joel Brobecker  <brobecker@adacore.com>

	* config/djgpp/djcheck.sh: Add copyright header.

2012-06-05  Joel Brobecker  <brobecker@adacore.com>

	* copyright.py (update_files, main): Fix path to update-copyright
	script.

2012-06-05  Joel Brobecker  <brobecker@adacore.com>

	* copyright.py (MULTIPLE_COPYRIGHT_HEADERS): New constant.
	(main): Add MULTIPLE_COPYRIGHT_HEADERS to the list of files
	for which a reminder to update by hand is printed.

2012-06-04  Doug Evans  <dje@google.com>

	* buildsym.c (make_blockvector): Add comment.

2012-06-04  Pedro Alves  <palves@redhat.com>

	* arch-utils.c (default_gdb_signal_from_target): Delete.
	* arch-utils.h (default_gdb_signal_from_target): Delete.
	* corelow.c (core_open) <signal mapping>: Extended comment.  Check
	gdbarch_gdb_signal_from_target_p.
	* gdbarch.sh (gdb_signal_from_target): Make it an M method (with
	predicate).
	* gdbarch.h: Regenerate.
	* gdbarch.c: Regenerate.

2012-06-04  Pedro Alves  <palves@redhat.com>

	* gdbarch.sh (gdb_signal_from_target): Mention that the
	implementation of the method must be host independent.
	* gdbarch.h: Regenerate.

2012-06-04  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* symfile-mem.c: 3 new gdb_static_assert for target_read_memory_bfd
	parameters.
	(target_read_memory_bfd): New function.
	(symbol_file_add_from_memory): Use it.

2012-06-03  Doug Evans  <dje@google.com>

	* symtab.c (lookup_global_symbol_from_objfile): Only scan blockvector
	of primary symtab.
	(basic_lookup_transparent_type): Ditto.

	* objfiles.h (ALL_OBJFILE_PRIMARY_SYMTABS): New macro.
	(ALL_PRIMARY_SYMTABS): Use it.
	(ALL_PSPACE_PRIMARY_SYMTABS): Ditto.
	* dwarf2read.c (dw2_find_symbol_file): Ditto.
	* linespec.c (iterate_over_all_matching_symtabs): Ditto.
	* symtab.c (lookup_symbol_aux_objfile): Ditto.
	(basic_lookup_transparent_type): Ditto.

2012-06-02  Sergio Durigan Junior  <sergiodj@redhat.com>

	* symtab.c (symbol_demangled_name): New variable `dem_name'.  Use
	it to optimize resolution of demangled name.

2012-06-01  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* configure.ac (development): Define new variable.
	Call AC_CHECK_LIB for mcheck if $development.
	(ERROR_ON_WARNING): Enable it by default only if $development.
	* config.in: Regenerate.
	* configure: Regenerate.

2012-06-01  Siddhesh Poyarekar  <siddhesh@redhat.com>

	* target.c (target_read_memory): Make LEN argument as size_t.
	* target.h (target_read_memory): Likewise.

2012-06-01  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* tilegx-linux-tdep.c (tilegx_l): Use ULL for 64-bit values.

2012-05-31  Edjunior Machado  <emachado@linux.vnet.ibm.com>

	* ppc-linux-nat.c (have_ptrace_booke_interface): Disable ptrace
	BookE interface for PowerPC server processors if not available
	in the Linux Kernel.

2012-05-31  Keith Seitz  <keiths@redhat.com>

	* linespec.c (decode_objc): Add cleanup to free
	INFO.FILE_SYMTABS.
	(find_linespec_symbols): Add cleanup to free CLASSES.
	* symfile.c (find_separate_debug_file_by_debuglink): Add
	cleanup to free DEBUGLINK.
	* ui-out.c (clear_header_list): No need to check if
	HEADER_NEXT.COLHDR is NULL.
	Free HEADER_NEXT.COL_NAME.

2012-05-31  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>

	* ada-lang.c (standard_lookup): Prevent uninitialized variable
	warning.

2012-05-30  Jeff Kenton  <jkenton@tilera.com>

	* configure.host (gdb_host_cpu): Handle tilegx*.
	(gdb_host): Handle tilegx-*-linux*.
	* tilegx-linux-nat.c: New file.
	* config/tilegx/linux.mh: New file.

2012-05-30  Jeff Kenton  <jkenton@tilera.com>

	* Makefile.in (ALL_TARGET_OBJS): Add tilegx-tdep.o and
	tilegx-linux-tdep.o.
	(ALLDEPFILES): Add tilegx-linux-nat.c, tilegx-tdep.c and
	tilegx-linux-tdep.c.
	* configure.tgt: Handle tilegx-*-linux*.
	* tilegx-tdep.h: New file.
	* tilegx-tdep.c: New file.
	* tilegx-linux-tdep.c: New file.
	* regformats/reg-tilegx.dat: New file.

2012-05-30  Edjunior Machado  <emachado@linux.vnet.ibm.com>

	* ppc-linux-nat.c (ppc_linux_can_use_hw_breakpoint): fix
	accounting of hw watchpoints on ppc.

2012-05-30  Thiago Jung Bauermann  <thiago.bauermann@linaro.org>

	* source.c (openp): Expand tilde in path entries.

2012-05-29  Doug Evans  <dje@google.com>

	* buildsym.c (block_compar): Fix comment.
	(end_symtab): Fix and clarify some comments.

	* stabsread.h (cleanup_undefined_stabs_types): Renamed from
	cleanup_undefined_types.
	* stabsread.c (cleanup_undefined_stabs_types): Ditto.
	All callers updated.

2012-05-29  Tom Tromey  <tromey@redhat.com>

	* symfile.c (symfile_bfd_open): Don't close desc if bfd_fopen
	fails.
	* solib.c (solib_bfd_fopen): Don't close fd if bfd_fopen fails.
	* exec.c (exec_file_attach): Don't close scratch_chan if bfd_fopen
	fails.
	* dwarf2read.c (try_open_dwo_file): Don't close fd if bfd_fopen
	fails.

2012-05-29  Tristan Gingold  <gingold@adacore.com>

	* solib-darwin.c (dyld_all_image_addr, dyld_all_image): Move into...
	(struct darwin_info): ... New struct.
	(solib_darwin_pspace_data): New variable.
	(darwin_pspace_data_cleanup): New function.
	(get_darwin_info): Likewise.
	(darwin_dyld_version_ok, darwin_load_image_infos)
	(darwin_solib_get_all_image_info_addr_at_init)
	(darwin_solib_read_all_image_info_addr): Add info argument.
	Adjust code.
	(darwin_current_sos): Use per pspace structure.
	(darwin_solib_create_inferior_hook): Likewise.
	(darwin_clear_solib): Likewise.
	(_initialize_darwin_solib): Initialize solib_darwin_pspace_data.

2012-05-28  Pedro Alves  <palves@redhat.com>

	* infrun.c (wait_for_inferior): Move ecss and ecs locals to the
	block that uses them.  Clear ecss before handling each event.

2012-05-28  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* solib-svr4.c (svr4_current_sos): New comment on
	svr4_current_sos_via_xfer_libraries fall back.

2012-05-24  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* psymtab.c (lookup_symbol_aux_psymtabs): New variable stab_best.  Use
	it as a fallback for TYPE_IS_OPAQUE.
	* symfile.h (struct quick_symbol_functions): Mention TYPE_OPAQUE
	symbols for lookup_symbol.

2012-05-24  John Steele Scott  <toojays@toojays.net>

	PR symtab/13277: Resolving opaque structures in ICC generated binaries.
	* dwarf2read.c (struct dwarf2_cu) <producer_is_icc>: New field.
	(producer_is_gxx_lt_4_6): Move the checking and caching to...
	(check_producer): ... this new function, which also checks for ICC
	and caches the result.
	(producer_is_icc): New function.
	(read_structure_type): Don't set TYPE_STUB_SUPPORTED if the
	producer was ICC.

2012-05-24  Pedro Alves  <palves@redhat.com>

	PR gdb/7205

	* arch-utils.c (default_gdb_signal_to_host): Rename to ...
	(default_gdb_signal_to_target): ... this.  Add comment.
	(default_gdb_signal_from_host): Rename to ...
	(default_gdb_signal_from_target): ... this.  Add comment.
	* arch-utils.h (default_gdb_signal_to_host): Rename to ...
	(default_gdb_signal_to_target): ... this.
	(default_gdb_signal_from_host): Rename to ...
	(default_gdb_signal_from_target): ... this.
	* corelow.c (core_open): Adjust to naming change.  Replace comment.
	* gdbarch.sh (gdb_signal_from_host): Rename to ...
	(gdb_signal_from_target): ... this.  Adjust to
	default_gdb_signal_from_host naming change.  Extend comment.
	(gdb_signal_to_host): Rename to ...
	(gdb_signal_to_target): ... this.  Adjust to
	default_gdb_signal_to_host naming change.
	* gdbarch.h, gdbarch.c: Renegerate.

2012-05-24  Pedro Alves  <palves@redhat.com>

	PR gdb/7205

	Replace TARGET_SIGNAL_ with GDB_SIGNAL_ throughout.

2012-05-24  Pedro Alves  <palves@redhat.com>

	PR gdb/7205

	Replace target_signal with gdb_signal throughout.

2012-05-24  Pedro Alves  <palves@redhat.com>

	PR tui/14159

	* tui/tui-hooks.c (tui_query_hook): Pre-compute the question
	string, instead of reusing the va_list argument.

2012-05-24  Tom Tromey  <tromey@redhat.com>

	* cp-support.h (cp_finalize_namespace, cp_initialize_namespace):
	Remove.

2012-05-23  Doug Evans  <dje@google.com>

	* symtab.c (search_symbols): Formatting fixes.
	(print_symbol_info): Formatting fixes.

	* dwarf2-frame.c (execute_cfa_program): Update to handle long long ->
	int64_t change to leb128 API.
	(read_encoded_value, decode_frame_entry_1): Ditto.
	* dwarf2expr.c (safe_read_uleb128, safe_read_sleb128): Ditto.
	(dwarf_block_to_dwarf_reg, dwarf_block_to_dwarf_reg_deref): Ditto.
	(dwarf_block_to_fb_offset, dwarf_block_to_sp_offset): Ditto.
	(execute_stack_op): Ditto.
	* dwarf2expr.h (gdb_read_uleb128, gdb_read_sleb128): Ditto.
	(safe_read_uleb128, safe_read_sleb128): Ditto.
	* dwarf2loc.c (decode_debug_loc_dwo_addresses): Ditto.
	(dwarf2_compile_expr_to_ax): Ditto.
	(locexpr_describe_location_piece): Ditto.
	(disassemble_dwarf_expression): Ditto.
	(locexpr_describe_location_1): Ditto.

2012-05-23  Stan Shebs  <stan@codesourcery.com>
	    Kwok Cheung Yeung  <kcy@codesourcery.com>

	* Makefile.in (SUBDIR_MI_OBS): Add mi-cmd-info.o.
	(SUBDIR_MI_SRCS): Add mi-cmd-info.c.
	(mi-cmd-info.o): New rule.
	* osdata.h (info_osdata_command): New declaration.
	* osdata.c (info_osdata_command): Change to non-static.
	* mi/mi-cmds.h (mi_cmd_info_os): New declaration.
	* mi/mi-cmds.c (mi_cmds): Add -info-os MI command.
	* mi/mi-cmd-info.c: New file.

2012-05-23  Doug Evans  <dje@google.com>

	* symtab.c (search_symbols): Pass NULL for file_matcher to
	expand_symtabs_matching if there are no files to match.

	* gdbtypes.c (lookup_typename): Simplify.

2012-05-23  Pedro Alves  <palves@redhat.com>

	* arch-utils.h (default_target_signal_to_host): Delete.
	* arch-utils.c (default_target_signal_to_host): Delete.
	* gdbarch.sh (target_signal_to_host): Remove.
	* gdbarch.h, gdbarch.c: Regenerate.

2012-05-22  Doug Evans  <dje@google.com>

	* dwarf2-frame.c (struct dwarf2_cie): Make initial_instructions, end
	"const gdb_byte *".
	(struct dwarf2_fde): Make instructions, end "const gdb_byte *".
	(execute_cfa_program): Update to match API of leb128 functions.
	(read_1_byte, read_4_bytes, read_8_bytes): Make buf parameter
	"const gdb_byte *".
	(read_unsigned_leb128, read_signed_leb128): Delete.
	(read_initial_length): Change type of buf argument to
	"const gdb_byte *".
	(read_encoded_value): Update to match API of leb128 functions.
	(decode_frame_entry): Change result to "const gdb_byte *", and
	similarly for "start" parameter.
	(decode_frame_entry_1): Ditto.  Use new leb128 reader functions.
	(dwarf2_build_frame_info): Change local frame_ptr to
	"const gdb_byte *".
	* dwarf2expr.c (safe_read_uleb128, safe_read_sleb128): Replaces
	read_uleb128, read_sleb128.  All callers updated.
	(safe_skip_leb128): New function.
	(dwarf_block_to_dwarf_reg): Update to match API of leb128 functions.
	Call gdb_read_uleb128, gdb_skip_leb128 instead of read_uleb128.
	(dwarf_block_to_dwarf_reg_deref): Update to match API of leb128
	functions.  Call gdb_read_uleb128, gdb_read_sleb128 instead of
	read_uleb128, read_sleb128.
	(dwarf_block_to_fb_offset, dwarf_block_to_sp_offset): Ditto.
	(execute_stack_op): Update to match API of leb128 functions.
	* dwarf2expr.h: #include "leb128.h".
	(read_uleb128, read_sleb128): Delete.
	(gdb_read_uleb128, gdb_read_sleb128, gdb_skip_leb128): New functions.
	(safe_read_uleb128, safe_read_sleb128, safe_skip_leb128): Declare.
	* dwarf2loc.c (debug_loc_kind): New enum.
	(decode_debug_loc_addresses): New function.
	(decode_debug_loc_dwo_addresses): New function.
	(dwarf2_find_location_expression): Rewrite.
	(dwarf2_compile_expr_to_ax): Update to match API of leb128 functions.
	(locexpr_describe_location_piece): Ditto.
	(disassemble_dwarf_expression): Ditto.
	(locexpr_describe_location_1): Ditto.
	(loclist_describe_location): Rewrite.
	* dwarf2loc.h (dwarf2_loclist_baton): New member "from_dwo".
	* dwarf2read.c (die_reader_specs): New member "buffer_end".
	(dwarf2_section_buffer_overflow_complaint): Renamed from
	dwarf2_macros_too_long_complaint.  All callers updated.
	(skip_leb128): Delete.
	(init_cu_die_reader): Initialize reader->buffer_end.
	(skip_one_die): Replace call to skip_leb128 with safe_skip_leb128.
	(skip_form_bytes): New arg buffer_end.  All callers updated.
	Replace call to skip_leb128 with gdb_skip_leb128.
	(skip_unknown_opcode): New arg mac_end.  All callers updated.
	(fill_in_loclist_baton): Initialize baton->from_dwo.

2012-05-22  Maciej W. Rozycki  <macro@codesourcery.com>

	* mips-linux-nat.c (mips_linux_read_description): Use a more
	verbose error message.

2012-05-22  Maciej W. Rozycki  <macro@codesourcery.com>

	* NEWS: Add MIPS/Linux DSP support.
	* mips-linux-tdep.c: Document post-2.6.12 o32 sigcontext layout.
	(SIGCONTEXT_DSPCTL): New macro.
	(SIGCONTEXT_HI1, SIGCONTEXT_LO1): Likewise.
	(SIGCONTEXT_HI2, SIGCONTEXT_LO2): Likewise.
	(SIGCONTEXT_HI3, SIGCONTEXT_LO3): Likewise.
	(N64_SIGCONTEXT_HI1, N64_SIGCONTEXT_HI2): Likewise.
	(N64_SIGCONTEXT_HI3): Likewise.
	(N64_SIGCONTEXT_LO1, N64_SIGCONTEXT_LO2): Likewise.
	(N64_SIGCONTEXT_LO3): Likewise.
	(N64_SIGCONTEXT_DSPCTL): Likewise.
	(N64_SIGCONTEXT_FPCSR): Clarify definition.
	(mips_linux_o32_sigframe_init): Handle DSP registers.
	(mips_linux_n32n64_sigframe_init): Likewise.

2012-05-22  Pierre Muller  <muller@ics.u-strasbg.fr>

	* common/buffer.c (buffer_grow): ARI fix: Remove unneeded
	call to abort.

2012-05-22  Pedro Alves  <palves@redhat.com>

	* target.h (store_waitstatus): Move declaration ...
	* inf-child.h (store_waitstatus): ... here.
	* target.c: Move inclusion of gdb_wait.h, and ...
	(store_waitstatus): ... this ...
	* inf-child.c: ... here.
	* linux-nat.c: Include inf-child.h.
	* rs6000-nat.c: Include inf-child.h.
	* spu-linux-nat.c: Include inf-child.h.

2012-05-22  Pierre Muller  <muller@ics.u-strasbg.fr>

	* tracepoint.c (start_tracing): Add missing i18n markup.
	(stop_tracing, set_trace_user): Ditto.
	(set_trace_notes, set_trace_stop_notes): Ditto.

2012-05-21  Tom Tromey  <tromey@redhat.com>

	PR c++/7173:
	* gnu-v3-abi.c (gnuv3_baseclass_offset): Return early for Java
	types.
	* value.h (value_cast_pointers): Update.
	* valops.c (value_cast_pointers): Add 'subclass_check' argument.
	(value_cast): Update.
	(update_search_result): New function.
	(do_search_struct_field): New, from search_struct_field.  Check
	for ambiguous results.
	(search_struct_field): Rewrite.
	* infcall.c (value_arg_coerce): Update.
	* eval.c (evaluate_subexp_standard) <STRUCTOP_MEMBER>: Use
	value_cast_pointers.
	* ada-lang.c (ada_convert_actual): Update.

2012-05-21  Tom Tromey  <tromey@redhat.com>

	* macroexp.c (macro_stringify): Terminate the string.

2012-05-20  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* NEWS (--with-auto-load-dir): Prepend $debugdir to the default path.
	Describe it.
	* auto-load.c (auto_load_expand_dir_vars): New function.
	(auto_load_safe_path_vec_update): Use it, remove the
	substitute_path_component call thanks to it.
	(auto_load_objfile_script): Remove the debug_file_directory processing.
	Use auto_load_expand_dir_vars, remove the substitute_path_component
	call thanks to it.
	* configure: Regenerate.
	* configure.ac (--with-auto-load-dir): Prepend $debugdir to the default
	path.  Escape $ also for $debugdir.
	(--with_auto_load_safe_path): Escape $ also for $debugdir.
	* utils.c (substitute_path_component): Accept also DIRNAME_SEPARATOR.

2012-05-20  Doug Evans  <dje@google.com>

	* dwarf2read.c (recursively_find_pc_sect_symtab): Initialize "s"
	before use.  Check for symtab->includes == NULL before scanning it.

2012-05-18  Maciej W. Rozycki  <macro@codesourcery.com>

	* mips-tdep.c (mips_reg3_to_reg): Optimize storage.

2012-05-18  Maciej W. Rozycki  <macro@codesourcery.com>

	* NEWS: Add microMIPS support and "set mips compression",
	"show mips compression" commands.
	* mips-tdep.h (mips_isa): New enum.
	(gdbarch_tdep): Add mips_isa.
	(mips_pc_is_mips16): Update prototype.
	(mips_pc_is_mips, mips_pc_is_micromips): New prototypes.
	* mips-tdep.c (mips_compression_mips16): New variable.
	(mips_compression_micromips): Likewise.
	(mips_compression_strings): Likewise.
	(mips_compression_string): Likewise.
	(is_mips16_isa, is_micromips_isa): New functions.
	(is_mips16_addr): Rename to...
	(is_compact_addr): ... this.
	(unmake_mips16_addr): Likewise to...
	(unmake_compact_addr): ... this.
	(make_mips16_addr): Likewise to...
	(make_compact_addr): ... this.
	(is_mips_addr, is_mips16_addr, is_micromips_addr): New
	functions.
	(mips_elf_make_msymbol_special): Handle microMIPS code.
	(msymbol_is_special): Rename to...
	(msymbol_is_mips16): ... this.
	(mips_make_symbol_special, mips_pc_is_mips16): Update
	accordingly.
	(msymbol_is_mips, msymbol_is_micromips): New functions.
	(mips16_to_32_reg): Rename to...
	(mips_reg3_to_reg): ... this.
	(mips_pc_is_mips, mips_pc_is_micromips): New functions.
	(mips_pc_isa): Likewise.
	(mips_read_pc, mips_unwind_pc, mips_write_pc): Handle microMIPS
	code.
	(mips_fetch_instruction): Pass return status instead of printing
	an error message if requested.  Handle microMIPS code.  Bail out
	on an invalid ISA.
	(micromips_op): New macro.
	(b0s4_imm, b0s5_imm, b0s5_reg, b0s7_imm, b0s10_imm): Likewise.
	(b1s9_imm, b2s3_cc, b4s2_regl, b5s5_op, b5s5_reg): Likewise.
	(b6s4_op, b7s3_reg): Likewise.
	(b0s6_op, b0s11_op, b0s12_imm, b0s16_imm, b0s26_imm): Likewise.
	(b6s10_ext, b11s5_reg, b12s4_op): Likewise.
	(mips_insn_size): New function.
	(mips32_next_pc): Update mips_fetch_instruction call.
	(micromips_relative_offset7): New function.
	(micromips_relative_offset10): Likewise.
	(micromips_relative_offset16): Likewise.
	(micromips_pc_insn_size): Likewise.
	(micromips_bc1_pc): Likewise.
	(micromips_next_pc): Likewise.
	(unpack_mips16): Update mips_fetch_instruction call.
	(extended_mips16_next_pc): Update according to change to
	mips16_to_32_reg.
	(mips_next_pc): Update mips_pc_is_mips16 call.  Handle microMIPS
	code.
	(mips16_scan_prologue): Update mips_fetch_instruction call.
	Update according to change to mips16_to_32_reg.
	(mips_insn16_frame_sniffer): Update mips_pc_is_mips16 call.
	(mips_insn16_frame_base_sniffer): Likewise.
	(micromips_decode_imm9): New function.
	(micromips_scan_prologue): Likewise.
	(mips_micro_frame_cache): Likewise.
	(mips_micro_frame_this_id): Likewise.
	(mips_micro_frame_prev_register): Likewise.
	(mips_micro_frame_sniffer): Likewise.
	(mips_micro_frame_unwind): New variable.
	(mips_micro_frame_base_address): New function.
	(mips_micro_frame_base): New variable.
	(mips_micro_frame_base_sniffer): New function.
	(mips32_scan_prologue): Update mips_fetch_instruction call.
	(mips_insn32_frame_sniffer): Check for the standard MIPS ISA
	rather than for MIPS16.
	(mips_insn32_frame_base_sniffer): Likewise.
	(mips_addr_bits_remove): Handle microMIPS code.
	(deal_with_atomic_sequence): Rename to...
	(mips_deal_with_atomic_sequence): ... this.  Update the type
	of the variable used to hold an instruction.  Remove the ISA bit
	check.  Update mips_fetch_instruction call.
	(micromips_deal_with_atomic_sequence): New function.
	(deal_with_atomic_sequence): Likewise.
	(mips_about_to_return): Handle microMIPS code.  Update
	mips_fetch_instruction call.
	(heuristic_proc_start): Check for the standard MIPS ISA rather
	than for MIPS16.  Update mips_pc_is_mips16 and
	mips_fetch_instruction calls.  Handle microMIPS code.
	(mips_push_dummy_code): Handle microMIPS code.
	(mips_eabi_push_dummy_call): Likewise.
	(mips_o32_return_value): Update mips_pc_is_mips16 call.
	(mips_o64_push_dummy_call): Handle microMIPS code.
	(mips_o64_return_value): Update mips_pc_is_mips16 call.
	(is_delayed): Remove function.
	(mips_single_step_through_delay): Replace the call to is_delayed
	with mips32_instruction_has_delay_slot.  Correct MIPS16 handling.
	Handle microMIPS code.
	(mips_skip_prologue): Update mips_pc_is_mips16 call.  Handle
	microMIPS code.
	(mips32_in_function_epilogue_p): Update mips_fetch_instruction
	call.
	(micromips_in_function_epilogue_p): New function.
	(mips16_in_function_epilogue_p): Update mips_fetch_instruction
	call.
	(mips_in_function_epilogue_p): Update mips_pc_is_mips16 call.
	Handle microMIPS.
	(gdb_print_insn_mips): Likewise.
	(mips_breakpoint_from_pc): Likewise.
	(mips_remote_breakpoint_from_pc): New function.
	(mips32_instruction_has_delay_slot): Simplify making use of the
	updated mips_fetch_instruction interface.
	(micromips_instruction_has_delay_slot): New function.
	(mips16_instruction_has_delay_slot): Simplify making use of the
	updated mips_fetch_instruction interface.
	(mips_adjust_breakpoint_address): Check for the standard MIPS
	ISA rather than for MIPS16 ISA.  Update for unmake_compact_addr
	calls.  Handle microMIPS code.
	(mips_get_mips16_fn_stub_pc): Update mips_fetch_instruction call.
	(mips_skip_trampoline_code): Handle microMIPS code.
	(global_mips_compression): New function.
	(mips_gdbarch_init): Handle the compressed ISA setting from ELF
	file flags.  Register the microMIPS remote breakpoint handler
	and heuristic frame unwinder.
	(show_mips_compression): New function.
	(_initialize_mips_tdep): Add the "set mips compression" and
	"show mips compression" commands.

2012-05-18  Sergio Durigan Junior  <sergiodj@redhat.com>

	* ada-lang.c:
	* ada-tasks.c:
	* ada-varobj.c:
	* amd64-darwin-tdep.c:
	* arm-symbian-tdep.c:
	* arm-tdep.c:
	* avr-tdep.c:
	* ax-gdb.c:
	* bfin-linux-tdep.c:
	* breakpoint.c:
	* c-valprint.c:
	* cli/cli-cmds.c:
	* coffread.c:
	* cp-support.c:
	* cris-tdep.c:
	* dwarf2-frame-tailcall.c:
	* dwarf2-frame.c:
	* dwarf2expr.c:
	* dwarf2loc.c:
	* dwarf2read.c:
	* elfread.c:
	* eval.c:
	* expprint.c:
	* f-valprint.c:
	* frv-tdep.c:
	* h8300-tdep.c:
	* hppa-hpux-tdep.c:
	* hppa-tdep.c:
	* hppanbsd-tdep.c:
	* i386-nto-tdep.c:
	* i386-tdep.c:
	* i387-tdep.c:
	* ia64-tdep.c:
	* jit.c:
	* linespec.c:
	* linux-tdep.c:
	* lm32-tdep.c:
	* m2-valprint.c:
	* m32c-tdep.c:
	* m32r-rom.c:
	* m32r-tdep.c:
	* m68k-tdep.c:
	* m68klinux-tdep.c:
	* mi/mi-main.c:
	* microblaze-tdep.c:
	* mips-linux-tdep.c:
	* mips-tdep.c:
	* mn10300-tdep.c:
	* p-valprint.c:
	* parse.c:
	* ppc-linux-tdep.c:
	* ppc-sysv-tdep.c:
	* printcmd.c:
	* python/py-finishbreakpoint.c:
	* python/py-inferior.c:
	* python/py-infthread.c:
	* python/py-type.c:
	* python/python.c:
	* remote-fileio.c:
	* remote-m32r-sdi.c:
	* remote-mips.c:
	* reverse.c:
	* rl78-tdep.c:
	* rs6000-aix-tdep.c:
	* rs6000-tdep.c:
	* s390-tdep.c:
	* score-tdep.c:
	* sh64-tdep.c:
	* skip.c:
	* solib-darwin.c:
	* solib-dsbt.c:
	* solib-frv.c:
	* sparc-tdep.c:
	* spu-multiarch.c:
	* spu-tdep.c:
	* stack.c:
	* symfile.c:
	* symtab.c:
	* tic6x-tdep.c:
	* tracepoint.c:
	* v850-tdep.c:
	* valarith.c:
	* valprint.c:
	* value.c:
	* xcoffread.c:
	* xtensa-tdep.c:
	* ada-lang.c:
	* ada-tasks.c:
	* ada-varobj.c:
	* amd64-darwin-tdep.c:
	* arm-symbian-tdep.c:
	* arm-tdep.c: Delete unused variables.

2012-05-18  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Rename $ddir to $datadir.
	* NEWS (--with-auto-load-dir): Rename $ddir to $datadir.
	* auto-load.c (auto_load_safe_path_vec_update)
	(auto_load_gdb_datadir_changed, auto_load_objfile_script): Likewise.
	* configure: Regenerate.
	* configure.ac (--with-auto-load-dir, --with-auto-load-safe-path):
	Likewise.  Remove the 'use $ddir' help string.

2012-05-18  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* auto-load.c (show_auto_load_safe_path): Accept any combination of
	DIRNAME_SEPARATOR and IS_DIR_SEPARATOR for wild-match.

2012-05-18  Tom Tromey  <tromey@redhat.com>

	PR exp/13907:
	* valprint.h (struct value_print_options) <symbol_print>: New
	field.
	* valprint.c (user_print_options): Add default for symbol_print.
	(show_symbol_print): New function.
	(generic_val_print): Respect symbol_print.
	(_initialize_valprint): Add "print symbol" setting.
	* f-valprint.c (f_val_print): Respect symbol_print.
	* c-valprint.c (c_val_print): Respect symbol_print.
	* NEWS: Update.
	* printcmd.c (print_address_symbolic): Return int.  Ignore some
	zero-size symbols.
	(print_address_demangle): Return int.
	* defs.h: (print_address_symbolic): Return int.
	* value.h (print_address_demangle): Return int.

2012-05-18  Tom Tromey  <tromey@redhat.com>

	* valprint.c (val_print_string): Don't print leading space.
	* p-valprint.c (pascal_val_print) <TYPE_CODE_PTR>: Optionally
	print space before string or vtbl.
	* m2-valprint.c (print_unpacked_pointer): Optionally print space
	before string.
	* jv-valprint.c (java_value_print): Print space before string.
	* go-valprint.c (print_go_string): Print space before string.
	* f-valprint.c (f_val_print) <TYPE_CODE_PTR>: Optionally print
	space before string.
	* c-valprint.c (c_val_print) <TYPE_CODE_PTR>: Optionally print
	space before string or vtbl.
	* auxv.c (fprint_target_auxv): Print space after address.

2012-05-18  Tom Tromey  <tromey@redhat.com>

	* printcmd.c (print_address_demangle): Remove special case for 0.

2012-05-18  Tom Tromey  <tromey@redhat.com>

	* printcmd.c (print_address_demangle): Add 'opts' argument.
	* p-valprint.c (pascal_val_print): Update.
	* jv-valprint.c (java_val_print): Update.
	* value.h: Update.
	* valprint.c (generic_val_print): Update.
	(print_function_pointer_address): Add 'options' argument.  Remove
	'addressprint' argument.  Update.
	* m2-valprint.c (print_unpacked_pointer): Update.
	* gnu-v3-abi.c (print_one_vtable): Update.
	(gnuv3_print_method_ptr): Update.
	* f-valprint.c (f_val_print): Update.
	* cp-valprint.c (cp_print_value_fields): Update.
	* valprint.h (print_function_pointer_address): Update.
	* c-valprint.c (c_val_print): Update.

2012-05-18  Tom Tromey  <tromey@redhat.com>

	* psymtab.c (find_pc_sect_symtab_from_partial): Return the symtab
	directly corresponding to the found psymtab.
	* dwarf2read.c (recursively_find_pc_sect_symtab): New function.
	(dw2_find_pc_sect_symtab): Use it.
	* block.h (blockvector_contains_pc): Declare.
	* block.c (find_block_in_blockvector): New function.
	(blockvector_for_pc_sect): Use it.
	(blockvector_contains_pc): New function.

2012-05-18  Maciej W. Rozycki  <macro@codesourcery.com>

	* mips-tdep.h (mips_write_pc): New prototype.
	* mips-tdep.c (mips_write_pc): Make external, add description.
	* mips-linux-tdep.c (mips_linux_write_pc): Use mips_write_pc,
	add description.

2012-05-18  Maciej W. Rozycki  <macro@codesourcery.com>

	* mips-tdep.c (mips_read_pc): Use gdbarch_pc_regnum instead of
	mips_regnum->pc.
	(mips_unwind_pc, mips_write_pc): Likewise.
	(mips_gdbarch_init): Remove a comment on gdbarch_pc_regnum and
	gdbarch_read_pc.

2012-05-17  Joel Brobecker  <brobecker@adacore.com>

	* procfs.c (procfs_find_new_threads, procfs_pid_to_str,
	proc_warn, proc_error, proc_get_status, proc_flags,
	proc_why, proc_what, proc_nsysarg, proc_sysargs,
	proc_set_run_on_last_close, proc_unset_run_on_last_close,
	proc_unset_inherit_on_fork, proc_set_async, proc_unset_async,
	proc_stop_process, proc_wait_for_stop, proc_run_process,
	proc_set_traced_signals, proc_set_traced_faults,
	proc_set_traced_sysentry, proc_set_traced_sysexit,
	proc_set_held_signals, proc_get_held_signals,
	proc_get_traced_signals, proc_get_traced_faults,
	proc_get_traced_sysentry, proc_get_traced_sysexit,
	proc_clear_current_fault, proc_set_current_signal,
	proc_clear_current_signal, proc_get_gregs, proc_get_fpregs,
	proc_set_gregs, proc_set_fpregs, proc_kill, proc_parent_pid,
	proc_get_nthreads, proc_get_nthreads, proc_get_nthreads,
	proc_get_current_thread, proc_get_current_thread,
	proc_get_current_thread, proc_update_threads,
	proc_update_threads, proc_update_threads, proc_update_threads,
	proc_iterate_over_threads, procfs_find_new_threads,
	procfs_pid_to_str): Make static.  Remove advance declaration.
	(proc_cursig): Make static.  Conditionalized defintion on
	PROCFS_DONT_PIOCSSIG_CURSIG being defined.
	(proc_syscall, proc_set_kill_on_last_close,
	proc_unset_kill_on_last_close, proc_set_inherit_on_fork,
	proc_get_pending_signals, proc_get_signal_actions,
	proc_trace_signal, proc_ignore_signal): Delete.

2012-05-16  Sergio Durigan Junior  <sergiodj@redhat.com>

	* coffread.c (cs_section_address): Passing proper argument for
	`bfd_get_section_vma'.
	* dwarf2read.c (dwarf2_locate_sections): Likewise, for
	`bfd_get_section_flags'.
	* remote.c (remote_trace_set_readonly_regions): Likewise, for
	`bfd_get_section_vma'.

2012-05-16  Tom Tromey  <tromey@redhat.com>

	PR macros/13205:
	* macrotab.h: (macro_define_special): Declare.
	(enum macro_special_kind): New.
	(struct macro_definition) <argc, replacement>: Update comments.
	* macrotab.c (new_macro_definition): Unconditionally set 'argc'.
	(macro_define_object_internal): New function.
	(macro_define_object): Use it.
	(macro_define_special): New function.
	(fixup_definition): New function.
	(macro_lookup_definition, foreach_macro_in_scope)
	(foreach_macro): Use fixup_definition.
	* macroexp.h (macro_stringify): Declare.
	* macroexp.c (free_buffer_return_text): New function.
	(stringify): Constify "arg".
	(macro_stringify): New function.
	* dwarf2read.c (macro_start_file): Call macro_define_special.

2012-05-16  Maciej W. Rozycki  <macro@codesourcery.com>
	    Maciej W. Rozycki  <macro@mips.com>

	* breakpoint.h (bp_location): Add related_address member.
	* inferior.h (get_return_value): Take a pointer to struct value
	instead of struct type for the function requested.
	* value.h (using_struct_return): Likewise.
	* gdbarch.sh (return_value): Take a pointer to struct value
	instead of struct type for the function requested.
	* breakpoint.c (set_breakpoint_location_function): Initialize
	related_address for bp_gnu_ifunc_resolver breakpoints.
	* elfread.c (elf_gnu_ifunc_resolver_return_stop): Pass the
	requested function's address to gdbarch_return_value.
	* eval.c (evaluate_subexp_standard): Pass the requested
	function's address to using_struct_return.
	* infcall.c (call_function_by_hand): Pass the requested
	function's address to using_struct_return and
	gdbarch_return_value.
	* infcmd.c (get_return_value): Take a pointer to struct value
	instead of struct type for the function requested.
	(print_return_value): Update accordingly.
	(finish_command_continuation): Likewise.
	* stack.c (return_command): Pass the requested function's
	address to using_struct_return and gdbarch_return_value.
	* value.c (using_struct_return): Take a pointer to struct value
	instead of struct type for the function requested.  Pass the
	requested function's address to gdbarch_return_value.
	* python/py-finishbreakpoint.c (finish_breakpoint_object):
	New function_value member, replacing function_type.
	(bpfinishpy_dealloc): Update accordingly.
	(bpfinishpy_pre_stop_hook): Likewise.
	(bpfinishpy_init): Likewise.  Record the requested function's
	address.
	* mips-tdep.c (mips_fval_reg): New enum.
	(mips_o32_push_dummy_call): For MIPS16 FP doubles do not swap
	words put in GP registers.
	(mips_o64_push_dummy_call): Update a comment.
	(mips_o32_return_value): Take a pointer to struct value instead
	of struct type for the function requested and use it to check if
	using the MIPS16 calling convention.  Return the designated
	general purpose registers for floating-point values returned in
	MIPS16 mode.
	(mips_o64_return_value): Likewise.
	* ppc-tdep.h (ppc_sysv_abi_return_value): Update prototype.
	(ppc_sysv_abi_broken_return_value): Likewise.
	(ppc64_sysv_abi_return_value): Likewise.
	* alpha-tdep.c (alpha_return_value): Take a pointer to struct
	value instead of struct type for the function requested.
	* amd64-tdep.c (amd64_return_value): Likewise.
	* amd64-windows-tdep.c (amd64_windows_return_value): Likewise.
	* arm-tdep.c (arm_return_value): Likewise.
	* avr-tdep.c (avr_return_value): Likewise.
	* bfin-tdep.c (bfin_return_value): Likewise.
	* cris-tdep.c (cris_return_value): Likewise.
	* frv-tdep.c (frv_return_value): Likewise.
	* h8300-tdep.c (h8300_return_value): Likewise.
	(h8300h_return_value): Likewise.
	* hppa-tdep.c (hppa32_return_value): Likewise.
	(hppa64_return_value): Likewise.
	* i386-tdep.c (i386_return_value): Likewise.
	* ia64-tdep.c (ia64_return_value): Likewise.
	* iq2000-tdep.c (iq2000_return_value): Likewise.
	* lm32-tdep.c (lm32_return_value): Likewise.
	* m32c-tdep.c (m32c_return_value): Likewise.
	* m32r-tdep.c (m32r_return_value): Likewise.
	* m68hc11-tdep.c (m68hc11_return_value): Likewise.
	* m68k-tdep.c (m68k_return_value): Likewise.
	(m68k_svr4_return_value): Likewise.
	* m88k-tdep.c (m88k_return_value): Likewise.
	* mep-tdep.c (mep_return_value): Likewise.
	* microblaze-tdep.c (microblaze_return_value): Likewise.
	* mn10300-tdep.c (mn10300_return_value): Likewise.
	* moxie-tdep.c (moxie_return_value): Likewise.
	* mt-tdep.c (mt_return_value): Likewise.
	* ppc-linux-tdep.c (ppc_linux_return_value): Likewise.
	* ppc-sysv-tdep.c (ppc_sysv_abi_return_value): Likewise.
	(ppc_sysv_abi_broken_return_value): Likewise.
	(ppc64_sysv_abi_return_value): Likewise.
	* ppcnbsd-tdep.c (ppcnbsd_return_value): Likewise.
	* rl78-tdep.c (rl78_return_value): Likewise.
	* rs6000-aix-tdep.c (rs6000_return_value): Likewise.
	* rx-tdep.c (rx_return_value): Likewise.
	* s390-tdep.c (s390_return_value): Likewise.
	* score-tdep.c (score_return_value): Likewise.
	* sh-tdep.c (sh_return_value_nofpu): Likewise.
	(sh_return_value_fpu): Likewise.
	* sh64-tdep.c (sh64_return_value): Likewise.
	* sparc-tdep.c (sparc32_return_value): Likewise.
	* sparc64-tdep.c (sparc64_return_value): Likewise.
	* spu-tdep.c (spu_return_value): Likewise.
	* tic6x-tdep.c (tic6x_return_value): Likewise.
	* v850-tdep.c (v850_return_value): Likewise.
	* vax-tdep.c (vax_return_value): Likewise.
	* xstormy16-tdep.c (xstormy16_return_value): Likewise.
	* xtensa-tdep.c (xtensa_return_value): Likewise.
	* gdbarch.c: Regenerate.
	* gdbarch.h: Regenerate.

2012-05-15  Tom Tromey  <tromey@redhat.com>

	* python/python.c (gdbpy_find_pc_line): Use gdb_py_ulongest.

2012-05-15  Joel Brobecker  <brobecker@adacore.com>

	* breakpoint.c (init_breakpoint_sal): Add quotes around part
	of command in two error message.

2012-05-15  Joel Brobecker  <brobecker@adacore.com>

	* breakpoint.c (init_breakpoint_sal): Remove trailing spaces.

2012-05-15  Joel Brobecker  <brobecker@adacore.com>

	* breakpoint.c (find_condition_and_thread): Minor reformatting.

2012-05-15  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* NEWS (show auto-load scripts-directory): Add forgotten command.

2012-05-15  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* spu-tdep.c (spu_catch_start): Update create_breakpoint caller
	parameters.

2012-05-14  H.J. Lu  <hongjiu.lu@intel.com>

	* amd64-tdep.c: Include features/i386/x32.c and
	features/i386/x32-avx.c.
	(_initialize_amd64_tdep): Call initialize_tdesc_x32 and
	initialize_tdesc_x32_avx.

2012-05-14  Stan Shebs  <stan@codesourcery.com>

	Add dynamic printf.
	* breakpoint.h (enum bptype): New type bp_dprintf.
	(struct breakpoint): New field extra_string.
	(struct breakpoint_ops): Add arg to create_breakpoints_sal.
	(create_breakpoint): Add extra_string arg.
	* breakpoint.c (dprintf_breakpoint_ops): New.
	(is_breakpoint): Add bp_dprintf.
	(bpstat_what): Add dprintf case.
	(bptype_string): Ditto.
	(print_one_breakpoint_location): Ditto.
	(init_bp_location): Ditto.
	(bkpt_print_mention): Ditto.
	(dprintf_style_enums): New array.
	(dprintf_style): New global.
	(dprintf_function): New global.
	(dprintf_channel): New global.
	(update_dprintf_command_list): New function.
	(update_dprintf_commands): New function.
	(init_breakpoint_sal): Add extra_string argument, handle it.
	(create_breakpoint_sal): Add extra_string argument.
	(create_breakpoints_sal): Add extra_string argument, update callers.
	(find_condition_and_thread): Add extra argument.
	(create_breakpoint): Add extra_string argument, record it.
	(dprintf_command): New function.
	(break_command_1): Add arg to create_breakpoint call.
	(handle_gnu_v3_exceptions): Ditto.
	(trace_command): Ditto.
	(ftrace_command): Ditto.
	(strace_command): Ditto.
	(bkpt_print_mention): Add dprintf case.
	(create_breakpoint_sal_default): Add extra_string argument.
	(_initialize_breakpoint): Add new commands.
	* mi/mi-cmd-break.c (mi_cmd_break_insert): Add arg to call.
	* python/py-breakpoint.c (bppy_init): Ditto.
	* python/py-finishbreakpoint.c (bpfinishpy_init): Ditto.

2012-05-14  Maciej W. Rozycki  <macro@codesourcery.com>

	* mips-tdep.c (mips_push_dummy_code): Correct description typo.

2012-05-14  Siva Chandra Reddy  <sivachandra@google.com>

	* python/python.c (gdbpy_find_pc_line): Use ULONGEST instead of
	unsigned long long.

2012-05-13  Siva Chandra Reddy  <sivachandra@google.com>

	Add a new function gdb.find_pc_line to the Python API.
	* NEWS (Python Scripting): Add entry about the new function.
	* python/python.c (gdbpy_find_pc_line): New function which
	implements gdb.find_pc_line.
	(GdbMethods): Add entry for the new function.

2012-05-12  Pedro Alves  <palves@redhat.com>

	* amd64-linux-tdep.c (_initialize_amd64_linux_tdep): Call
	initialize_tdesc_x32_linux and initialize_tdesc_x32_avx_linux.

2012-05-12  Eli Zaretskii  <eliz@gnu.org>

	* inferior.c: Include completer.h
	(initialize_inferiors): Set completer of add-inferior to
	filename_completer.

2012-05-11  H.J. Lu  <hongjiu.lu@intel.com>

	* amd64-linux-tdep.c (amd64_linux_core_read_description): Check
	gdbarch_ptr_bit for x32 core dump.

2012-05-11  H.J. Lu  <hongjiu.lu@intel.com>

	* amd64-linux-tdep.c: Include features/i386/x32-linux.c
	and features/i386/x32-avx-linux.c.

2012-05-11  Stan Shebs  <stan@codesourcery.com>
	    Kwok Cheung Yeung  <kcy@codesourcery.com>

	* NEWS: Describe new info os commands.
	* common/linux-osdata.c (PID_T, TIME_T): Define.
	(MAX_PID_T_STRLEN): New.
	(linux_common_core_of_thread): Add comment.  Change to use PID_T and
	MAX_PID_T_STRLEN.
	(command_from_pid): Add comment.  Change to use PID_T.
	(commandline_from_pid):  Change to use PID_T.
	(user_from_pid): Add comment.
	(get_process_owner): Add comment. Change to use PID_T and
	MAX_PID_T_STRLEN.
	(get_number_of_cpu_cores): Add comment.
	(get_cores_used_by_process): Add comment.  Change to use PID_T and
	MAX_PID_T_STRLEN.
	(linux_xfer_osdata_processes): Change to use PID_T and
	MAX_PID_T_STRLEN.
	(compare_processes): New function.
	(linux_xfer_osdata_processgroups): New function.
	(linux_xfer_osdata_threads): Change to use PID_T.
	(linux_xfer_osdata_fds): New function.
	(format_socket_state, print_sockets): New functions.
	(union socket_addr): New union.
	(linux_xfer_osdata_isockets): New function.
	(time_from_time_t, group_from_gid): New functions.
	(linux_xfer_osdata_shm): New function.
	(linux_xfer_osdata_sem): New function.
	(linux_xfer_osdata_msg): New function.
	(linux_xfer_osdata_modules): New function.
	(osdata_table): Add new entries.
	* common/buffer.c (buffer_xml_printf): Add support for long and
	long long format specifiers.

2012-05-11  H.J. Lu  <hongjiu.lu@intel.com>

	* amd64-linux-tdep.h (tdesc_x32_linux): New.
	(tdesc_x32_avx_linux): Likewise.

2012-05-11  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Implement multi-component --with-auto-load-dir.
	* NEWS (set auto-load scripts-directory, --with-auto-load-dir): New
	entries.
	(--with-auto-load-safe-path): Update the default value description.
	* auto-load.c (auto_load_dir, set_auto_load_dir, show_auto_load_dir):
	New.
	(auto_load_objfile_script): Add DEBUG_AUTO_LOAD output.  Remove
	GDB_DATADIR NULL check.  Replace GDB_DATADIR/auto-load by
	AUTO_LOAD_DIR.  Support $ddir and multiple components in it.
	(_initialize_auto_load): Initialize also auto_load_dir.  Install new
	"set auto-load scripts-directory".
	* config.in: Regenerate.
	* configure: Regenerate.
	* configure.ac (--with-auto-load-dir): New configure option.
	(--auto-load-safe-path): Change the default to --with-auto-load-dir.

2012-05-11  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Provide $ddir substitution for --with-auto-load-safe-path.
	* NEWS (--with-auto-load-safe-path, --without-auto-load-safe-path): New
	entries.
	* auto-load.c: Include observer.h.
	(auto_load_safe_path_vec_update): Call substitute_path_component for
	each component.  New variable ddir_subst.
	(auto_load_gdb_datadir_changed): New function.
	(set_auto_load_safe_path): Rename DEFAULT_AUTO_LOAD_SAFE_PATH to
	AUTO_LOAD_SAFE_PATH.  New comment.
	(_initialize_auto_load): Rename DEFAULT_AUTO_LOAD_SAFE_PATH to
	AUTO_LOAD_SAFE_PATH.  Install auto_load_gdb_datadir_changed.
	* config.in: Regenerate.
	* configure: Regenerate.
	* configure.ac (--auto-load-safe-path): Rename
	DEFAULT_AUTO_LOAD_SAFE_PATH to AUTO_LOAD_SAFE_PATH.  Default to
	GDB_DATADIR/auto-load.
	* defs.h (substitute_path_component): New declaration.
	* top.c: Include observer.h.
	(set_gdb_datadir): New function.
	(init_main): Install it for "set data-directory".
	* utils.c (substitute_path_component): New function.

2012-05-11  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Make auto-load handle multiple components of DEBUG_FILE_DIRECTORY.
	* auto-load.c (auto_load_objfile_script): Remove check for NULL
	DEBUG_FILE_DIRECTORY.  Handle multiple components of
	DEBUG_FILE_DIRECTORY.

2012-05-10  Tom Tromey  <tromey@redhat.com>

	* dwarf2read.c (recursively_write_psymbols): New function.
	(write_psymtabs_to_index): Use it.

	* dwarf2read.c (struct dwarf2_queue_item) <pretend_language>: New
	field.
	(load_cu, dw2_do_instantiate_symtab, process_psymtab_comp_unit)
	(load_partial_comp_unit): Update.
	(queue_comp_unit): Add argument 'pretend_language'.
	(process_queue): Update.
	(psymtab_to_symtab_1): Skip dependencies that have a user.
	(load_partial_comp_unit_reader): Give meaning to the 'data'
	argument.
	(load_full_comp_unit): Add 'pretend_language' argument.
	(process_full_comp_unit): Add 'pretend_language' argument.  Set
	language on CU.
	(process_imported_unit_die, read_file_scope, read_type_unit_scope):
	Update.
	(maybe_queue_comp_unit): Add 'pretend_language' argument.
	(follow_die_offset, follow_die_sig, read_signatured_type_reader):
	Update.
	(prepare_one_comp_unit): Add 'pretend_language' argument.

	* dwarf2read.c: (dwarf2_per_cu_ptr): New typedef.
	(struct dwarf2_per_objfile) <just_read_cus>: New field.
	(struct dwarf2_per_cu_data) <imported_symtabs>: New field.
	(dw2_do_instantiate_symtab): Check whether symtab was read in
	before queueing.
	(dw2_instantiate_symtab): Add assertion.  Call
	process_cu_includes.
	(process_psymtab_comp_unit): Compute 'dependencies' for psymtab.
	(partial_symtab_p): New typedef.
	(set_partial_user): New function.
	(dwarf2_build_psymtabs_hard): Use set_partial_user.
	(scan_partial_symbols): Add imported CU to imported_symtabs.
	(dwarf2_psymtab_to_symtab): Call process_cu_includes.
	(psymtab_to_symtab_1): Do nothing if psymtab is readin.
	(get_symtab, recursively_compute_inclusions)
	(compute_symtab_includes, process_cu_includes)
	(process_imported_unit_die): New functions.
	(process_die) <DW_TAG_imported_unit>: New case.
	(dwarf2_per_objfile_free): Free 'imported_symtabs'.

	* dwarf2read.c (struct dwarf2_per_cu_data) <psymtab>: Update
	comment.
	(struct partial_die_info) <locdesc>: Remove.
	<d>: New field.
	(process_psymtab_comp_unit): Add 'read_partial' argument.
	Update.
	(process_type_comp_unit, dwarf2_build_psymtabs_hard): Update.
	(scan_partial_symbols): Handle DW_TAG_imported_unit.
	(add_partial_symbol): Update.
	(process_die): Handle DW_TAG_partial_unit.
	(read_file_scope): Update comment.
	(load_partial_dies): Handle DW_TAG_imported_unit.
	(read_partial_die): Handle DW_TAG_partial_unit, DW_AT_import.
	(determine_prefix, dwarf2_name): Handle DW_TAG_partial_unit.

2012-05-10  Tom Tromey  <tromey@redhat.com>

	* cc-with-dwz.sh: New file.

2012-05-10  Tom Tromey  <tromey@redhat.com>

	* symtab.h (struct symtab) <includes, user>: New fields.
	* block.h (struct block_iterator) <d, idx, which>: New fields.
	* block.c (initialize_block_iterator, find_iterator_symtab)
	(block_iterator_step, block_iter_name_step)
	(block_iter_match_step): New functions.
	(block_iterator_first, block_iterator_next)
	(block_iter_name_first, block_iter_name_next)
	(block_iter_match_first, block_iter_match_next): Rewrite.
	(get_block_symtab): New function.

2012-05-10  Tom Tromey  <tromey@redhat.com>

	* jv-lang.c (get_java_class_symtab): Use allocate_global_block,
	set_block_symtab.
	* jit.c (finalize_symtab): Use allocate_global_block,
	set_block_symtab.
	* buildsym.c (finish_block_internal): New function, from old
	finish_block.
	(finish_block): Rewrite.
	(end_symtab): Use finish_block_internal, set_block_symtab.
	* block.h (struct global_block): New.
	(allocate_global_block, set_block_symtab): Declare.
	* block.c (allocate_global_block, set_block_symtab): New
	functions.

2012-05-10  Tom Tromey  <tromey@redhat.com>

	* psymtab.c (partial_map_expand_apply): Add assertion.
	(partial_map_symtabs_matching_filename): Skip included psymtabs.
	(psymtab_to_symtab): Find unshared psymtab.
	(dump_psymtab): Print including psymtabs.
	(recursively_search_psymtabs): New function.
	(expand_symtabs_matching_via_partial): Use it.
	* psympriv.h (struct partial_symtab) <user, searched_flag>: New
	fields.
	(enum psymtab_search_status): New.

2012-05-10  Tom Tromey  <tromey@redhat.com>

	* tracepoint.c (scope_info): Update.
	* symtab.c (lookup_block_symbol, iterate_over_symbols)
	(find_pc_sect_symtab, search_symbols)
	(default_make_symbol_completion_list_break_on)
	(make_file_symbol_completion_list): Update.
	* symmisc.c (dump_symtab_1): Update.
	* stack.c (print_frame_args, iterate_over_block_locals)
	(print_frame_labels, iterate_over_block_arg_vars): Update.
	* python/py-block.c (block_object) <dict>: Remove.
	<block>: New field.
	<iter>: Change type.
	(blpy_iter): Update.
	(blpy_block_syms_iternext): Update.
	* psymtab.c (map_block): Use block iterators.
	* objfiles.c (objfile_relocate1): Use ALL_DICT_SYMBOLS.
	* mi/mi-cmd-stack.c (list_args_or_locals): Update.
	* mdebugread.c (parse_symbol, mylookup_symbol): Update.
	* infrun.c (check_exception_resume): Update.
	* cp-support.c (make_symbol_overload_list_block): Update.
	* coffread.c (patch_opaque_types): Update.
	* buildsym.c (finish_block, end_symtab): Use ALL_DICT_SYMBOLS.
	* block.h (struct block_iterator): New.
	(block_iterator_first, block_iterator_next, block_iter_name_first)
	(block_iter_name_next, block_iter_match_first)
	(block_iter_match_next): Declare.
	(ALL_BLOCK_SYMBOLS): Redefine.
	* block.c (block_iterator_first, block_iterator_next)
	(block_iter_name_first, block_iter_name_next)
	(block_iter_match_first, block_iter_match_next): New functions.
	* ada-lang.c (ada_add_block_symbols)
	(ada_make_symbol_completion_list): Use block iterator.

2012-05-10  Tom Tromey  <tromey@redhat.com>

	* psymtab.c (PSYMTAB_TO_SYMTAB): Remove.
	(find_pc_sect_symtab_from_partial, lookup_symbol_aux_psymtabs)
	(lookup_partial_symbol, find_last_source_symtab_from_partial)
	(read_psymtabs_with_filename, map_matching_symbols_psymtab)
	(expand_symtabs_matching_via_partial, maintenance_check_symtabs):
	Update.

2012-05-10  Joel Brobecker  <brobecker@adacore.com>

	* config/djgpp/fnchange.lst: Add entries for print-file-var-lib1.c,
	print-file-var-lib2.c, print-file-var-main.c and
	print-file-var.exp (located in gdb/testsuite/gdb.base).

2012-05-10  Joel Brobecker  <brobecker@adacore.com>

	* findvar.c (default_read_var_value): For LOC_UNRESOLVED symbols,
	try locating the symbol in the symbol's own objfile first, before
	extending the search to all objfiles.
	* symtab.c (lookup_symbol_aux_objfile): New function, extracted
	out of lookup_symbol_aux_symtabs.
	(lookup_symbol_aux_symtabs): Add new parameter "exclude_objfile".
	Replace extracted-out code by call to lookup_symbol_aux_objfile.
	Do not search EXCLUDE_OBJFILE.
	(lookup_static_symbol_aux): Update call to lookup_symbol_aux_symtabs.
	(lookup_symbol_global): Search for matches in the block's objfile
	first, before searching all other objfiles.

2012-05-10  Tristan Gingold  <gingold@adacore.com>

	* printcmd.c (set_command): Add pre/post inc/dec.

2012-05-09  Frank Ch. Eigler  <fche@redhat.com>

	* gdb.1: Document -ex option.

2012-05-09  Joel Brobecker  <brobecker@adacore.com>

	* infcall.c (call_function_by_hand): Remove AT_SYMBOL handling.
	* inferior.h (AT_SYMBOL): Delete.

2012-05-09  Joel Brobecker  <brobecker@adacore.com>

	* mips-tdep.c (mips_push_dummy_code): New function.
	(mips_gdbarch_init): Set the gdbarch call_dummy_location to
	ON_STACK and install mips_push_dummy_code as our gdbarch
	push_dummy_code routine.

2012-05-09  Pedro Alves  <palves@redhat.com>

	* target.c (set_maintenance_target_async_permitted): Rename to ...
	(set_target_async_command): ... this.
	(show_maintenance_target_async_permitted): Rename to ...
	(show_target_async_command): ... this.
	(initialize_targets): Adjust.

2012-05-08  Doug Evans  <dje@google.com>

	* go-exp.y (classify_name): Add missing assignment of fields of
	yylval.ssym.

2012-05-08  Eli Zaretskii  <eliz@gnu.org>

	Display the ">" prompt in interactive mode while reading canned
	commands, even when the current interpreter is MI.

	* interps.c (interp_set_temp): New function.

	* interps.h (interp_set_temp): Add prototype.

	* cli/cli-script.c (restore_interp): New cleanup function.
	(read_command_lines): Temporarily override the current interpreter
	with CLI and arrange for restoring the original one.

2012-05-12  Joel Sherrill <joel.sherrill@oarcorp.com>

	* microblaze-rom.c (_initialize_picobug_rom): Add prototype.

2012-05-07  Sergio Durigan Junior  <sergiodj@redhat.com>

	* probe.c (parse_probes): Move conditional to check for
	debuginfo files from here...
	* stap-probe.c (stap_get_probes): ... to here.

2012-05-07  Mark Kettenis  <kettenis@gnu.org>
	    H.J. Lu  <hongjiu.lu@intel.com>

	* amd64-tdep.c (amd64_analyze_prologue): Additionally check for
	`movl %esp, %ebp' for the X32 ABI.

2012-05-07  Tom Tromey  <tromey@redhat.com>

	* dwarf2read.c (dwarf_tag_name): Return const char *.  Use
	get_DW_TAG_name.
	(dwarf_attr_name): Return const char *.  Use get_DW_AT_name.
	(dwarf_form_name): Return const char *.  Use get_DW_FORM_name.
	(dwarf_stack_op_name): Remove.
	(dwarf_cfi_name): Return const char *.  Use get_DW_ATE_name.
	(decode_locdesc): Use get_DW_OP_name.
	* dwarf2loc.c (unimplemented): Use get_DW_OP_name.
	(dwarf2_compile_expr_to_ax): Likewise.
	(disassemble_dwarf_expression): Likewise.
	* dwarf2expr.h: (dwarf_stack_op_name): Remove.

2012-05-07  Chung-Lin Tang  <cltang@codesourcery.com>

	* sh-linux-tdep.c: Include trad-frame.h and tramp-frame.h.
	(sh_linux_sigtramp_cache): New function.
	(sh_linux_sigreturn_init): New function.
	(sh_linux_rt_sigreturn_init): New function.
	(SH_MOVW,SH_TRAP,SH_OR_R0_R0): New symbols for instruction
	patterns.
	(SH_NR_SIGRETURN,SH_NR_RT_SIGRETURN): New symbols for sigreturn
	syscall codes.
	(sh_linux_sigreturn_tramp_frame): New tramp_frame definition.
	(sh_linux_rt_sigreturn_tramp_frame): Likewise.
	(sh_linux_init_abi): Add init calls to register new tramp_frame
	definitions under 32-bit SH, update comments.

2012-05-07  Pedro Alves  <palves@redhat.com>

	PR gdb/10952

	* amd64-linux-tdep.c: Include glibc-tdep.h.
	(amd64_linux_init_abi): Install glibc_skip_solib_resolver as
	gdbarch_skip_solib_resolver callback.

2012-05-06  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* auto-load.c (set_auto_load_safe_path): Reset AUTO_LOAD_SAFE_PATH
	back to DEFAULT_AUTO_LOAD_SAFE_PATH if it is being set to "".
	(show_auto_load_safe_path): Check any-directory by comparison with "/".
	(add_auto_load_safe_path): Change the error message.
	(_initialize_auto_load): Change the "safe-path" help text.
	* configure: Regenerate
	* configure.ac (--without-auto-load-safe-path): Set
	WITH_AUTO_LOAD_SAFE_PATH to /.

2012-05-05  Sergio Durigan Junior  <sergiodj@redhat.com>

	* stap-probe.h: Do not include unecessary `probe.h'.

2012-05-05  Alan Modra  <amodra@gmail.com>

	* elfread.c (elf_symtab_read): Use bfd_abs_section_ptr and
	bfd_und_section_ptr.
	* machoread.c (macho_symtab_add_minsym): Use bfd_abs_section_ptr
	and bfd_com_section_ptr.

2012-05-04  Joel Brobecker  <brobecker@adacore.com>

	* MAINTAINERS (Past Maintainers): Add Chris Faylor.

2012-05-04  Joel Brobecker  <brobecker@adacore.com>

	* windows-nat.h (segment_register_p_ftype): New typedef.
	(windows_set_segment_register_p): Add declaration.
	* windows-nat.c (segment_register_p): New static global.
	(windows_set_segment_register_p): New function.
	(do_windows_fetch_inferior_registers): Add special handling
	for segment registers.
	* amd64-windows-nat.c: #include "amd64-tdep.h".
	(amd64_windows_segment_register_p): New function.
	(_initialize_amd64_windows_nat): Call windows_set_segment_register_p.
	* i386-windows-nat.c: #include "i386-tdep.h".
	(i386_windows_segment_register_p): New function.
	(_initialize_i386_windows_nat): Call windows_set_segment_register_p.

2012-05-04  Tristan Gingold  <gingold@adacore.com>

	* printcmd.c (set_command): Emit a warning if the expression is not
	an assignment.

2012-05-03  Joel Brobecker  <brobecker@adacore.com>

	* nto-procfs.c (procfs_find_new_threads, procfs_pid_to_str):
	Make static.

2012-05-03  Sergio Durigan Junior  <sergiodj@redhat.com>

	* stap-probe.c (stap_is_operator): Change declaration.
	(stap_get_opcode): Change return value.
	(stap_parse_argument_1): Update calls to `stap_get_opcode' and
	`stap_parse_argument_1'.

2012-05-03  Pedro Alves  <pedro@codesourcery.com>

	* infrun.c (displaced_step_fixup): Add "displaced:" prefix to
	debug log.

2012-05-03  Siva Chandra Reddy  <sivachandra@google.com>

	Add two new methods global_block and static_block to gdb.Symtab
	objects.
	* NEWS (Python scripting): Add entry about the new methods.
	* python/py-symtab.c (stpy_global_block): New function which
	implements the gdb.Symtab.global_block() method.
	(stpy_static_block): New function which implements the
	gdb.Symtab.static_block() method.
	(symtab_object_methods): Add entries for the two new methods.

2012-05-03  Doug Evans  <dje@google.com>

	* dwarf2read.c (dw2_find_symbol_file): Don't crash if there are no
	files.

2012-05-03  Yao Qi  <yao@codesourcery.com>

	* i386-tdep.c (i386_fetch_pointer_argument): Remove extra
	space.
	(i386_process_record): Ditto.

2012-05-02  Joel Brobecker  <brobecker@adacore.com>

	* infcall.c (unwind_on_signal_p): Make static.

2012-05-02  Joel Brobecker  <brobecker@adacore.com>

	* sol-thread.c (solaris_pid_to_str): Make static.
	(_initialize_sol_thread): Add prototype.

2012-05-02  Joel Brobecker  <brobecker@adacore.com>

	* sol-thread.c (procfs_pid_to_str): Delete extern declaration.

2012-05-02  Christopher Faylor  <me.cygwin2012@cgf.cx>

	* MAINTAINERS: Remove myself.

2012-05-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix --without-auto-load-safe-path for MS-Windows host platform.
	* auto-load.c (filename_is_in_dir): Return 1 for DIR_LEN 0.

2012-05-02  Eli Zaretskii  <eliz@gnu.org>

	* gdb_curses.h: Undefine KEY_EVENT before including curses
	headers.  Move "#undef MOUSE_MOVED" before any curses header
	inclusion.

2012-05-02  Sergio Durigan Junior  <sergiodj@gmail.com>

	* features/i386/i386-mmx-linux.c: Regenerate.
	* features/rs6000/powerpc-32.c: Likewise.
	* features/rs6000/powerpc-32l.c: Likewise.
	* features/rs6000/powerpc-403.c: Likewise.
	* features/rs6000/powerpc-403gc.c: Likewise.
	* features/rs6000/powerpc-405.c: Likewise.
	* features/rs6000/powerpc-505.c: Likewise.
	* features/rs6000/powerpc-601.c: Likewise.
	* features/rs6000/powerpc-602.c: Likewise.
	* features/rs6000/powerpc-603.c: Likewise.
	* features/rs6000/powerpc-604.c: Likewise.
	* features/rs6000/powerpc-64.c: Likewise.
	* features/rs6000/powerpc-64l.c: Likewise.
	* features/rs6000/powerpc-750.c: Likewise.
	* features/rs6000/powerpc-860.c: Likewise.
	* features/rs6000/powerpc-e500.c: Likewise.
	* features/rs6000/powerpc-e500l.c: Likewise.
	* features/rs6000/powerpc-isa205-32l.c: Likewise.
	* features/rs6000/powerpc-isa205-64l.c: Likewise.
	* features/rs6000/rs6000.c: Likewise.

2012-05-02  Sergio Durigan Junior  <sergiodj@gmail.com>

	* i386-tdep.c (i386_stap_parse_special_token) <s>: Remove unused
	variable.
	* stap-probe.c (stap_parse_single_operand) <reg_suffix,
	reg_ind_suffix, reg_suffix_len, reg_ind_suffix_len>: Likewise.
	(stap_parse_argument) <e>: Likewise.
	(handle_stap_probe) <byte_order>: Likewise.

2012-04-30  Doug Evans  <dje@google.com>

	* dwarf2read.c (init_cutu_and_read_dies): Renamed from
	init_and_read_dies_worker.  All callers updated.
	(init_cu_and_read_dies, init_tu_and_read_dies): Delete.  All calls
	replaced with init_cutu_and_read_dies.
	(load_partial_comp_unit): Pass 1 for use_existing_cu.
	(find_partial_die): Remove FIXME.  Don't free current CU.

2012-04-30  Sterling Augustine  <saugustine@google.com>

	* contrib: New directory.
	* contrib/test_pubnames_and_indexes.py: New file.

2012-04-30  Doug Evans  <dje@google.com>

	* dwarf2read.c (dwarf_decode_macros): New arg section_name.
	All callers updated.
	(init_cu_die_reader): Verify the section is non-empty.
	(dwarf_decode_line_header): Don't dereference section->asection
	until we know the section is present.

2012-04-29  Sergio Durigan Junior  <sergiodj@redhat.com>

	* tracepoint.c (start_tracing, stop_tracing): Checking for NULL
	probes.

2012-04-29  Yao Qi  <yao@codesourcery.com>

	* gdb-code-style.el: New hook gdb-markup-hook
	and gdb-comment-hook.

2012-04-28  Doug Evans  <dje@google.com>

	Initial support for Fission.  http://gcc.gnu.org/wiki/DebugFission
	* symfile.c (default_symfile_relocate): Use sectp->owner instead of
	objfile->obfd.
	* symfile.h (dwarf2_debug_sections): New member addr.
	* dwarf2expr.c (execute_stack_op): New case DW_OP_GNU_addr_index.
	(ctx_no_get_addr_index): New function.
	* dwarf2expr.h (dwarf_expr_context_funcs): New member get_addr_index.
	(ctx_no_get_addr_index): Declare.
	* dwarf2-frame.c (dwarf2_frame_ctx_funcs): Update.
	* dwarf2loc.c (dwarf_expr_get_addr_index): New function.
	(dwarf_expr_ctx_funcs): Update.
	(needs_get_addr_index): New function.
	(needs_frame_ctx_funcs): Update.
	* dwarf2loc.h (dwarf2_read_addr_index): Declare.
	* dwarf2read.c: #include "gdbcore.h".
	(dwarf2_per_objfile): New members addr, dwo_files.
	(dwarf2_elf_names): Add entry for addr.
	(struct dwo_section_names): New type.
	(dwo_section_names): New static global.
	(dwarf2_cu): New members dwo_unit, addr_base, have_addr_base.
	(dwarf2_per_cu_data): New member is_debug_types, all boolean uses of
	old debug_types_section member updated to use this.
	Rename member debug_types_section to info_or_types_section,
	all uses updated.
	(signatured_type): Rename member type_offset to type_offset_in_tu,
	all uses updated.  New member type_offset_in_section.
	(struct dwo_sections): New type.
	(struct dwo_unit): New type.
	(struct dwo_file): New type.
	(die_reader_specs): New member dwo_file.
	(dwarf2_locate_sections): Watch for .debug_addr.
	(zlib_decompress_section): Use sectp->owner instead of objfile->obfd.
	(dwarf2_read_section): Get bfd of section from bfd's asection,
	instead of objfile.
	(create_cus_from_index): Initialize the_cu->info_or_types_section.
	(create_signatured_type_table_from_index): Initialize
	sig_type->info_or_types_section.
	(dw2_get_file_names): Statement lists for type units with DWO files
	live in the DWO file.
	(create_debug_types_hash_table): New function.
	(create_all_type_units): Rewrite.
	(init_cu_die_reader): New arg dwo_file, all callers updated.
	(init_and_read_dies_worker): Get section from
	this_cu->info_or_types_section.  Set sig_type->type_offset_in_section.
	Watch for DW_AT_GNU_dwo_name and if present lookup the file and
	continue reading the CU/TU from there.
	(init_cutu_and_read_dies_no_follow): New arg dwo_file, all callers
	updated.  Get section from this_cu->info_or_types_section.
	(create_all_comp_units): Initialize this_cu->info_or_types_section.
	(skip_one_die): New cases DW_FORM_GNU_addr_index,
	DW_FORM_GNU_str_index.
	(hash_dwo_file, eq_dwo_file): New functions.
	(allocate_dwo_file_hash_table): New function.
	(hash_dwo_unit, eq_dwo_unit): New functions.
	(allocate_dwo_unit_table): New function.
	(dwarf2_locate_dwo_sections): New function.
	(struct create_dwo_info_table_data): New type.
	(create_debug_info_hash_table_reader): New function.
	(create_debug_info_hash_table): New function.
	(try_open_dwo_file, open_dwo_file, init_dwo_file): New function.
	(lookup_dwo_file): New function.
	(lookup_dwo_comp_unit, lookup_dwo_type_unit): New functions.
	(free_dwo_file, free_dwo_file_cleanup): New functions.
	(free_dwo_file_from_slot, free_dwo_files): New functions.
	(dwarf2_get_pc_bounds): Handle DW_FORM_GNU_addr_index.
	(dwarf2_record_block_ranges): Ditto.
	(read_partial_die): Ditto.
	(process_enumeration_scope): Update to use type_offset_in_section.
	(read_full_die_1): New function.
	(read_full_die): Rewrite.
	(read_attribute_value): New cases DW_FORM_GNU_addr_index,
	DW_FORM_GNU_str_index.
	(read_addr_index_1, read_addr_index): New functions.
	(read_addr_index_from_leb128): New function.
	(struct dwarf2_read_addr_index_data): New type.
	(dwarf2_read_addr_index_reader): New function.
	(dwarf2_read_addr_index): New function.
	(read_str_index): New function.
	(leb128_size): New function.
	(dwarf_decode_line_header): Delete arg abfd, all callers updated.
	If processing a type unit from a DWO file, get the line section
	from the DWO file.
	(var_decode_location): Watch for DW_OP_GNU_addr_index.
	(dwarf2_const_value_attr): New cases DW_FORM_GNU_addr_index,
	DW_FORM_GNU_str_index.
	(lookup_die_type): Check whether section offset of type's die is
	known before looking it up.  Remove assert.  Condition can
	legimately happen for inter-cu type references.
	(dwarf_attr_name): Handle Fission attributes.
	(dwarf_form_name): Handle Fission forms.
	(dump_die_shallow): New cases DW_FORM_GNU_addr_index,
	DW_FORM_GNU_str_index.
	(follow_die_sig): Update to use type_offset_in_section.
	(decode_locdesc): New case DW_OP_GNU_addr_index.
	(skip_form_bytes): New cases DW_FORM_GNU_addr_index,
	DW_FORM_GNU_str_index.
	(cu_debug_loc_section): New function.
	(fill_in_loclist_baton, dwarf2_symbol_mark_computed): Call it.
	(dwarf2_per_objfile_free): Unmap .debug_addr section.
	Free DWO files if present.
	* xcoffread.c (dwarf2_xcoff_names): Add .debug_addr.

	Refactor DIE reading.
	* dwarf2read.c (dwarf2_per_objfile): Replace members
	debug_info_type_hash and debug_types_type_hash with die_type_hash.
	(die_reader_specs): New member "die_section".  Temporarily make
	member "buffer" non-const, pending constifying all info_ptr uses.
	(die_reader_func_ftype): New typedef.
	(dw2_get_file_names_reader): New function.
	(dw2_get_file_names): Rewrite.
	(read_and_check_type_unit_head): Rename arg type_offset to
	type_offset_in_tu.
	(create_all_type_units): Improve debugging message.
	Improve dummy type unit check.
	(init_cu_die_reader): New arg "section".  All callers updated.
	(init_and_read_dies_worker): New function.
	(init_cu_and_read_dies, init_tu_and_read_dies): New functions.
	(init_cutu_and_read_dies_no_follow): New function.
	(init_cutu_and_read_dies_simple): New function.
	(process_psymtab_comp_unit_reader): New function.
	(process_psymtab_comp_unit): Delete args section,
	is_debug_types_section.  Rewrite.  All callers updated.
	(process_psymtab_type_unit): Renamed from process_type_comp_unit.
	All callers updated.  Rewrite.
	(load_partial_comp_unit_reader): New function.
	(load_partial_comp_unit): Rewrite.
	(skip_children): New arg reader.  Delete args buffer, cu.
	All callers updated.
	(skip_one_die): New arg reader.  Delete args buffer, cu.
	All callers updated.
	(locate_pdi_sibling): New arg reader.  Delete args buffer, abfd, cu.
	All callers updated.
	(load_full_comp_unit_reader): New function.
	(load_full_comp_unit): Rewrite.
	(read_comp_unit): Delete.
	(read_die_and_children_1): Delete, contents moved ...
	(read_die_and_children): ... here.
	(dwarf2_read_abbrevs): New arg abbrev_section.  All callers updated.
	(load_partial_dies): New arg reader.  Delete args abfd, buffer, cu.
	All callers updated.
	(read_partial_die): New arg reader.  Delete args abfd, buffer, cu.
	All callers updated.
	(find_partial_die): Rewrite load_all_dies support.
	(read_attribute_value): New arg reader.  Delete args abfd, cu.
	All callers updated.
	(read_attribute): New arg reader.  Delete args abfd, cu.
	All callers updated.
	(load_full_type_unit): Add assert.
	(read_signatured_type_reader): New function.
	(read_signatured_type): Rewrite.
	(free_stack_comp_unit): Remove call to age_cached_comp_units.
	(free_one_cached_comp_unit): Change target_cu arg to target_per_cu.
	All callers updated.  Set per_cu->cu = NULL after freeing it.
	(dwarf2_per_cu_offset_and_type): Renamed from dwarf2_offset_and_type.
	(per_cu_offset_and_type_hash): Renamed from offset_and_type_hash.
	(per_cu_offset_and_type_eq): Renamed from offset_and_type_eq.
	(set_die_type): Update.
	(get_die_type_at_offset): Update.
	(read_file_scope): Call prepare_one_comp_unit.
	(read_type_unit_scope): Ditto.
	(prepare_one_comp_unit): Set producer if present.

2012-04-28  Sergio Durigan Junior  <sergiodj@redhat.com>

	* probe.c (compile_rx_or_error): Silence ARI warning about missing
	 gettext function on `error'.

2012-04-27  Doug Evans  <dje@google.com>

	* dwarf2read.c (dwarf2_read_index): Don't use index if symbol table
	is empty.

2012-04-27  Sergio Durigan Junior  <sergiodj@redhat.com>
	    Tom Tromey  <tromey@redhat.com>

	* breakpoint.c (struct breakpoint_objfile_data)
	<longjmp_searched>,<longjmp_probes>,<exception_searched>,
	<exception_probes>: New fields.
	(free_breakpoint_probes): New function.
	(create_longjmp_master_breakpoint): Prefer SystemTap probe over
	`_Unwind_DebugHook'.
	(create_exception_master_breakpoint): Likewise.
	(_initialize_breakpoint): Registering cleanup for SystemTap probes.
	* infrun.c: Including necessary header files for handling SystemTap
	probes.
	(handle_inferior_event): Handling longjmp breakpoint and exceptions
	via SystemTap probes.
	(check_exception_resume): Remove `func' argument.  Handle exception
	unwinding breakpoint set via a SystemTap probe.
	(insert_exception_resume_from_probe): New function.

2012-04-27  Sergio Durigan Junior  <sergiodj@redhat.com>
	    Tom Tromey  <tromey@redhat.com>
	    Jan Kratochvil  <jan.kratochvil@redhat.com>

	* Makefile.in (SFILES): Add `probe' and `stap-probe'.
	(COMMON_OBS): Likewise.
	(HFILES_NO_SRCDIR): Add `probe'.
	* NEWS: Mention support for static and SystemTap probes.
	* amd64-tdep.c (amd64_init_abi): Initializing proper fields used by
	SystemTap probes' arguments parser.
	* arm-linux-tdep.c: Including headers needed to perform the parsing
	of SystemTap probes' arguments.
	(arm_stap_is_single_operand): New function.
	(arm_stap_parse_special_token): Likewise.
	(arm_linux_init_abi): Initializing proper fields used by SystemTap
	probes' arguments parser.
	* ax-gdb.c (require_rvalue): Removing static declaration.
	(gen_expr): Likewise.
	* ax-gdb.h (gen_expr): Declaring function.
	(require_rvalue): Likewise.
	* breakpoint.c: Include `gdb_regex.h' and `probe.h'.
	(bkpt_probe_breakpoint_ops): New variable.
	(momentary_breakpoint_from_master): Set the `probe' value.
	(add_location_to_breakpoint): Likewise.
	(break_command_1): Using proper breakpoint_ops according to the
	argument passed by the user in the command line.
	(bkpt_probe_insert_location): New function.
	(bkpt_probe_remove_location): Likewise.
	(bkpt_probe_create_sals_from_address): Likewise.
	(bkpt_probe_decode_linespec): Likewise.
	(tracepoint_probe_create_sals_from_address): Likewise.
	(tracepoint_probe_decode_linespec): Likewise.
	(tracepoint_probe_breakpoint_ops): New variable.
	(trace_command): Using proper breakpoint_ops according to the
	argument passed by the user in the command line.
	(initialize_breakpoint_ops): Initializing breakpoint_ops for
	static probes on breakpoints and tracepoints.
	* breakpoint.h (struct bp_location) <probe>: New field.
	* cli-utils.c (skip_spaces_const): New function.
	(extract_arg): Likewise.
	* cli-utils.h (skip_spaces_const): Likewise.
	(extract_arg): Likewise.
	* coffread.c (coff_sym_fns): Add `sym_probe_fns' value.
	* configure.ac: Append `stap-probe.o' to be generated when ELF
	support is present.
	* configure: Regenerate.
	* dbxread.c (aout_sym_fns): Add `sym_probe_fns' value.
	* elfread.c: Include `probe.h' and `arch-utils.h'.
	(probe_key): New variable.
	(elf_get_probes): New function.
	(elf_get_probe_argument_count): Likewise.
	(elf_evaluate_probe_argument): Likewise.
	(elf_compile_to_ax): Likewise.
	(elf_symfile_relocate_probe): Likewise.
	(stap_probe_key_free): Likewise.
	(elf_probe_fns): New variable.
	(elf_sym_fns): Add `sym_probe_fns' value.
	(elf_sym_fns_lazy_psyms): Likewise.
	(elf_sym_fns_gdb_index): Likewise.
	(_initialize_elfread): Initialize objfile cache for static
	probes.
	* gdb_vecs.h (struct probe): New forward declaration.
	(probe_p): New VEC declaration.
	* gdbarch.c: Regenerate.
	* gdbarch.h: Regenerate.
	* gdbarch.sh (stap_integer_prefix): New variable.
	(stap_integer_suffix): Likewise.
	(stap_register_prefix): Likewise.
	(stap_register_suffix): Likewise.
	(stap_register_indirection_prefix): Likewise.
	(stap_register_indirection_suffix): Likewise.
	(stap_gdb_register_prefix): Likewise.
	(stap_gdb_register_suffix): Likewise.
	(stap_is_single_operand): New function.
	(stap_parse_special_token): Likewise.
	(struct stap_parse_info): Forward declaration.
	* i386-tdep.c: Including headers needed to perform the parsing
	of SystemTap probes' arguments.
	(i386_stap_is_single_operand): New function.
	(i386_stap_parse_special_token): Likewise.
	(i386_elf_init_abi): Initializing proper fields used by SystemTap
	probes' arguments parser.
	* i386-tdep.h (i386_stap_is_single_operand): New function.
	(i386_stap_parse_special_token): Likewise.
	* machoread.c (macho_sym_fns): Add `sym_probe_fns' value.
	* mipsread.c (ecoff_sym_fns): Likewise.
	* objfiles.c (objfile_relocate1): Support relocation for static
	probes.
	* parse.c (prefixify_expression): Remove static declaration.
	(initialize_expout): Likewise.
	(reallocate_expout): Likewise.
	* parser-defs.h (initialize_expout): Declare function.
	(reallocate_expout): Likewise.
	(prefixify_expression): Likewise.
	* ppc-linux-tdep.c: Including headers needed to perform the parsing
	of SystemTap probes' arguments.
	(ppc_stap_is_single_operand): New function.
	(ppc_stap_parse_special_token): Likewise.
	(ppc_linux_init_abi): Initializing proper fields used by SystemTap
	probes' arguments parser.
	* probe.c: New file, for generic statically defined probe support.
	* probe.h: Likewise.
	* s390-tdep.c: Including headers needed to perform the parsing of
	SystemTap probes' arguments.
	(s390_stap_is_single_operand): New function.
	(s390_gdbarch_init): Initializing proper fields used by SystemTap
	probes' arguments parser.
	* somread.c (som_sym_fns): Add `sym_probe_fns' value.
	* stap-probe.c: New file, for SystemTap probe support.
	* stap-probe.h: Likewise.
	* symfile.h: Include `gdb_vecs.h'.
	(struct sym_probe_fns): New struct.
	(struct sym_fns) <sym_probe_fns>: New field.
	* symtab.c (init_sal): Initialize `probe' field.
	* symtab.h (struct probe): Forward declaration.
	(struct symtab_and_line) <probe>: New field.
	* tracepoint.c (start_tracing): Adjust semaphore on breakpoints
	locations.
	(stop_tracing): Likewise.
	* xcoffread.c (xcoff_sym_fns): Add `sym_probe_fns' value.

2012-04-27  Sergio Durigan Junior  <sergiodj@redhat.com>
	    Tom Tromey  <tromey@redhat.com>

	* ax-gdb.c (gen_expr): Clean up code to handle internal variables
	and to compile agent expressions.
	* infrun.c (siginfo_make_value): New argument `ignore'.
	(siginfo_funcs): New struct.
	(_initialize_infrun): New argument when calling
	`create_internalvar_type_lazy'.
	* thread.c (thread_id_make_value): New argument `ignore'.
	(thread_funcs): New struct.
	(_initialize_thread): New argument when calling
	`create_internalvar_type_lazy'.
	* tracepoint.c (sdata_make_value): New argument `ignore'.
	(sdata_funcs): New struct.
	(_initialize_tracepoint): New argument when calling
	`create_internalvar_type_lazy'.
	* value.c (make_value): New struct.
	(create_internalvar_type_lazy): New argument `data'.
	(compile_internalvar_to_ax): New function.
	(value_of_internalvar): Properly handling `make_value' case.
	(clear_internalvar): Likewise.
	(show_convenience): Adding `TRY_CATCH' block.
	* value.h (internalvar_make_value): Delete, replace by...
	(struct internalvar_funcs): ... this.
	(create_internalvar_type_lazy) <fun>: Delete argument.
	(create_internalvar_type_lazy) <funcs>, <data>: New arguments.
	(compile_internalvar_to_ax): New function.
	* windows-tdep.c (tlb_make_value): New argument `ignore'.
	(tlb_funcs): New struct.
	(_initialize_windows_tdep): New argument when calling
	`create_internalvar_type_lazy'.

2012-04-27  Mark Wielaard  <mjw@redhat.com>

	* dwarf2read.c (dwarf2_get_pc_bounds): Check DW_AT_high_pc form to
	see whether it is an address or a constant offset from DW_AT_low_pc.
	(dwarf2_record_block_ranges): Likewise.
	(read_partial_die): Likewise.

2012-04-26  Mark Wielaard  <mjw@redhat.com>

	* MAINTAINERS (Write After Approval): Add myself to the list.

2012-04-26  Maciej W. Rozycki  <macro@codesourcery.com>

	* proc-utils.h (proc_prettyprint_signalset): New prototype.
	(proc_prettyprint_signal): Likewise.
	(proc_prettyprint_faultset): Likewise.
	(proc_prettyprint_fault): Likewise.
	(proc_prettyprint_actionset): Likewise.
	(proc_prettyprint_flags): Move to new proc-flags.c section.
	(proc_prettyfprint_flags): New prototype.
	* procfs.c (proc_nsysarg, proc_sysargs): Add prototypes.
	(proc_syscall, proc_cursig): Likewise.
	(proc_set_kill_on_last_close): Likewise.
	(proc_unset_kill_on_last_close): Likewise.
	(proc_set_watchpoint): Make static.
	(proc_delete_dead_threads): Likewise.
	(procfs_set_watchpoint): Likewise.
	(_initialize_procfs): Add prototype.
	* proc-events.c: Include proc-utils.h.
	(init_syscall_table): Make static.
	* proc-api.c (_initialize_proc_api): Add prototype.
	* proc-flags.c: Include proc-utils.h.

2012-04-26  Maciej W. Rozycki  <macro@codesourcery.com>

	* configure.ac: Add AC_ARG_PROGRAM.
	* configure: Regenerate.

2012-04-26  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix DW_AT_lower_bound defaults for DWARF-4+.
	* dwarf2read.c (read_subrange_type): Remove initialization of low and
	high.  New variable low_default_is_valid.  Implement DWARF-4+
	DW_AT_lower_bound defaults.  Print complaint for DW_AT_lower_bound with
	no default by the DWARF standard.

2012-04-26  Maciej W. Rozycki  <macro@mips.com>
	    Maciej W. Rozycki  <macro@codesourcery.com>

	* infrun.c (handle_inferior_event): Move the check for return
	trampolines ahead of the check for function trampolines.
	* mips-tdep.h (MIPS_S2_REGNUM, MIPS_GP_REGNUM): New macros.
	* mips-tdep.c (mips_str_mips16_call_stub): New variable.
	(mips_str_mips16_ret_stub): Likewise.
	(mips_str_call_fp_stub): Likewise.
	(mips_str_call_stub): Likewise.
	(mips_str_fn_stub): Likewise.
	(mips_str_pic): Likewise.
	(mips_in_frame_stub): New function.
	(mips_unwind_pc): Return the return address rather than the PC
	if the PC of an intermediate frame is inside a call thunk.
	(mips_is_stub_suffix): New function.
	(mips_is_stub_mode): Likewise.
	(mips_get_mips16_fn_stub_pc): Likewise.
	(mips_skip_mips16_trampoline_code): Update to handle all the
	currently generated stub types.  Don't recurse into __fn_stub
	thunks.  Remove heuristics to handle stubs beyond etext/_etext.
	Use cooked register accesses.
	(mips_in_return_stub): Reintroduce function.
	(mips_skip_trampoline_code): Traverse trampolines recursively.
	(mips_gdbarch_init): Handle MIPS16 return trampolines.

2012-04-26  Joel Brobecker  <brobecker@adacore.com>

	GDB 7.4.1 released.

2012-04-26  Jonathan Larmour  <jifl@eCosCentric.com>

	* arm-tdep.h (VFP_REGISTER_SIZE): Define.
	* features/arm-with-m-vfp-d16.xml: New file. Describes
	Cortex-M with VFPv4-sp-d16 FPU register layout.
	* features/Makefile (WHICH): Add arm-with-m-vfp-d16.
	* features/arm-with-m-vfp-d16.c: New. Generated from above.
	* arm-tdep.c: Include arm-with-m-vfp-d16.c.
	(arm-register_g_packet_guesses): Add vfp-d16 guess.
	(_initialise_arm_tdep): Initialize arm-with-m-vfp-d16 tdesc.

2012-04-25  Doug Evans  <dje@google.com>

	* cli/cli-decode.c (print_doc_line): Use stream instead of
	current_uiout.

2012-04-25  Sergio Durigan Junior  <sergiodj@redhat.com>

	* features/arm-with-iwmmxt.c: Regenerate.
	* features/arm-with-m-fpa-layout.c: Likewise.
	* features/arm-with-m.c: Likewise.
	* features/arm-with-neon.c: Likewise.
	* features/arm-with-vfpv2.c: Likewise.
	* features/arm-with-vfpv3.c: Likewise.
	* features/mips-dsp-linux.c: Likewise.
	* features/mips-linux.c: Likewise.
	* features/mips64-dsp-linux.c: Likewise.
	* features/mips64-linux.c: Likewise.
	* features/s390-linux32.c: Likewise.
	* features/s390-linux32v1.c: Likewise.
	* features/s390-linux32v2.c: Likewise.
	* features/s390-linux64.c: Likewise.
	* features/s390-linux64v1.c: Likewise.
	* features/s390-linux64v2.c: Likewise.
	* features/s390x-linux64.c: Likewise.
	* features/s390x-linux64v1.c: Likewise.
	* features/s390x-linux64v2.c: Likewise.
	* features/tic6x-c62x-linux.c: Likewise.
	* features/tic6x-c62x.c: Likewise.
	* features/tic6x-c64x-linux.c: Likewise.
	* features/tic6x-c64x.c: Likewise.
	* features/tic6x-c64xp-linux.c: Likewise.
	* features/tic6x-c64xp.c: Likewise.
	* target-descriptions.c: Only generate `field_type' and `type'
	variables when needed.

2012-04-25  Fredrik Hederstierna  <fredrikh.hederstierna@securitas-direct.com>

	* cli/cli-cmds.c (cd_command): Use memmove instead of strcpy.

2012-04-25  Doug Evans  <dje@google.com>

	Initial pass at Go language support.
	* NEWS: Mention Go.
	* Makefile.in (SFILES): Add go-exp.y, go-lang.c, go-typeprint.c,
	go-valprint.c.
	(COMMON_OBS): Add go-lang.o, go-val.print.o, go-typeprint.o.
	(YYFILES): Add go-exp.c.
	(YYOBJ): Add go-exp.o.
	(local-maintainer-clean): Delete go-exp.c.
	* defs.h (enum language): Add language_go.
	* dwarf2read.c: #include "go-lang.h".
	(fixup_go_packaging): New function.
	(process_full_comp_unit): Call it when processing Go CUs.
	(dwarf2_physname): Add Go support.
	(read_file_scope): Handle missing language spec for GNU Go.
	(set_cu_language): Handle DW_LANG_Go.
	* go-exp.y: New file.
	* go-lang.h: New file.
	* go-lang.c: New file.
	* go-typeprint.c: New file.
	* go-valprint.c: New file.
	* symtab.c: #include "go-lang.h".
	(symbol_set_language): Handle language_go.
	(symbol_find_demangled_name, symbol_set_names): Ditto.
	(symbol_natural_name, demangle_for_lookup, find_main_name): Ditto.

2012-04-24  Jim Meyering  <meyering@redhat.com>

	avoid a few strncpy-induced buffer overruns
	* procfs.c (procfs_make_note_section): Be sure to NUL-terminate
	fname and psargs before trying to concatenate.
	* tui/tui-stack.c (tui_get_function_from_frame): NUL-terminate
	"name" before applying strchr.

2012-04-25  Siva Chandra Reddy  <sivachandra@google.com>

	* CONTRIBUTE: Use unified diff instead of context diff when
	generating patches.

2012-04-24  Maciej W. Rozycki  <macro@codesourcery.com>

	* mips-tdep.c (mips_about_to_return): Remove dead MIPS16 support
	code.  Handle JR.HB correctly.

2012-04-24  Maciej W. Rozycki  <macro@codesourcery.com>

	* mips-tdep.c
	(is_mips16_addr, unmake_mips16_addr, make_mips16_addr): Group
	with the other MIPS16 helpers.

2012-04-24  Sergio Durigan Junior  <sergiodj@redhat.com>

	* observer.sh: Conditionally declare `args', thus cleaning up
	unused instances of this variable.

2012-04-24  Yao Qi  <yao@codesourcery.com>

	Revert this patch to allow breakpoint always-inserted
	in record target.
	2011-12-05  Pedro Alves  <pedro@codesourcery.com>
	* breakpoint.c: Include record.h.
	(breakpoints_always_inserted_mode): Return false when the record
	target is in use.

	* breakpoint.c (iterate_over_bp_locations): New.
	* breakpoint.h: Declare.
	New typedef walk_bp_location_callback.
	* record.c (record_open): Call record_init_record_breakpoints.
	(record_sync_record_breakpoints): New.
	(record_init_record_breakpoints): New.
	* NEWS: Mention supporting breakpoint always-inserted mode in
	record target.

2012-04-24  Marc Khouzam  <marc.khouzam@ericsson.com>

	* mi/mi-main.c (mi_cmd_execute): Choose a live thread not just
	any thread.

2012-04-24  Yao Qi  <yao@codesourcery.com>

	* breakpoint.c (ep_is_catchpoint): Renamed to ...
	(is_catchpoint): ... it.
	(print_one_breakpoint_location): Caller update.
	* breakpoint.h: Update declaration.

2012-04-23  David S. Miller  <davem@davemloft.net>

	* configure.tgt (sparc-*-linux*): Set build_gdbserver to yes.

2012-04-23  Tom Tromey  <tromey@redhat.com>

	* buildsym.c (add_free_pendings): Remove.
	* buildsym.h (add_free_pendings): Remove.

2012-04-23  Doug Evans  <dje@google.com>

	* dwarf2read.c (partial_die_full_name): Record DW_FORM_ref_addr in
	attr.u.unsnd instead of attr.u.addr.
	(read_attribute_value) Ditto for cases DW_FORM_ref_addr,
	DW_FORM_ref1, DW_FORM_ref2, DW_FORM_ref4, DW_FORM_reg8,
	DW_FORM_ref_udata.
	(dump_die_shallow): Update cases DW_FORM_ref_addr,
	DW_FORM_ref1, DW_FORM_ref2, DW_FORM_ref4.  Add cases DW_FORM_ref8,
	DW_FORM_ref_udata.
	(dwarf2_get_ref_die_offset): Use DW_UNSND for reference attributes.

2012-04-23  Maciej W. Rozycki  <macro@codesourcery.com>

	* mips-tdep.c (mips_n32n64_return_value): Fix coding style.
	(mips_o32_return_value): Likewise.
	(mips_o64_return_value): Likewise.

2012-04-21  Paul Hilfinger  <hilfinger@adacore.com>

	* ada-lang.c (ada_evaluate_subexp): Add cases for
	TYPE_CODE_INTERNAL_FUNCTION and for TYPE_GNU_IFUNC, following
	their treatment in eval.c.

2012-04-21  David S. Miller  <davem@davemloft.net>

	* sparc-tdep.c (X_DISP10): Define.
	(sparc_analyze_control_transfer): Handle compare-and-branch.

2012-04-21  Jonathan Larmour  <jifl@eCosCentric.com>

	* features/Makefile (WHICH): Add arm-with-m and arm-with-m-fpa-layout.
	* arm-tdep.c (arm_register_g_packet_guesses): Fix comment.

2012-04-20  Nigel Stephens  <nigel@mips.com>
	    Maciej W. Rozycki  <macro@codesourcery.com>

	* mips-tdep.c (mips_float_register_p): New function.
	(mips_convert_register_float_case_p): Use mips_float_register_p.
	(mips_register_type): Likewise.
	(mips_print_register): Likewise.
	(print_gp_register_row): Likewise.
	(mips_print_registers_info): Likewise.

2012-04-20  Shun-Yen Lu  <dark.asparagus@gmail.com>

	* mips-tdep.c (mips_elf_make_msymbol_special): Fix identification
	of mips16 symbols.

2012-04-20  Andrew Pinski  <apinski@cavium.com>

	* MAINTAINERS (Write After Approval): Add myself to the list.

2012-04-20  Sergio Durigan Junior  <sergiodj@redhat.com>

	* MAINTAINERS: Update my e-mail address.

2012-04-20  Pedro Alves  <palves@redhat.com>

	* acx_configure_dir.m4 (ACX_CONFIGURE_DIR): Handle absolute
	$srcdir.
	* configure: Regenerate.

2012-04-20  Sergio Durigan Junior  <sergiodj@redhat.com>

	* cp-support.h: Include `gdb_vecs.h'.  Delete `const_char_ptr' VEC
	declaration.
	* gdb_vecs.h: Declare `const_char_ptr' VEC.

2012-04-20  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix compilation compatibility with python-2.4
	* python/py-type.c (convert_field): Cast ADDRSTRING for
	PyObject_SetAttrString as non-const.  New comment.

2012-04-19  Tom Tromey  <tromey@redhat.com>

	* top.c (quit_target): Use all_cleanups.
	* main.c (captured_command_loop): Use all_cleanups.
	* exceptions.c (throw_exception): Use all_cleanups.

2012-04-19  Pedro Alves  <palves@redhat.com>

	* Makefile.in (GNULIB_BUILDDIR): New.
	(LIBGNU, INCGNU, GNULIB_H): Adjust.
	(SUBDIRS): Add $(GNULIB_BUILDDIR).
	(CLEANDIRS). Remove gnulib/import.
	(REQUIRED_SUBDIRS): Replace gnulib/import with $(GNULIB_BUILDDIR).
	(all-lib): Ditto.
	(distclean): Remove the $(GNULIB_BUILDDIR) directory.
	(gnulib/import/Makefile): Replace gnulib/import with
	$(GNULIB_BUILDDIR).  Set CONFIG_FILES to just Makefile.
	(ACLOCAL_AMFLAGS): Remove '-I gnulib/import/m4'.
	(aclocal_m4_deps): Remove the gnulib dependencies.  Add
	acx_configure_dir.m4.
	* acinclude.m4: Include acx_configure_dir.m4.
	* acx_configure_dir.m4: New file.
	* aclocal.m4: Regenerate.
	* configure.ac: Remove gl_EARLY, gl_INIT and AM_INIT_AUTOMAKE
	calls.	Configure gnulib using ACX_CONFIGURE_DIR.
	(GNULIB): New variable.
	(GNULIB_STDINT_H): Adjust.
	(AC_OUTPUT): Don't output gnulib/Makefile.
	* defs.h: Include build-gnulib/config.h.
	* aclocal.m4: Regenerate.
	* config.in: Regenerate.
	* configure: Regenerate.

	* gnulib/Makefile.in: New file.
	* gnulib/configure.ac: New file.
	* gnulib/aclocal.m4: New file.
	* gnulib/config.in: New file.
	* gnulib/configure: New file.
	* gnulib/: Re-run gnulib-tool to adjust.

2012-04-19  Doug Evans  <dje@google.com>

	* cleanups.h (struct cleanup): Move to cleanups.c.
	(make_cleanup_dtor_ftype): New typedef.
	(make_cleanup_dtor): Use it.
	(ALL_CLEANUPS): Replace with ...
	(all_cleanups): ... this.  Declare.  All uses updated.
	* cleanups.c: #include "gdb_assert.h".
	(sentinel_cleanup): New static global.
	(SENTINEL_CLEANUP): Define.
	(cleanup_chain, final_cleanup_chain): Initialize to SENTINEL_CLEANUP.
	(make_my_cleanup2): Assert result is non-NULL.
	(all_cleanups): New function.
	(save_my_cleanups): Initialize new chain to SENTINEL_CLEANUP instead
	of NULL.

2012-04-19  Pedro Alves  <palves@redhat.com>

	* Makefile.in (HFILES_NO_SRCDIR): Remove gnulib/wchar.in.h.
	Adjust paths to gnulib imported files.

2012-04-19  Pedro Alves  <palves@redhat.com>

	* gnulib/: Move whole directory ...
	* gnulib/import/: ... here, and re-rerun gnulib-tool to adjust.
	* Makefile.in (LIBGNU, INCGNU, GNULIB_H, CLEANDIRS)
	(REQUIRED_SUBDIRS, all-lib, gnulib/Makefile, ACLOCAL_AMFLAGS)
	(aclocal_m4_deps): Adjust.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* configure.ac: Adjust AC_OUTPUT output.

2012-04-19  Yao Qi  <yao@codesourcery.com>

	* Makefile.in (SFILES): Add common/vec.c and remove vec.c.
	(vec.o): New rule.
	* vec.c: Move it ...
	* common/vec.c: ... here.
	* vec.h: Move it ...
	* common/vec.h: ... here.

2012-04-19  Yao Qi  <yao@codesourcery.com>

	* gdb-code-style.el: New.

2012-04-18  Pedro Alves  <palves@redhat.com>

	Update gnulib from latest git.
	(639ea5ae15e39fe48d43e04864b2997301e4b969)

	* gnulib/Makefile.am: Update.
	* gnulib/dummy.c: Update.
	* gnulib/extra/arg-nonnull.h: Update.
	* gnulib/extra/c++defs.h: Update.
	* gnulib/extra/update-copyright: Update.
	* gnulib/extra/warn-on-use.h: Update.
	* gnulib/inttypes.in.h: Update.
	* gnulib/m4/00gnulib.m4: Update.
	* gnulib/m4/extensions.m4: Update.
	* gnulib/m4/gnulib-cache.m4: Update.
	* gnulib/m4/gnulib-common.m4: Update.
	* gnulib/m4/gnulib-comp.m4: Update.
	* gnulib/m4/gnulib-tool.m4: Update.
	* gnulib/m4/include_next.m4: Update.
	* gnulib/m4/inttypes-pri.m4: Update.
	* gnulib/m4/inttypes.m4: Update.
	* gnulib/m4/longlong.m4: Update.
	* gnulib/m4/memchr.m4: Update.
	* gnulib/m4/memmem.m4: Update.
	* gnulib/m4/mmap-anon.m4: Update.
	* gnulib/m4/multiarch.m4: Update.
	* gnulib/m4/onceonly.m4: Update.
	* gnulib/m4/stddef_h.m4: Update.
	* gnulib/m4/stdint.m4: Update.
	* gnulib/m4/string_h.m4: Update.
	* gnulib/m4/warn-on-use.m4: Update.
	* gnulib/m4/wchar_h.m4: Update.
	* gnulib/m4/wchar_t.m4: Update.
	* gnulib/m4/wint_t.m4: Update.
	* gnulib/memchr.c: Update.
	* gnulib/memmem.c: Update.
	* gnulib/stddef.in.h: Update.
	* gnulib/stdint.in.h: Update.
	* gnulib/str-two-way.h: Update.
	* gnulib/string.in.h: Update.
	* gnulib/wchar.in.h: Update.

	* gnulib/extra/arg-nonnull.h: Delete.
	* gnulib/extra/c++defs.h: Delete.
	* gnulib/extra/warn-on-use.h: Delete.
	* gnulib/m4/wchar_h.m4: Delete.
	* gnulib/m4/wint_t.m4: Delete.
	* gnulib/wchar.in.h: Delete.

	* gnulib/extra/snippets/arg-nonnull.h: New.
	* gnulib/extra/snippets/c++defs.h: New.
	* gnulib/extra/snippets/warn-on-use.h: New.

	* aclocal.m4: Regenerate.
	* config.in: Regenerate.
	* configure: Regenerate.
	* gnulib/Makefile.in: Regenerate.

2012-04-18  Pedro Alves  <palves@redhat.com>

	Reimport the update-copyright module from gnulib
	(250b80067c1e1d8faa0c42fb572f721975b929c5).

	* configure: Regenerate.
	* gnulib/Makefile.am: Update.
	* gnulib/Makefile.in: Regenerate.
	* gnulib/extra/update-copyright: Update.
	* gnulib/m4/gnulib-cache.m4: Update.
	* gnulib/m4/gnulib-comp.m4: Update.

2012-04-18  Tristan Gingold  <gingold@adacore.com>

	* configure.ac (aix): Put -lpthread into libs.
	* configure: Regenerate.

2012-04-18  Tom Tromey  <tromey@redhat.com>

	* linespec.c (convert_linespec_to_sals): Don't use
	SYMBOL_OBJ_SECTION.
	(compare_msymbols): Arguments are minsym_and_objfile, not
	minimal_symbol*.  Don't use SYMBOL_OBJ_SECTION.

2012-04-18  Pedro Alves  <palves@redhat.com>

	Revert gnulib/ part of:
	2011-01-01  Joel Brobecker  <brobecker@adacore.com>
	Copyright year update in most files (performed by copyright.sh).

2012-04-18  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix 64-bit constants on 32-bit hosts.
	* dwarf2read.c (read_unsigned_leb128): Change declaration return type
	from unsigned long to ULONGEST.
	(read_signed_leb128): Change declaration return type from long to
	LONGEST.
	(dwarf2_const_value_attr): Change declaration parameter value from long
	to LONGEST.
	(dwarf2_compute_name): Change variable value from long to LONGEST.
	(read_unsigned_leb128): Change return type, variable result and some
	casts from unsigned long to ULONGEST.
	(read_signed_leb128): Change return type, variable result and some
	casts from long to LONGEST.
	(dwarf2_const_value_data, dwarf2_const_value_attr): Change parameter
	value from long to LONGEST.
	(dwarf2_const_value): Change variable value from long to LONGEST.
	* symmisc.c (print_symbol): Change SYMBOL_VALUE format strings to use
	plongest and hex_string.
	* symtab.h (struct general_symbol_info): Change ivalue from long to
	LONGEST, remove the comment.
	* tracepoint.c (validate_actionline, collect_symbol, scope_info):
	Change SYMBOL_VALUE format strings to use plongest and hex_string.

2012-04-18  Siddhesh Poyarekar  <siddhesh@redhat.com>

	PR symtab/7259:
	* ada-exp.y (convert_char_literal): Use TYPE_FIELD_ENUMVAL.
	* ada-lang.c (ada_discrete_type_high_bound)
	(ada_discrete_type_low_bound): Fix function comment.  Use
	TYPE_FIELD_ENUMVAL for TYPE_CODE_ENUM.
	(ada_identical_enum_types_p): Use TYPE_FIELD_ENUMVAL.
	(pos_atr, value_val_atr): Use TYPE_FIELD_ENUMVAL for TYPE_CODE_ENUM.
	* ada-typeprint.c (print_enum_type): Change variable lastval to LONGEST.
	Use TYPE_FIELD_ENUMVAL.
	* ada-valprint.c (print_optional_low_bound, ada_print_scalar)
	(ada_val_print_1): Use TYPE_FIELD_ENUMVAL for TYPE_CODE_ENUM.
	* c-typeprint.c (c_type_print_base): Move variable lastval to inner
	block, change it to LONGEST.  Use TYPE_FIELD_ENUMVAL for
	TYPE_CODE_ENUM.
	* coffread.c (coff_read_enum_type): Use SET_FIELD_ENUMVAL.
	* dwarf2read.c (process_enumeration_scope): Likewise.
	* gdb-gdb.py (TypeFlagsPrinter): Use field.enumval instead of
	field.bitpos.
	(class StructMainTypePrettyPrinter): Support also
	FIELD_LOC_KIND_ENUMVAL.
	* gdbtypes.c (get_discrete_bounds): Use TYPE_FIELD_ENUMVAL for
	TYPE_CODE_ENUM.
	(recursive_dump_type): Use TYPE_FIELD_ENUMVAL for TYPE_CODE_ENUM.
	(copy_type_recursive): Support also FIELD_LOC_KIND_ENUMVAL.
	* gdbtypes.h (enum field_loc_kind): New FIELD_LOC_KIND_ENUMVAL.
	(struct main_type.flds_bnds.fields.loc): Adjust bitpos comment.  New
	field enumval.
	(struct main_type.flds_bnds.bields): Adjust loc_kind and bitsize to
	accommodate enumval.
	(struct call_site): Adjust loc_kind to accommodate enumval.
	(FIELD_ENUMVAL, FIELD_ENUMVAL_LVAL, SET_FIELD_ENUMVAL)
	(TYPE_FIELD_ENUMVAL): New macros.
	* m2-typeprint.c (m2_enum): Use TYPE_FIELD_ENUMVAL.
	* mdebugread.c (parse_symbol): Use TYPE_FIELD_ENUMVAL for
	TYPE_CODE_ENUM.
	* p-typeprint.c (pascal_type_print_base): Likewise.
	* python/lib/gdb/printing.py (class FlagEnumerationPrinter): Use
	enumval.
	* python/lib/gdb/types.py (make_enum_dict): Likewise.
	* python/py-type.c (convert_field): New variable addrstring.  Use
	TYPE_FIELD_ENUMVAL for TYPE_CODE_ENUM.
	(check_types_equal): Support also FIELD_LOC_KIND_ENUMVAL.
	* stabsread.c (read_enum_type): Use SET_FIELD_ENUMVAL.
	* typepint.c (print_type_scalar): Use TYPE_FIELD_ENUMVAL for
	TYPE_CODE_ENUM.
	* valprint.c (generic_val_print): Likewise.

2012-04-17  Doug Evans  <dje@google.com>

	* dwarf2read.c (lookup_signatured_type): Return NULL instead of 0.

	* dwarf2read.c: Whitespace fixes.
	(lookup_signatured_type): Tweak comment.
	(get_die_type_at_offset): Fix comment.

2012-04-17  Joel Brobecker  <brobecker@adacore.com>

	* xcoffread.c (xcoff_secnum_to_sections): New function.
	(secnum_to_section, secnum_to_bfd_section): Reimplement
	using xcoff_secnum_to_sections.  Rename "secnum" parameter
	into "n_scnum".
	(RECORD_MINIMAL_SYMBOL): Delete.
	(record_minimal_symbol): New function.
	(scan_xcoff_symtab): Replace uses of RECORD_MINIMAL_SYMBOL
	by call to record_minimal_symbol and set misc_func_recorded
	to 1.  Set last_csect_sec to the XCOFF section index instead
	of GDB's section_offset index.  Update calls to
	prim_record_minimal_symbol_and_info to pass the BFD section
	as well.

2012-04-17  Joel Brobecker  <brobecker@adacore.com>

	* xcoffread.c (read_xcoff_symtab): Delete variables
	last_csect_val and last_csect_sec and associated code.

2012-04-17  Doug Evans  <dje@google.com>

	* cleanups.c (make_my_cleanup,make_my_cleanup2): Make static.
	(discard_my_cleanups,save_my_cleanups,restore_my_cleanups): Ditto.
	* cleanups.h (make_my_cleanup,make_my_cleanup2): Delete
	(discard_my_cleanups,save_my_cleanups,restore_my_cleanups): Delete.

	* cleanups.h: New file.
	* cleanups.c: New file.
	* Makefile.in (SFILES): Add cleanups.c.
	(HFILES_NO_SRCDIR): Add cleanups.h.
	(COMMON_OBS): Add cleanups.o.
	* defs.h (struct cleanup): Moved to cleanups.h.
	(do_cleanups,do_final_cleanups): Ditto.
	(discard_cleanups,discard_final_cleanups): Ditto
	(make_cleanup,make_cleanup_dtor,make_final_cleanup): Ditto.
	(save_cleanups,save_final_cleanups): Ditto.
	(restore_cleanups,restore_final_cleanups): Ditto.
	(null_cleanup): Ditto.
	(make_my_cleanup,make_my_cleanup2): Ditto.
	(discard_my_cleanups,save_my_cleanups,restore_my_cleanups): Ditto.
	* utils.c (cleanup_chain,final_cleanup_chain): Moved to cleanups.c.
	(do_cleanups,do_final_cleanups): Ditto.
	(discard_cleanups,discard_final_cleanups): Ditto
	(make_cleanup,make_cleanup_dtor,make_final_cleanup): Ditto.
	(save_cleanups,save_final_cleanups): Ditto.
	(restore_cleanups,restore_final_cleanups): Ditto.
	(null_cleanup): Ditto.
	(make_my_cleanup,make_my_cleanup2): Ditto.
	(discard_my_cleanups,save_my_cleanups,restore_my_cleanups): Ditto.

	* utils.c (make_cleanup_freeargv): Use make_cleanup instead of
	make_my_cleanup.
	(make_cleanup_dyn_string_delete): Ditto.
	(make_cleanup_ui_file_delete): Ditto.
	(make_cleanup_ui_out_redirect_pop): Ditto.
	(make_cleanup_free_section_addr_info): Ditto.
	(make_cleanup_restore_integer): Ditto.
	(make_cleanup_unpush_target): Ditto.
	(make_cleanup_value_free_to_mark): Ditto.
	(make_cleanup_value_free): Ditto.
	(make_cleanup_free_so): Ditto.

2012-04-17  Jan Kratochvil  <jan.kratochvil@redhat.com>

	New option "set debug auto-load".
	* NEWS: New commands "set debug auto-load" and "show debug auto-load".
	* auto-load.c (debug_auto_load, show_debug_auto_load: New.
	(auto_load_safe_path_vec_update)
	(filename_is_in_auto_load_safe_path_vec): Call fprintf_unfiltered
	if DEBUG_AUTO_LOAD.
	(file_is_auto_load_safe): New parameters debug_fmt and ....
	Call fprintf_unfiltered if DEBUG_AUTO_LOAD.
	(source_gdb_script_for_objfile): Extend the file_is_auto_load_safe
	caller by explanatory string.
	(_initialize_auto_load): Register "set debug auto-load".
	* auto-load.h (file_is_auto_load_safe): New parameters debug_fmt
	and ....
	* linux-thread-db.c (try_thread_db_load_from_pdir_1)
	(try_thread_db_load_from_dir): Extend the file_is_auto_load_safe caller
	by explanatory string.
	* main.c (captured_main): Likewise.
	* python/py-auto-load.c (gdbpy_load_auto_script_for_objfile)
	(source_section_scripts): Likewise.

2012-04-17  Jan Kratochvil  <jan.kratochvil@redhat.com>

	New option "set auto-load safe-path".
	* NEWS: New commands "set auto-load safe-path"
	and "show auto-load safe-path".
	* auto-load.c: Include gdb_vecs.h, readline/tilde.h and completer.h.
	(auto_load_safe_path, auto_load_safe_path_vec)
	(auto_load_safe_path_vec_update, set_auto_load_safe_path)
	(show_auto_load_safe_path, add_auto_load_safe_path, filename_is_in_dir)
	(filename_is_in_auto_load_safe_path_vec, file_is_auto_load_safe): New.
	(source_gdb_script_for_objfile): New variable is_safe.  Call
	file_is_auto_load_safe.  Return if it is not.
	(struct loaded_script): New field loaded.
	(maybe_add_script): Add parameter loaded.  Initialize SLOT with it.
	(print_script): Use LOADED indicator instead of FULL_PATH.  Change
	output "Missing" to "No".
	(_initialize_auto_load): New variable cmd.  Initialize
	auto_load_safe_path.  Register "set auto-load safe-path",
	"show auto-load safe-path" and "add-auto-load-safe-path".
	* auto-load.h (maybe_add_script): Add parameter loaded.
	(file_is_auto_load_safe): New declaration.
	* config.in: Regenerate.
	* configure: Regenerate.
	* configure.ac: New parameters --with-auto-load-safe-path
	and --without-auto-load-safe-path.
	* linux-thread-db.c (try_thread_db_load_from_pdir_1)
	(try_thread_db_load_from_dir): Check file_is_auto_load_safe first.
	* main.c (captured_main): Check file_is_auto_load_safe for
	LOCAL_GDBINIT.
	* python/py-auto-load.c (gdbpy_load_auto_script_for_objfile): New
	variable is_safe.  Call file_is_auto_load_safe.  Return if it is not.
	(source_section_scripts): Call file_is_auto_load_safe.  Return if it is
	not.

2012-04-17  Jan Kratochvil  <jan.kratochvil@redhat.com>

	auto-load: Implementation.
	* NEWS: New descriptions for "info auto-load",
	"info auto-load gdb-scripts", "info auto-load python-scripts",
	"info auto-load local-gdbinit" and "info auto-load libthread-db".
	Deprecate "info auto-load-scripts", "set auto-load-scripts on|off"
	and "show auto-load-scripts".  New description for "set auto-load",
	"show auto-load", "set auto-load gdb-scripts",
	"show auto-load gdb-scripts", "set auto-load python-scripts",
	"show auto-load python-scripts", "set auto-load local-gdbinit",
	"show auto-load local-gdbinit", "set auto-load libthread-db" and
	"show auto-load libthread-db".
	* auto-load.c: Remove include python/python-internal.h.  Add includes
	exceptions.h, cli/cli-script.h, gdbcmd.h, cli/cli-decode.h and
	cli/cli-setshow.h.
	(GDB_AUTO_FILE_NAME, source_gdb_script_for_objfile)
	(auto_load_gdb_scripts, show_auto_load_gdb_scripts): New.
	(gdbpy_global_auto_load): Rename to ...
	(global_auto_load): ... here.
	(auto_load_local_gdbinit, auto_load_local_gdbinit_pathname)
	(auto_load_local_gdbinit_loaded, show_auto_load_local_gdbinit)
	(script_language_gdb, source_gdb_script_for_objfile): New.
	(struct loaded_script): New field language.
	(hash_loaded_script_entry, eq_loaded_script_entry): Calculate also
	LANGUAGE.
	(maybe_add_script): Add parameter language.  Drop redundant
	entry.full_path initialization.  Initialize entry.language and
	(*slot)->language.
	(auto_load_objfile_script): Change parameter suffix to language.
	Remove the call of maybe_add_script.
	Call language->source_script_for_objfile.
	(load_auto_scripts_for_objfile, struct collect_matching_scripts_data):
	New.
	(collect_matching_scripts): Adjust it for
	struct collect_matching_scripts_data.
	(auto_load_info_scripts_pattern_nl): New variable.
	(info_auto_load_scripts): Rename to ...
	(auto_load_info_scripts): ... here, add parameter language.  Adjust it
	for struct collect_matching_scripts_data.
	(info_auto_load_gdb_scripts, info_auto_load_local_gdbinit)
	(set_auto_load_cmd, auto_load_set_cmdlist_get, show_auto_load_cmd)
	(auto_load_show_cmdlist_get, info_auto_load_cmd)
	(auto_load_info_cmdlist_get): New.
	(_initialize_auto_load): Move add_info of "auto-load-scripts" to
	python/py-auto-load.c.  New installment for "set auto-load gdb-scripts",
	"info auto-load gdb-scripts", "set auto-load local-gdbinit" and
	"info auto-load local-gdbinit".
	* auto-load.h (struct script_language): New.
	(gdbpy_global_auto_load): Rename to ...
	(global_auto_load): ... here.
	(auto_load_local_gdbinit, auto_load_local_gdbinit_pathname)
	(auto_load_local_gdbinit_loaded): New declarations.
	(maybe_add_script): New parameter language.
	(auto_load_objfile_script): Change parameter suffix to language.
	(load_auto_scripts_for_objfile, auto_load_info_scripts_pattern_nl)
	(auto_load_info_scripts, auto_load_set_cmdlist_get)
	(auto_load_show_cmdlist_get, auto_load_info_cmdlist_get): New
	declarations.
	* linux-thread-db.c: Include auto-load.h and ctype.h.
	(auto_load_thread_db, show_auto_load_thread_db): New.
	(struct thread_db_info): New field filename.
	(delete_thread_db_info): Call xfree for FILENAME.
	(try_thread_db_load): Initialize FILENAME.
	(try_thread_db_load_from_pdir, try_thread_db_load_from_dir): Return
	if !AUTO_LOAD_THREAD_DB.
	(info_auto_load_libthread_db_compare, info_auto_load_libthread_db): New.
	(_initialize_thread_db): Install auto_load_thread_db
	as "set auto-load libthread-db" and install info_auto_load_libthread_db
	as "info auto-load libthread-db".
	* main.c (captured_main): Rename gdbpy_global_auto_load to
	global_auto_load.  Initialize AUTO_LOAD_LOCAL_GDBINIT_PATHNAME and
	AUTO_LOAD_LOCAL_GDBINIT_LOADED.
	(print_gdb_help): Extend the help for 'local init file'.
	* python/py-auto-load.c: Remove a comment about gdb scripts extension.
	(GDBPY_AUTO_SECTION_NAME): Extend the comment it is Python specific.
	(auto_load_scripts): Rename to ...
	(auto_load_python_scripts): ... here, update the comment.
	(gdbpy_load_auto_script_for_objfile): New declaration.
	(show_auto_load_python_scripts, script_language_python)
	(gdbpy_load_auto_script_for_objfile): New.
	(source_section_scripts): Refactor the code.
	(load_auto_scripts_for_objfile): Rename to ...
	(gdbpy_load_auto_scripts_for_objfile): ... here, update the
	auto_load_objfile_script caller, drop GDBPY_GLOBAL_AUTO_LOAD checking.
	(info_auto_load_python_scripts): New.
	(gdbpy_initialize_auto_load): New variables cmd and cmd_name.
	Rename "set auto-load-scripts" to "set auto-load python-scripts".
	Register "set auto-load-scripts" as its deprecated alias.  Register
	"info auto-load python-scripts".  Register "info auto-load-scripts" as
	its deprecated alias.
	(load_auto_scripts_for_objfile): Rename to ...
	(gdbpy_load_auto_scripts_for_objfile): ... here.
	* python/python.h (load_auto_scripts_for_objfile): Rename to ...
	(gdbpy_load_auto_scripts_for_objfile): ... here.

2012-04-17  Jan Kratochvil  <jan.kratochvil@redhat.com>

	auto-load: Move files.
	* Makefile.in (SFILES): Add auto-load.c.
	(HFILES_NO_SRCDIR): Add auto-load.h.
	(COMMON_OBS): Add auto-load.o.
	(distclean): Change .gdbinit for gdb-gdb.gdb.
	* auto-load.c: New file, with parts from python/py-auto-load.c.
	* auto-load.h: New file, with parts from python/python.h.
	* configure: Regenerate.
	* configure.ac (AC_OUTPUT): Change .gdbinit for gdb-gdb.gdb.
	* gdb-gdb.gdb.in: New file, renamed from gdbinit.in.
	* gdbinit.in: Remove file, rename it to gdb-gdb.gdb.in.
	* main.c: Include auto-load.h.
	* python/py-auto-load.c: Move include filenames.h, gdb_regex.h,
	command.h, observer.h and progspace.h to auto-load.c.  Add include
	auto-load.h.
	(gdbpy_global_auto_load, struct auto_load_pspace_info)
	(struct loaded_script, auto_load_pspace_data)
	(auto_load_pspace_data_cleanup, get_auto_load_pspace_data)
	(hash_loaded_script_entry, eq_loaded_script_entry)
	(init_loaded_scripts_info, get_auto_load_pspace_data_for_loading)
	(maybe_add_script): Move to auto-load.c.
	(source_section_scripts): Change maybe_add_script parameters passing,
	use script_not_found_warning_print.
	(clear_section_scripts, auto_load_objfile_script)
	(auto_load_new_objfile, loaded_script_ptr)
	(DEF_VEC_P (loaded_script_ptr), collect_matching_scripts, print_script)
	(sort_scripts_by_name, info_auto_load_scripts): Move to auto-load.c.
	(gdbpy_initialize_auto_load): Move auto_load_pspace_data,
	auto_load_new_objfile and info_auto_load_scripts initizations to
	auto-load.c.
	* python/python.h (gdbpy_global_auto_load): Move to auto-load.h.

2012-04-17  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Code cleanup.
	* charset.c (find_charset_names): Remove variables ix and elt.
	Use free_char_ptr_vec.
	* elfread.c (build_id_to_debug_filename): New variables debugdir_vec,
	back_to and ix.  Use dirnames_to_char_ptr_vec.  Remove variable
	debugdir_end.  New variable debugdir_len.
	* gdb_vecs.h (free_char_ptr_vec, make_cleanup_free_char_ptr_vec)
	(dirnames_to_char_ptr_vec_append, dirnames_to_char_ptr_vec): New
	declarations.
	* progspace.c (clear_program_space_solib_cache): Remove variables ix
	and elt.  Use free_char_ptr_vec.
	* source.c (add_path): Remove variables argv, arg and argv_index.
	New variables dir_vec, back_to, ix and name.
	Use dirnames_to_char_ptr_vec_append.  Use freeargv instead of
	make_cleanup_freeargv.  Remove variable separator.  Simplify the code
	no longer expecting DIRNAME_SEPARATOR.
	(openp): Remove variable p, p1 and len.  New variables dir_vec,
	back_to, ix and dir.  Use dirnames_to_char_ptr_vec.  Simplify the code
	no longer expecting DIRNAME_SEPARATOR.
	* symfile.c (find_separate_debug_file): New variables debugdir_vec,
	back_to and ix.  Use dirnames_to_char_ptr_vec.  Remove variable
	debugdir_end.
	* utils.c (free_char_ptr_vec, do_free_char_ptr_vec)
	(make_cleanup_free_char_ptr_vec, dirnames_to_char_ptr_vec_append)
	(dirnames_to_char_ptr_vec): New functions.

2012-04-17  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Code cleanup.
	* source.c (add_path): Remove always true conditional 'p == 0' and
	unindent its code block.

2012-04-17  Pedro Alves  <palves@redhat.com>

	* gdbtypes.h (FIELD_BITPOS): Rename to ...
	(FIELD_BITPOS_LVAL): ... this.
	(FIELD_BITPOS): New.
	(SET_FIELD_BITPOS): Adjust to use FIELD_BITPOS_LVAL.
	* dwarf2read.c (dwarf2_add_field): Use SET_FIELD_BITPOS.
	* gdbtypes.c (append_composite_type_field_aligned): Adjust to use
	SET_FIELD_BITPOS.
	* gnu-v3-abi.c (build_gdb_vtable_type): Adjust to use
	SET_FIELD_BITPOS.
	* stabsread.c (read_cpp_abbrev, read_one_struct_field)
	(read_baseclasses): Adjust to use SET_FIELD_BITPOS.
	* target-descriptions.c (tdesc_gdb_type): Adjust to use
	SET_FIELD_BITPOS.

2012-04-17  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Do not rely on FIELD_LOC_KIND_BITPOS being zero.
	* ada-lang.c (ada_template_to_fixed_record_type_1): Replace
	TYPE_FIELD_BITPOS used as lvalue by SET_FIELD_BITPOS.
	* gdbtypes.c (append_flags_type_flag): Likewise, twice.
	* jv-lang.c (java_link_class_type): Likewise, once.
	* stabsread.c (read_enum_type): Likewise.

2012-04-16  Yao Qi  <yao@codesourcery.com>

	* common/agent.c (agent_run_command): Add one more parameter `len'.
	Update callers.
	* common/agent.h: Update declaration.
	* linux-nat.c (linux_child_static_tracepoint_markers_by_strid):
	Update.
	(linux_child_static_tracepoint_markers_by_strid): Ditto.

2012-04-14  Anton Gorenkov <xgsa@yandex.ru>

	PR mi/13393
	* value.c (value_actual_type): New function.
	* value.h (value_actual_type): New declaration.
	* varobj.c (update_type_if_necessary): New function.
	(varobj_create): Call value_actual_type instead of
	value_type.
	(install_dynamic_child): distinct changed and type changed MI variable
	objects.
	(update_dynamic_varobj_children): Updated for install_dynamic_child
	change.  All callers updated.
	(varobj_update): Support for MI variable object type change if
	the value changed and RTTI is used to determine the type.
	(create_child_with_value): Call value_actual_type instead of
	value_type.
	(adjust_value_for_child_access): Extended with a new parameter which
	specify whether the given value should be casted to enclosing type.
	All callers updated.

2012-04-14  Yao Qi  <yao@codesourcery.com>

	Import gnulib module inttypes from git
	(250b80067c1e1d8faa0c42fb572f721975b929c5)
	* Makefile.in (HFILES_NO_SRCDIR): Add gnulib/inttypes.in.h.
	(aclocal_m4_deps): Add gnulib/m4/inttypes.m4 and
	gnulib/m4/inttypes-pri.m4
	* aclocal.m4, config.in, configure: Regenerated.
	* gnulib/Makefile.am: Update.
	* gnulib/Makefile.in: Update.
	* gnulib/m4/gnulib-cache.m4: Update.
	* gnulib/m4/gnulib-comp.m4: Update.
	* gnulib/inttypes.in.h: New.
	* gnulib/m4/inttypes-pri.m4: New.
	* gnulib/m4/inttypes.m4: New.

2012-04-13  Luis Machado  <lgustavo@codesourcery.com>

	* infrun.c (resume): Update PC address to the real PC after
	preparing to do displaced stepping.

2012-04-12  Doug Evans  <dje@google.com>

	* dwarf2read.c (lookup_signatured_type): Remove arg "objfile", unused.
	All callers updated.

2012-04-12  Mark Kettenis  <kettenis@gnu.org>

	* i386bsd-nat.c (_initialize_i386bsd_nat): Add missing prototype.

2012-04-12  Doug Evans  <dje@google.com>

	* dwarf2read.c (create_all_type_units): Renamed from
	create_debug_types_hash_table.  All callers updated.

	* dwarf2read.c (create_signatured_type_table_from_index): Rename
	local type_sig to sig_type, type_offset to type_offset_in_tu.
	(hash_signatured_type): Renamed from hash_type_signature,
	all callers updated.
	(eq_signatured_type): Renamed from eq_type_signature,
	all callers updated.
	(create_debug_types_hash_table): Rename local type_sig to sig_type.
	(process_enumeration_scope): Ditto.
	(lookup_signatured_type_at_offset): Ditto.
	(load_full_type_unit, read_signatured_type): Ditto.

2012-04-12  Yao Qi  <yao@codesourcery.com>

	* remote.c (async_remote_interrupt): Correct function name in
	debug message.
	(async_remote_interrupt_twice): Ditto.

2012-04-11  Yuanhui Zhang  <asmwarrior@gmail.com>

	* source.c (find_and_open_source): Consistently pass resulting
	full path through xfullpath.

2012-04-11  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Provide more specific displaced-stepping memory error message.
	* infrun.c (displaced_step_prepare): New variable status.  Call
	target_read_memory instead of read_memory, provide more specific
	error message.

2012-04-11  Tristan Gingold  <gingold@adacore.com>

	PR gdb/13901
	* darwin-nat.c (darwin_execvp): Revert previous patch.

2012-04-11  Tristan Gingold  <gingold@adacore.com>

	PR gdb/13901
	* darwin-nat.c (darwin_resume_thread): Call darwin_set_sstep only
	in case of change.

2012-04-11  Tristan Gingold  <gingold@adacore.com>

	* i386-darwin-nat.c (i386_darwin_fetch_inferior_registers): Fix
	warning.

2012-04-11  Siva Chandra Reddy  <sivachandra@google.com>

	New command 'explore' which helps explore values and types in
	scope.
	* NEWS: Add an entry about the new 'explore' command.
	* data-directory/Makefile.in: Add gdb/command/explore.py
	* python/lib/gdb/command/explore.py: Implemention of the 'explore'
	command using the GDB Python API.

2012-04-10  Maciej W. Rozycki  <macro@codesourcery.com>

	* mips-tdep.c (mips_skip_pic_trampoline_code): Correct sign
	extension in jump target calculation.

2012-04-10  Maciej W. Rozycki  <macro@codesourcery.com>

	* mips-tdep.c (mips32_next_pc): Handle JALX.

2012-04-10  Yao Qi  <yao@codesourcery.com>

	* Makefile.in (gnulib/Makefile): Remove duplicated dependency.

2012-04-10  Yao Qi  <yao@codesourcery.com>

	* Makefile.in (aclocal_m4_deps): Add gnulib/m4/gnulib-cache.m4
	and gnulib/m4/gnulib-tool.m4.

2012-04-10  Doug Evans  <dje@google.com>

	* dwarf2read.c (dwarf2_per_cu_data). Clarify comment.
	(load_partial_dies): Clarify comment.
	(find_partial_die): Support rereading type units.
	Clarify CU handling, if we know offset is in CU, don't search for the
	containing CU.  Add comment regarding memory waste.

2012-04-10  H.J. Lu  <hongjiu.lu@intel.com>

	* features/Makefile (WHICH): Add i386/x32, i386/x32-linux,
	i386/x32-avx and i386/x32-avx-linux.
	(i386/x32-expedite): New.
	(i386/x32-linux-expedite): Likewise.
	(i386/x32-avx-expedite): Likewise.
	(i386/x32-avx-linux-expedite): Likewise.
	($(outdir)/i386/x32.dat): Likewise.
	($(outdir)/i386/x32-linux.dat): Likewise.
	($(outdir)/i386/x32-avx.dat): Likewise.
	($(outdir)/i386/x32-avx-linux.dat): Likewise.

	* features/i386/x32-avx-linux.xml: New file.
	* features/i386/x32-avx.xml: Likewise.
	* features/i386/x32-core.xml: Likewise.
	* features/i386/x32-linux.xml: Likewise.
	* features/i386/x32.xml: Likewise.

	* features/i386/x32-avx-linux.c: New.  Generated.
	* features/i386/x32-avx.c: Likewise.
	* features/i386/x32-linux.c: Likewise.
	* features/i386/x32.c: Likewise.
	* regformats/i386/x32-avx-linux.dat: Likewise.
	* regformats/i386/x32-avx.dat: Likewise.
	* regformats/i386/x32-linux.dat: Likewise.
	* regformats/i386/x32.dat: Likewise.

2012-04-10  Tristan Gingold  <gingold@adacore.com>

	* darwin-nat.c (darwin_kill_inferior): Always use the no ptrace
	code to kill the inferior.

2012-04-09  Mark Kettenis  <kettenis@gnu.org>

	* ada-exp.y (yyss, yysslim, yyssp, yystacksize, yyvs, yyvsp): New
	defines.
	* c-exp.y (yyss, yysslim, yyssp, yystacksize, yyvs, yyvsp): New
	defines.
	* cp-name-parser.y (yyss, yysslim, yyssp, yystacksize, yyvs)
	(yyvsp): New defines.
	* f-exp.y (yyss, yysslim, yyssp, yystacksize, yyvs, yyvsp): New
	defines.
	* jv-exp.y (yyss, yysslim, yyssp, yystacksize, yyvs, yyvsp): New
	defines.
	* m2-exp.y (yyss, yysslim, yyssp, yystacksize, yyvs, yyvsp): New
	defines.
	* objc-exp.y (yyss, yysslim, yyssp, yystacksize, yyvs, yyvsp): New
	defines.
	* p-exp.y (yyss, yysslim, yyssp, yystacksize, yyvs, yyvsp): New
	defines.

2012-04-09  Mark Kettenis  <kettenis@gnu.org>

	* sparc64-tdep.c (sparc64_store_arguments)
	(sparc64_store_arguments): Fix coding style.

2012-04-07  Mark Kettenis  <kettenis@gnu.org>

	* sparc64-tdep.c (sparc64_store_arguments): Fix handling of
	complex floats, adjust some related comments and tighten a related
	assertion.
	(sparc64_extract_return_value): Handle complex floats.

2012-04-07  Doug Evans  <dje@google.com>

	* dwarf2read.c (load_partial_dies): Change condition to assert.

2012-04-06  Doug Evans  <dje@google.com>

	* amd64-tdep.c (amd64_analyze_prologue): Recognize both variations of
	"mov %rsp,%rbp".

2012-04-05  Kevin Buettner  <kevinb@redhat.com>

	* v850-tdep.c (E_NUM_OF_V850_REGS, E_NUM_OF_V850E_REGS): Fix
	fencepost error.
	(v850_frame_cache): Use gdbarch_num_regs() instead of E_NUM_REGS.
	(v850_gdbarch_init): Set `num_regs' as appropriate for the
	architecture.

2012-04-05  Keith Seitz  <keiths@redhat.com>

	* linespec.c (decode_compound): Remove.
	(enum offset_relative_sign): New enum.
	(struct line_offset): New struct.
	(struct linespec): New struct.
	(struct linespec_state): Move file_symtabs,
	user_filename, and user_function into struct linespec.
	Make result an anonymous struct holding vectors of
	symbolp and minsym_and_objfile_d.
	Add language member.
	(enum ls_token_type): New enum.
	(linespec_keywords): New array.
	(struct ls_token): New struct.
	(struct ls_parser): New struct.
	(linespec_lexer_lex_number): New function.
	(linespec_lexer_lex_keyword): New function.
	(is_ada_operator): New function.
	(skip_quote_char): New function.
	(copy_token_string): New function.
	(is_closing_quote_enclosed): New function.
	(find_parameter_list_end): New function.
	(linespec_lexer_lex_string): New function.
	(linespec_lexer_lex_one): New function.
	(linespec_lexer_consume_token): New function.
	(linespec_lexer_peek_token): New function.
	(cplusplus_error): Remove unused function.
	(find_methods): Update comment.
	(find_toplevel_char): Return const.
	(is_objc_method_format): Remove unused function.
	(find_toplevel_string): New function.
	(is_linespec_boundary): Remove.
	(symbol_not_found_error): New function.
	(find_method_overload_end): Remove function.
	(unexpected_linespec_error): New function.
	(keep_name_info): Remove.
	(linespec_parse_line_offset): New function.
	(linespec_parse_basic): New function.
	(canonicalize_linespec): New function.
	(decode_line_internal): Remove.
	(create_sals_line_offset): New function adapted from
	decode_all_digits.
	(convert_linespec_to_sals): New function.
	(parse_linespec): New function.
	(linespec_parser_new): New function.
	(linespec_state_destructor): Change parameter type to
	struct linespec_state *.
	Add language parameter.
	Remove freeing of moved members.
	(linespec_parser_delete): New function.
	(decode_line_full): Use parse_linespec and linespec_parser_new.
	(decode_line_1): Likewise.
	(decode_indirect): Rename to ...
	(linespec_expression_to_pc): ... this and rewrite
	to simply find CORE_ADDR, storing this result for later
	conversion to SALs.
	(locate_first_half): Remove.
	(deocde_objc): Add parameter LS.
	Initialize new struct collect_info members.
	Handle minimal symbols, too.
	(decode_compound): Delete.
	(lookup_prefix_sym): Rewrite.
	(compare_msymbols): New function.
	(find_method): Rewrite.
	Do not call cplusplus_error.
	(symtabs_from_filename): Rewrite.
	(collect_function_symbols): Delete.
	(find_function_symbols): Rewrite without ARGPTR-style
	processing.
	(decode_all_digits): Delete. (Rewritten as create_sals_line_offset.)
	(decode_dollar): Adapted and renamed to ...
	(linespec_parse_variable): ... this.
	(find_linespec_symbols): New function.
	(decode_label): Adapted and renamed to ...
	(find_label_symbols): ... this.
	(decode_digits_list_mode): Add and use LS argument.
	(decode_digits_ordinary): Likewise.
	(collect_symbols): Do not collect SALs, just symbols and msymbols.
	If in list mode, allow any symbol class.  Otherwise, only
	permit LOC_BLOCK symbols.
	(minsym_found): Update comments.
	(search_minsyms_for_name): Do not convert the matching symbol
	into a SAL.  Simply push the symbol and objfile into the
	result vector.
	(decode_variable): Delete. Contents adapted into
	find_linespec_symbols.

	* cp-support.c (SKIP_SPACE): Remove.
	(operator_tokens): Remove unused global.
	(cp_validate_operator): Remove.
	* cp-support.h (cp_validate_operator): Remove declaration.

2012-04-03  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* cp-valprint.c (cp_print_value_fields): Check valprint_check_validity
	for TYPE_VPTR_FIELDNO.
	* valprint.c (valprint_check_validity): Make it global, move the
	function comment ...
	* value.h (valprint_check_validity): ... to this new declaration.

2012-04-02  Tristan Gingold  <gingold@adacore.com>

	* i386-darwin-nat.c (i386_darwin_fetch_inferior_registers): Use
	the STATE32 api for i386 state.
	(i386_darwin_store_inferior_registers): Likewise.

2012-04-02  Tristan Gingold  <gingold@adacore.com>

	* i386-darwin-tdep.c (i386_darwin_thread_state_reg_offset): Fix
	SS offset.
	* i386-darwin-nat.c (i386_darwin_fetch_inferior_registers): Fix
	format_string.

2012-04-02  Tristan Gingold  <gingold@adacore.com>

	PR gdb/13901
	* darwin-nat.c (darwin_execvp): Set binary preference.

2012-04-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* NEWS (set breakpoint condition-evaluation): Use imperative mood.

2012-03-30  Tom Tromey  <tromey@redhat.com>

	* python/python.c (gdbpy_decode_line): Move cleanup creation out
	of TRY_CATCH.  Fix error handling.
	* python/py-value.c (convert_value_from_python): Move 'old'
	declaration to innermost scope.

2012-03-29  Joel Brobecker  <brobecker@adacore.com>
	    Andrey Smirnov  <andrew.smirnov@gmail.com>

	-Wshadow warning fix.
	* ada-lang.c (ada_make_symbol_completion_list): Rename parameters
	"wild_match" and "encoded" into "wild_match_p" and "encoded_p".
	Adjust code accordingly.

2012-03-29  Joel Brobecker  <brobecker@adacore.com>

	* ada-lang.c (symbol_completion_add): Rename parameter
	"encoded" into "encoded_p".  Ajust code and documentation
	accordingly.

2012-03-29  Joel Brobecker  <brobecker@adacore.com>
	    Andrey Smirnov  <andrew.smirnov@gmail.com>

	-Wshadow warning fix.
	* ada-lang.c (symbol_completion_add): Rename parameter
	"wild_match" into wild_match_p.  Update code and documentation
	accordingly.

2012-03-29  Joel Brobecker  <brobecker@adacore.com>

	* ada-lang.c (symbol_completion_match): Rename parameter
	"encoded" into "encoded_p".  Ajust code and documentation
	accordingly.

2012-03-29  Joel Brobecker  <brobecker@adacore.com>
	    Andrey Smirnov  <andrew.smirnov@gmail.com>

	-Wshadow warning fix.
	* ada-lang.c (symbol_completion_match): Rename parameter
	"wild_match" into "wild_match_p".  Adjust code and function
	documentation accordingly.

2012-03-29  Joel Brobecker  <brobecker@adacore.com>
	    Andrey Smirnov  <andrew.smirnov@gmail.com>

	-Wshadow warning fix.
	* ada-lang.c (ada_lookup_encoded_symbol): Rename parameter
	"symbol_info" into "info".  Adjust code accordingly.
	(ada_lookup_symbol): Likewise.

2012-03-29  Joel Brobecker  <brobecker@adacore.com>

	* ada-lang.c (ada_lookup_symbol_list): Minor reformatting
	of this function's documentation.

2012-03-29  Joel Brobecker  <brobecker@adacore.com>
	    Andrey Smirnov  <andrew.smirnov@gmail.com>

	-Wshadow warning fix.
	* ada-lang.c (ada_lookup_symbol_list): Rename "wild_match"
	variable into "wild_match_p".  Adjust code accordingly.

2012-03-29  Joel Brobecker  <brobecker@adacore.com>
	    Andrey Smirnov  <andrew.smirnov@gmail.com>

	-Wshadow warning fix.
	* ada-lang.c (ada_add_local_symbols): Rename "wild_match"
	parameter into "wild_match_p".  Adjust code accordingly.
	Document this parameter in the function description.

2012-03-29  Joel Brobecker  <brobecker@adacore.com>
	    Andrey Smirnov  <andrew.smirnov@gmail.com>

	-Wshadow warning fix.
	* ada-lang.c (add_symbols_from_enclosing_procs): Rename
	"wild_match" parameter to "wild_match_p" (-Wshadow).

2012-03-29  Joel Brobecker  <brobecker@adacore.com>

	* ada-lang.c (ada_lookup_simple_minsym): Remove trailing spaces
	in function documentation.

2012-03-29  Joel Brobecker  <brobecker@adacore.com>
	    Andrey Smirnov  <andrew.smirnov@gmail.com>

	-Wshadow warning fix.
	* ada-lang.c (ada_lookup_simple_minsym): Rename wild_match local
	variable into wild_match_p.  Adjust code accordingly.

2012-03-29  Joel Brobecker  <brobecker@adacore.com>
	    Andrey Smirnov  <andrew.smirnov@gmail.com>

	* ada-valprint.c (ada_val_print_1): Move the code handling
	TYPE_CODE_ENUM inside its own lexical block.  Declare
	variables len and val there, instead of in the function's
	top level block.  Avoid declaring deref_val again in a way
	that shadows another variable of the same name declared
	in one of the up-level blocks.  Just re-use the up-level
	variable instead.

2012-03-29  Joel Brobecker  <brobecker@adacore.com>

	* ada-lang.c (ada_lookup_encoded_symbol): Now returns void.
	Replace block_found argument by symbol_info.  Adjust
	implementation accordingly.  Add function documentation.
	(ada_lookup_symbol): Adjust to new ada_lookup_encoded_symbol.
	Fix documentation.
	* ada-lang.h (ada_lookup_encoded_symbol): Update declaration.
	* ada-exp.y (write_object_renaming): Adjust to new
	ada_lookup_encoded_symbol API.

2012-03-29  Joel Brobecker  <brobecker@adacore.com>

	* ada-lang.h (struct ada_symbol_info): Reformat.  Improve
	documentation.

2012-03-28  Rathish C  <rathish.c@kpitcummins.com>

	* v850-tdep.c: Add the enum values for mpu and fpu registers.
	(v850_register_name): Add the mpu and fpu register names.
	(v850e_register_name): Add the mpu and fpu register names.
	(v850e2_register_name): New function.
	(v850_gdbarch_init): Add case for bfd_mach_v850e2 and
	bfd_mach_v850e2v3.

2012-03-28  Joel Brobecker  <brobecker@adacore.com>

	* NEWS: Add entry for Ada varobj support.

2012-03-28  Joel Brobecker  <brobecker@adacore.com>

	* varobj.c (default_value_is_changeable_p): New function,
	extracted from varobj_value_is_changeable_p.  Add declaration.
	(ada_value_is_changeable_p): New function, extracted from
	varobj_value_is_changeable_p.  Add declaration.
	(struct language_specific): New field "value_is_changeable_p".
	(languages): Add entries for new field.
	(varobj_create): Set language before calling install_new_value.
	(varobj_value_is_changeable_p): Reimplement to call the varobj's
	"value_is_changeable_p" language callback.

2012-03-28  Joel Brobecker  <brobecker@adacore.com>

	* ada-varobj.h, ada-varobj.c: New files.
	* Makefile.in (SFILES): Add ada-varobj.c.
	(HFILES_NO_SRCDIR): Add ada-varobj.h.
	(COMMON_OBS): Add ada-varobj.o.

2012-03-28  Joel Brobecker  <brobecker@adacore.com>

	* varobj.c (ada_value_has_mutated): Add declaration.  New function.
	(struct language_specific): New field "value_has_mutated".
	(languages): Set field "value_has_mutated" in each entry of array.
	(varobj_value_has_mutated): New function.
	(varobj_udpdate): Add handling of type mutation.
	(value_of_root): Add handling of type mutation.
	(ada_value_has_mutated): New function.

2012-03-28  Pedro Alves  <palves@redhat.com>

	* ia64-linux-nat.c (supply_fpregset, ia64_linux_fetch_register):
	Always supply $fr0 as 0.0 and $fr1 as 1.0.

2012-03-28  Tom Tromey  <tromey@redhat.com>

	* python/py-inferior.c (infpy_read_memory): Remove cleanups and
	explicitly free 'buffer' on exit paths.  Decref 'membuf_object'
	before returning.

2012-03-28  Tom Tromey  <tromey@redhat.com>

	* .dir-locals.el: New file.

2012-03-28  Pedro Alves  <palves@redhat.com>

	* ia64-linux-nat.c (u_offsets): Map IA64_EC_REGNUM to PT_AR_EC.

2012-03-28  Joel Brobecker  <brobecker@adacore.com>

	* ia64-linux-nat.c (ia64_linux_fetch_register): Add special
	handling for r0.

2012-03-27  Pedro Alves  <palves@redhat.com>

	Eliminate struct ui_stream.

	* ui-out.h (struct ui_stream): Delete.
	(ui_out_field_stream): Adjust prototype.
	(ui_out_stream_new, ui_out_stream_delete)
	(make_cleanup_ui_out_stream_delete): Delete declarations.
	* ui-out.c (ui_out_field_stream): Change prototype to take a
	ui_file instead of a ui_stream.  Adjust.
	(ui_out_stream_new, ui_out_stream_delete, do_stream_delete)
	(make_cleanup_ui_out_stream_delete): Delete.
	* breakpoint.c (print_breakpoint_location)
	(print_one_detail_ranged_breakpoint, print_it_watchpoint): Use
	ui_file/mem_fileopen instead of ui_stream/ui_out_stream_new.
	* disasm.c (dump_insns): Ditto.
	(do_mixed_source_and_assembly, do_assembly_only): Adjust
	prototype.
	(gdb_disassembly): Use ui_file/mem_fileopen instead of
	ui_stream/ui_out_stream_new.
	* infcmd.c (print_return_value): Ditto.
	* osdata.c (info_osdata_command): Don't allocate a local
	ui_stream.
	* stack.c (print_frame_arg, print_frame_args, print_frame): Use
	ui_file/mem_fileopen instead of ui_stream/ui_out_stream_new.
	* tracepoint.c (print_one_static_tracepoint_marker): Don't
	allocate a local ui_stream.
	* mi/mi-cmd-stack.c (list_arg_or_local): Use ui_file/mem_fileopen
	instead of ui_stream/ui_out_stream_new.
	(list_args_or_locals): Don't allocate a local ui_stream.
	* mi/mi-main.c (get_register, mi_cmd_data_evaluate_expression)
	(mi_cmd_data_read_memory): Use ui_file/mem_fileopen instead of
	ui_stream/ui_out_stream_new.
	* cli/cli-setshow.c (do_setshow_command): Ditto.

2012-03-27  Oza Pawandeep  <oza.pawandeep@gmail.com>

	* arm-linux-tdep.c (arm_linux_init_abi): Call
	set_gdbarch_process_record.  Initialize `arm_swi_record' field.
	* arm-tdep.c (arm_process_record): New function.
	(deallocate_reg_mem): New function.
	(decode_insn): New function.
	(thumb_record_branch): New function.
	(thumb_record_ldm_stm_swi(): New function.
	(thumb_record_misc): New function.
	(thumb_record_ld_st_stack): New function.
	(thumb_record_ld_st_imm_offset): New function.
	(thumb_record_ld_st_reg_offset(): New function.
	(thumb_record_add_sub_cmp_mov): New function.
	(thumb_record_shift_add_sub): New function.
	(arm_record_coproc_data_proc): New function.
	(arm_record_coproc): New function.
	(arm_record_b_bl): New function.
	(arm_record_ld_st_multiple): New function.
	(arm_record_ld_st_reg_offset): New function.
	(arm_record_ld_st_imm_offset): New function.
	(arm_record_data_proc_imm): New function.
	(arm_record_data_proc_misc_ld_str): New function.
	(arm_record_extension_space): New function.
	(arm_record_strx): New function.
	(sbo_sbz): New function.
	(struct insn_decode_record): New structure for arm insn record.
	(REG_ALLOC): New macro for reg allocations.
	(MEM_ALLOC): New macro for memory allocations.
	* arm-tdep.h (struct gdbarch_tdep): New field 'arm_swi_record'.

2012-03-27  Andreas Schwab  <schwab@linux-m68k.org>

	* m68klinux-nat.c (fetch_register): Fix strict-aliasing violation.
	(store_register): Likewise.

2012-03-26  Oza Pawandeep  <oza.pawandeep@gmail.com>

	* MAINTAINERS (Write After Approval): Add myself to the list.

2012-03-25  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* NEWS (set breakpoint condition-evaluation): Change "gdb" to "host".
	Describe also the option "auto".

2012-03-22  Richard Henderson  <rth@redhat.com>

	* sparc-linux-nat.c (_initialize_sparc_linux_nat): Fix prototype.
	* sparc-nat.c (sparc_xfer_wcookie): Make static.

2012-03-22  Richard Henderson  <rth@redhat.com>

	* jit.c (jit_read_code_entry): Compute alignment and offset of
	int64_t member before computing entry_size.

2012-03-22  Siva Chandra Reddy  <sivachandra@google.com>

	Python scripting: Add new method Value.referenced_value to
	gdb.Value which can dereference pointer as well as reference
	values.
	* NEWS: Add entry under 'Python scripting' about the new method
	Value.referenced_value on gdb.Value objects.
	* python/py-value.c (valpy_referenced_value): New function
	defining a new method on gdb.Value objects which can dereference
	pointer and reference values.

2012-03-22  Siva Chandra Reddy  <sivachandra@google.com>

	* MAINTAINERS (Write After Approval): Add myself to the list.

2012-03-21  Kevin Buettner  <kevinb@redhat.com>

	* symtab.c (skip_prologue_sal): Change test to check for "main()"
	in addition to "main".

2012-03-21  Joel Brobecker  <brobecker@adacore.com>

	* expression.h (op_name): Add declaration.
	* expprint.c (op_name): Remove declaration.  Make non-static.
	* ax-gdb.c (gen_expr): Use op_name instead of op_string.

2012-03-21  Thomas Schwinge  <thomas@codesourcery.com>

	* amd64-linux-nat.c (amd64_linux_siginfo_fixup): Use siginfo_t instead
	of struct siginfo.
	* arm-linux-nat.c (arm_linux_stopped_data_address): Likewise.
	* ia64-linux-nat.c (ia64_linux_stopped_data_address): Likewise.
	* linux-nat.c (linux_nat_siginfo_fixup, siginfo_fixup)
	(linux_xfer_siginfo, linux_nat_set_siginfo_fixup)
	(linux_nat_get_siginfo): Likewise.
	* linux-nat.h (struct lwp_info, linux_nat_set_siginfo_fixup)
	(linux_nat_get_siginfo): Likewise.
	* linux-tdep.c (linux_get_siginfo_type): Likewise.
	* ppc-linux-nat.c (ppc_linux_stopped_data_address): Likewise.
	* procfs.c (gdb_siginfo_t): Likewise.

2012-03-21  Mike Frysinger  <vapier@gentoo.org>

	* .gitignore: Ignore more files.

2012-03-20  Pedro Alves  <palves@redhat.com>

	* remote.c (remote_start_remote): Clear `rs->starting_up' on early
	returns.

2012-03-20  Yao Qi  <yao@codesourcery.com>

	* amd64-tdep.c (amd64_displaced_step_copy_insn): Complete missing "}" in
	comment.

2012-03-19  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Code cleanupp: Use cu_offset and sect_offset compile time type checking.
	* dwarf2expr.c (add_piece, dwarf_get_base_type, execute_stack_op)
	(ctx_no_dwarf_call, ctx_no_get_base_type): Use cu_offset and
	sect_offset.
	* dwarf2expr.h (cu_offset, sect_offset): New types.
	(struct dwarf_expr_context_funcs) <dwarf_call>
	(struct dwarf_expr_context_funcs) <get_base_type>: Use cu_offset and
	sect_offset.
	(struct dwarf_expr_context) <len>: Improve the comment.
	(struct dwarf_expr_piece, ctx_no_dwarf_call, ctx_no_get_base_type): Use
	cu_offset and sect_offset.
	* dwarf2loc.c (per_cu_dwarf_call, dwarf_expr_dwarf_call)
	(dwarf_expr_get_base_type, needs_frame_dwarf_call)
	(dwarf2_compile_expr_to_ax, disassemble_dwarf_expression): Likewise.
	* dwarf2loc.h: Include dwarf2expr.h.
	(dwarf2_fetch_die_location_block, dwarf2_get_die_type): Use cu_offset
	and sect_offset.
	* dwarf2read.c (struct dwarf2_per_objfile) <debug_types_type_hash>:
	Improve the comment.
	(struct comp_unit_head, struct dwarf2_cu, struct dwarf2_per_cu_data)
	(struct signatured_type, struct line_header, struct partial_die_info)
	(struct die_info, find_partial_die, dwarf2_get_ref_die_offset)
	(lookup_signatured_type_at_offset, dwarf2_find_containing_comp_unit)
	(get_die_type_at_offset, create_cus_from_index)
	(create_signatured_type_table_from_index, dw2_get_file_names)
	(offset_in_cu_p, read_comp_unit_head, error_check_comp_unit_head)
	(read_and_check_comp_unit_head, read_and_check_type_unit_head)
	(create_debug_types_hash_table, process_psymtab_comp_unit)
	(load_partial_comp_unit, create_all_comp_units)
	(partial_die_parent_scope, partial_die_full_name, skip_one_die)
	(load_full_comp_unit, dwarf2_physname, read_import_statement)
	(inherit_abstract_dies, read_func_scope, read_call_site_scope)
	(dwarf2_add_member_fn, process_enumeration_scope, read_module_type)
	(read_typedef, die_hash, die_eq, read_full_die, dwarf2_read_abbrevs)
	(load_partial_dies, read_partial_die, find_partial_die_in_comp_unit)
	(find_partial_die, read_attribute_value, lookup_die_type)
	(dump_die_shallow, store_in_ref_table): Use cu_offset and sect_offset.
	(is_ref_attr): New function comment.
	(dwarf2_get_ref_die_offset): New function comment, new variable retval.
	Use cu_offset and sect_offset.
	(follow_die_offset, follow_die_ref, dwarf2_fetch_die_location_block)
	(dwarf2_get_die_type, follow_die_sig, lookup_signatured_type_at_offset)
	(load_full_type_unit, read_signatured_type, per_cu_header_read_in)
	(dwarf2_find_containing_comp_unit, struct dwarf2_offset_and_type)
	(offset_and_type_hash, offset_and_type_eq, set_die_type)
	(get_die_type_at_offset, partial_die_hash, partial_die_eq)
	(write_one_signatured_type, write_psymtabs_to_index): Use cu_offset and
	sect_offset.

2012-03-19  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Code cleanup.
	* python/py-auto-load.c (source_section_scripts): New variable back_to.
	Turn fclose and xfree calls into make_cleanup_fclose and make_cleanup
	with xfree.
	(auto_load_objfile_script): Turn fclose into make_cleanup_fclose.

2012-03-19  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* NEWS: Describe new options --init-command=FILE, -ix and
	--init-eval-command=COMMAND, -iex.
	* main.c (struct cmdarg): New enum items CMDARG_INIT_FILE and
	CMDARG_INIT_COMMAND.
	(captured_main): New enum items OPT_IX and OPT_IEX.  Add
	"init-command", "init-eval-command", "ix" and "iex" to the variable
	long_options.  Handle OPT_IX and OPT_IEX.  Process them from CMDARG_VEC.
	New comment for CMDARG_FILE and CMDARG_COMMAND processing.
	(print_gdb_help): Describe --init-command=FILE, -ix and
	--init-eval-command=COMMAND, -iex.

2012-03-19  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Code cleanup.
	* main.c (struct cmdarg): Move it here from main.  Add more comments.
	(cmdarg_s, VEC (cmdarg_s)): New.
	(main): Move struct cmdarg from here.  New variables cmdarg_vec and
	cmdarg_p.  Remove variables cmdsize and ncmd and their initialization.
	Install cleanup for cmdarg_vec.  Update filling for options 'x' and
	'X'.  Replace cmdarg processing by cmdarg_vec processing.  Remove xfree
	of CMDARG.

2012-03-19  Tom Tromey  <tromey@redhat.com>

	* gnu-v3-abi.c (gnuv3_print_vtable): Initialize 'result_vec'.

2012-03-16  Jan Kratochvil  <jan.kratochvil@redhat.com>

	PR symtab/13777
	* dwarf2read.c (process_full_comp_unit): Set LOCATIONS_VALID only for
	GCC >=4.5.

2012-03-16  Chris January  <chris.january@allinea.com>

	* tui-tui.win.c (tui_resize_all): Use erase and clearok instead
	of clear.

2012-03-16  Chris January  <chris.january@allinea.com>

	* source.c (add_path): Use memmove instead of strcpy because the
	strings overlap.

2012-03-16  Joel Brobecker  <brobecker@adacore.com>

	* value.h (set_value_parent): Add declaration.
	* value.c (set_value_parent): New function.
	(value_address): If VALUE->PARENT is not NULL, then use it as
	the base address instead of VALUE->LOCATION.address.
	* ada-lang.c (ada_value_primitive_packed_val): Keep V's address
	the same as OBJ's address.  Adjust V's offset accordingly.
	Set V's parent.

2012-03-16  Gary Benson  <gbenson@redhat.com>

	PR breakpoints/10738
	* dwarf2read.c (use_deprecated_index_sections): New global.
	(struct partial_die_info): New member may_be_inlined.
	(read_partial_die): Set may_be_inlined where appropriate.
	(add_partial_subprogram): Add partial symbols for partial
	DIEs that may be inlined.
	(new_symbol_full): Add inlined subroutines to the current
	scope.
	(write_psymtabs_to_index): Bump version number.
	(dwarf2_read_index): Read only version 6 indices unless
	use_deprecated_index_sections is set.
	* linespec.c (symbol_and_data_callback): New structure.
	(iterate_inline_only): New function.
	(iterate_over_all_matching_symtabs): New argument
	"include_inline".  If nonzero, also call the callback for
	symbols representing inlined subroutines.
	(lookup_prefix_sym): Pass extra argument to the above.
	(find_function_symbols): Likewise.
	(add_matching_symbols_to_info): Likewise.
	* NEWS: Mention that GDB can now set breakpoints on inlined
	functions.

2012-03-16  Pierre Muller  <muller@ics.u-strasbg.fr>

	* p-typeprint.c (pascal_type_print_method_args):
	Fix display of parameter of methods.

2012-03-16  Pierre Muller  <muller@ics.u-strasbg.fr>

	* amd64-windows-nat.c (_initialize_amd64_windows_nat):
	Add missing prototype.

2012-03-16  Yao Qi  <yao@codesourcery.com>
	    Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix false compilation warning.
	* gnu-v3-abi.c (print_one_vtable): Initialize ADDR.

2012-03-15  Jonathan Larmour  <jifl@eCosCentric.com>
	    Pedro Alves  <pedro@codesourcery.com>

	* arm-tdep.c: Include "remote.h" and "features/arm-with-m-fpa-layout.c".
	(arm_register_g_packet_guesses): New function.
	(arm_gdbarch_init): Don't force a target description with
	registers when the executable is detected as M-profile.  Instead
	set gdbarch->tdep->is_m.  Register `g' packet guesses.
	(_initialize_arm_tdep): Initialize the new target description.
	* features/arm-with-m-fpa-layout.xml: New description.
	* features/arm-with-m-fpa-layout.c: New, generated.

2012-03-15  Joel Brobecker  <brobecker@adacore.com>

	* breakpoint.c (breakpoint_xfer_memory): Add assertion.
	Update function description.
	(insert_bp_location): Do not wipe bl->target_info out.
	* mem-break.c: #include "gdb_string.h".
	(default_memory_insert_breakpoint): Do not call target_read_memory
	with a pointer to the breakpoint's shadow_contents buffer.  Use
	a local buffer instead.
	* m32r-tdep.c (m32r_memory_insert_breakpoint): Ditto.

2012-03-15  Tom Tromey  <tromey@redhat.com>

	* NEWS: Mention "info vtbl", not "info vtable".
	* cp-support.c (info_vtbl_command): Fix comment.
	(_initialize_cp_support): Fix text.

2012-03-15  Tom Tromey  <tromey@redhat.com>

	* cp-valprint.c (cp_print_value_fields): Use
	print_function_pointer_address for vtable slot.

2012-03-15  Tom Tromey  <tromey@redhat.com>

	* gnu-v3-abi.c (struct value_and_voffset): New.
	(hash_value_and_voffset, eq_value_and_voffset)
	(compare_value_and_voffset, compute_vtable_size)
	(print_one_vtable, gnuv3_print_vtable): New functions.
	(init_gnuv3_ops): Initialize 'print_vtable' field.
	* cp-support.c (info_vtbl_command): New function.
	(_initialize_cp_support): Add "info vtbl".
	* cp-abi.h (cplus_print_vtable): Declare.
	(struct cp_abi_ops) <print_vtable>: New field.
	* cp-abi.c (cplus_print_vtable): New function.
	* NEWS: Update.

2012-03-15  Tom Tromey  <tromey@redhat.com>

	* d-lang.c (d_language_defn) <la_iterate_over_symbols>: Set to
	iterate_over_symbols.

2012-03-14  Doug Evans  <dje@google.com>

	* dwarf2read.c (dwarf_stack_op_name): Add DW_OP_GNU_encoded_addr,
	DW_OP_GNU_parameter_ref.

2012-03-14  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix double prompt of 'interpreter-exec mi'.
	* mi/mi-interp.c (mi_execute_command_input_handler): New prototype.
	(mi_interpreter_resume): use it.
	(mi_execute_command_input_handler): New function.
	* mi/mi-main.c (mi_execute_command): Move prompt printing to
	mi_execute_command_input_handler.

2012-03-13  Josh Matthews  <josh@joshmatthews.net>  (tiny change)

	* darwin-nat-info.c (_initialize_darwin_info_commands): Add
	prototype.
	(darwin_debug_port_info): Make static.
	* darwin-nat.c (_initialize_darwin_inferior): Add prototype.
	* machoread.c (_initialize_machoread): Add prototype.
	* i386-darwin-nat.c (i386_darwin_dr_set, i386_darwin_dr_get)
	(i386_darwin_set_control, i386_darwin_get_control)
	i386_darwin_dr_set_addr, i386_darwin_get_addr)
	i386_darwin_get_status, i386_darwin_get_control):
	Comment out with HW_WATCHPOINT_NOT_YET_ENABLED macro.

2012-03-13  Joel Brobecker  <brobecker@adacore.com>

	* ax-gdb.c (gen_usual_unary): Remove special handling of
	enum and bool types.

2012-03-13  Joel Brobecker  <brobecker@adacore.com>

	* ax-gdb.c (gen_fetch): Add handling for TYPE_CODE_RANGE types.

2012-03-13  Joel Brobecker  <brobecker@adacore.com>

	* aix-thread.c (supply_fprs): Make more consistent with fill_fprs.

2012-03-13  Chris January  <chris.january@allinea.com>

	* aix-thread.c (fill_sprs): Store the floating point registers
	at the correct offsets into vals.

2012-03-13  Doug Evans  <dje@google.com>

	* NEWS: Mention symbol-reloading has been deleted.
	* symfile.c (symbol_reloading): Delete.
	(show_symbol_reloading): Delete.
	(_initialize_symfile): Delete set/show symbol-reloading.

	* dwarf2read.c (load_partial_comp_unit): Defer adding cu to
	read_in_chain until we have successfully read it in.
	(load_full_comp_unit): Ditto.
	(read_signatured_type): Add comment.

2012-03-13  Chris January  <chris.january@allinea.com>

	* stabsread.c (fix_common_block): Change type of valu argument
	to CORE_ADDR.

2012-03-13  Chris January  <chris.january@allinea.com>

	* rs6000-tdep.c (skip_prologue): Support the oril r29, r1, 0x0
	instruction.

2012-03-13  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* common/linux-procfs.c (linux_proc_get_int): New, from
	linux_proc_get_tgid, change its LWPID type to pid_t, add parameter
	field.
	(linux_proc_get_tgid): Only call linux_proc_get_int.
	(linux_proc_get_tracerpid): New.
	(linux_proc_pid_has_state): New, from linux_proc_pid_is_zombie.
	(linux_proc_pid_is_stopped, linux_proc_pid_is_zombie): Only call
	linux_proc_pid_has_state.
	* common/linux-procfs.h (linux_proc_get_tracerpid): New declaration.
	* common/linux-ptrace.c: Include linux-procfs.h and buffer.h.
	(linux_ptrace_attach_warnings): New.
	* common/linux-ptrace.h (struct buffer, linux_ptrace_attach_warnings):
	New declaration.
	* linux-nat.c: Include exceptions.h, linux-ptrace.h and buffer.h.
	(linux_nat_attach): New variables ex, buffer, message and message_s.
	Wrap to_attach by TRY_CATCH and call linux_ptrace_attach_warnings.

2012-03-13  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* Makefile.in (linux-ptrace.o): New.
	* common/linux-procfs.c (linux_proc_pid_is_zombie): New,
	from linux-nat.c.
	* common/linux-procfs.h (linux_proc_pid_is_zombie): New declaration.
	* common/linux-ptrace.c: New file.
	* config/alpha/alpha-linux.mh (NATDEPFILES): Add linux-ptrace.o.
	* config/arm/linux.mh: Likewise.
	* config/i386/linux.mh: Likewise.
	* config/i386/linux64.mh: Likewise.
	* config/ia64/linux.mh: Likewise.
	* config/m32r/linux.mh: Likewise.
	* config/m68k/linux.mh: Likewise.
	* config/mips/linux.mh: Likewise.
	* config/pa/linux.mh: Likewise.
	* config/powerpc/linux.mh: Likewise.
	* config/powerpc/ppc64-linux.mh: Likewise.
	* config/powerpc/spu-linux.mh: Likewise.
	* config/s390/s390.mh: Likewise.
	* config/sparc/linux.mh: Likewise.
	* config/sparc/linux64.mh: Likewise.
	* config/xtensa/linux.mh: Likewise.
	* linux-nat.c (linux_lwp_is_zombie): Remove, move it to
	common/linux-procfs.c.
	(wait_lwp): Rename linux_lwp_is_zombie to linux_proc_pid_is_zombie.

2012-03-13  Hui Zhu  <teawater@gmail.com>
	    Pedro Alves  <palves@redhat.com>

	* breakpoint.c (init_breakpoint_sal): New flags parameter.  Handle
	CREATE_BREAKPOINT_FLAGS_INSERTED.
	(create_breakpoint_sal, create_breakpoints_sal)
	(base_breakpoint_create_breakpoints_sal)
	(tracepoint_create_breakpoints_sal)
	(strace_marker_create_breakpoints_sal): New flags parameter.  Pass
	down.
	(break_command_1, handle_gnu_v3_exceptions, trace_command)
	(ftrace_command, strace_command): Adjust.
	(create_tracepoint_from_upload): Pass
	CREATE_BREAKPOINT_FLAGS_INSERTED.
	* breakpoint.h (enum breakpoint_create_flags): New.
	(create_breakpoint): New flags parameter.
	* mi/mi-cmd-break.c (mi_cmd_break_insert): Adjust.
	* python/py-breakpoint.c (bppy_init): Adjust.
	* python/py-finishbreakpoint.c (bpfinishpy_init): Adjust.
	* spu-tdep.c (spu_catch_start): Adjust.

2012-03-13  Pedro Alves  <palves@redhat.com>
	    Hui Zhu  <teawater@gmail.com>
	    Yao Qi  <yao@codesourcery.com>

	* remote.c (struct remote_state): New field `starting_up'.
	(remote_start_remote): Set and clear it.
	(remote_can_download_tracepoint): If starting up, return false.

2012-03-13  Yao Qi  <yao@codesourcery.com>

	* inferior.h (struct inferior): Remove fields any_syscall_count,
	syscalls_counts and total_syscalls_count.  Move them to new
	struct catch_syscall_inferior_data in breakpoint.c.
	* breakpoint.c: Call DEF_VEC_I(int).
	(struct catch_syscall_inferior_data): New.
	(get_catch_syscall_inferior_data): New.
	(catch_syscall_inferior_data_cleanup): New.
	(insert_catch_syscall): Update to access data in
	struct catch_syscall_inferior_data.
	(insert_catch_syscall): Likewise.
	(remove_catch_syscall): Likewise.
	(remove_catch_syscall): Likewise.
	(is_syscall_catchpoint_enabled): Likewise.
	(add_catch_command): Likewise.
	(_initialize_breakpoint): Register cleanup.
	* breakpoint.h: Removed DEF_VEC_I(int).
	* dwarf2loc.c: Call DEF_VEC_I(int).
	* mi/mi-main.c: Likewise.

2012-03-12  Mark Kettenis  <kettenis@gnu.org>

	* inf-ptrace.c (inf_ptrace_post_attach): Make static.

2012-03-12  Chris January  <chris.january@allinea.com>

	* aix-thread.c (_initialize_aix_thread): Add prototype.
	* rs6000-nat.c (_initialize_rs6000_nat): Ditto.
	* xcoffsolib.c (_initialize_xcoffsolib): Ditto.

2012-03-12  Joel Brobecker  <brobecker@adacore.com>

	* amd64bsd-nat.c: Move #include of "amd64bsd-nat.h" after
	include of "amd64-nat.h".

2012-03-12  Tom Tromey  <tromey@redhat.com>

	* buildsym.c (record_pending_block): Now static.
	* buildsym.h: (record_pending_block): Remove.

2012-03-12  Andreas Tobler  <andreast@fgznet.ch>

	* amd64bsd-nat.c: Include amd64bsd-nat.h.

2012-03-09  Tom Tromey  <tromey@redhat.com>

	* dwarf2read.c (struct dwarf2_cu) <checked_producer,
	producer_is_gxx_lt_4_6>: New fields.
	(producer_is_gxx_lt_4_6): Use and update producer cache fields.

2012-03-09  Tom Tromey  <tromey@redhat.com>

	* dwarf2read.c (dwarf2_attr): Avoid tail-recursive call.

2012-03-08  Joel Brobecker  <brobecker@adacore.com>

	* ravenscar-sparc-thread.c (_initialize_ravenscar_sparc): Add
	prototype.

2012-03-08  Joel Brobecker  <brobecker@adacore.com>

	* ravenscar-thread.c (_initialize_ravenscar): Add prototype.

2012-03-08  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix -Wmissing-prototypes build.
	* arm-linux-nat.c (get_thread_id): Make it static.
	* xtensa-linux-nat.c (get_thread_id): Likewise.

2012-03-08  Joel Brobecker  <brobecker@adacore.com>

	* server.c (process_point_options): If a conditional expression
	is found, only print a message if remote_debug is nonzero.

2012-03-08  Luis Machado  <lgustavo@codesourcery.com>

	* ax-gdb.c (gen_fetch): Fail gracefully and use error instead
	of internal error for unknown/unsupported types.

2012-03-08  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix CU relative vs. absolute DIE offsets.
	* dwarf2loc.h (dwarf2_fetch_die_location_block): Rename parameter
	offset to offset_in_cu.
	* dwarf2read.c (process_enumeration_scope): Add CU offset to
	TYPE_OFFSET.
	(dwarf2_fetch_die_location_block): Rename parameter offset to
	offset_in_cu.  New variable offset, add CU offset to OFFSET_IN_CU.

2012-03-08  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* libunwind-frame.c: Rename to ...
	* ia64-libunwind-tdep.c: ... here.
	* libunwind-frame.h: Rename to ...
	* ia64-libunwind-tdep.h: ... here.
	* Makefile.in (HFILES_NO_SRCDIR): Rename libunwind-frame.h to
	ia64-libunwind-tdep.h.
	(ALLDEPFILES): Rename libunwind-frame.c to ia64-libunwind-tdep.c.
	* README (--with-libunwind): Rename to ...
	(--with-libunwind-ia64): ... here, note it is ia64 specific now.
	* config.in: Regenerate.
	* configure: Regenerate.
	* configure.ac: New option --with-libunwind-ia64, make the
	AS_HELP_STRING ia64 specific.  Deprecate option --with-libunwind.
	Remove AC_DEFINE for HAVE_LIBUNWIND.
	* ia64-libunwind-tdep.c: Make the file top comment ia64 specific.
	Rename libunwind-frame.h #include to ia64-libunwind-tdep.h.
	Rename libunwind-frame in the general comment.
	* ia64-libunwind-tdep.h: Make the file top comment ia64 specific.
	Rename symbol LIBUNWIND_FRAME_H to IA64_TDEP_LIBUNWIND_FRAME_H.
	Move forward declarations inside #ifndef.  Rename libunwind-frame in
	the general comment.
	* ia64-tdep.c: Rename libunwind-frame.h #include to
	ia64-libunwind-tdep.h.
	(ia64_gdb2uw_regnum, ia64_uw2gdb_regnum, ia64_is_fpreg)
	(ia64_libunwind_descr): Rename libunwind-frame to
	ia64-libunwind-tdep in these function comments.
	* ia64-tdep.h: Rename libunwind-frame.h #include to
	ia64-libunwind-tdep.h.
	* ia64-vms-tdep.c (ia64_vms_libunwind_descr): Rename libunwind-frame to
	ia64-libunwind-tdep in that data comment.

2012-03-08  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* libunwind-frame.h (struct frame_unwind): New declaration.

2012-03-08  Joel Brobecker  <brobecker@adacore.com>

	* breakpoint.c (_initialize_breakpoint): Fix error in help of
	"set breakpoint condition-evaluation" command.

2012-03-08  Tristan Gingold  <gingold@adacore.com>

	* sparc-stub.c: Move to stubs/
	* sh-stub.c: Likewise.
	* m68k-stub.c: Likewise.
	* m32r-stub.c: Likewise.
	* i386-stub.c: Likewise.

2012-03-08  Andreas Schwab  <schwab@linux-m68k.org>

	* m68klinux-tdep.c (m68k_linux_init_abi): Register
	linux_get_siginfo_type.

	* m68klinux-nat.c: Include "gdb_proc_service.h".
	(PTRACE_GET_THREAD_AREA): Define.
	(ps_get_thread_area): New function.

2012-03-08  Yao Qi  <yao@codesourcery.com>

	* remote.c (remote_get_noisy_reply): Replace `sprintf' with
	`xsnprintf'.
	(remote_query_attached): Likewise.
	(remote_static_tracepoint_marker_at): Likewise.
	(remote_set_permissions): Likewise.
	(remote_detach_1, extended_remote_attach_1): Likewise.
	(send_g_packet, remote_vkill): Likewise.
	(extended_remote_disable_randomization): Likewise.
	(remote_add_target_side_condition): Likewise.
	(remote_insert_breakpoint): Likewise.
	(remote_remove_breakpoint): Likewise.
	(remote_insert_watchpoint): Likewise.
	(remote_remove_watchpoint): Likewise.
	(remote_insert_hw_breakpoint): Likewise.
	(remote_insert_hw_breakpoint): Likewise.
	(remote_remove_hw_breakpoint): Likewise.
	(remote_download_command_source): Likewise.
	(remote_download_tracepoint): Likewise.
	(remote_download_trace_state_variable): Likewise.
	(remote_disable_tracepoint): Likewise.
	(remote_trace_set_readonly_regions): Likewise.
	(remote_get_tracepoint_status): Likewise.
	(remote_trace_find): Likewise.
	(remote_get_trace_state_variable_value): Likewise.
	(remote_set_disconnected_tracing): Likewise.
	(remote_set_circular_trace_buffer): Likewise.
	(remote_get_min_fast_tracepoint_insn_len): Likewise.
	(remote_use_agent): Likewise.
	(remote_add_target_side_condition): Add one parameter BUF_SIZE.
	Update callers.

2012-03-07  Pedro Alves  <palves@redhat.com>

	* NEWS: Mention QProgramSignals.
	* inferior.h (update_signals_program_target): Declare.
	* infrun.c: (update_signals_program_target): New.
	(handle_command): Update the target of the new program signals
	array changes.
	* remote.c (PACKET_QProgramSignals): New enum.
	(last_program_signals_packet): New global.
	(remote_program_signals): New.
	(remote_start_remote): Update the target with the program signals
	list.
	(remote_protocol_features): Add entry for QPassSignals.
	(remote_open_1): Free anc clear last_program_signals_packet.
	(init_remote_ops): Install remote_program_signals.
	* target.c (update_current_target): Adjust.
	(target_program_signals): New.
	* target.h (struct target_ops) <to_program_signals>: New field.
	(target_program_signals): Declare.

2012-03-07  Pedro Alves  <palves@redhat.com>

	* NEWS: Add subtitle for new z0/z1 conditional breakpoint
	extensions.

2012-03-07  Andreas Schwab  <schwab@linux-m68k.org>

	* m68klinux-nat.c (getregs_supplies): Make static.
	(getfpregs_supplies): Likewise.
	(have_ptrace_getregs): Likewise.

2012-03-06  Joel Brobecker  <brobecker@adacore.com>

	* dwarf2read.c (dwarf2_get_die_type): Pass absolute offset
	in call to get_die_type_at_offset.

2012-03-06  Stan Shebs  <stan@codesourcery.com>

	* mi/mi-cmd-break.c: Enforce coding standards, fix comments.
	* mi/mi-cmd-disas.c: Ditto.
	* mi/mi-cmd-env.c: Ditto.
	* mi/mi-cmd-file.c: Ditto.
	* mi/mi-cmd-stack.c: Ditto.
	* mi/mi-cmd-target.c: Ditto.
	* mi/mi-cmd-var.c: Ditto.
	* mi/mi-cmds.c: Ditto.
	* mi/mi-cmds.h: Ditto.
	* mi/mi-console.c: Ditto.
	* mi/mi-getopt.c: Ditto.
	* mi/mi-getopt.h: Ditto.
	* mi/mi-interp.c: Ditto.
	* mi/mi-main.c: Ditto.
	* mi/mi-out.c: Ditto.
	* mi/mi-parse.c: Ditto.
	* mi/mi-parse.h: Ditto.
	* mi/mi-symbol-cmds.c: Ditto.

	* mi/mi-getopt.h: Move mi_opt struct up.
	* mi/mi-main.c (captured_mi_execute_command): Remove redundant
	return.
	* mi/mi-out.c (_initialize_mi_out): Remove empty initialize.

2012-03-06  Tom Tromey  <tromey@redhat.com>

	* proc-service.c (ps_pglobal_lookup): Set the current program
	space.

2012-03-06  Pedro Alves  <palves@redhat.com>

	* gregset.h [HAVE_SYS_PROCFS_H]: Include <sys/procfs.h>.

2012-03-05  Joel Brobecker  <brobecker@adacore.com>

	* MAINTAINERS: List Maciej W. Rozycki as the mips maintainer.

2012-03-05  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Code cleanup.
	* common/linux-osdata.c (linux_common_core_of_thread): New function
	comment.
	* linux-nat.c (linux_nat_wait_1): Replace linux_nat_core_of_thread_1
	call by linux_common_core_of_thread.
	(linux_nat_core_of_thread_1): Remove.
	* linux-nat.h (linux_nat_core_of_thread_1): Remove declaration.
	* linux-thread-db.c: Include linux-osdata.h.
	(update_thread_core): Replace linux_nat_core_of_thread_1 call by
	linux_common_core_of_thread.

2012-03-05  Tom Tromey  <tromey@redhat.com>

	* value.c (value_primitive_field): Don't fetch contents for
	non-virtual bases.

2012-03-05  Tom Tromey  <tromey@redhat.com>

	* jv-valprint.c (java_value_print): Correctly compute 'obj_addr'.

2012-03-05  Andreas Arnez  <arnez@linux.vnet.ibm.com>

	* s390-nat.c: Include "gregset.h".

2012-03-05  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* libunwind-frame.c (LIBUNWIND_SO): Change .7 to .8.
	[!LIBUNWIND_SO] (LIBUNWIND_SO_7): New #define.
	(libunwind_load): New variable so_error, use it for dlerror.  Try to
	load also LIBUNWIND_SO_7.

2012-03-05  Pedro Alves  <palves@redhat.com>

	* i387-tdep.c (i387_supply_xsave): Assert the xsave section buffer
	is not NULL, and remove resulting dead code.

2012-03-05  Thomas Schwinge  <thomas@codesourcery.com>

	* sh-tdep.c (sh_skip_prologue): Provide an upper limit on the function
	prologue to sh_analyze_prologue.
	(sh_analyze_prologue): Make better use of such an upper limit, and
	generally be more cautious about accessing memory.

2012-03-05  Tom Tromey  <tromey@redhat.com>

	* ia64-vms-tdep.c (_initialize_ia64_vms_tdep): Rename from
	_initialize_ia64_hpux_tdep.

2012-03-05  Pedro Alves  <palves@redhat.com>

	PR gdb/13766

	* i387-tdep.c (i387_supply_xsave): If we have an xsave buffer, and
	the register state is clear, supply explicit zero, instead of
	marking the register unavailable.

2012-03-05  Tristan Gingold  <gingold@adacore.com>

	* NEWS: Mention OpenVMS ia64 new target.

2012-03-05  Tristan Gingold  <gingold@adacore.com>

	* ia64-tdep.h: Include libunwind-frame.h and libunwind-ia64.h.
	(ia64_unw_accessors, ia64_unw_rse_accessors)
	(ia64_libunwind_descr): Declare.
	* ia64-vms-tdep.c: New file.
	* ia64-tdep.c (ia64_unw_accessors, ia64_unw_rse_accessors)
	(ia64_libunwind_descr): Make them public.
	* configure.tgt: Add ia64-*-*vms*.
	* Makefile.in (ALL_64_TARGET_OBS): Add ia64-vms-tdep.o
	(ALLDEPFILES): Add ia64-vms-tdep.c

2012-03-05  Tristan Gingold  <gingold@adacore.com>

	* target.h (target_object): Add TARGET_OBJECT_OPENVMS_UIB.
	* remote.c (PACKET_qXfer_uib): New enum value.
	(remote_protocol_features): Add entry for PACKET_qXfer_uib.
	(remote_xfer_partial): Handle TARGET_OBJECT_OPENVMS_UIB.
	(_initialize_remote): Call add_packet_config_cmd for
	xfer:uib packet.

2012-03-05  Tristan Gingold  <gingold@adacore.com>

	* osabi.c (gdb_osabi_names): Add OpenVMS.
	(generic_elf_osabi_sniffer): Likewise.
	* defs.h (gdb_osabi): Add GDB_OSABI_OPENVMS.

2012-03-04  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Removed unused code.
	* libunwind-frame.c (libunwind_frame_unwind)
	(libunwind_frame_base_address): Remove.
	* libunwind-frame.h (libunwind_frame_base_address): Remove declaration.

2012-03-04  Yao Qi  <yao@codesourcery.com>

	* common/agent.c (gdb_connect_sync_socket): Add _ markup and
	remove trailing new line.
	(agent_run_command, agent_run_command): Add _ markup.
	(agent_capability_check): Likewise.

2012-03-03  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* breakpoint.c (set_condition_evaluation_mode): Set
	CONDITION_EVALUATION_MODE unconditionally.

2012-03-03  Yao Qi  <yao@codesourcery.com>

	* common/agent.c (agent_look_up_symbols): Add one parameter 'arg'.
	* common/agent.h: Update declaration.
	* inf-child.c (inf_child_use_agent): New.
	(inf_child_can_use_agent): New.
	(inf_child_target): Initialize fields `to_use_agent'
	and `to_can_use_agent'.
	* agent.c (agent_new_objfile): New.
	(_initialize_agent): Add agent_new_objfile to new_objfile
	observer.

	* linux-nat.c (linux_child_static_tracepoint_markers_by_strid):
	New.
	(linux_target_install_ops): Initialize field
	`to_static_tracepoint_markers_by_strid'.
	* remote.c (free_current_marker): Move it to ...
	* tracepoint.c (free_current_marker): ... here.  New.
	(cleanup_target_stop): New.
	* tracepoint.h: Declare free_current_marker.
	* NEWS: Add one entry about `info static-tracepoint-marker'.

2012-03-03  Yao Qi  <yao@codesourcery.com>

	* common/agent.c (agent_loaded_p): New.
	(agent_look_up_symbols): New global.
	* common/agent.h: Declare agent_loaded_p.

2012-03-03  Yao Qi  <yao@codesourcery.com>

	* common/agent.c (struct ipa_sym_addresses) <addr_capability>: New.
	(agent_capability_check, agent_capability_invalidate): New.
	(symbol_list): New array element.
	* common/agent.h (enum agent_capa): New.
	* target.c (target_pre_inferior): Call agent_capability_invalidate.

2012-03-03  Yao Qi  <yao@codesourcery.com>

	* target.h (struct target_ops) <to_use_agent>: New field.
	(struct target_ops) <to_can_use_agent>: New field.
	(target_use_agent, target_can_use_agent): New macro.
	* target.c (update_current_target): Update.
	* remote.c: New enum `PACKET_QAgent'.
	(remote_protocol_features): Add a new element.
	(remote_use_agent, remote_can_use_agent): New.
	(init_remote_ops): Initialize field `can_use_agent' with
	remote_can_use_agent.  Intiailize field `use_agent' with
	remote_use_agent.
	* common/agent.c (use_agent): New global.
	* common/agent.h: Declare it.
	* tracepoint.c (info_static_tracepoint_markers_command): Add
	comment.
	* Makefile.in (SFILES): Add common/agent.c and agent.c.
	(COMMON_OBS): Add common/agent.o and agent.o
	(common-agent.o): New rule.
	* agent.c: New.

2012-03-03  Yao Qi  <yao@codesourcery.com>

	* common/agent.c: New.
	* common/agent.h: New.
	* configure.ac: Add `sys/socket.h' and `sys/un.h' to
	AC_CHECK_HEADERS.
	* configure, configh.in: Regenerated.

2012-03-02  Kevin Buettner  <kevinb@redhat.com>

	* sh-tdep.c (sh_frame_cache): Don't fetch the FPSCR register
	unless it exists for this architecture.

2012-03-02  Joel Brobecker  <brobecker@adacore.com>

	* language.h (struct language_defn): New "method" la_read_var_value.
	* findvar.c: #include "language.h".
	(default_read_var_value): Renames read_var_value.  Rewrite
	function description.
	(read_var_value): New function.
	* value.h (default_read_var_value): Add prototype.
	* ada-lang.c (ada_read_renaming_var_value, ada_read_var_value):
	New functions.
	(ada_language_defn): Add entry for la_read_var_value.
	* c-lang.c, d-lang.c, f-lang.c, jv-lang.c, language.c,
	* m2-lang.c, objc-lang.c, opencl-lang.c, p-lang.c: Update
	language_defn structures to add entry for new la_read_var_value
	field.

2012-03-02  Tom Tromey  <tromey@redhat.com>
	    Pedro Alves  <palves@redhat.com>

	PR breakpoints/13776:
	* breakpoint.c (breakpoint_init_inferior): Delete step-resume
	breakpoints.
	(delete_longjmp_breakpoint_at_next_stop): New.
	* breakpoint.h (delete_longjmp_breakpoint_at_next_stop): Declare.
	* target.c (generic_mourn_inferior): Call mark_breakpoints_out
	before deleting the inferior.  Add comments.
	* thread.c (clear_thread_inferior_resources): Don't delete lonjmp
	breakpoints immediately, but only on next stop.  Move that code
	next to where we mark other breakpoints for deletion.

2012-03-02  Joel Brobecker  <brobecker@adacore.com>

	* mips-linux-nat.c (mips_linux_read_description): Add missing i18n
	marker.
	* mips-tdep.c (mips_linux_reg_names): Improve comment to avoid ARI
	violation.

2012-03-02  Pedro Alves  <palves@redhat.com>

	* linux-thread-db.c (attach_thread): Avoid in_thread_list call.

2012-03-02  Ulrich Weigand  <uweigand@de.ibm.com>

	Fix -Wmissing-prototypes build.
	* ppc-linux-nat.c (ppc_linux_get_hwcap): Make static.
	* remote-sim.c (gdbsim_has_all_memory): Likewise.
	(gdbsim_has_memory): Likewise.

2012-03-02  Yao Qi  <yao@codesourcery.com>

	Fix -Wmissing-prototypes build.
	* charset.c (phony_iconv_open): Make static.
	(phony_iconv_close, phony_iconv): Likewise.
	* i386-linux-nat.c (_initialize_i386_linux_nat): New prototype.
	* i386-windows-nat.c (_initialize_i386_windows_nat): New
	prototype.
	* mingw-hdep.c (_initialize_mingw_hdep): New prototype.
	* ser-mingw.c (create_select_thread): Make static.
	* windows-termcap.c (tgetent): New prototype.
	(tgetnum, tgetflag, tgetstr, tputs, tgoto): Likewise.

2012-03-02  Zhang Yuanhui  <asmwarrior@gmail.com>

	Fix -Wmissing-prototypes build.
	* windows-nat.c (dll_symbol_command, ctrl_c_handler): Make them static.
	(_initialize_windows_nat, _initialize_check_for_gdb_ini)
	(_initialize_loadable): New prototypes.

2012-03-02  Doug Evans  <dje@google.com>

	* dwarf2read.c (load_full_comp_unit): Remove unnecessary reading of
	abbrev table, read_comp_unit will do it.

2012-03-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix -Wmissing-prototypes build.
	* alpha-tdep.c (alpha_deal_with_atomic_sequence): Make it static.
	* amd64-darwin-tdep.c (_initialize_amd64_darwin_tdep): New prototype.
	* amd64-windows-tdep.c (_initialize_amd64_windows_tdep): Likewise.
	* arm-symbian-tdep.c (arm_symbian_skip_trampoline_code): Make it static.
	(_initialize_arm_symbian_tdep): New prototype.
	* arm-wince-tdep.c (arm_wince_skip_main_prologue): Make it static.
	* i386-darwin-tdep.c (_initialize_i386_darwin_tdep): New prototype.
	* i386-linux-tdep.c (i386_linux_displaced_step_copy_insn): Make it
	static.
	* lm32-tdep.c (_initialize_lm32_tdep): New prototype.
	* microblaze-linux-tdep.c (_initialize_microblaze_linux_tdep): New
	prototype.
	* microblaze-tdep.c (microblaze_debug, microblaze_fetch_instruction)
	(microblaze_skip_prologue, microblaze_frame_cache): Make them static.
	* mips-linux-tdep.c (mips_linux_regset_from_core_section): Make it
	static.
	* moxie-tdep.c (moxie_process_record): Likewise.
	* remote-mips.c (mips_can_use_watchpoint, mips_insert_watchpoint)
	(mips_remove_watchpoint, mips_stopped_by_watchpoint): Make them static.
	* rl78-tdep.c (rl78_breakpoint_from_pc): Make it static.
	(_initialize_rl78_tdep): New prototype.
	* rx-tdep.c (rx_breakpoint_from_pc): Make it static.
	(_initialize_rx_tdep): New prototype.
	* solib-darwin.c (darwin_in_dynsym_resolve_code): Make it static.
	(_initialize_darwin_solib): New prototype.
	* solib-spu.c: Include solib-spu.h.
	(_initialize_spu_solib): New prototype.
	* spu-multiarch.c (_initialize_spu_multiarch): New prototype.
	* tic6x-tdep.c (tic6x_analyze_prologue, tic6x_skip_prologue)
	(tic6x_breakpoint_from_pc, tic6x_frame_unwind_cache)
	(tic6x_software_single_step): Make it static.
	(_initialize_tic6x_tdep): New prototype.

2012-03-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix -Wmissing-prototypes build.
	* cris-tdep.c (cris_can_use_hardware_watchpoint)
	(cris_region_ok_for_watchpoint, cris_stopped_data_address): Remove.

2012-03-01  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix -Wmissing-prototypes build.
	* frv-tdep.c (frv_check_watch_resources, frv_stopped_data_address)
	(frv_have_stopped_data_address): Remove.

2012-03-01  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix -Wmissing-prototypes build.
	* Makefile.in (HFILES_NO_SRCDIR): Add sh64-tdep.h.
	* sh-tdep.c: Include sh64-tdep.h.
	* sh-tdep.h (sh64_gdbarch_init, sh64_show_regs): Remove declarations.
	* sh64-tdep.c: Include sh64-tdep.h.
	* sh64-tdep.h: New file.

2012-03-01  Maciej W. Rozycki <macro@codesourcery.com>

	* mips-tdep.c (mips32_scan_prologue): Correct indentation.

2012-03-01  Maciej W. Rozycki  <macro@codesourcery.com>

	* mips-tdep.c (mips_gdbarch_init): Only set pc_regnum and
	sp_regnum once the gdbarch_init_osabi hook has been called.

2012-03-01  Maciej W. Rozycki  <macro@codesourcery.com>

	* mips-tdep.c (mips32_bc1_pc): New function.
	(mips32_next_pc): Handle BC1ANY2F, BC1ANY2T, BC1ANY4F, BC1ANY4T,
	BPOSGE32 and BPOSGE64 instructions.
	(deal_with_atomic_sequence): Likewise.
	(mips32_instruction_has_delay_slot): Likewise.

2012-03-01  Maciej W. Rozycki  <macro@mips.com>
	    Chris Dearman  <chris@mips.com>
	    Maciej W. Rozycki  <macro@codesourcery.com>
	    Joseph Myers  <joseph@codesourcery.com>

	* features/mips-dsp.xml: New file.
	* features/mips64-dsp.xml: New file.
	* features/mips-dsp-linux.xml: New file.
	* features/mips64-dsp-linux.xml: New file.
	* features/Makefile (WHICH): Add mips-dsp-linux and
	mips64-dsp-linux.
	(mips-dsp-expedite, mips64-dsp-expedite): New variables.
	* features/mips-dsp-linux.c: New file.
	* features/mips64-dsp-linux.c: New file.
	* regformats/mips-dsp-linux.dat: New file.
	* regformats/mips64-dsp-linux.dat: New file.
	* mips-linux-nat.c (mips_linux_register_addr): Handle DSP
	registers.
	(mips64_linux_register_addr): Likewise.
	(mips64_linux_regsets_fetch_registers): Likewise.
	(mips64_linux_regsets_store_registers): Likewise.
	(mips64_linux_fetch_registers): Update call to
	mips64_linux_regsets_fetch_registers.
	(mips64_linux_store_registers): Update call to
	mips64_linux_regsets_store_registers.
	(mips_linux_read_description): Probe for DSP registers.
	(_initialize_mips_linux_nat): Call initialize_tdesc_mips_dsp_linux
	and initialize_tdesc_mips64_dsp_linux.
	* mips-linux-tdep.c (supply_gregset, mips64_supply_gregset):
	Remove padding of no longer used embedded register slots.
	* mips-linux-tdep.h (DSP_BASE, DSP_CONTROL): New macros.
	(MIPS_RESTART_REGNUM): Redefine enum value.
	* mips-tdep.c (mips_generic_reg_names): Remove trailing null
	strings.
	(mips_tx39_reg_names): Likewise.
	(mips_linux_reg_names): New array of register names for Linux
	targets.
	(mips_register_name): Check for a null pointer in
	mips_processor_reg_names and return an empty string.
	(mips_register_type): Exclude embedded registers for the IRIX
	and Linux ABIs.
	(mips_pseudo_register_type): Likewise.  Use dynamic numbers to
	refer to FP registers, LO, HI, BadVAddr, Cause and PC.  Handle
	DSP registers.
	(mips_stab_reg_to_regnum): Handle DSP accumulators.
	(mips_dwarf_dwarf2_ecoff_reg_to_regnum): Likewise.
	(mips_gdbarch_init): Likewise.  Initialize internal register
	indices for the Linux ABI.  Use dynamic numbers to refer to
	registers, as applicable, while parsing the target description.
	* mips-tdep.h (struct mips_regnum): Add dspacc/dspctl offsets.

2012-03-01  Joel Brobecker  <brobecker@adacore.com>

	* frame.h (read_frame_register_unsigned): Fix typo in function
	description.

2012-03-01  Pedro Alves  <palves@redhat.com>

	* jit-reader.in [!__cplusplus]
	(GDB_DECLARE_GPL_COMPATIBLE_READER): Add missing backslash.

2012-03-01  Pedro Alves  <palves@redhat.com>

	* configure.ac (build_warnings): Add -Wmissing-prototypes.
	* configure: Regenerate.

2012-03-01  Pedro Alves  <palves@redhat.com>

	* amd64-linux-tdep.c (amd64_linux_record_signal): Make static.
	* breakpoint.c (create_exception_master_breakpoint, trace_command)
	(ftrace_command, strace_command): Make static.
	* d-lang.c (_initialize_d_language): Declare.
	* dwarf2expr.c (_initialize_dwarf2expr): Declare.
	* dwarf2loc.c (_initialize_dwarf2loc):
	* dwarf2read.c (process_psymtab_comp_unit): Make static.
	* exec.c (exec_get_section_table): Make static.
	* i386-linux-tdep.c (i386_linux_record_signal): Make static.
	* infcmd.c (ensure_valid_thread, ensure_not_tfind_mode): Make static.
	* inferior.c (remove_inferior_command, add_inferior_command)
	(clone_inferior_command): Make static.
	* linux-nat.c (linux_nat_thread_address_space)
	(linux_nat_core_of_thread): Make static.
	* linux-tdep.c (_initialize_linux_tdep): Declare.
	* objc-lang.c (_initialize_objc_lang): Declare.
	* opencl-lang.c (builtin_opencl_type, opencl_language_arch_info):
	Make static.
	(_initialize_opencl_language): Declare.
	* record.c (_initialize_record): Declare.
	* remote.c (demand_private_info, remote_get_tib_address)
	(remote_supports_cond_tracepoints)
	(remote_supports_fast_tracepoints, remote_get_tracepoint_status):
	Make static.
	* skip.c (_initialize_step_skip): Declare.
	* symtab.c (skip_prologue_using_lineinfo): Make static.
	* tracepoint.c (delete_trace_state_variable)
	(trace_variable_command, delete_trace_variable_command)
	(get_uploaded_tsv, find_matching_tracepoint_location)
	(find_matching_tsv, create_tsv_from_upload, get_traceframe_info):
	Make static.
	* value.c (pack_unsigned_long): Make static.
	* varobj.c (varobj_ensure_python_env): Make static.
	* windows-tdep.c (_initialize_windows_tdep): Declare.
	* xml-syscall.c (make_cleanup_free_syscalls_info): Make static.

2012-03-01  Pedro Alves  <palves@redhat.com>

	* linux-tdep.c (linux_has_shared_address_space): Make static.  Add
	gdbarch parameter.
	(linux_init_abi): Install it as has_shared_address_space gdbarch
	callback.

2012-03-01  Pedro Alves  <palves@redhat.com>

	* observer.c (observer_test_first_notification_function)
	(observer_test_second_notification_function)
	(observer_test_third_notification_function): Add declarations.

2012-03-01  Pedro Alves  <palves@redhat.com>

	* common/signals.c (default_target_signal_to_host)
	(default_target_signal_from_host): Move ...
	* arch-utils.c: ... here.
	* arch-utils.h (default_target_signal_to_host)
	(default_target_signal_from_host): Declare.

	* common/signals.c (target_signal_from_command): Move ...
	* infrun.c: ... here.
	* inferior.h (target_signal_from_command): Declare.
	* target.h (target_signal_from_command)
	(default_target_signal_from_host, default_target_signal_to_host):
	Delete declarations.

	* common/signals.c (_initialize_signals): Delete.

2012-03-01  Pedro Alves  <palves@redhat.com>

	* jit-reader.in (plugin_is_GPL_compatible): Add declarations for
	both __cplusplus and !__cplusplus.

2012-03-01  Pedro Alves  <palves@redhat.com>

	* psymtab.c (find_and_open_source): Delete declaration.
	* source.c (find_and_open_source): Move comment ...
	* source.h (find_and_open_source): ... to this new declaration.

2012-03-01  Pedro Alves  <palves@redhat.com>

	* inline-frame.c: Include inline-frame.h.

2012-03-01  Pedro Alves  <palves@redhat.com>

	* tui/tui-data.c (set_gen_win_origin): Delete.
	* tui/tui-data.h (tui_set_gen_win_origin): Delete declaration.
	* tui/tui-regs.c (tui_last_reg_element_no_in_line): Delete.

2012-03-01  Pedro Alves  <palves@redhat.com>

	* remote.c (encode_actions): Delete declaration.
	* tracepoint.c (encode_actions): Make extern.
	* tracepoint.h (encode_actions): Declare.

2012-03-01  Pedro Alves  <palves@redhat.com>

	* python/py-breakpoint.c: Include python.h.
	* python/py-continueevent.c (create_continue_event_object): Make
	static.
	* python/py-lazy-string.c (stpy_get_type): Make static.
	* python/py-newobjfileevent.c (create_new_objfile_event_object):
	Make static.
	* python/py-utils.c (unicode_to_target_python_string): Make
	static.
	* python/py-value.c: Include python.h.

2012-03-01  Pedro Alves  <palves@redhat.com>

	* inferior.c (delete_threads_of_inferior): Delete.

2012-03-01  Pedro Alves  <palves@redhat.com>

	Import fallback definitions from glibc.

	* gdb_proc_service.h [!HAVE_PROC_SERVICE_H] (struct
	ps_prochandle): Forward declare.
	(ps_err_e): Use glibc's comments.
	[!HAVE_PROC_SERVICE_H] (ps_pdread, ps_pdwrite, ps_ptread)
	(ps_ptwrite, ps_lgetregs, ps_lsetregs, ps_lgetfpregs)
	(ps_lsetfpregs, ps_getpid, ps_get_thread_area, ps_pglobal_lookup)
	(ps_pstop, ps_pcontinue, ps_lstop, ps_lcontinue, ps_lgetxregsize)
	(ps_lgetxregs, ps_lsetxregs, ps_plog): Declare.
	(struct ps_prochandle): Adjust comment.

2012-03-01  Pedro Alves  <palves@redhat.com>

	* ada-lang.c (ada_modulus_from_name): Delete.
	* ada-lex.l (lexer_init): Make static.

2012-03-01  Pedro Alves  <palves@redhat.com>

	PR gdb/13767

	* frame.c (read_frame_register_unsigned): New.
	* frame.h (read_frame_register_unsigned): Declare.
	* i387-tdep.c (print_i387_status_word): New parameter `status_p'.
	Handle it.
	(print_i387_control_word): New parameter `control_p'.  Handle it.
	(i387_print_float_info): Handle unavailable float registers.

2012-03-01  Keith Seitz  <keiths@redhat.com>

	* linespec.c (decode_line_2): Sort the list of methods
	alphabetically before presenting the user with a selection
	menu.

2012-03-01  Doug Evans  <dje@google.com>

	* dwarf2read.c (dwarf2_cu): Remove unused members has_form_ref_addr,
	has_namespace_info.
	(dwarf2_read_abbrevs): Remove corresponding initialization.

2012-03-01  Scott J. Goldman <scottjg@vmware.com>

	* NEWS: Mention new python command class gdb.COMMAND_USER.
	* cli/cli-cmds.c (show_user): Print error when used on a python
	command.
	(init_cli_cmds): Update documentation strings for "show user" and
	"set/show max-user-call-depth" to clarify that it does not apply to
	python commands.
	* python/py-cmd.c (cmdpy_init): Treat class_user as a valid class in
	error check.
	(gdbpy_initialize_commands): Add COMMAND_USER as a constant in
	gdb python api.
	* top.c (execute_command): Only execute a user-defined command as a
	legacy macro if c->user_commands is set.

2012-03-01  Tom Tromey  <tromey@redhat.com>

	* valprint.h (struct generic_val_print_decorations): New.
	(generic_val_print): Declare.
	* valprint.c (generic_val_print): New function.
	* p-valprint.c (p_decorations): New global.
	(pascal_val_print) <TYPE_CODE_REF, TYPE_CODE_ENUM,
	TYPE_CODE_FLAGS, TYPE_CODE_FUNC, TYPE_CODE_RANGE, TYPE_CODE_INT,
	TYPE_CODE_FLT, TYPE_CODE_VOID, TYPE_CODE_ERROR, TYPE_CODE_UNDEF,
	TYPE_CODE_BOOL, TYPE_CODE_CHAR>: Call generic_val_print.
	* m2-valprint.c (m2_decorations): New global.
	(m2_val_print) <TYPE_CODE_REF, TYPE_CODE_ENUM, TYPE_CODE_FUNC,
	TYPE_CODE_BOOL, TYPE_CODE_RANGE, TYPE_CODE_INT, TYPE_CODE_CHAR,
	TYPE_CODE_FLT, TYPE_CODE_METHOD, TYPE_CODE_VOID, TYPE_CODE_UNDEF,
	TYPE_CODE_ERROR>: Call generic_val_print.
	* f-valprint.c (f_decorations): New global.
	(f_val_print): Use print_function_pointer_address.
	<TYPE_CODE_REF, TYPE_CODE_FUNC, TYPE_CODE_CHAR, TYPE_CODE_FLAGS,
	TYPE_CODE_FLT, TYPE_CODE_VOID, TYPE_CODE_ENUM, TYPE_CODE_RANGE,
	TYPE_CODE_BOOL, TYPE_CODE_COMPLEX, TYPE_CODE_UNDEF>: Call
	generic_val_print.
	* c-valprint.c (c_decorations): New global.
	(c_val_print) <TYPE_CODE_MEMBERPTR, TYPE_CODE_REF, TYPE_CODE_ENUM,
	TYPE_CODE_FLAGS, TYPE_CODE_FUNC, TYPE_CODE_METHOD, TYPE_CODE_BOOL,
	TYPE_CODE_RANGE, TYPE_CODE_CHAR, TYPE_CODE_FLT,
	TYPE_CODE_DECFLOAT, TYPE_CODE_VOID, TYPE_CODE_ERROR,
	TYPE_CODE_UNDEF, TYPE_CODE_COMPLEX>: Call generic_val_print.
	* ada-valprint.c (ada_val_print_1) <TYPE_CODE_FLAGS>: Remove
	case.

2012-03-01  Tom Tromey  <tromey@redhat.com>

	* valprint.c (val_print): Update.
	* p-valprint (pascal_val_print): Return void.
	* p-lang.h (pascal_val_print): Return void.
	* m2-valprint.c (m2_val_print): Return void.
	* m2-lang.h (m2_val_print): Return void.
	* language.h (struct language_defn) <la_val_print>: Return void.
	* language.c (unk_lang_val_print): Return void.
	* jv-valprint.c (java_val_print): Return void.
	* jv-lang.h (java_val_print): Return void.
	* f-valprint.c (f_val_print): Return void.
	* f-lang.h (f_val_print): Return void.
	* d-valprint.c (d_val_print): Return void.
	(dynamic_array_type): Update.
	* d-lang.h (d_val_print): Return void.
	* c-valprint.c (c_val_print): Return void.
	* c-lang.h (c_val_print): Return void.
	* ada-valprint.c (ada_vada_val_print, ada_val_print_1): Return
	void.
	* ada-lang.h (ada_val_print): Return void.

2012-03-01  Tom Tromey  <tromey@redhat.com>

	* value.h (val_print): Return void.
	* valprint.c (val_print): Return void.

2012-03-01  Tom Tromey  <tromey@redhat.com>

	* value.h (common_val_print): Return void.
	* valprint.c (common_val_print): Return void.

2012-03-01  Tom Tromey  <tromey@redhat.com>

	* value.h (value_print): Return void.
	* valprint.c (value_print): Return void.
	* p-valprint.c (pascal_value_print): Return void.
	* p-lang.h (pascal_value_print): Return void.
	* language.h (struct language_defn) <la_value_print>: Return
	void.
	* language.c (unk_lang_value_print): Return void.
	* jv-valprint.c (java_value_print): Return void.
	* jv-lang.h (java_value_print): Return void.
	* f-valprint.c (c_value_print): Don't declare.
	Include c-lang.h.
	* c-valprint.c (c_value_print): Return void.
	* c-lang.h (c_value_print): Return void.
	* ada-valprint.c (ada_value_print): Return void.
	* ada-lang.h (ada_value_print): Return void.

2012-03-01  Tom Tromey  <tromey@redhat.com>

	* value.c (value_primitive_field): Handle virtual base classes.

2012-03-01  Tom Tromey  <tromey@redhat.com>

	* gdbtypes.h (struct vbase): Remove.

2012-03-01  Tom Tromey  <tromey@redhat.com>

	* c-valprint.c (print_function_pointer_address): Move...
	* valprint.c: ... here.  Make non-static.
	* m2-valprint.c (print_function_pointer_address): Remove.
	* valprint.h (print_function_pointer_address): Declare.

2012-03-01  Joel Brobecker  <brobecker@adacore.com>

	* NEWS: Document the fact that one can provide a condition when
	creating an Ada exception catchpoint.

2012-03-01  Tom Tromey  <tromey@redhat.com>

	* valprint.c (val_print_type_code_flags): Fix placement of
	trailing brace.

2012-03-01  Joel Brobecker  <brobecker@adacore.com>

	* copyright.py (MULTILINE_COMMENT_PREFIXES): Delete.
	(update_files): Do not set MULTILINE_COMMENT_PREFIXES
	environment variable before calling update-copyright.

2012-03-01  Joel Brobecker  <brobecker@adacore.com>

	* gnulib/extra/update-copyright: Update to the latest from
	gnulib's git repository.
	* copyright.py: Set UPDATE_COPYRIGHT_USE_INTERVALS environment
	variable to 2 instead of 1.

2012-02-29  Joel Brobecker  <brobecker@adacore.com>

	* varobj.c (c_value_of_variable): Remove dead code.

2012-02-29  Joel Brobecker  <brobecker@adacore.com>

	* ada-lex.p (processId): Do not modify already encoded IDs.
	Update function documentation.

2012-02-29  Joel Brobecker  <brobecker@adacore.com>

	* ada-lang.h (ada_find_renaming_symbol): Replace parameter
	"name" with "struct symbol *name_sym".
	* ada-exp.y (write_var_or_type): Update call to
	ada_find_renaming_symbol.
	"name" with "struct symbol *name_sym". Adjust Implementation
	accordingly.  Adjust the function documentation.

2012-02-29  Joel Brobecker  <brobecker@adacore.com>

	* ada-lang.h (ada_find_any_symbol, ada_find_any_type): Delete.
	* ada-lang.c (ada_find_any_type): Add advance declaration.
	Make static.  Replace ada_find_any_symbol by
	ada_find_any_type_symbol.
	(ada_find_any_type_symbol): Renames ada_find_any_symbol.
	Improve function description.  Make static.
	(ada_find_renaming_symbol, find_old_style_renaming_symbol):
	Replace ada_find_any_symbol by ada_find_any_type_symbol.

2012-02-29  Joel Brobecker  <brobecker@adacore.com>

	* ada-lang.c (struct tag_args): Delete.
	(ada_get_tsd_type): Function body moved up in source file.
	(ada_tag_name_1, ada_tag_name_2): Delete.
	(ada_get_tsd_from_tag): New function.
	(ada_tag_name_from_tsd): New function.
	(ada_tag_name): Use a TRY_CATCH block instead of catch_errors
	to determine the tag name.

2012-02-29  Joel Brobecker  <brobecker@adacore.com>

	* ada-lang.h (ada_get_decoded_value, ada_get_decoded_type): Add
	declaration.
	* ada-lang.c (ada_get_decoded_value, ada_get_decoded_type): New
	function.

2012-02-29  Joel Brobecker  <brobecker@adacore.com>

	* ada-lang.c (ada_is_ignored_field): Rewrite wrong comment.

2012-02-29  Joel Brobecker  <brobecker@adacore.com>

	* ada-lang.c (ada_lookup_symbol_list): Only cache the result of
	full searches.

2012-02-29  Joel Brobecker  <brobecker@adacore.com>

	* ada-lang.c (constrained_packed_array_type): If there is a
	parallel XA type, use it to determine the array index type.

2012-02-29  Joel Brobecker  <brobecker@adacore.com>

	* ada-valprint.c (ada_val_print_1): If our value is a reference
	to an array descriptor, dereference it before converting it
	to a simple array.

2012-02-29  Joel Brobecker  <brobecker@adacore.com>

	* ada-lang.c (ada_to_fixed_value): Call unwrap_value before
	creating fixed value.
	(ada_value_ind, ada_coerce_ref, assign_component)
	(ada_evaluate_subexp): Remove call to unwrap_value before
	call to ada_to_fixed_value.

2012-02-29  Joel Brobecker  <brobecker@adacore.com>

	* ada-lang.c (to_fixed_array_type): Set result's type name.

2012-02-29  Joel Brobecker  <brobecker@adacore.com>

	* ada-lang.c (catch_ada_exception_command_split): Add new
	argument cond_string.  Add support for condition at end of
	"catch exception" commands.
	(ada_decode_exception_location): Add new argument cond_string.
	Update call to catch_ada_exception_command_split.
	(create_ada_exception_catchpoint): Add new argument cond_string.
	Set the breakpoint condition if needed.
	(catch_ada_exception_command): Update call to
	ada_decode_exception_location.
	(ada_decode_assert_location): Add function documentation.
	Add support for condition at end of "catch assert" command.
	(catch_assert_command): Update calls to ada_decode_assert_location
	and create_ada_exception_catchpoint.

2012-02-29  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix disp-step-syscall.exp: fork: single step over fork.
	* i386-linux-tdep.c (-i386_linux_get_syscall_number): Rename to ...
	(i386_linux_get_syscall_number_from_regcache): ... here, new function
	comment, change parameters gdbarch and ptid to regcache.  Remove
	parameter regcache, initialize gdbarch from regcache here.
	(i386_linux_get_syscall_number, i386_linux_displaced_step_copy_insn):
	New functions.
	(i386_linux_init_abi): Install i386_linux_displaced_step_copy_insn
	instead.
	* i386-tdep.c (i386_syscall_p): Check also for 'sysenter' and
	'syscall'.  Make the 'int' check more strict.

2012-02-29  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix reverse mode for syscall on AMD CPUs in 32-bit mode.
	* i386-linux-tdep.c (i386_linux_intx80_sysenter_record): Rename to ...
	(i386_linux_intx80_sysenter_syscall_record): ... here.
	(i386_linux_init_abi): Initialize also I386_SYSCALL_RECORD.
	Use the renamed function name.

2012-02-29  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* arm-linux-tdep.c (arm_linux_copy_svc): Reset stale FRAME.
	* breakpoint.c (until_break_command): Likewise.
	* elfread.c (elf_gnu_ifunc_resolver_stop): Likewise.
	* infcall.c (call_function_by_hand): Likewise.
	* infcmd.c (finish_forward): Likewise.
	* infrun.c (insert_exception_resume_breakpoint): Likewise.

2012-02-28  Tristan Gingold  <gingold@adacore.com>

	* ada-tasks.c (ada_tasks_inferior_data_sniffer): Rework code to
	avoid variable assignments inside condition.

2012-02-28  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix static analysis issue found by cppcheck.
	* microblaze-tdep.c (microblaze_extract_return_value): Fix
	uninitialized BUF for size 2.

2012-02-27  Chris Dearman  <chris@mips.com>
	    Nathan Froyd  <froydnj@codesourcery.com>
	    Maciej W. Rozycki  <macro@codesourcery.com>

	* mips-tdep.c (mips32_instruction_has_delay_slot): New function.
	(mips16_instruction_has_delay_slot): Likewise.
	(mips_segment_boundary): Likewise.
	(mips_adjust_breakpoint_address): Likewise.
	(mips_gdbarch_init): Use mips_adjust_breakpoint_address.

2012-02-27  Maciej W. Rozycki  <macro@mips.com>
	    Maciej W. Rozycki  <macro@codesourcery.com>

	* infrun.c (handle_inferior_event): Don't proceed through
	shared library trampolines if stepping at the machine
	instruction level.

2012-02-27  Maciej W. Rozycki  <macro@codesourcery.com>

	* mips-linux-tdep.c (mips_linux_init_abi): Set num_pseudo_regs
	too.

2012-02-27  Thomas Schwinge  <thomas@codesourcery.com>

	* sh-tdep.c (sh_make_stub_cache, sh_stub_this_id)
	(sh_stub_unwind_sniffer): New functions.
	(sh_stub_unwind): New variable.
	(sh_gdbarch_init): Wire everything.

2012-02-27  Pedro Alves  <palves@redhat.com>

	* linux-nat.c (pid_is_stopped): Delete, moved to common/.
	(linux_nat_post_attach_wait): Adjust to use
	linux_proc_pid_is_stopped.
	* common/linux-procfs.h (linux_proc_pid_is_stopped): Declare.
	* common/linux-procfs.c (linux_proc_pid_is_stopped): New function,
	based on pid_is_stopped from both linux-nat.c and
	gdbserver/linux-low.c, and renamed.

2012-02-24  Maciej W. Rozycki  <macro@codesourcery.com>

	* remote.c (remote_watchpoint_addr_within_range): New function.
	(init_remote_ops): Use it.

2012-02-24  Maciej W. Rozycki  <macro@codesourcery.com>

	* target.h (target_watchpoint_addr_within_range): Document macro.

2012-02-24  Pedro Alves  <palves@redhat.com>

	* stack.c (set_last_displayed_sal): Issue internal_error instead
	of warning, and issue it after clearing the last displayed sal.

2012-02-24  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Pedro Alves  <palves@redhat.com>

	* breakpoint.c (until_break_command): Install breakpoints after
	all frame manipulations.

2012-02-24  Luis Machado  <lgustavo@codesourcery.com>

	* remote.c (remote_supports_cond_breakpoints): New forward
	declaration.
	(remote_add_target_side_condition): New function.
	(remote_insert_breakpoint): Add target-side breakpoint
	conditional if supported.
	(remote_insert_hw_breakpoint): Likewise.
	(init_remote_ops): Set to_supports_evaluation_of_breakpoint_conditions
	hook.

	* target.c (update_current_target): Inherit
	to_supports_evaluation_of_breakpoint_conditions.
	Default to_supports_evaluation_of_breakpoint_conditions to return_zero.

	* target.h (struct target_ops)
	<to_supports_evaluation_of_breakpoint_conditions>: New field.
	(target_supports_evaluation_of_breakpoint_conditions): New #define.

	* breakpoint.c (get_first_locp_gte_addr): New forward declaration.
	(condition_evaluation_both, condition_evaluation_auto,
	condition_evaluation_host, condition_evaluation_target,
	condition_evaluation_enums, condition_evaluation_mode_1,
	condition_evaluation_mode): New	static globals.
	(translate_condition_evaluation_mode): New function.
	(breakpoint_condition_evaluation_mode): New function.
	(gdb_evaluates_breakpoint_condition_p): New function.
	(ALL_BP_LOCATIONS_AT_ADDR): New helper macro.
	(mark_breakpoint_modified): New function.
	(mark_breakpoint_location_modified): New function.
	(set_condition_evaluation_mode): New function.
	(show_condition_evaluation_mode): New function.
	(bp_location_compare_addrs): New function.
	(get_first_location_gte_addr): New helper function.
	(set_breakpoint_condition): Free condition bytecode if locations
	has become unconditional.  Call mark_breakpoint_modified (...).
	(condition_command): Call update_global_location_list (1) for
	breakpoints.
	(breakpoint_xfer_memory): Use is_breakpoint (...).
	(is_breakpoint): New function.
	(parse_cond_to_aexpr): New function.
	(build_target_condition_list): New function.
	(insert_bp_location): Handle target-side conditional
	breakpoints and call build_target_condition_list (...).
	(update_inserted_breakpoint_locations): New function.
	(insert_breakpoint_locations): Handle target-side conditional
	breakpoints.
	(bpstat_check_breakpoint_conditions): Add comment.
	(bp_condition_evaluator): New function.
	(bp_location_condition_evaluator): New function.
	(print_breakpoint_location): Print information on where the condition
	will be evaluated.
	(print_one_breakpoint_location): Likewise.
	(init_bp_location): Call mark_breakpoint_location_modified (...) for
	breakpoint location.
	(force_breakpoint_reinsertion): New functions.
	(update_global_location_list): Handle target-side breakpoint
	conditions.
	Reinsert locations that are already inserted if conditions have
	changed.
	(bp_location_dtor): Free agent expression bytecode.
	(disable_breakpoint): Call mark_breakpoint_modified (...).
	Call update_global_location_list (...) with parameter 1 for breakpoints.
	(disable_command): Call mark_breakpoint_location_modified (...).
	Call update_global_location_list (...) with parameter 1 for breakpoints.
	(enable_breakpoint_disp): Call mark_breakpoint_modified (...).
	(enable_command): mark_breakpoint_location_modified (...).
	(_initialize_breakpoint): Update documentation and add
	condition-evaluation breakpoint subcommand.

	* breakpoint.h: Include ax.h.
	(condition_list): New data structure.
	(condition_status): New enum.
	(bp_target_info) <cond_list>: New field.
	(bp_location) <condition_changed, cond_bytecode>: New fields.
	(is_breakpoint): New prototype.

2012-02-24  Luis Machado  <lgustavo@codesourcery.com>

	* remote.c (remote_state) <cond_breakpoints>: New field.
	(PACKET_ConditionalBreakpoints): New enum.
	(remote_cond_breakpoint_feature): New function.
	(remote_protocol_features): Add new ConditionalBreakpoints entry.
	(remote_supports_cond_breakpoints): New function.
	(_initialize_remote): Add new packet configuration for
	target-side conditional breakpoints.

2012-02-24  Luis Machado  <lgustavo@codesourcery.com>

	* NEWS: Mention target-side conditional breakpoint support,
	new condition-evaluation breakpoint subcommand and remote
	packet extensions.

2012-02-24  Luis Machado  <lgustavo@codesourcery.com>

	* breakpoint.c (bp_location_compare): Sort by pspace before sorting by
	number.

2012-02-24  Thomas Schwinge  <thomas@codesourcery.com>

	* sh-tdep.c (sh_skip_prologue): Use skip_prologue_using_sal.
	(after_prologue): Remove.

2012-02-23  Tom Tromey  <tromey@redhat.com>

	* jv-valprint.c (java_val_print): Remove dead code.

2012-02-23  Tristan Gingold  <gingold@adacore.com>

	* ada-tasks.c (struct ada_tasks_inferior_data): Add
	known_tasks_element and known_tasks_length fields.
	(read_known_tasks_array): Change argument type.  Use pointer type
	and number of elements from DATA.  Adjust.
	(read_known_tasks_list): Likewise.
	(get_known_tasks_addr): Remove.
	(ada_set_current_inferior_known_tasks_addr): Renamed to ...
	(ada_tasks_inferior_data_sniffer): ... this.  Use symtab for element
	type and array length.	Merge former get_known_tasks_addr code.

2012-02-23  Jan Kratochvil  <jan.kratochvil@redhat.com>

	PR backtrace/13716
	* infcmd.c (finish_forward): New variable frame_id, initialize it, use
	it after set_momentary_breakpoint.

2012-02-22  Sterling Augustine  <saugustine@google.com>

	PR 13689:
	* breakpoint.c (watchpoint_exp_is_constant): Add UNOP_CAST to switch.

2012-02-22  Gary Benson  <gbenson@redhat.com>

	* dwarf2read.c (dwarf2_read_index): Correct misspelling.
	(find_slot_in_mapped_hash): Likewise.

2012-02-21  Jan Kratochvil  <jan.kratochvil@redhat.com>

	PR build/13638
	* configure.ac (MAKEINFO): Replace AC_CHECK_PROG by AC_ARG_VAR.
	(MAKEINFOFLAGS): Replace static string by AC_ARG_VAR.
	* configure: Regenerate.

2012-02-21  Tristan Gingold  <gingold@adacore.com>
	    Pedro Alves  <palves@redhat.com>

	* ia64-tdep.c: Do not include libunwind-ia64.h.
	* libunwind-frame.h: Remove #ifdef HAVE_LIBUNWIND_H guard.
	Include libunwind-ia64.h instead of libunwind.h.
	* configure.ac (--with-libunwind, $enable_libunwind): Don't check
	for libunwind.h existence.
	* configure, config.in: Regenerate.

2012-02-21  Anton Gorenkov  <xgsa@yandex.ru>

	* c-valprint.c (c_value_print): Use value_rtti_indirect_type
	instead of value_rtti_target_type.
	* eval.c (evaluate_subexp_standard): Use value_rtti_indirect_type
	instead of value_rtti_target_type.
	* typeprint.c (whatis_exp): Use value_rtti_indirect_type instead of
	value_rtti_target_type.
	* valops.c (value_ind): Extract function readjust_indirect_value_type.
	(value_rtti_target_type): Rename to ...
	(value_rtti_indirect_type): ... here and make it indirect.  Update
	function comment.
	* value.c (readjust_indirect_value_type): New function.
	(coerce_ref): Support for enclosing type setting for references
	with readjust_indirect_value_type.
	* value.h (readjust_value_type): New declaration.
	(value_rtti_target_type): Rename to ...
	(value_rtti_indirect_type): ... here.

2012-02-21  Anton Gorenkov  <xgsa@yandex.ru>

	* MAINTAINERS (Write After Approval): Add myself to the list.

2012-02-20  Doug Evans  <dje@google.com>

	* objfiles.c (add_to_objfile_sections): Remove outdated comments.
	Rename objfile_p_char parameter to objfilep.
	(build_objfile_section_table): Result is now void.  All callers
	updated.
	* objfiles.h (struct objfile): Tweak comments, whitespace.
	(build_objfile_section_table): Update.

	* elfread.c (elf_symfile_segments): Fix warning text.

2012-02-20  Tom Tromey  <tromey@redhat.com>

	PR gdb/13498:
	* dwarf2read.c (dw2_expand_symtabs_matching): Only visit a
	particular set of file names once.
	(dw2_map_symbol_filenames): Likewise.

2012-02-20  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Code cleanup.
	* main.c (write_files): Remove the declaration.
	(external_editor_command): Move the declaration ...
	[GDBTK] (external_editor_command): ... here.  Fix the comment.

2012-02-20  Tom Tromey  <tromey@redhat.com>

	* dwarf2read.c (dw2_map_symtabs_matching_filename): Remove
	extraneous block.

2012-02-20  Tristan Gingold  <gingold@adacore.com>

	* darwin-nat.h (enum darwin_msg_state): Add comments.

2012-02-20  Tristan Gingold  <gingold@adacore.com>

	* amd64-darwin-tdep.c (x86_darwin_init_abi_64): Fix jb_pc_offset
	value.

2012-20-18  Joel Brobecker  <brobecker@adacore.com>

	* breakpoint.c (watchpoint_exp_is_const): Add missing empty line
	between function description and implementation.

2012-02-17  Tom Tromey  <tromey@redhat.com>

	PR python/12070:
	* python/py-event.c (event_object_getset): New global.
	(event_object_type): Reference it.
	* python/py-type.c (field_object_getset): New global.
	(field_object_type): Reference it.
	* python/python-internal.h (gdb_py_generic_dict): Declare.
	* python/py-utils.c (gdb_py_generic_dict): New function.

2012-02-17  Tristan Gingold  <gingold@adacore.com>

	* solib-darwin.c (darwin_current_sos): Check magic and filetype

2012-02-17  Thomas Schwinge  <thomas@codesourcery.com>

	* sh-tdep.c (sh_is_renesas_calling_convention): Fix handling of
	TYPE_CALLING_CONVENTION annotation.

2012-02-16  Kevin Buettner  <kevinb@redhat.com>

	* MAINTAINERS: Add rx to target ISA section.
	* Makefile.in (ALL_TARGET_OBS): Add rx-tdep.o.
	(ALLDEPFILES): Add rx-tdep.c.

2012-02-16  Tom Tromey  <tromey@redhat.com>

	* symfile.c (symbol_file_add_main_1): Use inferior's
	symfile_flags.
	* solib.c (solib_read_symbols): Use inferior's symfile_flags.
	* linux-nat.c (linux_child_follow_fork): Set symfile_flags on
	inferior.
	* infrun.c (handle_vfork_child_exec_or_exit): Set symfile_flags on
	inferior.
	(follow_exec): Use inferior's symfile_flags.
	* inferior.h (struct inferior) <symfile_flags>: New field.

2012-02-16  Mike Frysinger  <vapier@gentoo.org>

	PR gdb/9734:
	* remote-sim.c (gdbsim_create_inferior): Call error() when
	sim_create_inferior() fails.

2012-02-16  Josh Matthews  <josh@joshmatthews.net>

	* machoread.c: Initialize nbr_syms to avoid warnings-as-errors failure.

2012-02-16  Tom Tromey  <tromey@redhat.com>

	PR c++/13653:
	* thread.c (struct current_thread_cleanup) <was_removable>: New
	field.
	(restore_current_thread_cleanup_dtor): Restore 'removable' field.
	(make_cleanup_restore_current_thread): Initialize new field.

2012-02-15  Kevin Buettner  <kevinb@redhat.com>

	* MAINTAINERS: Add rl78 to target ISA section.
	* Makefile.in (ALL_TARGET_OBS): Add rl78-tdep.o.
	(ALLDEPFILES): Add rl78-tdep.c.
	* NEWS: Mention rl78 as a new target.

2012-02-15  Aleksandar Ristovski  <aristovski@qnx.com>

	* frame.c (find_frame_sal): Initialize sal->pspace field from frame
	data.
	* stack.c (set_last_displayed_sal): Validate that PSPACE is not NULL.

2012-02-15  Tom Tromey  <tromey@redhat.com>

	PR gdb/12659:
	* infcmd.c (registers_info): Print just the current register's
	name.

2012-02-15  Tom Tromey  <tromey@redhat.com>

	* python/py-symbol.c (sympy_value): Use _().

2012-02-15  Pedro Alves  <palves@redhat.com>

	* remote.c (remote_detach_1, extended_remote_attach_1): Tweak
	output to be like native targets'.
	(remote_pid_to_str): Special case the null ptid.

2012-02-14  Stan Shebs  <stan@codesourcery.com>

	* NEWS: Mention enable count command.
	* breakpoint.h (struct breakpoint): New field enable_count.
	* breakpoint.c (enable_breakpoint_disp): Add count argument.
	(enable_breakpoint): Add arg to call.
	(struct disp_data): New struct.
	(do_enable_breakpoint_disp): Interp arg as disp_data and unpack.
	(do_map_enable_once_breakpoint): Create a struct and pass it.
	(do_map_enable_delete_breakpoint): Ditto.
	(do_map_enable_count_breakpoint): New function.
	(enable_count_command): New function.
	(bpstat_stop_status): Decrement enable_count.
	(print_one_breakpoint_location): Report enable count.
	(_initialize_breakpoint): Add enable count command.

2012-02-14  Kevin Buettner  <kevinb@redhat.com>

	* rl78-tdep.c (reggroups.h): Include.
	(RL78_RAW_BANK0_R0_REGNUM, RL78_RAW_BANK0_R1_REGNUM)
	(RL78_RAW_BANK0_R2_REGNUM, RL78_RAW_BANK0_R3_REGNUM)
	(RL78_RAW_BANK0_R4_REGNUM, RL78_RAW_BANK0_R5_REGNUM)
	(RL78_RAW_BANK0_R6_REGNUM, RL78_RAW_BANK0_R7_REGNUM)
	(RL78_RAW_BANK1_R0_REGNUM, RL78_RAW_BANK1_R1_REGNUM)
	(RL78_RAW_BANK1_R2_REGNUM, RL78_RAW_BANK1_R3_REGNUM)
	(RL78_RAW_BANK1_R4_REGNUM, RL78_RAW_BANK1_R5_REGNUM)
	(RL78_RAW_BANK1_R6_REGNUM, RL78_RAW_BANK1_R7_REGNUM)
	(RL78_RAW_BANK2_R0_REGNUM, RL78_RAW_BANK2_R1_REGNUM)
	(RL78_RAW_BANK2_R2_REGNUM, RL78_RAW_BANK2_R3_REGNUM)
	(RL78_RAW_BANK2_R4_REGNUM, RL78_RAW_BANK2_R5_REGNUM)
	(RL78_RAW_BANK2_R6_REGNUM, RL78_RAW_BANK2_R7_REGNUM)
	(RL78_RAW_BANK3_R0_REGNUM, RL78_RAW_BANK3_R1_REGNUM)
	(RL78_RAW_BANK3_R2_REGNUM, RL78_RAW_BANK3_R3_REGNUM)
	(RL78_RAW_BANK3_R4_REGNUM, RL78_RAW_BANK3_R5_REGNUM)
	(RL78_RAW_BANK3_R6_REGNUM, RL78_RAW_BANK3_R7_REGNUM): Add to
	beginning of register list.
	(RL78_BANK0_R0_REGNUM, RL78_BANK0_R1_REGNUM, RL78_BANK0_R2_REGNUM)
	(RL78_BANK0_R3_REGNUM, RL78_BANK0_R4_REGNUM, RL78_BANK0_R5_REGNUM)
	(RL78_BANK0_R6_REGNUM, RL78_BANK0_R7_REGNUM, RL78_BANK1_R0_REGNUM)
	(RL78_BANK1_R1_REGNUM, RL78_BANK1_R2_REGNUM, RL78_BANK1_R3_REGNUM)
	(RL78_BANK1_R4_REGNUM, RL78_BANK1_R5_REGNUM, RL78_BANK1_R6_REGNUM)
	(RL78_BANK1_R7_REGNUM, RL78_BANK2_R0_REGNUM, RL78_BANK2_R1_REGNUM)
	(RL78_BANK2_R2_REGNUM, RL78_BANK2_R3_REGNUM, RL78_BANK2_R4_REGNUM)
	(RL78_BANK2_R5_REGNUM, RL78_BANK2_R6_REGNUM, RL78_BANK2_R7_REGNUM)
	(RL78_BANK3_R0_REGNUM, RL78_BANK3_R1_REGNUM, RL78_BANK3_R2_REGNUM)
	(RL78_BANK3_R3_REGNUM, RL78_BANK3_R4_REGNUM, RL78_BANK3_R5_REGNUM)
	(RL78_BANK3_R6_REGNUM, RL78_BANK3_R7_REGNUM): Move these into
	the pseudo registers.  Rearrange other pseudo registers too so
	that the bank registers appear at the end.
	(rl78_register_type): Account for the fact that the byte sized
	bank registers are now pseudo-registers.
	(rl78_register_name): Rearrange the register name array.  Make
	initial set of raw banked registers inaccessible.
	(rl78_register_reggroup_p, rl78_register_sim_regno): New functions.
	(rl78_pseudo_register_read, rl78_pseudo_register_write): Add
	case for copying bytes back and forth between raw and pseudo
	versions of the banked registers.  Update other cases to reflect
	the changed names.
	(rl78_return_value): Update to account for changed names of
	raw registers.
	(rl78_gdbarch_init): Register rl78_register_reggroup_p() and
	rl78_register_sim_regno().

2012-02-14  Kevin Buettner  <kevinb@redhat.com>

	* rl78-tdep.c (rl78_skip_prologue): Make `const' the type of
	the name parameter being passed to find_pc_partial_function().

2012-02-14  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* MAINTAINERS: Step down from being ia64 target maintainer.

2012-02-12  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* ppc-linux-nat.c (fetch_register, store_register): Fix GCC aliasing
	compilation warning.

2012-02-12  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix crash on loaded shlibs without loaded exec_bfd.
	* exec.c (exec_files_info): Do not crash on NULL EXEC_BFD.
	(set_section_command): Replace exec_bfd by p->bfd.

2012-02-10  Tom Tromey  <tromey@redhat.com>

	* linespec.c (decode_line_internal): Skip symtabs_from_filename
	when we have a C++ qualified name.

2012-02-10  Pedro Alves  <palves@redhat.com>

	* inferior.c (inferior_pid_to_str): New.
	(print_inferior, inferior_command): Use it.

2012-02-10  Pedro Alves  <palves@redhat.com>

	* configure.ac (HAVE_ELF test): Put the old CFLAGS at the end of
	the test CFLAGS.
	* configure: Regenerate.

2012-02-10  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* linespec.c (decode_line_internal): Fix comment correctness.

2012-02-09  Valery Khromov  <valery.khromov@gmail.com>

	PR gdb/12953
	* Makefile.in (HFILES_NO_SRCDIR): Add amd64bsd-nat.h.
	* amd64bsd-nat.c: Add support for debug registers (adapted from
	i386bsd-nat.c).
	[HAVE_PT_GETDBREGS] (amd64bsd_dr_get, amd64bsd_dr_set)
	(amd64bsd_dr_set_control, amd64bsd_dr_set_addr)
	(amd64bsd_dr_get_addr, amd64bsd_dr_get_status)
	(amd64bsd_dr_get_control): New functions.
	* amd64bsd-nat.h: New file (adapted from i386bsd-nat.h).
	* amd64fbsd-nat.c: Include "amd64bsd-nat.h", "i386-nat.h".
	[HAVE_PT_GETDBREGS] (_initialize_amd64fbsd_nat): Add hardware
	watchpoints initialization.
	* config/i386/fbsd64.mh (NATDEPFILES): Add i386-nat.o.

2012-02-09  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb-gdb.py (StructMainTypePrettyPrinter) <struct_field_img>: Print
	flds_bnds.fields.
	(StructMainTypePrettyPrinter) <bounds_img>: Print flds_bnds.bounds.

2012-02-09  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* breakpoint.c (bp_location_compare): Fix comment.  Reindent the code.

2012-02-08  Joel Brobecker  <brobecker@adacore.com>

	* language.h (symbol_name_cmp_ftype): Renames
	symbol_name_match_p_ftype.
	(struct language_defn)[la_get_symbol_name_cmp]: Renames
	la_get_symbol_name_match_p.
	* ada-lang.c (ada_get_symbol_name_cmp): Renames
	ada_get_symbol_name_match_p.  Update comment.
	(ada_language_defn)[la_get_symbol_name_cmp]: Update value.
	* linespec.c (struct symbol_matcher_data)[symbol_name_cmp]:
	Renames symbol_name_match_p.  Update field type.
	(iterate_name_matcher, iterate_over_all_matching_symtabs): Adjust.
	* c-lang.c, d-lang.c, f-lang.c, jv-lang.c, m2-lang.c, objc-lang.c,
	opencl-lang.c, p-lang.c: Replace "la_get_symbol_name_match_p" by
	"la_get_symbol_name_cmp" in comments.
	* language.c: Likewise.

2012-02-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* amd64-sol2-tdep.c (amd64_sol2_gregset_reg_offset): Correct
	%eflags offset.
	* i386-sol2-nat.c (amd64_sol2_gregset64_reg_offs)
	(amd64_sol2_gregset32_reg_offs): Likewise.

2012-02-08  Joel Brobecker  <brobecker@adacore.com>

	* solib-darwin.c (darwin_bfd_open): Make sure that the filename
	of the returned BFD is allocated by GDB.

2012-02-07  Tom Tromey  <tromey@redhat.com>

	PR python/12027:
	* python/python-internal.h (frame_object_type): Declare.
	* python/py-symbol.c (sympy_needs_frame): New function.
	(sympy_value): New function.
	(symbol_object_getset): Add "needs_frame".
	(symbol_object_methods): Add "value".
	* python/py-frame.c (frame_object_type): No longer static.

2012-02-07  Tom Tromey  <tromey@redhat.com>

	PR python/13599:
	* python/py-symbol.c (sympy_line): New function.
	(symbol_object_getset): Add "line".

2012-02-07  Tom Tromey  <tromey@redhat.com>

	* charset.c (find_charset_names): Check 'in' against NULL.

2012-02-06  Doug Evans  <dje@google.com>

	* gdbtypes.h (struct main_type): Change type of name,tag_name,
	and fields.name members from char * to const char *.  All uses updated.
	(struct cplus_struct_type): Change type of fn_fieldlists.name member
	from char * to const char *.  All uses updated.
	(type_name_no_tag): Update.
	(lookup_unsigned_typename, lookup_signed_typename): Update.
	* gdbtypes.c (type_name_no_tag): Change result type
	from char * to const char *.  All callers updated.
	(lookup_unsigned_typename, lookup_signed_typename): Change type of
	name parameter from char * to const char *.
	* symtab.h (struct cplus_specific): Change type of demangled_name
	member from char * to const char *.  All uses updated.
	(struct general_symbol_info): Change type of name and
	mangled_lang.demangled_name members from char * to const char *.
	All uses updated.
	(symbol_get_demangled_name, symbol_natural_name): Update.
	(symbol_demangled_name, symbol_search_name): Update.
	* symtab.c (symbol_get_demangled_name): Change result type
	from char * to const char *.  All callers updated.
	(symbol_natural_name, symbol_demangled_name): Ditto.
	(symbol_search_name): Ditto.
	(completion_list_add_name): Change type of symname,sym_text,
	text,word parameters from char * to const char *.
	(completion_list_objc_symbol): Change type of sym_text,
	text,word parameters from char * to const char *.
	* ada-lang.c (find_struct_field): Change type of name parameter
	from char * to const char *.
	(encoded_ordered_before): Similarly for N0,N1 parameters.
	(old_renaming_is_invisible): Similarly for function_name parameter.
	(ada_type_name): Change result type from char * to const char *.
	All callers updated.
	* ada-lang.h (ada_type_name): Update.
	* buildsym.c (hashname): Change type of name parameter
	from char * to const char *.
	* buildsym.h (hashname): Update.
	* dbxread.c (end_psymtab): Change type of include_list parameter
	from char ** to const char **.
	* dwarf2read.c (determine_prefix): Change result type
	from char * to const char *.  All callers updated.
	* f-lang.c (find_common_for_function): Change type of name, funcname
	parameters from char * to const char *.
	* f-lang.c (find_common_for_function): Update.
	* f-valprint.c (list_all_visible_commons): Change type of funcname
	parameters from char * to const char *.
	* gdbarch.sh (static_transform_name): Change type of name parameter
	and result from char * to const char *.
	* gdbarch.c: Regenerate.
	* gdbarch.h: Regenerate.
	* i386-sol2-tdep.c (i386_sol2_static_transform_name): Change type
	of name parameter from char * to const char *.
	* jv-lang.c (java_primitive_type_from_name): Ditto.
	(java_demangled_signature_length): Similarly for signature parameter.
	(java_demangled_signature_copy): Ditto.
	(java_demangle_type_signature): Ditto.
	* jv-lang.h (java_primitive_type_from_name): Update.
	(java_demangle_type_signature): Update.
	* objc-lang.c (specialcmp): Change type of a,b parameters
	from char * to const char *.
	* p-lang.c (is_pascal_string_type): Change type of arrayname parameter
	from char * to const char *.  All callers updated.
	* p-lang.h (is_pascal_string_type): Update.
	* solib-frv.c (find_canonical_descriptor_in_load_object): Change type
	of name parameter from char * to const char *.
	* sparc-sol2-tdep.c (sparc_sol2_static_transform_name): Ditto.
	* utils.c (fprintf_symbol_filtered): Ditto.
	* defs.h (fprintf_symbol_filtered): Update.
	* sparc-tdep.h (sparc_sol2_static_transform_name): Update.
	* stabsread.h (end_psymtab): Update.
	* stack.c (find_frame_funname): Change type of funname parameter
	from char ** to const char **.
	* stack.h (find_frame_funname): Update.
	* typeprint.c (type_print): Change type of varstring parameter
	from char * to const char *.
	* value.h (type_print): Update.
	* xcoffread.c (xcoff_start_psymtab): Change type of filename parameter
	from char * to const char *.  All callers updated.
	(xcoff_end_psymtab): Change type of include_list parameter
	from char ** to const char **.  All callers updated.
	(swap_sym): Similarly for name parameter.  All callers updated.
	* coffread.c (patch_type): Add (char*) cast to xfree parameter.
	Use xstrdup.
	(process_coff_symbol): Use xstrdup.
	* stabsread.c (stabs_method_name_from_physname): Renamed from
	update_method_name_from_physname.  Change result type from void
	to char *.  All callers updated.
	(read_member_functions): In has_destructor case, store name in objfile
	obstack instead of malloc space.  In !has_stub case, fix mem leak.

2012-02-06  Luca Pizzamiglio  <luca.pizzamiglio@gmail.com>

	* configure: Rebuild.
	* configure.ac: Put -L../bfd and -L../libiberty at the front of
	LDFLAGS.

2012-02-03  Kevin Buettner  <kevinb@redhat.com>

	* configure.tgt (rl78-*-elf): New target.
	* rl78-tdep.c: New file.

2012-02-03  Philippe Waroquiers  <philippe.waroquiers@skynet.be>

	* remote.c (remote_rcmd): Use getpkt_sane to detect timeout
	and continue the loop.  Add QUIT statement.

2012-02-03  Tom Tromey  <tromey@redhat.com>

	PR gdb/13596:
	* solib.h (gdb_bfd_lookup_symbol_from_symtab): Rename from
	bfd_lookup_symbol_from_symtab.
	* solib-pa64.c (pa64_solib_create_inferior_hook): Use
	gdb_bfd_lookup_symbol_from_symtab.

2012-02-03  Joel Brobecker  <brobecker@adacore.com>

	* mi/mi-cmd-stack.c (list_args_or_locals): For argument symbols,
	use SYMBOL_LINKAGE_NAME to find the corresponding non-argument
	symbol.  Add assertion that sym2 is never NULL.

2012-02-02  Doug Evans  <dje@google.com>

	* blockframe.c (find_pc_partial_function_gnu_ifunc): Change type of
	"name" parameter to const char ** from char **.  All callers updated.
	(find_pc_partial_function): Ditto.
	(cache_pc_function_name): Change type to const char * from char *.
	* symtab.h ((find_pc_partial_function_gnu_ifunc): Update.
	(find_pc_partial_function): Update.
	* alpha-tdep.h (struct gdbarch_tdep, member pc_in_sigtramp): Change
	type of "name" parameter to const char * from char *.
	All uses updated.
	* arch-utils.c (generic_in_solib_return_trampoline): Change
	type of "name" parameter to const char * from char *.
	* arch-utils.h (generic_in_solib_return_trampoline): Update.
	* frv-linux-tdep.c (frv_linux_pc_in_sigtramp): Change
	type of "name" parameter to const char * from char *.
	* gdbarch.sh (in_solib_return_trampoline): Ditto.
	* gdbarch.c: Regenerate.
	* gdbarch.h: Regenerate.
	* hppa-hpux-tdep.c (hppa_hpux_in_solib_return_trampoline): Update.
	* rs6000-tdep.c (rs6000_in_solib_return_trampoline): Update.
	* m32r-linux-tdep.c (m32r_linux_pc_in_sigtramp): Change
	type of "name" parameter to const char * from char *.
	* skip.c (skip_function_pc): Ditto.
	* sparc-sol2-tdep.c (sparc_sol2_pc_in_sigtramp): Ditto.
	* sparc-tdep.h (sparc_sol2_pc_in_sigtramp): Update.
	* sparc64fbsd-tdep.c (sparc64fbsd_pc_in_sigtramp): Ditto.
	* sparc64nbsd-tdep.c (sparc64nbsd_pc_in_sigtramp): Ditto.
	* sparc64obsd-tdep.c (sparc64obsd_pc_in_sigtramp): Ditto.
	* sparcnbsd-tdep.c (sparc32nbsd_pc_in_sigtramp): Ditto.
	* sparcobsd-tdep.c (sparc32obsd_pc_in_sigtramp): Ditto.
	* nbsd-tdep.c (nbsd_pc_in_sigtramp): Similary for "func_name".
	* nbsd-tdep.h (nbsd_pc_in_sigtramp): Update.

2012-02-02  Pedro Alves  <palves@redhat.com>

	* remote.c (remote_get_min_fast_tracepoint_insn_len): Return 0 if
	the current inferior has no execution.  Make sure the current
	remote process matches gdb's current inferior.

2012-02-02  Tom Tromey  <tromey@redhat.com>

	PR gdb/13405:
	* tui/tui-win.c (parse_scrolling_args): Don't write to possibly
	read-only memory.

2012-02-02  Tom Tromey  <tromey@redhat.com>

	PR gdb/9307:
	* symtab.c (lookup_language_this): Set block_found.

2012-02-01  Tom Tromey  <tromey@redhat.com>

	PR gdb/13431:
	* jit.c (struct jit_inferior_data): Rewrite.
	(struct jit_objfile_data): New.
	(get_jit_objfile_data): New function.
	(add_objfile_entry): Update.
	(jit_read_descriptor): Return int.  Replace descriptor_addr
	argument with inf_data.  Update.  Don't call error.
	(jit_breakpoint_re_set_internal): Reorder logic.  Update.  Look up
	descriptor here.
	(jit_inferior_init): Don't look up descriptor.  Don't call error.
	(jit_reset_inferior_data_and_breakpoints)
	(jit_inferior_created_observer): Remove.
	(jit_inferior_exit_hook): Update.
	(jit_executable_changed_observer): Remove.
	(jit_event_handler): Update.
	(free_objfile_data): Reset inferior data if needed.
	(_initialize_jit): Update.

2012-02-01  Tom Tromey  <tromey@redhat.com>

	* jit.c (bfd_open_from_target_memory): Move higher in file.

2012-02-01  Tristan Gingold  <gingold@adacore.com>

	* libunwind-frame.c (libunwind_load): Display message if dlopen
	failed.

2012-02-01  Gary Benson  <gbenson@redhat.com>

	* symtab.h (symbol_found_callback_ftype): New typedef.
	(iterate_over_symbols): Use the above.
	* symtab.c (iterate_over_symbols): Likewise.
	* language.h (language_defn->la_iterate_over_symbols): Likewise.
	* ada-lang.c (ada_iterate_over_symbols): Likewise.
	* linespec.c (iterate_over_all_matching_symtabs): Likewise.
	(iterate_name_matcher): Document return values.
	(collect_one_symbol): Likewise.
	(collect_function_symbols): Likewise.
	(collect_symbols): Likewise.

2012-02-01  Tom Tromey  <tromey@redhat.com>

	* ada-lang.c (resolve_subexp): Update.
	(ada_lookup_symbol_list): Add 'full_search' argument.
	(ada_iterate_over_symbols): Pass 0 as full_search argument to
	ada_lookup_symbol_list.
	(ada_lookup_encoded_symbol): Update.
	(get_var_value): Update.
	* ada-exp.y (block_lookup): Update.
	(write_var_or_type): Update.
	(write_name_assoc): Update.
	* ada-lang.h (ada_lookup_symbol_list): Update.

2012-01-31  Tom Tromey  <tromey@redhat.com>

	* language.h (struct language_defn) <la_iterate_over_symbols>: Fix
	comment.

2012-01-31  Doug Evans  <dje@google.com>

	* symtab.h: Remove outdated comment.
	(SYMBOL_MATCHES_NATURAL_NAME): Delete.

2012-02-01  Josh Matthews  <josh@joshmatthews.net>  (tiny change)

	Fix build error in Darwin port.
	* i386-darwin-nat.c: Include i386-nat.h.

2012-01-30  Tom Tromey  <tromey@redhat.com>

	PR breakpoints/13568:
	* dwarf2read.c (dwarf_decode_macro_bytes): Add 'include_hash'
	argument.  Check for recursive includes.
	(dwarf_decode_macros): Create an include hash.

2012-01-30  Michael Eager  <eager@eagercon.com>

	* configure.tgt (powerpc-*-linux*): Add glibc-tdep.o.
	* ppc-linux-tdep.c: Include glibc-tdep.h.
	(powerpc32_plt_stub, powerpc32_plt_stub_so): Add PLT stub templates.
	(powerpc_linux_in_plt_stub): New function.
	(powerpc_linux_in_dynsym_resolve_code): New function.
	(ppc_skip_trampoline_code): New function.
	(ppc_linux_init_abi): Use PPC specific functions rather than generic.
	Use glibc_skip_solib_resolver.

2012-01-28  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Code cleanup: Make 1440 bytes of data segment read-only.
	* arch-utils.c (endian_enum): Make it const char *const [].
	* arm-tdep.c (fp_model_strings, arm_abi_strings, arm_mode_strings):
	Likewise.
	* breakpoint.c (always_inserted_enums): Likewise.
	* cli/cli-cmds.c (script_ext_enums): Likewise.
	* cli/cli-decode.c (add_setshow_enum_cmd, complete_on_enum): Make the
	enumlist parameter const char *const *.
	* cli/cli-decode.h (struct cmd_list_element): Make the enums field
	const char *const *.
	* command.h (complete_on_enum, add_setshow_enum_cmd): Make the enumlist
	parameter const char *const *.
	* cris-tdep.c (cris_modes): Make it const char *const [].
	* filesystem.c (target_file_system_kinds): Likewise.
	* i386-tdep.c (valid_flavors, valid_conventions): Likewise.
	* infrun.c (follow_fork_mode_kind_names, follow_exec_mode_names)
	(can_use_displaced_stepping_enum, scheduler_enums)
	(exec_direction_names): Likewise.
	* language.c (_initialize_language): Make the type_or_range_names and
	case_sensitive_names variables const char *const [].
	* mips-tdep.c (mips_abi_strings): Make it const char *const [].
	* python/python.c (python_excp_enums): Likewise.
	* remote.c (interrupt_sequence_modes): Likewise.
	* rs6000-tdep.c (powerpc_vector_strings): Likewise.
	* serial.c (logbase_enums): Likewise.
	* sh-tdep.c (sh_cc_enum): Likewise.
	* stack.c (print_frame_arguments_choices, print_entry_values_choices):
	Likewise.
	* symtab.c (multiple_symbols_modes): Likewise.
	* tui/tui-win.c (tui_border_kind_enums, tui_border_mode_enums):
	Likewise.
	* utils.c (internal_problem_modes): Likewise.

2012-01-27  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix the 2012-01-26 regression by la_get_symbol_name_match_p.
	* linespec.c (iterate_name_matcher): Negate the SYMBOL_NAME_MATCH_P
	result.

2012-01-27  Doug Evans  <dje@google.com>

	* configure.ac (with_python): Fix absolute path handling for win32.
	* configure: Regenerate.

2012-01-26  Doug Evans  <dje@google.com>

	* symtab.c: Whitespace cleanup, no code changes.

	* symtab.c (lookup_symbol_in_language): Improve comment.
	(lookup_symbol_aux): Fix comment.

	* psymtab.c (add_psymbol_to_list): Result is now "void".
	* psympriv.h (add_psymbol_to_list): Update.

	* dwarf2read.c (add_partial_symbol): Delete local psym, unused.

2012-01-26  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Do not open script filenames twice.
	* cli/cli-cmds.c (source_script_from_stream): Pass to
	source_python_script also STREAM.
	* python/py-auto-load.c (source_section_scripts): Pass to
	source_python_script_for_objfile also STREAM.
	(auto_load_objfile_script): Pass to source_python_script_for_objfile
	also INPUT.
	* python/python-internal.h (source_python_script_for_objfile): New
	parameter file, rename parameter file to filename.
	* python/python.c (python_run_simple_file): Call PyRun_SimpleFile
	instead if !_WIN32.  Update the function comment.
	(source_python_script, source_python_script_for_objfile)
	(source_python_script): New parameter file, rename parameter file to
	filename.  Pass FILENAME to python_run_simple_file.
	* python/python.h (source_python_script): New parameter file, rename
	parameter file to filename.

2012-01-26  Pedro Alves  <palves@redhat.com>

	* corelow.c (core_has_fake_pid): Delete.
	(core_close): Delete references to `core_has_fake_pid'.
	(add_to_thread_list): Adjust to mark the inferior's pid as fake.
	(core_open): Delete references to `core_has_fake_pid'.
	(core_pid_to_str): Adjust to check inferior->fake_pid_p instead of
	the removed global.

2012-01-26  Joel Brobecker  <brobecker@adacore.com>

	* symfile.h (struct quick_symbol_functions) [expand_symtabs_matching]:
	Remove language parameter from name_matcher.  Adjust the comment.
	* symtab.c (search_symbols_name_matches, expand_partial_symbol_name):
	Remove language parameter.
	* ada-lang.c (ada_expand_partial_symbol_name): Likewise.
	* linespec.c (iterate_name_matcher): Likewise.
	* dwarf2read.c (dw2_expand_symtabs_matching): Adjust type of
	name_matcher.  Adjust call accordingly.
	* psymtab.c (expand_symtabs_matching_via_partial): Likewise.
	(maintenance_check_symtabs): Adjust type of parameter "fun".
	* psymtab.h (maintenance_check_symtabs): Likewise.

2012-01-26  Joel Brobecker  <brobecker@adacore.com>

	* language.h (symbol_name_match_p_ftype): New typedef.
	(struct language_defn): Replace field la_symbol_name_compare
	by la_get_symbol_name_match_p.
	* ada-lang.c (ada_get_symbol_name_match_p): New function.
	(ada_language_defn): Use it.
	* linespec.c (struct symbol_matcher_data): New type.
	(iterate_name_matcher): Rewrite.
	(iterate_over_all_matching_symtabs): Pass a pointer to
	a symbol_matcher_data struct to expand_symtabs_matching
	instead of just the lookup name.
	* c-lang.c, d-lang.c, jv-lang.c, m2-lang.c, objc-lang.c,
	opencl-lang.c, p-lang.c, language.c: Delete field
	la_symbol_name_compare, and replace by NULL for new field
	la_get_symbol_name_match_p.
	* symfile.h (struct quick_symbol_functions): Update comment.

2012-01-25  Tom Tromey  <tromey@redhat.com>

	* breakpoint.c (bpstat_stop_status): Check 'breakpoint_at' before
	dereferencing.

2012-01-24  Tom Tromey  <tromey@redhat.com>

	PR symtab/12406:
	* solib.c (update_solib_list): Update the program space's
	added_solibs and deleted_solibs fields.
	* progspace.h (struct program_space) <added_solibs,
	deleted_solibs>: New fields.
	(clear_program_space_solib_cache): Declare.
	* progspace.c (release_program_space): Call
	clear_program_space_solib_cache.
	(clear_program_space_solib_cache): New function.
	* infrun.c (handle_inferior_event) <TARGET_WAITKIND_LOADED>: Call
	bpstat_stop_status.  Use handle_solib_event.
	* breakpoint.c: Include gdb_regex.h.
	(print_solib_event): New function.
	(bpstat_print): Use print_solib_event.
	(bpstat_stop_status): Add special case for bp_shlib_event.
	(handle_solib_event): New function.
	(bpstat_what): Use handle_solib_event.
	(struct solib_catchpoint): New.
	(dtor_catch_solib, insert_catch_solib, remove_catch_solib)
	(breakpoint_hit_catch_solib, check_status_catch_solib)
	(print_it_catch_solib, print_one_catch_solib)
	(print_mention_catch_solib, print_recreate_catch_solib): New
	functions.
	(catch_solib_breakpoint_ops): New global.
	(catch_load_or_unload, catch_load_command_1)
	(catch_unload_command_1): New functions.
	(internal_bkpt_check_status): Add special case for
	bp_shlib_event.
	(internal_bkpt_print_it): Use print_solib_event.
	(initialize_breakpoint_ops): Initialize
	catch_solib_breakpoint_ops.
	(_initialize_breakpoint): Register "catch load" and "catch
	unload".
	* breakpoint.h (handle_solib_event): Declare.
	* NEWS: Add entry for "catch load" and "catch unload".

2012-01-24  Tom Tromey  <tromey@redhat.com>

	* ada-lang.c: Include gdb_vecs.h.
	* charset.c: Include gdb_vecs.h.
	* tracepoint.h: Include gdb_vecs.h.
	* gdb_vecs.h: New file.

2012-01-24  Pedro Alves  <pedro@codesourcery.com>

	* breakpoint.c (breakpoint_hit_catch_fork)
	(breakpoint_hit_catch_vfork, breakpoint_hit_catch_syscall)
	(breakpoint_hit_catch_exec): Make use of the `ws' argument.
	* infrun.c (inferior_has_forked, inferior_has_vforked)
	(inferior_has_execd, inferior_has_called_syscall): Delete.
	(handle_syscall_event): Get syscall_number from the execution
	control state's wait status.
	(wait_for_inferior): Don't clear syscall_number.

2012-01-24  Pedro Alves  <palves@redhat.com>

	* breakpoint.c (bpstat_check_location, bpstat_stop_status,
	pc_at_non_inline_function): Add `ws' parameter, and pass it down.
	(breakpoint_hit_catch_fork, breakpoint_hit_catch_vfork)
	(breakpoint_hit_catch_syscall, breakpoint_hit_catch_exec): Add
	`ws' parameter.
	(breakpoint_hit_ranged_breakpoint): Add `ws' parameter.  Return
	false for events other than TARGET_SIGNAL_TRAP.
	(breakpoint_hit_watchpoint, base_breakpoint_breakpoint_hit):
	Add `ws' parameter.
	(bkpt_breakpoint_hit): Add `ws' parameter.  Return false for
	events other than TARGET_SIGNAL_TRAP.
	(tracepoint_breakpoint_hit): Add `ws' parameter.
	* breakpoint.h (struct breakpoint_ops) <breakpoint_hit>: Add `ws'
	parameter.
	(bpstat_stop_status): Same.
	(pc_at_non_inline_function): Same.
	* infrun.c (handle_syscall_event, handle_inferior_event): Adjust
	to pass the current event's waitstatus to bpstat_stop_status
	and pc_at_non_inline_function.

2012-01-24  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Code cleanup.
	* cli/cli-cmds.c (source_script_from_stream): Never fclose STREAM.
	Update the function comment for it.
	(source_script_with_search): Call make_cleanup_fclose for STREAM.
	* cli/cli-script.c (script_from_file): Do not call make_cleanup_fclose
	for STREAM.

2012-01-24  Pedro Alves  <palves@redhat.com>

	* breakpoint.c (bpstat_stop_status): Moving clearing print_it
	outside `bs->stop' block.
	(bpstat_what): Rework bp_shlib_event handling.
	(internal_bkpt_check_status): If the breakpoint is a
	bp_shlib_event, then set bs->stop and bs->print if
	stop_on_solib_events is set.

2012-01-24  Gary Benson  <gbenson@redhat.com>

	Delete #if 0'd out code.
	* stack.c (print_frame_label_vars): Remove.
	(catch_info): Likewise.
	(_initialize_stack): Remove "info catch" command.
	* NEWS: Mention the above.

2012-01-24  Pedro Alves  <palves@redhat.com>

	* remote.c (remote_add_inferior): New `fake_pid_p' parameter.  Use
	it.
	(remote_notice_new_inferior): If the remote end doesn't support
	the multiprocess extensions, then the PID is fake.
	(add_current_inferior_and_thread): New.
	(remote_start_remote): Use it.
	(extended_remote_attach_1): Adjust.
	(extended_remote_create_inferior_1): Use
	add_current_inferior_and_thread.

2012-01-24  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix watchpoints to be specific for each inferior.
	* breakpoint.c (watchpoint_in_thread_scope): Verify also
	current_program_space.
	* i386-nat.c (i386_inferior_data_cleanup): New.
	(i386_inferior_data_get): Replace variable inf_data_local by an
	inferior_data call.
	(i386_use_watchpoints): Initialize i386_inferior_data.
	* linux-nat.c (linux_nat_iterate_watchpoint_lwps): Use INFERIOR_PTID
	specific iterate_over_lwps.

2012-01-24  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix watchpoints across inferior fork.
	* amd64-linux-nat.c (update_debug_registers_callback): Update the
	comment for linux_nat_iterate_watchpoint_lwps.
	(amd64_linux_dr_set_control, amd64_linux_dr_set_addr): Use
	linux_nat_iterate_watchpoint_lwps.
	(amd64_linux_prepare_to_resume): New comment on Linux kernel.
	* i386-linux-nat.c (update_debug_registers_callback): Update the
	comment for linux_nat_iterate_watchpoint_lwps.
	(i386_linux_dr_set_control, i386_linux_dr_set_addr): Use
	linux_nat_iterate_watchpoint_lwps.
	(i386_linux_prepare_to_resume): New comment on Linux kernel.
	* i386-nat.c: Include inferior.h.
	(dr_mirror): Remove.
	(i386_inferior_data, struct i386_inferior_data)
	(i386_inferior_data_get): New.
	(i386_debug_reg_state): Use i386_inferior_data_get.
	(i386_cleanup_dregs, i386_update_inferior_debug_regs)
	(i386_insert_watchpoint, i386_remove_watchpoint)
	(i386_stopped_data_address, i386_insert_hw_breakpoint)
	(i386_remove_hw_breakpoint): New variable state, use
	i386_debug_reg_state instead of DR_MIRROR.
	* linux-nat.c (delete_lwp): New declaration.
	(num_lwps): Move here from downwards.
	(delete_lwp_cleanup): New.
	(linux_child_follow_fork): Create new child_lp, call
	linux_nat_new_thread and linux_nat_prepare_to_resume before calling
	PTRACE_DETACH.
	(num_lwps): Move upwards.
	(linux_nat_iterate_watchpoint_lwps): New.
	* linux-nat.h (linux_nat_iterate_watchpoint_lwps_ftype): New.
	(linux_nat_iterate_watchpoint_lwps_ftype): New declaration.

2012-01-24  Joel Brobecker  <brobecker@adacore.com>

	GDB 7.4 released.

2012-01-23  Pedro Alves  <palves@redhat.com>

	* top.c (caution): Rename to ...
	(confirm): ... this.
	(show_caution): Rename to ...
	(show_confirm): ... this.
	(quit_cover): Adjust.
	(init_main): Adjust.
	* top.h (caution): Rename to ...
	(confirm): ... this.
	* utils.c (internal_vproblem, defaulted_query): Adjust.

2012-01-23  Pedro Alves  <palves@redhat.com>

	* top.c (caution): Update comment.
	(execute_command): Don't consider the current value of `caution'.

2012-01-23  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* cli/cli-cmds.c (find_and_open_script): Handle failure of fdopen.

2012-01-23  Ulrich Weigand  <ulrich.weigand@linaro.org>

	* inf-child.c: Include "gdb_stat.h" instead of <sys/stat.h>.
	* linux-tdep.c (linux_info_proc): Avoid ARI coding style warning.
	* target.c (target_fileio_pwrite): Remove buffer address from
	debug output.
	(target_fileio_pread): Likewise.

2012-01-20  Ulrich Weigand  <ulrich.weigand@linaro.org>

	* NEWS: Document remote "info proc" and "generate-core-file".

2012-01-20  Ulrich Weigand  <ulrich.weigand@linaro.org>

	* gdbarch.sh (find_memory_regions): New callback.
	* gdbarch.c, gdbarch.h: Regenerate.

	* gcore.c (gcore_memory_sections): Try gdbarch find_memory_regions
	callback before falling back to target method.

	* linux-nat.c (read_mapping, linux_nat_find_memory_regions): Remove.
	(linux_target_install_ops): No longer install it.

	* linux-tdep.c (linux_find_memory_regions): New function.
	(linux_init_abi): Install it.

2012-01-20  Ulrich Weigand  <ulrich.weigand@linaro.org>

	* gdbarch.sh (make_corefile_notes): New architecture callback.
	* gdbarch.c: Regenerate.
	* gdbarch.h: Likewise.

	* gcore.c (write_gcore_file): Try gdbarch_make_corefile_notes
	before target_make_corefile_notes.  If NULL is returned, the
	target does not support core file generation.

	* linux-nat.c: Include "linux-tdep.h".
	(find_signalled_thread, find_stop_signal): Remove.
	(linux_nat_do_thread_registers): Likewise.
	(struct linux_nat_corefile_thread_data): Likewise.
	(linux_nat_corefile_thread_callback): Likewise.
	(iterate_over_spus): Likewise.
	(struct linux_spu_corefile_data): Likewise.
	(linux_spu_corefile_callback): Likewise.
	(linux_spu_make_corefile_notes): Likewise.
	(linux_nat_collect_thread_registers): New function.
	(linux_nat_make_corefile_notes): Replace contents by call to
	linux_make_corefile_notes passing linux_nat_collect_thread_registers
	as native-only callback.

	* linux-tdep.h: Include "bfd.h".
	(struct regcache): Add forward declaration.
	(linux_collect_thread_registers_ftype): New typedef.
	(linux_make_corefile_notes): Add prototype.
	* linux-tdep.c: Include "gdbthread.h", "gdbcore.h", "regcache.h",
	"regset.h", and "elf-bfd.h".
	(find_signalled_thread, find_stop_signal): New functions.
	(linux_spu_make_corefile_notes): Likewise.
	(linux_collect_thread_registers): Likewise.
	(struct linux_corefile_thread_data): New data structure.
	(linux_corefile_thread_callback): New funcion.
	(linux_make_corefile_notes): Likewise.
	(linux_make_corefile_notes_1): Likewise.
	(linux_init_abi): Install it.

2012-01-20  Ulrich Weigand  <ulrich.weigand@linaro.org>

	* gdbarch.sh (info_proc): New callback.
	* gdbarch.c, gdbarch.h: Regenerate.

	* infcmd.c (info_proc_cmd_1): Try gdbarch info_proc callback
	before falling back to the target info_proc callback.

	* linux-nat.c: Do not include "cli/cli-utils.h".
	(linux_nat_info_proc): Remove.
	(linux_target_install_ops): No longer install it.

	* linux-tdep.c: Include "cli/cli-utils.h" and <ctype.h>.
	(read_mapping): New function.
	(linux_info_proc): Likewise.
	(linux_init_abi): Install it.

2012-01-20  Ulrich Weigand  <ulrich.weigand@linaro.org>

	* defs.h (enum info_proc_what): Moved here from linux-nat.c
	* infcmd.c: (info_proc_cmd_1): New function.
	(info_proc_cmd): New function, moved here from equivalent routine
	orignally in linux-nat.c.
	(info_proc_cmd_mappings): Likewise.
	(info_proc_cmd_stat): Likewise.
	(info_proc_cmd_status): Likewise.
	(info_proc_cmd_cwd): Likewise.
	(info_proc_cmd_cmdline): Likewise.
	(info_proc_cmd_exe): Likewise.
	(info_proc_cmd_all): Likewise.
	(_initialize_infcmd): Install "info proc" command and subcommands.

	* target.h (struct target_ops): Add to_info_proc.
	(target_info_proc): Add prototype.
	* target.c (target_info_proc): New function.

	* procfs.c (procfs_info_proc): Add prototype.
	(info_proc_cmd): Rename into ...
	(procfs_info_proc): ... this.  Update argument types as appropriate
	for a to_info_proc implementation.  Handle "what" argument.
	(procfs_target): Install procfs_info_proc.
	(_initialize_procfs): No longer install "info proc" command.

	* linux-nat.c: (enum info_proc_what): Remove.
	(linux_nat_info_proc_cmd_1): Rename into ...
	(linux_nat_info_proc): ... this.  Update argument types as appropriate
	for a to_info_proc implementation.
	(linux_nat_info_proc_cmd): Remove.
	(linux_nat_info_proc_cmd_mappings): Likewise.
	(linux_nat_info_proc_cmd_stat): Likewise.
	(linux_nat_info_proc_cmd_status): Likewise.
	(linux_nat_info_proc_cmd_cwd): Likewise.
	(linux_nat_info_proc_cmd_cmdline): Likewise.
	(linux_nat_info_proc_cmd_exe): Likewise.
	(linux_nat_info_proc_cmd_all): Likewise.
	(linux_target_install_ops): Install linux_nat_info_proc.
	(_initialize_linux_nat): No longer install "info proc" command
	and subcommands.

2012-01-20  Ulrich Weigand  <ulrich.weigand@linaro.org>

	* configure.ac [AC_CHECK_FUNCS]: Check for readlink.
	* config.in, configure: Regenerate.

	* target.h (struct target_ops): Add to_fileio_readlink.
	(target_fileio_readlink): Add prototype.
	* target.c (target_fileio_readlink): New function.

	* inf-child.c: Conditionally include <sys/param.h>.
	(inf_child_fileio_readlink): New function.
	(inf_child_target): Install it.

	* remote.c (PACKET_vFile_readlink): New enum value.
	(remote_hostio_readlink): New function.
	(init_remote_ops): Install it.
	(_initialize_remote): Handle vFile:readlink packet type.

2012-01-20  Pedro Alves  <palves@redhat.com>
	    Ulrich Weigand  <ulrich.weigand@linaro.org>

	* configure.ac [AC_CHECK_FUNCS]: Check for pread and pwrite.
	* config.in, configure: Regenerate.

	* target.h (struct target_ops): Add to_fileio_open, to_fileio_pwrite,
	to_fileio_pread, to_fileio_close, to_fileio_unlink.
	(target_fileio_open): Add prototype.
	(target_fileio_pwrite): Likewise.
	(target_fileio_pread): Likewise.
	(target_fileio_close): Likewise.
	(target_fileio_unlink): Likewise.
	(target_fileio_read_alloc): Likewise.
	(target_fileio_read_stralloc): Likewise.

	* target.c: Include "gdb/fileio.h".
	(target_read_stralloc): Accept trailing, but not embedded NUL bytes.
	(default_fileio_target): New function.
	(target_fileio_open): Likewise.
	(target_fileio_pwrite): Likewise.
	(target_fileio_pread): Likewise.
	(target_fileio_close): Likewise.
	(target_fileio_unlink): Likewise.
	(target_fileio_close_cleanup): Likewise.
	(target_fileio_read_alloc_1): Likewise.
	(target_fileio_read_alloc): Likewise.
	(target_fileio_read_stralloc): Likewise.

	* inf-child.c: Include "gdb/fileio.h", <sys/types.h>, <sys/stat.h>,
	<fcntl.h>, and <unistd.h>.
	(inf_child_fileio_open_flags_to_host): New function.
	(inf_child_errno_to_fileio_error): Likewise.
	(inf_child_fileio_open): Likewise.
	(inf_child_fileio_pwrite): Likewise.
	(inf_child_fileio_pread): Likewise.
	(inf_child_fileio_close): Likewise.
	(inf_child_fileio_unlink): Likewise.
	(inf_child_target): Install to_fileio routines.

	* remote.c (init_remote_ops): Install to_fileio routines.

2012-01-20  Pedro Alves  <palves@redhat.com>
	    Ulrich Weigand  <ulrich.weigand@linaro.org>

	* remote.c (remote_multi_process_p): Only check for multi-process
	protocol feature, do not check for extended protocol.
	(remote_supports_multi_process): Check for extended protocol here.
	(set_general_process): Likewise.
	(extended_remote_kill): Likewise.
	(remote_pid_to_str): Likewise.
	(remote_query_supported): Always query multiprocess mode.

2012-01-20  Pedro Alves  <palves@redhat.com>
	    Ulrich Weigand  <ulrich.weigand@linaro.org>

	* inferior.h (struct inferior): Add fake_pid_p.
	* inferior.c (exit_inferior_1): Clear fake_pid_p.
	* remote.c (remote_start_remote): Set fake_pid_p if we have to use
	magic_null_ptid since the remote side doesn't provide a real PID.

2012-01-19  Tom Tromey  <tromey@redhat.com>

	* NEWS: Combine the two Python sections.

2012-01-19  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* target.h (target_close): Update comment on the target's unpush state.

2012-01-19  Pedro Alves  <palves@redhat.com>

	* linux-nat.c (linux_nat_close): Call linux_nat_is_async_p and
	linux_nat_async directly instead of going through the target
	vector.
	* target.c (unpush_target): Close target after unpushing it, not
	before.

2012-01-19  Gary Benson  <gbenson@redhat.com>

	* mdebugread.c (sort_blocks): Replace integer constants with ones
	derived from FIRST_LOCAL_BLOCK.

2012-01-18  Paul Pluzhnikov  <ppluzhnikov@google.com>
	    Jan Kratochvil  <jan.kratochvil@redhat.com>

	PR gdb/9538
	* symfile.c (find_separate_debug_file): New function.
	(terminate_after_last_dir_separator): Likewise.
	(find_separate_debug_file_by_debuglink): Also try realpath.
	* configure.ac (AC_CHECK_FUNCS): Add lstat.
	* configure: Regenerate.
	* config.in: Regenerate.

2012-01-18  Doug Evans  <dje@google.com>

	* Makefile.in (TARGET_SYSTEM_ROOT, TARGET_SYSTEM_ROOT_DEFINE): Delete.
	(main.o): Remove rule.
	* configure.ac (BINDIR): Define with AC_DEFINE_DIR.
	(--with-sysroot): Rewrite.
	* configure: Regenerate.
	* config.in: Regenerate.

2012-01-18  Sergio Durigan Junior  <sergiodj@redhat.com>

	* parse.c (initialize_expout): New function.
	(reallocate_expout): Likewise.
	(parse_exp_in_context): Use `initialize_expout' and
	`reallocate_expout' when appropriate.

2012-01-18  Pedro Alves  <palves@redhat.com>

	* record.c (struct record_breakpoint, record_breakpoint_p)
	(record_breakpoints): New.
	(record_insert_breakpoint, record_remove_breakpoint): Manage
	record breakpoints list.  Only remove breakpoints from the
	inferior if they had been inserted there in the first place.

2012-01-17  Doug Evans  <dje@google.com>

	* linespec.c (decode_line_internal): Don't call symtabs_from_filename
	if we know we don't have a file name to look for.

2012-01-17  Pedro Alves  <palves@redhat.com>

	* dwarf2-frame.c (dwarf2_frame_cfa): Throw NOT_AVAILABLE_ERROR, if
	the frame's stop reason is UNWIND_UNAVAILABLE.

2012-01-17  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix compilation error.
	* m2-exp.y (yyerror): Use ANSI C prototype.

2012-01-16  Sergio Durigan Junior  <sergiodj@redhat.com>

	* f-exp.y (parse_number): Convert prototype from K&R to ANSI C.
	(growbuf_by_size): Likewise.
	(yyerror): Likewise.
	* m2-exp.y (make_qualname): Remove function (was #if 0'ed).
	(modblock): Remove variable (was #if 0'ed).
	(parse_number): Convert prototype from K&R to ANSI C.
	(yyerror): Likewise.
	* objc-exp.y (parse_number): Likewise.
	(yyerror): Likewise.
	(yylex): Remove #if 0'ed code.
	* p-exp.y (uptok): Convert prototype from K&R to ANSI C.
	(yyerror): Likewise.

2012-01-16  Tom Tromey  <tromey@redhat.com>

	* NEWS: Add item.
	* symtab.h (compare_filenames_for_search): Declare.
	* symtab.c (compare_filenames_for_search): New function.
	(iterate_over_some_symtabs): Use it.
	* symfile.h (struct quick_symbol_functions)
	<map_symtabs_matching_filename>: Change spec.
	* psymtab.c (partial_map_symtabs_matching_filename): Use
	compare_filenames_for_search.  Update for new spec.
	* dwarf2read.c (dw2_map_symtabs_matching_filename): Use
	compare_filenames_for_search.  Update for new spec.
	* breakpoint.c (clear_command): Use compare_filenames_for_search.

2012-01-16  Tom Tromey  <tromey@redhat.com>

	PR python/13281:
	* gdbtypes.h (TYPE_FLAG_ENUM): New macro.
	(struct main_type) <flag_flag_enum>: New field.
	* dwarf2read.c (process_enumeration_scope): Detect "flag" enums.
	* NEWS: Add entries.
	* c-valprint.c (c_val_print) <TYPE_CODE_ENUM>: Handle "flag"
	enums.
	* python/lib/gdb/printing.py (_EnumInstance): New class.
	(FlagEnumerationPrinter): Likewise.

2012-01-16  Sergio Durigan Junior  <sergiodj@redhat.com>

	* breakpoint.c (create_sals_from_address_default): New function.
	(create_breakpoints_sal_default): Likewise.
	(decode_linespec_default): Likewise.
	(is_marker_spec): Removed.
	(strace_marker_p): New function.
	(init_breakpoint_sal): Using `strace_marker_p' instead of
	`is_marker_spec'.
	(create_breakpoint): Call method `create_sals_from_address' from
	breakpoint_ops, replacing code that created SALs conditionally
	on the type of the breakpoint.  Call method `create_breakpoints_sal',
	replacing code that created breakpoints conditionally on the type
	wanted.
	(base_breakpoint_create_sals_from_address): New function.
	(base_breakpoint_create_breakpoints_sal): Likewise.
	(base_breakpoint_decode_linespec): Likewise.
	(base_breakpoint_ops): Add methods
	`base_breakpoint_create_sals_from_address',
	`base_breakpoint_create_breakpoints_sal' and
	`base_breakpoint_decode_linespec'.
	(bkpt_create_sals_from_address): New function.
	(bkpt_create_breakpoints_sal): Likewise.
	(bkpt_decode_linespec): Likewise.
	(tracepoint_create_sals_from_address): Likewise.
	(tracepoint_create_breakpoints_sal): Likewise.
	(tracepoint_decode_linespec): Likewise.
	(strace_marker_create_sals_from_address): Likewise.
	(strace_marker_create_breakpoints_sal): Likewise.
	(strace_marker_decode_linespec): Likewise.
	(strace_marker_breakpoint_ops): New variable.
	(addr_string_to_sals): Remove `marker_spec'.  Call method
	`decode_linespec' from breakpoint_ops, replacing code that decoded
	an address string into a SAL.  Use `strace_marker_p' instead of
	`marker_spec'.
	(strace_command): Decide whether we are dealing with a static
	tracepoint with marker or not.  Use the appropriate breakpoint_ops.
	(initialize_breakpoint_ops): Initialize new fields of breakpoint_ops.
	* breakpoint.h (linespec_result, linespec_sals): New forward
	declarations.
	(breakpoint_ops) <create_sals_from_address>,
	<create_breakpoints_sal>, <decode_linespec>: New methods.

2012-01-14  Doug Evans  <dje@google.com>

	* NEWS: Update text for "maint set python print-stack".
	It is deprecated in gdb 7.4 and deleted in 7.5.

2012-01-13  Eli Zaretskii  <eliz@gnu.org>

	* gdb_curses.h (MOUSE_MOVED) [__MINGW32__]: Undefine before
	including curses.h.

2012-01-12  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* configure: Regenerate.
	* config.in: Regenerate.

2012-01-12  Keith Seitz  <keiths@redhat.com>

	PR mi/10586
	* varobj.c (ANONYMOUS_STRUCT_NAME): Define.
	(ANONYMOUS_UNION_NAME): Define.
	(is_path_expr_parent): New function.
	(get_path_expr_parent): New function.
	(is_anonymous_child): New function.
	(create_child_with_value): If the child is anonymous and without
	a name, assign an object name to it.
	(c_describe_child): Use get_path_expr_parent to determine
	the parent expression.
	If there field represents an anonymous struct or union and
	has no name, set an appropriate display name and expression.
	(cplus_describe_child): Likewise.

2012-01-12  Pedro Alves  <palves@redhat.com>

	* i386-tdep.c (i386_frame_cache_1): Also mark the frame base as
	available when %ebp is found to be zero (outermost).

2012-01-11  Andreas Tobler  <andreast@fgznet.ch>

	* common/gdb_assert.h (gdb_static_assert): Rename static_assert to
	an internal gdb_static_assert.
	* mi/mi-common.c: Rename static_assert to gdb_static_assert.

2012-01-11  Tom Tromey  <tromey@redhat.com>

	PR gdb/9598:
	* breakpoint.c (_initialize_breakpoint): Fix help for "catch
	catch" and "catch throw".

2012-01-11  Paul Hilfinger  <hilfingr@adacore.com>

	* blockframe.c (block_innermost_frame): Start search from selected
	frame, if present, or otherwise the current frame.

	* c-exp.y (variable): Update innermost_block for
	'block COLONCOLON NAME' clause.
	* m2-exp.y (variable): Ditto.
	* objc-exp.y (variable): Ditto.

2012-01-10  Tom Tromey  <tromey@redhat.com>

	PR python/13199:
	* python/python.c (finish_python_initialization): Set sys.argv.

2012-01-10  Doug Evans  <dje@google.com>

	* dwarf2read.c (dwarf_decode_lines): Remove arg "abfd".  New arg
	"want_line_info".  All callers updated.
	(dwarf_decode_lines_1): New function.
	(handle_DW_AT_stmt_list): Add function comment.
	New arg "want_line_info".  All callers updated.
	(read_file_scope,read_type_unit_scope): Move comment from
	handle_DW_AT_stmt_list to here.

2012-01-10  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix regression after libiberty/ update for GCC PR 6057 and others.
	* c-exp.y (operator) <OPERATOR DELETE>
	(operator) <OPERATOR DELETE '[' ']'>: Add trailing space.
	* cp-name-parser.y (fill_comp, make_operator, make_dtor)
	(make_builtin_type, make_name): New variable i, add gdb_assert.
	(operator) <OPERATOR NEW>: Update ARGS to 3.
	(operator) <OPERATOR DELETE>: Add trailing space.
	(operator) <OPERATOR NEW '[' ']'>: Update ARGS to 3.
	(operator) <OPERATOR DELETE '[' ']'>: Add trailing space.
	* cp-support.c (cp_canonicalize_string): Check NULL from
	cp_comp_to_string, call warning and return.

2012-01-10  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix duplicate .o files after omitting libbfd.a.
	* Makefile.in (ALL_TARGET_OBS): Remove corelow.o.
	(SFILES): Add corelow.c.
	(COMMON_OBS): Add corelow.o.
	(ALLDEPFILES): Remove corelow.c.
	* config/alpha/alpha-linux.mh (NATDEPFILES): Remove corelow.o.
	* config/alpha/alpha-osf3.mh: Likewise.
	* config/alpha/fbsd.mh: Likewise.
	* config/arm/nbsdaout.mh: Likewise.
	* config/arm/nbsdelf.mh: Likewise.
	* config/i386/i386gnu.mh: Likewise.
	* config/ia64/hpux.mh: Likewise.
	* config/ia64/linux.mh: Likewise.
	* config/m32r/linux.mh: Likewise.
	* config/m68k/linux.mh: Likewise.
	* config/mips/irix5.mh: Likewise.
	* config/mips/irix6.mh: Likewise.
	* config/pa/hpux.mh: Likewise.
	* config/pa/linux.mh: Likewise.
	* config/powerpc/aix.mh: Likewise.
	* config/sparc/linux.mh: Likewise.
	* config/sparc/linux64.mh: Likewise.
	* config/sparc/sol2.mh: Likewise.
	* config/vax/vax.mh: Likewise.
	* configure.tgt (alpha*-*-freebsd* alpha*-*-kfreebsd*-gnu)
	(alpha*-*-netbsd*, alpha*-*-knetbsd*-gnu, alpha*-*-openbsd*)
	(am33_2.0*-*-linux*, arm*-wince-pe, arm*-*-mingw32ce*, arm*-*-linux*)
	(arm*-*-openbsd*, cris*, frv-*-*, hppa*-*-hpux*, hppa*-*-netbsd*)
	(hppa*-*-openbsd*, i[34567]86-*-dicos*, i[34567]86-*-freebsd*)
	(i[34567]86-*-kfreebsd*-gnu, i[34567]86-*-netbsd*)
	(i[34567]86-*-knetbsd*-gnu, i[34567]86-*-openbsd*, i[34567]86-*-nto*)
	(i[34567]86-*-solaris2.1[0-9]*, x86_64-*-solaris2.1[0-9]*)
	(i[34567]86-*-solaris*, i[34567]86-*-linux*, i[34567]86-*-cygwin*)
	(i[34567]86-*-mingw32*, m68*-*-netbsd*, m68*-*-knetbsd*-gnu)
	(m68*-*-openbsd*, m88*-*-openbsd*, microblaze*-linux-*)
	(microblaze*-*-linux*, mips*-*-linux*, mips*-*-netbsd*)
	(mips*-*-knetbsd*-gnu, mips64*-*-openbsd*, powerpc-*-netbsd*)
	(powerpc-*-knetbsd*-gnu, powerpc-*-openbsd*, powerpc-*-linux*)
	(powerpc64-*-linux*, s390*-*-*, score-*-*, sh*-*-linux*)
	(sh*-*-netbsdelf*, sh*-*-knetbsd*-gnu, sh*-*-openbsd*)
	(sparc*-*-freebsd*, sparc*-*-kfreebsd*-gnu, sparc-*-netbsd*)
	(sparc-*-knetbsd*-gnu, sparc64-*-netbsd*, sparc64-*-knetbsd*-gnu)
	(sparc-*-openbsd*, sparc64-*-openbsd*, tic6x-*-*linux, vax-*-netbsd*)
	(vax-*-knetbsd*-gnu, vax-*-openbsd*, x86_64-*-dicos*, x86_64-*-linux*)
	(x86_64-*-freebsd*, x86_64-*-kfreebsd*-gnu, x86_64-*-netbsd*)
	(x86_64-*-knetbsd*-gnu, x86_64-*-openbsd*, xtensa*-*-linux*): Remove
	corelow.o from gdb_target_obs.
	* corefile.c (core_target): Update the comment on NULL value.
	(core_file_command): Replace error by gdb_assert on CORE_TARGET.
	* corelow.c (sniff_core_bfd): Call error instead of warning on zero
	MATCHES.  Drop YUMMY set on NULL.
	(core_close): Do not call exit_inferior_silent on zero PID.  Do not
	reclaim CORE_DATA if it is already NULL.

2012-01-09  Doug Evans  <dje@google.com>

	* gdbtypes.c (safe_parse_type): Initialize type to keep gcc happy.
	* varobj.c (varobj_set_value): Initialize val,value to keep gcc happy.

2012-01-09  Keith Seitz  <keiths@redhat.com>

	* breakpoint.c (wrapper.h): Don't include.

2012-01-09  Keith Seitz  <keiths@redhat.com>

	* Makefile.in (SFILES): Remove wrapper.c.
	(HFILES_NO_SRCDIR): Remove wrapper.h.
	(COMMON_OBS): Remove wrapper.o.
	* cli/cli-interp.c: Don't inlude wrapper.h.
	* corelow.c: Likewise.
	(core_open): Replace gdb_target_find_new_threads with
	TRY_CATCH around target_find_new_threads.
	* eval.c (fetch_subexp_value): Likewise for value_fetch_lazy.
	* gdbtypes.c (safe_parse_type): Likewise for parse_and_eval_type.
	* varobj.c (varobj_create): Likewise for parse_exp_1 and
	evaluate_expression.
	(varobj_set_value): Likewise for evaluate_expression and
	value_assign.
	(install_new_variable): Likewise for value_fetch_lazy.
	(adjust_value_for_child_access): Likewise for value_ind.
	(c_describe_child): Likewise for value_subscript and
	value_ind.
	(c_value_of_root): Likewise for evaluate_expression.
	* wrapper.c: Remove.
	* wrapper.h: Remove.

2012-01-09  Doug Evans  <dje@google.com>

	* dwarf2read.c (read_and_check_comp_unit_head): Renamed from
	partial_read_comp_unit_head.  Replace "buffer", "buffer_size" and
	"abfd" args with "section".  All callers updated.
	Error checking code moved ...
	(error_check_comp_unit_head): ... here.  New function.
	(read_and_check_type_unit_head): Renamed from read_type_unit_head.
	Delete arg "abfd".  New arg "type_offset".  All callers updated.
	(create_debug_types_hash_table): Simplify by using
	read_and_check_type_unit_head.

	* parser-defs.h (namecopy): Delete.
	* parse.c (namecopy, namecopy_size): Move into copy_name.

2012-01-09  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Partially fix duplicate .o files after omitting libbfd.a.
	* config/alpha/alpha-osf3.mh (NATDEPFILES): Remove solib.o.
	* config/i386/nbsdaout.mh (NATDEPFILES): Remove solib.o.
	* config/i386/obsdaout.mh (NATDEPFILES): Remove solib.o.
	* config/m68k/nbsdaout.mh (NATDEPFILES): Remove solib.o.
	* config/m68k/obsd.mh (NATDEPFILES): Remove solib.o.
	* config/powerpc/aix.mh (NATDEPFILES): Remove xcoffread.o.
	* config/vax/nbsdaout.mh (NATDEPFILES): Remove solib.o.

2012-01-09  Pedro Alves  <palves@redhat.com>

	* MAINTAINERS: Update my email address.

2012-01-08  Doug Evans  <dje@google.com>

	* dwarf2read.c (dwarf2_per_objfile): Rename n_type_comp_units to
	n_type_units.  Rename type_comp_units to all_type_units.
	All uses updated.
	(add_signatured_type_cu_to_table): Renamed from
	add_signatured_type_cu_to_list.  All callers updated.

	* gdbtypes.h (struct cplus_struct_type): Delete member
	nfn_fields_total.  All uses removed.

2012-01-06  Doug Evans  <dje@google.com>

	* dwarf2read.c: Move FIXME from dwarf2_build_psymtabs_hard
	to top of file.
	(dwarf2_find_comp_unit): Delete.
	(process_psymtab_comp_unit): Make result "void".
	Delete args buffer, info_ptr, buffer_size, and replace with
	"section".  All callers updated.
	(dwarf2_build_psymtabs_hard): Simplify.

2012-01-06  Sergio Durigan Junior  <sergiodj@redhat.com>
	    Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* ada-lang.c (ada_exception_name_addr): Add `volatile' keyword
	before `struct gdb_exception'.
	* breakpoint.c (update_global_location_list_nothrow)
	(update_breakpoint_locations, enable_breakpoint_disp): Likewise.
	* cp-abi.c (value_rtti_type): Likewise.
	* cp-support.c (cp_validate_operator): Likewise.
	* infrun.c (insert_exception_resume_breakpoint)
	(check_exception_resume, keep_going): Likewise.
	* mi-interp.c (mi_breakpoint_created)
	(mi_breakpoint_modified): Likewise.
	* rs6000-aix-tdep.c (rs6000_convert_from_func_ptr_addr): Likewise.
	* solib-ia64-hpux.c (ia64_hpux_at_dld_breakpoint_p)
	(ia64_hpux_handle_dld_breakpoint_1): Likewise.

2012-01-05  Doug Evans  <dje@google.com>

	* dwarf2read.c (statement_prologue): Delete, unused.

	* dwarf2read.c (dwarf2_per_cu_addr_size): Make result type an int.
	* dwarf2loc.h (dwarf2_per_cu_addr_size): Update.

	* dwarf2read.c (comp_unit_header): Delete, unused.

2012-01-05  Ulrich Weigand  <uweigand@de.ibm.com>

	* configure.tgt [s390*-*-*] (gdb_target_obs): Add corelow.o.
	* config/s390/s390.mh (NATDEPFILES): Remove corelow.o.

2012-01-05  Khoo Yit Phang  <khooyp@cs.umd.edu>

	* infrun.c (normal_stop): Don't skip calling the normal_stop
	observers if the thread was doing a multi-step, but stopped for
	some reason other than stepping.

2012-01-05  Pedro Alves  <alves.ped@gmail.com>

	* cli/cli-decode.h: Add comments.
	(CMD_LIST_AMBIGUOUS): Moved to command.h
	(add_cmd, add_alias_cmd, add_prefix_cmd, add_abbrev_prefix_cmd)
	(set_cmd_cfunc, set_cmd_sfunc, set_cmd_completer, cmd_cfunc_eq)
	(set_cmd_context, get_cmd_context, lookup_cmd, lookup_cmd_1)
	(deprecate_cmd, deprecated_cmd_warning, lookup_cmd_composition)
	(add_com, add_com_alias, add_info, add_info_alias)
	(complete_on_cmdlist, complete_on_enum, help_list): Remove
	declarations.
	* command.h: Add and adjust comments.
	(CMD_LIST_AMBIGUOUS): Moved here.
	(help_cmd, help_cmd_list): Delete declarations.

2012-01-04  Doug Evans  <dje@google.com>

	* dwarf2read.c (dwarf2_read_abbrevs): Delete arg "abfd".
	All callers updated.
	(load_full_type_unit): Renamed from read_signatured_type_at_offset.
	Replace all arguments with "per_cu".  All callers updated.

	* dwarf2read.c (dwarf2_per_cu_data): Remove outdated comment.

	* dwarf2read.c (init_one_comp_unit): Delete arg "objfile".
	New arg "per_cu".  All callers updated.

	Delete #if 0'd out code.
	* language.c (binop_result_type): Delete.
	(simple_type, ordered_type, same_type, integral_type): Delete.
	(numeric_type, character_type, string_type, boolean_type): Delete.
	(float_type, structured_type): Delete.
	* language.h: Update.

2012-01-04  Tom Tromey  <tromey@redhat.com>

	* python/py-value.c (valpy_binop): Initialize 'res_val'.

2012-01-04  Joel Brobecker  <brobecker@adacore.com>

	* corefile.c (close_exec_file): Delete.
	(reopen_exec_file): Remove commented out code that seems related
	to close_exec_file, which is being deleted here.
	* inferior.h (close_exec_file): Delete.
	* fork-child.c (fork_inferior): Remove call to fork_inferior.

2012-01-04  Joel Brobecker  <brobecker@adacore.com>

	* ada-lang.c: #include "cli/cli-utils.h".
	(get_selections): Use skip_spaces.
	(ada_get_next_arg): Use skip_spaces and skip_to_space.
	(catch_ada_exception_command_split): Use skip_spaces.
	(ada_decode_assert_location): Likewise.

2012-01-04  Joel Brobecker  <brobecker@adacore.com>

	* linespec.c (decode_line_internal): Check for C++ or Java
	compound constructs only if the current language is C, C++
	or Java.

2012-01-04  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Revert:
	2012-01-02  Jan Kratochvil  <jan.kratochvil@redhat.com>
		    Joel Brobecker  <brobecker@adacore.com>
	Fix regression for gdb.cp/gdb2495.exp with gcc-4.7.
	* arch-utils.c (displaced_step_at_entry_point): Incrase BP_LEN skip to
	3 times.
	* infcall.c (call_function_by_hand) <AT_SYMBOL>: Move it upwards and
	fall through into AT_ENTRY_POINT.
	(call_function_by_hand) <AT_ENTRY_POINT>: New variable bp_len.  Adjust
	DUMMY_ADDR with it.
	* ppc-linux-tdep.c (ppc_linux_displaced_step_location): Increase
	PPC_INSN_SIZE skip to 3 times.

2012-01-04  Joel Brobecker  <brobecker@adacore.com>

	* linespec.c (add_minsym): Preserve function descriptors.

2012-01-04  Ulrich Weigand  <uweigand@de.ibm.com>

	* breakpoint.c (all_locations_are_pending): Consider locations
	in program spaces executing during startup pending as well.

2012-01-04  Joel Brobecker  <brobecker@adacore.com>

	Copyright year update in most files of the GDB Project.

2012-01-04  Joel Brobecker  <brobecker@adacore.com>

	* copyright.sh: Delete.
	* copyright.py: Rewrite.

2012-01-04  Joel Brobecker  <brobecker@adacore.com>

	* gnulib/extra/update-copyright: New file, imported from gnulib.

2012-01-04  Joel Brobecker  <brobecker@adacore.com>

	* README (Copyright and License Notices): New section.

2012-01-03  Tom Tromey  <tromey@redhat.com>

	PR python/12533:
	* python/py-value.c (valpy_dereference, valpy_get_address
	valpy_get_dynamic_type, valpy_lazy_string, valpy_do_cast)
	(valpy_getitem, valpy_call, valpy_binop, valpy_negative)
	(valpy_absolute, valpy_richcompare): Free intermediate values.

2011-01-03  Joel Brobecker  <brobecker@adacore.com>

	* ada-lang.c: Reformat the copyright notice.

2012-01-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* Makefile.in (ALL_TARGET_OBS): Remove solib-target.o.
	* configure.tgt (arm*-wince-pe, arm*-*-mingw32ce*, arm*-*-symbianelf*)
	(i[34567]86-*-dicos*, i[34567]86-*-cygwin*, i[34567]86-*-mingw32*)
	(x86_64-*-dicos*, x86_64-*-mingw*): Remove solib-target.o.
	Revert this part of:
	2012-01-02  Jan Kratochvil  <jan.kratochvil@redhat.com>
	Build gdb directly from *.o files not using libgdb.a.
	* Makefile.in (COMMON_OBS): Remove solib-target.o.

2012-01-02  Joel Brobecker  <brobecker@adacore.com>

	* common/gdb_thread_db.h, dbxread.c, environ.c,
	gcore.h, rs6000-tdep.h, s390-nat.c, tic6x-tdep.c:
	Reformat the copyright header.

2012-01-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Revert this part of:
	2012-01-02  Jan Kratochvil  <jan.kratochvil@redhat.com>
	Remove the gdbtui binary.
	* gdb.c (main): Remove args.interpreter_p initialization.
	* main.c (captured_main): Set INTERPRETER_P directly by INTERP_CONSOLE.
	* main.h (struct captured_main_args): Remove interpreter_p.

2012-01-02  Joel Brobecker  <brobecker@adacore.com>

	* config/djgpp/fnchange.lst: Add entry for ChangeLog-2011.

2012-01-02  Joel Brobecker  <brobecker@adacore.com>

	* top.c (print_gdb_version): Update copyright year.

2012-01-02  Yao Qi  <yao@codesourcery.com>

	* inf-ptrace.c (inf_ptrace_xfer_partial): Reindent.

2012-01-02  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Joel Brobecker  <brobecker@adacore.com>

	Fix regression for gdb.cp/gdb2495.exp with gcc-4.7.
	* arch-utils.c (displaced_step_at_entry_point): Incrase BP_LEN skip to
	3 times.
	* infcall.c (call_function_by_hand) <AT_SYMBOL>: Move it upwards and
	fall through into AT_ENTRY_POINT.
	(call_function_by_hand) <AT_ENTRY_POINT>: New variable bp_len.  Adjust
	DUMMY_ADDR with it.
	* ppc-linux-tdep.c (ppc_linux_displaced_step_location): Increase
	PPC_INSN_SIZE skip to 3 times.

2012-01-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* amd64-linux-nat.c (update_debug_registers_callback): New comment on
	the return value.
	* i386-linux-nat.c (update_debug_registers_callback): Likewise.

2012-01-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Build gdb directly from *.o files not using libgdb.a.
	* Makefile.in (SUBDIR_TUI_OBS): Remove duplicate tui.o.
	(COMMON_OBS): Remove solib-target.o.
	(LIBGDB_OBS, libgdb.a): Move it before the gdb$(EXEEXT) rule.
	(gdb$(EXEEXT)): Replace libgdb.a with $(LIBGDB_OBS).
	(LIBGDB_OBS, libgdb.a): Move it above.
	* configure.tgt (alpha*-*-linux*, alpha*-*-freebsd*)
	(alpha*-*-kfreebsd*-gnu, alpha*-*-netbsd*, alpha*-*-knetbsd*-gnu)
	(alpha*-*-openbsd*, am33_2.0*-*-linux*, arm*-wince-pe)
	(arm*-*-mingw32ce*, arm*-*-linux*, arm*-*-netbsd*, arm*-*-knetbsd*-gnu)
	(arm*-*-openbsd*, cris*, frv-*-*, hppa*-*-hpux*, hppa*-*-linux*)
	(hppa*-*-netbsd*, hppa*-*-openbsd*, i[34567]86-*-darwin*)
	(i[34567]86-*-dicos*, i[34567]86-*-freebsd*, i[34567]86-*-kfreebsd*-gnu)
	(i[34567]86-*-netbsd*, i[34567]86-*-knetbsd*-gnu, i[34567]86-*-openbsd*)
	(i[34567]86-*-nto*, i[34567]86-*-solaris2.1[0-9]*)
	(x86_64-*-solaris2.1[0-9]*, i[34567]86-*-solaris*, i[34567]86-*-linux*)
	(i[34567]86-*-gnu*, ia64-*-linux*, m32r*-*-linux*, m68*-*-linux*)
	(m68*-*-netbsd*, m68*-*-knetbsd*-gnu, m68*-*-openbsd*)
	(microblaze*-linux-*, microblaze*-*-linux*, mips*-sgi-irix5*)
	(mips*-sgi-irix6*, mips*-*-linux*, mips*-*-netbsd*)
	(mips*-*-knetbsd*-gnu, mips64*-*-openbsd*, powerpc-*-netbsd*)
	(powerpc-*-knetbsd*-gnu, powerpc-*-openbsd*, powerpc-*-aix*, rs6000-*-*)
	(powerpc-*-linux*, powerpc64-*-linux*, powerpc*-*-*, s390*-*-*)
	(sh*-*-linux*, sh*-*-netbsdelf*, sh*-*-knetbsd*-gnu, sh*-*-openbsd*)
	(sparc-*-linux*, sparc64-*-linux*, sparc*-*-freebsd*)
	(sparc*-*-kfreebsd*-gnu, sparc-*-netbsd*, sparc-*-knetbsd*-gnu)
	(sparc64-*-netbsd*, sparc64-*-knetbsd*-gnu, sparc-*-openbsd*)
	(sparc64-*-openbsd*, sparc-*-solaris2.[0-6], sparc-*-solaris2.[0-6].*)
	(sparc-*-solaris2*, sparcv9-*-solaris2*, sparc64-*-solaris2*)
	(vax-*-netbsd*, vax-*-knetbsd*-gnu, x86_64-*-darwin*, x86_64-*-dicos*)
	(x86_64-*-linux*, x86_64-*-freebsd*, x86_64-*-kfreebsd*-gnu)
	(x86_64-*-netbsd*, x86_64-*-knetbsd*-gnu, x86_64-*-openbsd*)
	(xtensa*-*-linux*, xtensa*): Remove solib.o from gdb_target_obs.

2012-01-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Remove the gdbtui binary.
	* .gitignore (/gdbtui): Remove.
	* Makefile.in (TUI): Remove.
	(SUBDIR_TUI_OBS): Remove tui-main.o.
	(SUBDIR_TUI_SRCS): Remove tui/tui-main.c.
	(all-tui, install-tui, uninstall-tui, $(TUI)$(EXEEXT), clean-tui)
	(tui-main.o): Remove.
	(all_object_files): Remove tui-main.o.
	* NEWS: New note for the gdbtui removal.
	* configure: Rebuilt.
	* configure.ac: No longer add all-tui, clean-tui, install-tui and
	uninstall-tui to CONFIG_ALL, CONFIG_CLEAN, CONFIG_INSTALL and
	CONFIG_UNINSTALL respectively.
	* gdb.c (main): Remove args.interpreter_p initialization.
	* main.c (captured_main): Set INTERPRETER_P directly by INTERP_CONSOLE.
	* main.h (struct captured_main_args): Remove interpreter_p.
	* tui/tui-main.c: Remove.

2012-01-01  Doug Evans  <dje@google.com>

	* dwarf2read.c (dwarf2_compute_name): Simplify objfile references.
	(dwarf2_physname, read_import_statement): Ditto.
	(read_call_site_scope, dwarf2_record_block_ranges): Ditto.
	(process_structure_scope read_subroutine_type): Ditto.
	(read_typedef, load_partial_dies, read_partial_die): Ditto.
	(find_partial_die, dwarf_decode_lines, lookup_die_type): Ditto.
	(dwarf2_fetch_die_location_block): Ditto.
	(dwarf_decode_macros, dwarf2_symbol_mark_computed): Ditto.

	* dwarf2read.c (read_signatured_type): Delete `objfile' arg.
	All callers updated.
	(load_full_comp_unit, queue_comp_unit, process_queue): Ditto.
	(dw2_do_instantiate_symtab, dw2_instantiate_symtab): Ditto.
	(process_psymtab_comp_unit, load_partial_comp_unit): Ditto.

	* dwarf2read.c (load_cu): Move assert to more useful location.

	* dwarf2read.c (free_heap_comp_unit): Renamed from free_one_comp_unit.
	All callers updated.

	* dwarf2read.c (dwarf2_per_objfile): Add comment.
	(dwarf2_elf_names): Minor reformat.
	(dwarf2_per_cu_data): Tweak comment.
	(dwarf2_read_section): Fix comment.
	(create_all_comp_units): Fix comment.
	(load_full_comp_unit): Fix comment.
	(process_full_comp_unit): Fix comment.
	(read_signatured_type): Fix comment.

For older changes see ChangeLog-2011.

Local Variables:
mode: change-log
left-margin: 8
fill-column: 74
version-control: never
coding: utf-8
End:
