2011-12-11  Yao Qi  <yao@codesourcery.com>

	* gdb.trace/status-stop.exp: Skip it if target doesn't support trace.

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

	* gdb.ada/catch_ex.exp, gdb.ada/mi_catch_ex.exp: Adjust
	expected output for unsupported case.

2011-12-10  Jan Kratochvil  <jan.kratochvil@redhat.com>

	PR testsuite/12649
	* gdb.trace/ftrace.exp (test_fast_tracepoints): Import gdb_prompt.
	Protect gdb_test_multiple by final $gdb_prompt match.

2011-12-10  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.cp/static-method.exp (have_gcc_45682_fixed, info addr A::func()):
	New variable, new test.
	(list static-method.cc:xxx::(anonymous namespace)::A::func)
	(list 'static-method.cc:xxx::(anonymous namespace)::A::func')
	(list 'static-method.cc':'xxx::(anonymous namespace)::A::func')
	(list static-method.cc:'xxx::(anonymous namespace)::A::func'): KFAIL
	them if HAVE_GCC_45682_FIXED is not set.

2011-12-10  Yao Qi  <yao@codesourcery.com>

	* gdb.trace/status-stop.exp: New.
	* gdb.trace/status-stop.c: New.

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

	* gdb.reverse/until-precsave.exp (run to end of main) Extend the
	timeout.

2011-12-08  Tom Tromey  <tromey@redhat.com>

	* gdb.cp/ovsrch.exp (test_class): Correctly use "a_param" in
	condition.

2011-12-07  Stan Shebs  <stan@codesourcery.com>

	* gdb.trace/tfind.exp: Update for output changes.

2011-12-07  Pedro Alves  <pedro@codesourcery.com>

	* gdb.ada/catch_ex.exp: Skip as unsupported if "catch exception"
	throws "Cannot insert catchpoints in this configuration".
	* gdb.ada/mi_catch_ex.exp: Likewise.

2011-12-06  Pedro Alves  <pedro@codesourcery.com>

	* gdb.base/break-always.exp: Test changing memory at addresses
	with breakpoints inserted.

2011-12-06  Joel Brobecker  <brobecker@acacore.com>

        * gdb.ada/fullname_bp.exp: Add tests for other valid linespecs
        involving a fully qualified function name.

2011-12-06  Tom Tromey  <tromey@redhat.com>

	* gdb.ada/homonym.exp: Add three breakpoint tests.

2011-12-06  Tom Tromey  <tromey@redhat.com>

	* gdb.base/solib-weak.exp (do_test): Remove kfail.
	* gdb.trace/tracecmd.exp: Disable pending breakpoints earlier.
	* gdb.objc/objcdecode.exp: Update for output changes.
	* gdb.linespec/linespec.exp: New file.
	* gdb.linespec/lspec.cc: New file.
	* gdb.linespec/lspec.h: New file.
	* gdb.linespec/body.h: New file.
	* gdb.linespec/base/two/thefile.cc: New file.
	* gdb.linespec/base/one/thefile.cc: New file.
	* gdb.linespec/Makefile.in: New file.
	* gdb.cp/templates.exp (test_template_breakpoints): Update for
	output changes.
	* gdb.cp/re-set-overloaded.exp: Remove kfail.
	* gdb.cp/ovldbreak.exp: Update for output changes.  "all" test now
	makes one breakpoint.
	* gdb.cp/method2.exp (test_break): Update for output changes.
	* gdb.cp/mb-templates.exp: Update for output changes.
	* gdb.cp/mb-inline.exp: Update for output changes.
	* gdb.cp/mb-ctor.exp: Update for output changes.
	* gdb.cp/ovsrch.exp: Use fully-qualified names.
	* gdb.base/solib-symbol.exp: Run to main later.  Breakpoint now
	has multiple matches.
	* gdb.base/sepdebug.exp: Disable pending breakpoints.  Update for
	error message change.
	* gdb.base/list.exp (test_list_filename_and_number): Update for
	error message change.
	* gdb.base/break.exp: Disable pending breakpoints.  Update for
	output changes.
	* configure.ac: Add gdb.linespec.
	* configure: Rebuild.
	* Makefile.in (ALL_SUBDIRS): Add gdb.linespec.

2011-12-06  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdb.base/callfuncs.exp (fetch_all_registers): Filter out read-only
	last_break register on s390*-*-* targets.

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

	* gdb.ada/watch_arg/pck.ads, gdb.ada/watch_arg/pck.adb: New files.
	* gdb.ada/watch_arg/watch.adb: Adjust code to avoid modification
	of parameter X in procedure Foo.

2011-12-05  Stan Shebs  <stan@codesourcery.com>

	* gdb.trace/tfind.exp: Update help string matches.

2011-12-05  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.server/ext-run.exp (get process list): Accept also systemd
	as PID 1.

2011-12-03  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Pedro Alves  <pedro@codesourcery.com>

	* gdb.base/break-entry.exp: Move the target use_gdb_stub test before
	starting GDB.
	* gdb.base/default.exp: Replace target use_gdb_stub checks by global
	$use_gdb_stub.
	* gdb.base/display.exp: Likewise.
	* gdb.base/ending-run.exp: Likewise.
	* gdb.base/list.exp (test_listsize): Likewise.
	* gdb.base/setshow.exp: Likewise.
	* gdb.base/valgrind-db-attach.exp: Set global use_gdb_stub to 1.
	* lib/gdb.exp (gdb_run_cmd, gdb_start_cmd): Replace target use_gdb_stub
	check by global $use_gdb_stub.
	(gdb_test_multiple): Forbid run, start or attach for !$use_gdb_stub.
	(default_gdb_start): Set global use_gdb_stub from target use_gdb_stub.
	(default_gdb_init): Unset global $use_gdb_stub.
	(gdb_continue_to_end, rerun_to_main): Replace target use_gdb_stub check
	by global $use_gdb_stub.
	* lib/gdbserver-support.exp: Extend comments for set_board_info
	gdb_protocol and gdb,socketport.
	(gdbserver_start_extended): Set global gdbserver_protocol and
	gdbserver_gdbport.  Clear global use_gdb_stub.
	* lib/mi-support.exp (default_mi_gdb_start): Set global use_gdb_stub
	from target use_gdb_stub.
	(mi_run_cmd): Replace target use_gdb_stub check by global $use_gdb_stub.

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

	* lib/gdb.exp (gdb_run_cmd, gdb_start_cmd, run_to_main): Add comments.
	(gdb_step_for_stub): Add comments.

2011-12-02  Maciej W. Rozycki  <macro@codesourcery.com>

	* lib/gdb.exp (gdb_expect): Pass all the exception conditions up
	to the caller.
	(gdb_test_multiple): Likewise.

2011-12-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix gdb.mi/mi-solib.exp without system debug info installed.
	* lib/mi-support.exp (mi_expect_stop): Accept FILE also for `from'
	expect attribute, return 0 for it.  Update comments.

2011-12-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/solib-corrupted.exp: Suppress test on is_remote target.
	(corrupted list): Adjust the expectation.

2011-12-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	PR threads/13448
	* gdb.dwarf2/dw2-var-zero-addr.S: New file.
	* gdb.dwarf2/dw2-var-zero-addr.exp: New file.
	* gdb.threads/tls-var-main.c: New file.
	* gdb.threads/tls-var.c: New file.
	* gdb.threads/tls-var.exp: New file.

2011-12-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	PR testsuite/12649
	* gdb.trace/collection.exp (gdb_collect_return_test): Import gdb_prompt.
	Protect gdb_test_multiple by final $gdb_prompt match.
	* gdb.trace/tspeed.exp (gdb_fast_trace_speed_test): Likewise.
	* gdb.trace/tstatus.exp (run_trace_experiment): Likewise.
	(test_tracepoints): Likewise.

2011-12-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	PR breakpoints/13346
	* gdb.dwarf2/dw2-objfile-overlap-inner.S: New file.
	* gdb.dwarf2/dw2-objfile-overlap-outer.S: New file.
	* gdb.dwarf2/dw2-objfile-overlap.exp: New file.

2011-12-01  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/homonym/pck.ads, gdb.ada/homonym/pck.adb: New files.
	* gdb.ada/homonym/homonym.adb: For use of all types defined
	locally inside both Get_Value subprograms.

2011-12-01  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix racy FAILs.
	* gdb.base/foll-exec.exp (zap_session): Use gdb_test_no_output instead
	of send_gdb.

2011-11-30  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdb.base/testenv.exp: Skip on remote targets.  Unset global
	environment variable after test completed.

2011-11-30  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdb.base/solib-nodir.exp: Skip if remote target.
	* gdb.base/gdb.fortran.exp: Use shlib= flag when linking main
	application.  Call gdb_load_shlibs.
	* gdb.mi/mi-solib.exp: Use mi_load_shlibs instead of gdb_load_shlibs.

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

	* gdb.base/infoline.c, gdb.base/infoline.exp: New files.

2011-11-28  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/fullname_bp: New testcase.

2011-11-25  Jan Kratochvil  <jan.kratochvil@redhat.com>

	PR testsuite/12649
	* gdb.reverse/i386-sse-reverse.exp (continue to end of sse_test #2):
	Wrap send_gdb into a new gdb_test.

	Code cleanup.
	* gdb.reverse/i386-sse-reverse.exp (continue to end of sse4_test):
	Convert send_gdb and gdb_expect to gdb_test_multiple.

2011-11-25  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/jit-so.exp (one_jit_test): Add testcase name to log message.

2011-11-23  Keith Seitz  <keiths@redhat.com>

	* lib/mi-support.exp (varobj_tree): New namespace and procs.
	(mi_varobj_tree_test_children_callback): New proc.
	(mi_walk_varobj_tree): New proc.

2011-11-22  Tom Tromey  <tromey@redhat.com>

	* lib/mi-support.exp (mi_run_cmd_full): Rename from mi_run_cmd.
	Add "use_mi_command" argument.
	(mi_run_cmd, mi_run_with_cli): New procs.
	* gdb.mi/solib-lib.c: New file.
	* gdb.mi/solib-main.c: New file.
	* gdb.mi/mi-solib.exp: New file.

2011-11-21  Doug Evans  <dje@google.com>

	* gdb.cp/nextoverthrow.exp: Skip test if debug info for
	_Unwind_DebugHook is missing.

2011-11-20  Stan Shebs  <stan@codesourcery.com>

	* gdb.trace/tstatus.exp: New.
	* gdb.trace/actions.c: Include string.h.

2011-11-18  Yao Qi  <yao@codesourcery.com>

	* gdb.trace/pending.exp: New.
	* gdb.trace/pending.c: New.
	* gdb.trace/pendshr1.c: New.
	* gdb.trace/pendshr2.c: New.
	* gdb.trace/change-loc.exp (tracepoint_change_loc_1): Check one
	tracepoint location becomes pending.
	(tracepoint_change_loc_2): New.

2011-11-16  David S. Miller  <davem@davemloft.net>

	* lib/gdb.exp (can_single_step_to_signal_handler): Return zero when
	target is sparc*-*-linux*

2011-11-15  Paul Koning  <paul_koning@dell.com>

	* gdb.python/py-type.exp: New testcases for exceptions on scalar
	types.

2011-11-14  Doug Evans  <dje@google.com>

	* gdb.base/shell.exp: New file.

2011-11-14  Stan Shebs  <stan@codesourcery.com>

	* gdb.trace/ftrace.c: New.
	* gdb.trace/ftrace.exp: New.

2011-11-14  Yao Qi  <yao@codesourcery.com>

	* gdb.trace/change-loc-1.c: New.
	* gdb.trace/change-loc-2.c: New.
	* gdb.trace/change-loc.c: New.
	* gdb.trace/change-loc.exp:  New.
	* gdb.trace/change-loc.h:  New.
	* gdb.trace/trace-break.c (marker): Define new symbol.
	* gdb.trace/trace-break.exp (break_trace_same_addr_5):
        New.
	(break_trace_same_addr_6): New.

2011-11-12  Matt Rice  <ratmice@gmail.com>

	* gdb.base/info-macros.exp: Make tests for info definitions
	test info macro.  Add tests for info macro argument processing.
	Rename a few tests.

2011-11-11  Keith Seitz  <keiths@redhat.com>

	PR gdb/12843
	* gdb.base/linespecs.exp: New file.

2011-11-11  Doug Evans  <dje@google.com>

	* gdb.threads/print-threads.exp: Extend timeout for slower
	tests.

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

	* gdb.reverse/i387-env-reverse.exp: Extend timeout of
	"record to end of main" test.

	* gdb.python/py-type.c (TS): New typedef.
	(ts): New global.
	* gdb.python/py-type.exp: Test field list of typedef.

2011-11-10  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/small_reg_param: New testcase.

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

	* gdb.cp/destrprint.exp: New file.
	* gdb.cp/destrprint.cc: New file.

2011-11-08  Meador Inge  <meadori@codesourcery.com>

	* gdb.arch/thumb-prologue.c (switch_stack_to_same): New test function.
	(switch_stack_to_other): New test function.
	* gdb.arch/thumb-prologue.exp: New test cases.

2011-11-08  Maciej W. Rozycki  <macro@codesourcery.com>

	* lib/mi-support.exp (mi_send_resuming_command_raw): Fix a typo.

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

	* gdb.exp (supports_process_record): New.
	(supports_reverse): New.
	* gdb.reverse/break-precsave.exp: Call support_process_record
	to run test conditionally.
	* gdb.reverse/consecutive-precsave.exp: Likewise.
	* gdb.reverse/i386-precsave.exp: Likewise.
	* gdb.reverse/machinestate-precsave.exp: Likewise.
	* gdb.reverse/solib-precsave.exp: Likewise.
	* gdb.reverse/step-precsave.exp: Likewise.
	* gdb.reverse/until-precsave.exp: Likewise.
	* gdb.reverse/watch-precsave.exp: Likewise.
	* gdb.reverse/break-reverse.exp: Call support_reverse  to run
	test conditionally.
	* gdb.reverse/consecutive-reverse.exp: Likewise.
	* gdb.reverse/finish-precsave.exp: Likewise.
	* gdb.reverse/finish-reverse-bkpt.exp: Likewise.
	* gdb.reverse/finish-reverse.exp: Likewise.
	* gdb.reverse/i386-reverse.exp: Likewise.
	* gdb.reverse/i386-sse-reverse.exp: Likewise.
	* gdb.reverse/machinestate.exp: Likewise.
	* gdb.reverse/next-reverse-bkpt-over-sr.exp: Likewise.
	* gdb.reverse/sigall-precsave.exp: Likewise.
	* gdb.reverse/sigall-reverse.exp: Likewise.
	* gdb.reverse/solib-reverse.exp: Likewise.
	* gdb.reverse/step-reverse.exp: Likewise.
	* gdb.reverse/until-reverse.exp: Likewise.
	* gdb.reverse/watch-reverse.exp: Likewise.

2011-11-05  Yao Qi  <yao@codesourcery.com>

	* gdb.trace/trace-break.exp: Add test on setting two
	fast tracepoints at the same address.

2011-11-03  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/commands.exp (cmd1 error): Fix false ERROR with gdbserver.

2011-11-02  Stan Shebs  <stan@codesourcery.com>

	* gdb.trace/collection.c: Add code using strings.
	* gdb.trace/collection.exp: Add tests of string collection.

2011-11-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/skip-solib.exp (executable_main): New variable.
	(binfile_main): Base it on that.
	Use $executable_main in clean_restart calls.  Drop gdb_exit and
	gdb_start calls.

2011-11-01  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix racy FAILs.
	* lib/mi-support.exp (mi_gdb_test): Replace thread_selected_re and
	breakpoint_re globals import by async.  Set string_regex to .* for
	async.  Remove the optional thread_selected_re and breakpoint_re
	globals expectations.

2011-11-01  Joseph Myers  <joseph@codesourcery.com>

	* gdb.base/maint.exp: XFAIL "maint info sections DATA" on MinGW as
	well as Cygwin.

2011-11-01  Justin Lebar <justin.lebar@gmail.com>

	Add tests for skip command.
	* gdb.base/skip-solib-lib.c: New
	* gdb.base/skip-solib-main.c: New
	* gdb.base/skip-solib.exp: New
	* gdb.base/skip.c: New
	* gdb.base/skip.exp: New
	* gdb.base/skip1.c: New
	* gdb.base/Makefile.in: Adding new files.

2011-10-31  Yao Qi  <yao@codesourcery.com>
	    Pedro Alves  <pedro@codesourcery.com>

        * gdb.trace/trace-break.c: New.
        * gdb.trace/trace-break.exp: New.

2011-10-28  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.threads/no-unwaited-for-left.exp: Specify $srcfile for
	break-here-2.

2011-10-28  Pedro Alves  <pedro@codesourcery.com>

	* gdb.threads/no-unwaited-for-left.c: New.
	* gdb.threads/no-unwaited-for-left.exp: New.
	* gdb.threads/non-ldr-exc-1.c: New.
	* gdb.threads/non-ldr-exc-1.exp: New.
	* gdb.threads/non-ldr-exc-2.c: New.
	* gdb.threads/non-ldr-exc-2.exp: New.
	* gdb.threads/non-ldr-exc-3.c: New.
	* gdb.threads/non-ldr-exc-3.exp: New.
	* gdb.threads/non-ldr-exc-4.c: New.
	* gdb.threads/non-ldr-exc-4.exp: New.

2011-10-28  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/async-shell.exp: Skip the testfile for use_gdb_stub.
	* gdb.base/attach-pie-misread.exp: Likewise.
	* gdb.base/break-interp.exp: Likewise.
	* gdb.base/default.exp (attach, run "r" abbreviation, run): Skip these
	testcases for use_gdb_stub.
	* gdb.dwarf2/dw2-restore.exp: Fix the run for use_gdb_stub.
	(continue): New testcase.
	* gdb.python/py-events.exp: Skip the testfile for use_gdb_stub.
	* gdb.threads/attach-into-signal.exp: Likewise.
	* gdb.threads/attach-stopped.exp: Likewise.
	* gdb.threads/attachstop-mt.exp: Likewise.

2011-10-28  Paul Koning  <paul_koning@dell.com>

	* gdb.python/lib-types.exp (deep_items): Rename from deepitems.

2011-10-27  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* lib/mi-support.exp (breakpoint_re): Suppress match reporting.
	(mi_gdb_test): Import globals thread_selected_re
	and breakpoint_re.  Expect them optionally at the regex start.

2011-10-27  Doug Evans  <dje@google.com>

	* gdb.python/python.exp: Test source -s.

2011-10-26  Paul Koning  <paul_koning@dell.com>

	* gdb.python/lib-types.cc (struct A): New structure.
	* gdb.python/lib-types.exp (deepitems): New tests.

2011-10-25  Paul Koning  <paul_koning@dell.com>

	PR python/13327

	* gdb.python/py-value.exp: Add testcases for is_lazy attribute,
	fetch_lazy method.

2011-10-24  Yao Qi  <yao@codesourcery.com>

	* lib/gdb.exp (can_single_step_to_signal_handler): Return 0 when
	target is tic6x-*-*.

2011-10-21  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/mi_task_info/task_switch.adb: New file.
	* gdb.ada/mi_task_info.exp: New file.

2011-10-21  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.cp/expand-psymtabs-cxx.exp: New file.
	* gdb.cp/expand-psymtabs-cxx.cc: New file.

2011-10-20  Phil Muldoon  <pmuldoon@redhat.com>

	PR python/12656

	* gdb.python/py-block.exp: Add is_global, is_static, static_block,
	global_block tests.

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

	* gdb.base/jit-so.exp (one_jit_test): Remove spurious backslash.

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

	* gdb.base/source.exp: Don't include full file name in test name.
	* gdb.python/python.exp: Don't include full file name in test
	name.

2011-10-18  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/attach-pie-noexec.c: New files.
	* gdb.base/attach-pie-noexec.exp: New files.

2011-10-17  Joseph Myers  <joseph@codesourcery.com>

	* lib/gdb.exp (gdb_test_multiple): Expect newline and secondary
	prompt for each extra line in command.

2011-10-17  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.dwarf2/dw2-simple-locdesc.exp (p &s.shl): KFAIL it.
	Revert the part of:
	2011-07-27  Jan Kratochvil  <jan.kratochvil@redhat.com>
	* gdb.dwarf2/dw2-stack-boundary.exp (check partial symtab errors):
	Change the expected string.

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

	Fix results with system glibc debug info installed.
	* gdb.base/disp-step-syscall.exp (continue to $syscall (1st time))
	(continue to $syscall (2nd time), continue to $syscall (3rd time)):
	Accept also __libc_ symbol prefix and no prefix.

2011-10-14  Keith Seitz  <keiths@redhat.com>

	PR c++/13225
	* gdb.cp/converts.cc (foo3_1): New function.
	(foo3_2): New functions.
	* gdb.cp/converts.exp: Add tests for int to pointer conversion
	and null pointer conversions of integer constant zero.
	Add test to check if all arguments are checked for incompatible
	conversion BADNESS.

2011-10-14  Tom Tromey  <tromey@redhat.com>

	* gdb.threads/attachstop-mt.exp: Add $srcfile to the linespecs.
	* gdb.threads/attach-stopped.exp (corefunc): Add $srcfile to the
	linespec.

2011-10-13  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix internal error regression.
	* gdb.dwarf2/implptr-optimized-out.S: New file.
	* gdb.dwarf2/implptr-optimized-out.exp: New file.

2011-10-12  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix empty DWARF expressions DATA vs. SIZE conditionals.
	* gdb.dwarf2/dw2-op-call.S (arraycallnoloc, arraynoloc): New DIEs.
	(loclist): New.
	(4): New abbrev.
	* gdb.dwarf2/dw2-op-call.exp: Remove variable srcfile and executable.
	Use prepare_for_testing, remove clean_restart.
	(p arraynoloc, p arraycallnoloc): New tests.

2011-10-12  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.cp/namespace-enum.exp (executable): New variable.
	(binfile): Use ${objdir}/${subdir}/ prefix.
	Use ${executable} for clean_restart.

2011-10-11  Sterling Augustine  <saugustine@google.com>

	* gdb.cp/Makefile.in: Add namespace-enum test.
	* gdb.cp/namespace-enum.exp: New file.
	* gdb.cp/namespace-enum.c: New file.
	* gdb.cp/namespace-enum-main.c: New file.

2011-10-11  Ulrich Weigand  <ulrich.weigand@linaro.org>

	* gdb.python/py-shared.exp: Relax filename check to handle remote:
	sysroot.

2011-10-11  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Reimplement @entry in input expressions.
	* gdb.base/exprs.c (v_int_array_init): New variable.
	* gdb.base/exprs.exp (print v_int_array_init)
	(print *v_int_array_init@1, print *v_int_array_init@2)
	(print v_int_array_init[0]@1, print v_int_array_init[0]@2)
	(print v_int_array_init[1]@1): New tests.

2011-10-10  Joseph Myers  <joseph@codesourcery.com>

	* gdb.cp/gdb2495.exp: Do not include directories in filename in
	expected message.

2011-10-09  Doug Evans  <dje@google.com>

	* gdb.base/alias.exp: Add tests for alias command.

2011-10-09  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.arch/amd64-entry-value.s: New file.
	* gdb.mi/mi2-amd64-entry-value.s: New file.

2011-10-09  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Display @entry parameter values even for references.
	* gdb.arch/amd64-entry-value.cc (reference, datap, datap_input): New
	functions.
	(main): New variables regvar, nodatavarp, stackvar1, stackvar2.  Call
	reference and datap_input.
	* gdb.arch/amd64-entry-value.exp (reference, breakhere_reference): New
	breakpoints.
	(continue to breakpoint: entry_reference: reference)
	(entry_reference: bt at entry)
	(continue to breakpoint: entry_reference: breakhere_reference)
	(entry_reference: bt, entry_reference: ptype regparam)
	(entry_reference: p regparam, entry_reference: ptype regparam@entry)
	(entry_reference: p regparam@entry, entry_reference: p &regparam@entry)
	(entry_reference: p regcopy, entry_reference: p nodataparam)
	(entry_reference: p nodataparam@entry): New tests.

2011-10-09  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Support @entry in input expressions.
	* gdb.arch/amd64-entry-value.exp (entry: p i@entry, entry: p j@entry)
	(entry_stack: p s1@entry, entry_stack: p s2@entry)
	(entry_stack: p d9@entry, entry_stack: p da@entry, tailcall: p i@entry)
	(tailcall: p j@entry): New tests.
	* gdb.cp/koenig.cc (A::entry): New function.
	(main): Call it.
	* gdb.cp/koenig.exp (p entry (c)): New test.

2011-10-09  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Display @entry parameter values (without references).
	* gdb.arch/amd64-entry-value.cc (locexpr, stacktest, data, data2)
	(different, validity, invalid): New functions.
	(main): Call them.
	* gdb.arch/amd64-entry-value.exp: New breakpoints breakhere_locexpr,
	stacktest, breakhere_stacktest, different, breakhere_different,
	breakhere_validity and breakhere_invalid.
	(entry: bt): Update for @entry.
	(entry_locexpr: *, entry_stack: *, entry_equal: *, entry_different: *)
	(entry_validity: *, entry_invalid: *): Many new tests.
	* gdb.base/break.exp
	(run until breakpoint set at small function, optimized file): Accept
	also the @entry suffix.
	* gdb.mi/Makefile.in (PROGS): Add mi2-amd64-entry-value.
	* gdb.mi/mi2-amd64-entry-value.c: New files.
	* gdb.mi/mi2-amd64-entry-value.exp: New files.

2011-10-09  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Protect entry values against self tail calls.
	* gdb.arch/amd64-entry-value.cc (self2, self): New.
	(main): Call self.
	* gdb.arch/amd64-entry-value.exp (self: breakhere, self: bt)
	(set debug entry-values 1, self: bt debug entry-values): New tests.

2011-10-09  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Recognize virtual tail call frames.
	* gdb.arch/amd64-entry-value.cc (c, a, b, amb_z, amb_y, amb_x, amb)
	(amb_b, amb_a): New.
	(main): Call a and b.
	* gdb.arch/amd64-entry-value.exp (tailcall: breakhere, tailcall: bt)
	(tailcall: p i, tailcall: p j, set $sp0=$sp, up, p $sp0 == $sp, frame 3)
	(p $sp0 + sizeof (void *) == $sp, ambiguous: breakhere, ambiguous: bt):
	New tests.

2011-10-09  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Implement basic support for DW_TAG_GNU_call_site.
	* gdb.arch/Makefile.in (EXECUTABLES): Add amd64-entry-value.
	* gdb.arch/amd64-entry-value.cc: New file.
	* gdb.arch/amd64-entry-value.exp: New file.

2011-10-09  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix DW_OP_GNU_implicit_pointer for DWARF32 v3+ on 64-bit arches.
	* gdb.dwarf2/implptr-64bit.S: New file.
	* gdb.dwarf2/implptr-64bit.exp: New file.

2011-10-09  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix initial language detection with -readnow.
	* gdb.cp/readnow-language.cc: New file.
	* gdb.cp/readnow-language.exp: New file.

2011-10-09  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix printed anonymous struct name.
	* gdb.cp/anon-struct.exp (print type of X::t2): New test.

2011-10-09  Joseph Myers  <joseph@codesourcery.com>

	* gdb.base/solib-symbol.exp: Do not include directories in
	filenames in expected messages.

2011-10-07  Doug Evans  <dje@google.com>

	* gdb.python/py-pp-maint.py: Add tests for `replace' arg.

2011-10-07  Kevin Pouget  <kevin.pouget@st.com>

	Allow Python notification of new object-file loadings.
	* gdb.python/py-events.exp: Test newobjfile event.
	* gdb.python/py-events.py: Register newobjfile callback.
	* gdb.python/py-events.c: Add call to shared library
	* gdb.python/py-events-shlib.c: New file.

2011-10-06  Joseph Myers  <joseph@codesourcery.com>

	* gdb.base/fixsection.exp: Do not include directories in filename
	in expected message.

2011-10-05  Pierre Muller  <muller@ics.u-strasbg.fr>

	Add tests for passing of environment variables to inferior.
	* gdb.base/testenv.c: New test source.
	* gdb.base/testenv.exp: New expect test.

2011-10-04  Paul Koning  <paul_koning@dell.com>

	* gdb.python/py-value.c (main): Break before return.

2011-10-04  Kevin Pouget  <kevin.pouget@st.com>

	PR python/12691: Add the inferior to Python exited event
	* gdb.python/py-events.exp: Test the inferior attribute of exited
	event with a fork.
	* gdb.python/py-events.py: Print inferior number on exit.
	* gdb.python/py-events.c: Fork the inferior.

2011-10-03  Edjunior Machado  <emachado@linux.vnet.ibm.com>

	* gdb.base/jit.exp: Add testcase name to log message

2011-10-03  Paul Koning  <paul_koning@dell.com>
	    Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.python/py-value.exp
	(python inval = gdb.parse_and_eval('*(int*)0'))
	(python argc_lazy = gdb.parse_and_eval('argc'), sanity check argc)
	(set argc=2, python print argc_lazy): New tests.

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

	* gdb.base/save-bp.exp, gdb.base/save-bp.c: New files.

2011-10-01  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Pedro Alves  <pedro@codesourcery.com>

	* gdb.python/py-value.exp (test_value_in_inferior): New variable
	can_read_0, test for it.
	(python print gdb.parse_and_eval('*(int*)0')): Rename to ...
	(parse_and_eval with memory error): ... here, make it untested if
	can_read_0.

2011-09-30  Marek Polacek  <mpolacek@redhat.com>

	* gdb.python/python.exp (verify pagination beforehand)
	(verify pagination afterwards): Fix race by splitting the line.

2011-09-29  Joseph Myers  <joseph@codesourcery.com>

	* lib/gdb.exp (is_amd64_regs_target, is_x86_like_target): Allow
	for 64-bit multilibs from i?86-* targets.

2011-09-29  Marek Polacek  <mpolacek@redhat.com>

	* lib/gdb.exp: Fix a typo in one of the comments.

2011-09-29  Marek Polacek  <mpolacek@redhat.com>

	* gdb.base/foll-fork.exp: Fix race by adding "y or n" to the
	matching pattern.

2011-09-28  Paul Koning  <paul_koning@dell.com>

	* gdb.python/py-type.c (enum E): New.
	* gdb.python/py-type.exp (test_fields): Add tests for Python
	mapping access to fields.
	(test_enums): New test for field access on enums.

2011-09-27  Stan Shebs  <stan@codesourcery.com>

	* gdb.trace/collection.exp: Test collection of $_ret.

2011-09-22  Andreas Tobler  <andreast@fgznet.ch>

	* lib/gdb.exp (gdb_compile): Set rpath and remove -ldl from the
	list of compilation switches for <*-*-freebsd*>.

2011-09-19  Stan Shebs  <stan@codesourcery.com>

	* gdb.trace/tspeed.exp: New file.
	* gdb.trace/tspeed.c: New file.

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

	* gdb.arch/arm-disp-step.S (test_ldr_literal): Test for Thumb
	instructions.
	(test_adr_32bit, test_pop_pc): Likewise.
	(test_ldr_literal_16, test_cbz_cbnz, test_adr): New test for
	Thumb instructions.
	* gdb.arch/arm-disp-step.exp (test_ldm_stm_pc): Match $gdb_prompt
	in gdb_test_multiple.
	(test_ldr_literal_16, test_cbz_cbnz, test_adr): New.

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

	* lib/gdb.exp (can_single_step_to_signal_handler): New.
	* gdb.base/kill-after-signal.exp: Call it.  Skip if target doesn't
	support single step to signal handler.

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

	* gdb.base/disp-step-fork.c: New.
	* gdb.base/disp-step-syscall.exp: New.
	* gdb.base/disp-step-vfork.c: New.

2011-09-16  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/tasks.exp: Make the expected output for
	the `info tasks' tests more resilient to spacing
	changes.

2011-09-16  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.python/py-evthreads.exp (Run to breakpoint 1)
	(reached breakpoint 2, reached breakpoint 3): Update expected output.

2011-09-15  Kevin Pouget  <kevin.pouget@st.com>

	PR Python/12692 Add gdb.selected_inferior() to Python interface.
	* gdb.python/py-inferior.exp: Add testcase for gdb.selected_inferior().

2011-04-30  Kevin Pouget  <kevin.pouget@st.com>

	Handle multiple breakpoint hits in Python interface:
	* gdb.python/py-events.exp: Set a duplicate breakpoint and check its
	presence.
	* gdb.python/py-events.py (breakpoint_stop_handler): Browse all the
	breakpoint hits.

2011-09-13  Sami Wagiaalla  <swagiaal@redhat.com>
	    Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.python/py-events.exp: Remove pretty printing comment.
	* gdb.python/py-evsignal.exp: New file.
	* gdb.python/py-evthreads.c: Include signal.h.
	(thread3): Remove variable count3.  Remove variable bad and use raise
	instead.
	(thread2): Remove variable count2.  Move thread3 pthread_create here,
	merge pthread_join to a single line.
	(main): Remove variable count1.  Merge pthread_join with pthread_create
	to a single line.
	* gdb.python/py-evthreads.exp: Remove pretty printing comment.  New
	KFAIL python/12966 for gdbserver.  Test return value of
	gdb_compile_pthreads.  Use gdb_run_cmd.  Replace send_gdb and
	gdb_expect by gdb_test and gdb_test_multiple.
	(thread 2, thread 3): New tests.

2011-09-12  Matt Rice  <ratmice@gmail.com>
	    Pedro Alves  <pedro@codesourcery.com>

	PR gdb/13175

	* gdb.base/interp.exp: New tests.
	* gdb.base/interp.c: New file.

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

	* gdb.dwarf2/clztest.exp: Fix initialization of tests array.
	* gdb.dwarf2/typeddwarf.exp: Ditto.

2011-09-08  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix compatibility with x32 arch.
	* testsuite/gdb.dwarf2/typeddwarf.exp: Check also is_lp64_target.
	* testsuite/gdb.trace/backtrace.exp: Use is_amd64_regs_target and
	is_x86_like_target.
	* testsuite/gdb.trace/collection.exp: Likewise.
	* testsuite/gdb.trace/report.exp: Likewise.
	* testsuite/gdb.trace/unavailable.exp: Likewise.
	* testsuite/gdb.trace/while-dyn.exp: Likewise.
	* testsuite/lib/gdb.exp (is_amd64_regs_target): New function.
	(is_x86_like_target): Check also is_amd64_regs_target.

2011-09-08  Jan Kratochvil  <jan.kratochvil@redhat.com>

	PR breakpoints/12435
	* gdb.arch/amd64-prologue-xmm.c: New file.
	* gdb.arch/amd64-prologue-xmm.exp: New file.
	* gdb.arch/amd64-prologue-xmm.s: New file.

2011-09-08  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.dwarf2/dw2-param-error-main.c: New file.
	* gdb.dwarf2/dw2-param-error.S: New file.
	* gdb.dwarf2/dw2-param-error.exp: New file.

2011-09-08  Pedro Alves  <pedro@codesourcery.com>

	* gdb.base/annota1.exp, gdb.base/annota3.exp: Extract the
	inferior's pid and look for a core dump named core.$pid.  Use
	`remote_file' commands on the host instead of hand coding shell
	commands on the build.
	* gdb.base/valgrind-db-attach.exp: Kill the program before
	finishing the test.

2011-09-02  Matt Rice  <ratmice@gmail.com>

	* lib/prompt.exp: New file for testing the first prompt.
	* gdb.python/py-prompt.exp: Ditto.
	* gdb.python/py-prompt.c: Ditto (copy of ext-attach.c).

2011-09-02  Pedro Alves  <pedro@codesourcery.com>

	* gdb.threads/gcore-thread.exp: Set the global core_supported to
	0, before testing gcore.

2011-09-01  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* dw2-ifort-parameter-debug.S: Update copyright year.
	* dw2-ifort-parameter.c: Update copyright year.
	* dw2-ifort-parameter.exp: Update copyright year.

	* dw2-ifort-parameter-debug.S: New file.
	* dw2-ifort-parameter.c: New file.
	* dw2-ifort-parameter.exp: New file.

2011-08-26  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/commands.exp (error_clears_commands_left): New function.
	(): Call it.

2011-08-26  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.mi/mi-inheritance-syntax-error.cc (A): Make `a' public.
	(C): Initialize `a'.
	* gdb.mi/mi-inheritance-syntax-error.exp
	(-data-evaluate-expression $path):  Expect `a' as 5.

2011-08-26  Marc Khouzam  <marc.khouzam@ericsson.com>

	PR mi/11912
	* gdb.mi/mi-inheritance-syntax-error.cc: New file.
	* gdb.mi/mi-inheritance-syntax-error.exp: New file.
	* gdb.mi/mi-var-cp.cc: Updated for new 'class'
	keyword in output of -var-info-path-expression.

2011-08-26  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.trace/backtrace.exp: Use is_lp64_target to check 64bit target.
	* gdb.trace/collection.exp: Likewise.
	* gdb.trace/report.exp: Likewise.
	* gdb.trace/unavailable.exp: Likewise.
	* gdb.trace/while-dyn.exp: Likewise.

2011-08-18  Keith Seitz  <keiths@redhat.com>

	PR c++/12266
	* gdb.cp/meth-typedefs.cc: New file.
	* gdb.cp/meth-typedefs.exp: New file.

2011-08-17  Phil Muldoon  <pmuldoon@redhat.com>

        * gdb.python/python.exp: Add extended-prompt tests.

2011-08-15  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.arch/i386-dr3-watch.exp
	(watchpoint on gap1 does not fit debug registers)
	(delete all watchpoints): Fix racy expect strings.

2011-08-14  Yao Qi  <yao@codesourcery.com>

	* gdb.base/maint.exp: set data_section to ".neardata".
	* gdb.base/savedregs.c (thrower): Trigger SIGILL on NO-MMU machine.
	* gdb.base/savedregs.exp: Handle SIGILL.
	* gdb.mi/mi-syn-frame.c (bar): Trigger SIGILL on NO-MMU machine.
	* gdb.xml/tdesc-regs.exp: Set core-regs for tic6x-*-*.

2011-08-12  Doug Evans  <dje@google.com>

	* gdb.python/py-symbol.exp: Add test for symbol.type.

2011-08-12  Ulrich Weigand  <ulrich.weigand@linaro.org>

	* gdb.threads/pthreads.exp: Enable on non-native configurations.
	* gdb.mi/mi-pthreads.exp: Likewise.
	* gdb.mi/mi2-pthreads.exp: Likewise.
	* gdb.mi/gdb669.exp.exp: Likewise.

2011-08-09  Pedro Alves  <pedro@codesourcery.com>

	* lib/mi-support.exp (detect_async): Rename to...
	(mi_detect_async): ... this.
	* gdb.mi/mi-nonstop-exit.exp: Adjust.
	* gdb.mi/mi-nonstop.exp: Adjust.
	* gdb.mi/mi-ns-stale-regcache.exp: Adjust.
	* gdb.mi/mi-nsintrall.exp: Adjust.
	* gdb.mi/mi-nsmoribund.exp: Adjust.
	* gdb.mi/mi-nsthrexec.exp: Adjust.

2011-08-09  Pedro Alves  <pedro@codesourcery.com>

	* gdb.base/display.c (do_loops): New `p_i' local.
	* gdb.base/display.exp: Test displaying a variable that is
	temporarily at a bad address.

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

	* gdb.dwarf2/dw2-op-stack-value.S: New file.
	* gdb.dwarf2/dw2-op-stack-value.exp: New file.

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

	* gdb.dwarf2/dw2-simple-locdesc.S: Replace .value by .2byte.
	* gdb.dwarf2/dw2-case-insensitive.exp (regexp case-sensitive off)
	(p fuNC_symtab): Permit also ppc64 leading dot.

2011-08-05  Pedro Alves  <pedro@codesourcery.com>

	* gdb.trace/unavailable.exp (test_maybe_regvar_display): New
	procedure.
	(gdb_collect_args_test, gdb_collect_locals_test): Use it.

2011-08-05  Yao Qi  <yao@codesourcery.com>

	* gdb.base/callfuncs.exp: Set language after main.
	* gdb.cp/cplusfuncs.exp: Likewise.
	* gdb.cp/inherit.exp: Likewise.

2011-08-04  Ulrich Weigand  <ulrich.weigand@linaro.org>

	* gdb.base/nostdlib.exp: Skip on gdb_stub targets.
	* gdb.base/watch-vfork.exp: Skip on remote targets.

2011-08-04  Ulrich Weigand  <ulrich.weigand@linaro.org>

	* gdb.threads/thread-find.exp: Support remote targets.

2011-08-04  Ulrich Weigand  <ulrich.weigand@linaro.org>

	* gdb.base/jit.exp: Download solib_binfile to target.
	* gdb.base/jit-so.exp:  Likewise.  Also, use gdb_load_shlibs
	and call dlopen without full path name.
	* gdb.cp/infcall-dlopen.exp: Use gdb_load_shlibs and call
	dlopen without full path name.

2011-08-03  Philippe Waroquiers  <philippe.waroquiers@skynet.be>

	* gdb.base/break-always.exp: Complete the test
	with duplicated breakpoints and enabling/disabling them.

2011-08-02  Tom Tromey  <tromey@redhat.com>

	PR gdb/11289:
	* gdb.cp/overload.exp: Fix regexps.  Remove kfails.

2011-08-01  Paul Pluzhnikov  <ppluzhnikov@google.com>

	PR gdb/13045
	* gdb.base/float.exp: Add new test case for PR gdb/13045
	* gdb.base/float.c: New file.

2011-07-28  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.python/py-mi.exp: Test printers returning string hint, and
	also not returning a value.
	* gdb.python/py-prettyprint.c: Add testcase for above.
	* gdb.python/py-prettyprint.py: Add test printer for above.

2011-07-27  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.dwarf2/dw2-simple-locdesc.S: Change DWARF version to 3.
	(.Ldie26, .Ldie41, .Ldie4a, .Ldie54, .Ldie5b): Remove.
	(.Ldie30) Add as field "data4".
	(.Ldie32) Rename field "b" to "shl".
	(abbrev4) Change for the "data4" field.
	(abbrev5, abbrev6) Remove.
	* gdb.dwarf2/dw2-simple-locdesc.exp (p &s.b): Rename to ...
	(p &s.shl): ... here.  Add comment.
	(p &s.data4): New.

2011-07-27  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix crash on lval_computed values.
	* gdb.dwarf2/implptr.exp (print sizeof (j[0])): New test.

2011-07-27  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/help.exp (help whatis): Update the expected string.

2011-07-27  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.dwarf2/dw2-simple-locdesc.S: New file.
	* gdb.dwarf2/dw2-simple-locdesc.exp: New file.
	* gdb.dwarf2/dw2-stack-boundary.exp (check partial symtab errors):
	Change the expected string.

2011-07-26  Pedro Alves  <pedro@codesourcery.com>

	* gdb.base/watchpoint.exp
	(test_disable_enable_software_watchpoint): New procedure.
	(top level): Run it.

2011-07-26  Ulrich Weigand  <ulrich.weigand@linaro.org>

	* gdb.python/py-mi.exp: Avoid '+' in filenames.  Call C version of
	executable file "${binfile}", C++ version "${binfile}-cxx".
	* gdb.python/py-prettyprint.exp: Likewise.
	* gdb.python/py-symbol.exp: Likewise.
	* gdb.python/py-type.exp: Likewise.
	* gdb.python/py-value.exp: Likewise.
	* gdb.python/py-template.exp (test_template_arg): Pass full executable
	file name instead of just suffix.

2011-07-25  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix implicit pointer offsets.
	* gdb.dwarf2/implptr.c (add): New marker baz breakpoint.
	* gdb.dwarf2/implptr.exp (set baz breakpoint for implptr)
	(continue to breakpoint: continue to baz breakpoint for implptr)
	(sanity check element 0, sanity check element 1)
	(enter the inlined function, check element 0 for the offset)
	(check element 1 for the offset)
	(continue to breakpoint: ignore the second baz breakpoint): New tests.
	(set foo breakpoint for implptr): Update the breakpoint number.

2011-07-22  Ulrich Weigand  <ulrich.weigand@linaro.org>

	* gdb.python/py-mi.exp: Use different file names for different
	versions of the executable under test.
	* gdb.python/py-prettyprint.exp: Likewise.
	* gdb.python/py-symbol.exp: Likewise.
	* gdb.python/py-template.exp: Likewise.
	* gdb.python/py-type.exp: Likewise.
	* gdb.python/py-value.exp: Likewise.

2011-07-22  Ulrich Weigand  <ulrich.weigand@linaro.org>

	* gdb.python/py-breakpoint.exp: Re-set can-use-hw-watchpoints
	flag after restarting GDB if necessary.

2011-07-22  Ulrich Weigand  <ulrich.weigand@linaro.org>

	* gdb.python/py-shared.exp: Call gdb_load_shlibs.

2011-07-22  Pedro Alves  <pedro@codesourcery.com>

	* gdb.arch/i386-dr3-watch.exp: Test that the i386 watchpoints
	backend doesn't leave used debug registers behind.

2011-07-22  Tom Tromey  <tromey@redhat.com>

	* gdb.dwarf2/typeddwarf.c: XFAIL 'z' on x86-64.
	* gdb.dwarf2/typeddwarf.exp (xfail-gdb-test): Add arch_pattern
	argument.
	* gdb.dwarf2/typeddwarf-amd64.S: New file.

2011-07-21  Matt Rice  <ratmice@gmail.com>

	* gdb.threads/Makefile.in: Avoid globbing corethreads.exp
	in mostlyclean rule.  Add files ending in .core.

2011-07-21  Matt Rice  <ratmice@gmail.com>

	PR macros/12999
	* gdb.base/info-macros.c: New test sources.
	* gdb.base/info-macros.exp: New tests.

2011-07-21  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.python/python.exp: Add prompt substitution tests.

2011-07-19  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix crash if referenced CU is aged out.
	* gdb.dwarf2/dw2-op-call.exp (maintenance set dwarf2 max-cache-age 0):
	New.
	* gdb.dwarf2/implptr.exp: Likewise.

2011-07-19  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.dwarf2/implptr.S: Rebuilt.
	* gdb.dwarf2/implptr.c (intp, intpp, intppp): New typedefs.
	(bar): Use them for j, k, l.
	* gdb.dwarf2/implptr.exp: New variable opts.  Support runtest parameter
	COMPILE.
	(print j in implptr:bar): Update for the intp typedef.
	(print p[0].x in implptr:foo): Use more exact regex.

2011-07-18  Tom Tromey  <tromey@redhat.com>

	* gdb.cp/static-method.exp: Add missing single quote.

2011-07-18  Yao Qi  <yao@codesourcery.com>

	* gdb.base/async-shell.exp: Skip test if displaced stepping is not
	supported.
	* gdb.mi/mi-nonstop-exit.exp: Likewise.
	* gdb.mi/mi-nonstop.exp: Likewise.
	* gdb.mi/mi-ns-stale-regcache.exp: Likewise.
	* gdb.mi/mi-nsintrall.exp: Likewise.
	* gdb.mi/mi-nsmoribund.exp: Likewise.
	* gdb.mi/mi-nsthrexec.exp: Likewise.
	* gdb.python/py-evthreads.exp: Likewise.

2011-07-15  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Code cleanup.
	* gdb.cp/namespace.exp (xfail_class_types): New variable.  Initialize
	it.  Substitute it instead of test_compiler_info everywhere.

2011-07-15  Ulrich Weigand  <ulrich.weigand@linaro.org>

	* gdb.base/type-opaque.exp: Use gdb_load_shlibs.  Run test on
	remote targets as well.

2011-07-15  Ulrich Weigand  <ulrich.weigand@linaro.org>

	* lib/gdb.exp (gdb_compile_shlib_pthreads): New helper.
	* gdb.threads/tls-shared.exp: Use it.  Call gdb_load_shlibs.

2011-07-15  Ulrich Weigand  <ulrich.weigand@linaro.org>

	* lib/gdb.exp (gdb_compile): Specify rpath if the *target* is
	a remote machine, not the host.
	(gdb_compile_shlib): Set soname if target is remote.

2011-07-14  Paul Pluzhnikov  <ppluzhnikov@google.com>

	* gdb.cp/minsym-fallback.exp: Link in C++ mode.

2011-07-13  Matt Rice <ratmice@gmail.com>

	* gdb.python/py-objfile-script-gdb.py: Renamed to
	py-objfile-script-gdb.py.in.
	* gdb.python/py-objfile-script-gdb.py.in: Renamed from
	py-objfile-script-gdb.py.
	* gdb.python/py-objfile-script.exp: Update reference to
	py-objfile-script-gdb.py.

2011-07-13  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.dwarf2/dw2-op-call.S (array1): Use the real label; do not
	reference undefined label.

2011-07-11  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.dwarf2/dw2-const.S (Pointer size): Change from 4 to 8.
	(DW_AT_high_pc, DW_AT_low_pc): Remove them.
	(val8, .Ltype_const8, .Ltype_int8, DW_TAG_variable): New.
	* gdb.dwarf2/dw2-const.exp (print/x val8): New test.

2011-07-11  Phil Muldoon  <pmuldoon@redhat.com>

        PR python/12438
	* gdb.python/python.exp: Add maint set/show python print-stack
          deprecated tests.  Add set/show python print-backtrace tests.

2011-07-07  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.java/jprint.exp (print a java.lang.String): xfail without system
	debug info.

2011-07-06  Matt Rice  <ratmice@gmail.com>

	* gdb.python/python.exp: Update filename paths.
	* gdb.python/py-symtab.exp: Ditto.

2011-07-06  Marek Polacek  <mpolacek@redhat.com>

	* gdb.python/py-evthreads.exp: Add missing `$'.

2011-07-06  Jie Zhang  <jie.zhang@analog.com>

	* config/bfin.exp: New file.
	* gdb.asm/asm-source.exp (bfin-*-*): Handle Blackfin targets.
	* gdb.asm/bfin.inc: New file.

2011-07-06  Marek Polacek  <mpolacek@redhat.com>

	* gdb.python/py-evthreads.exp: Fix race by adding an anchor to match
	the whole output.

2011-07-05  Tom Tromey  <tromey@redhat.com>

	* gdb.java/jprint.java (jprint.hi): New field.
	* gdb.java/jprint.exp: Print string.

2011-07-05  Thiago Jung Bauermann  <bauerman.ibm.com>

	* gdb.base/call-sc.c: Fix typos.
	* gdb.base/ifelse.exp: Likewise.
	* gdb.base/structs.c: Likewise.

2011-07-06  Paul Pluzhnikov  <ppluzhnikov@google.com>

	* gdb.base/jit-so.exp: New test.
	* gdb.base/jit-dlmain.c: New file.
	* gdb.base/jit-main.c: Allow "main" to be elsewhere.

2011-07-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.cp/m-static.exp: Call get_compiler_info.
	(static const int initialized nowhere): Call setup_xfail for gcc <= 4.4.
	* gdb.cp/pr9167.exp (p b): Likewise.
	* gdb.cp/temargs.exp: Do not set have_pr_45024_fixed for gcc 4.6.
	(test value of P in inner_m, test type of Z in inner_m): Call
	setup_xfail for gcc <= 4.5.

2011-07-01  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.cp/paren-type.cc: New files.
	* gdb.cp/paren-type.exp: New files.

2011-07-01  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Stop on first linespec terminator instead of eating what we can.
	* gdb.cp/minsym-fallback-main.cc (main): Call also C::operator ().
	* gdb.cp/minsym-fallback.cc (C::operator ()): Define.
	* gdb.cp/minsym-fallback.exp (break 'C::f()'): Change to ...
	(break C::f()): ... this one.
	(break C::operator()()): New test.
	* gdb.cp/minsym-fallback.h (C::operator ()): Declare.
	* gdb.java/jmisc.exp (break jmisc.main(java.lang.String[])int): New
	test.

2011-07-01  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fall back linespec to minimal symbols.
	* gdb.base/psymtab.exp (Don't search past end of psymtab.): Update the
	error message.
	* gdb.cp/cplusfuncs.exp (list foo::operator int*): Likewise.
	* gdb.cp/minsym-fallback-main.cc: New file.
	* gdb.cp/minsym-fallback.cc: New file.
	* gdb.cp/minsym-fallback.exp: New file.
	* gdb.cp/minsym-fallback.h: New file.

2011-07-01  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.cp/no-dmgl-verbose.cc: New file.
	* gdb.cp/no-dmgl-verbose.exp: New file.

2011-07-01  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/break-interp.exp (reach_1, test_ld): Allow also the prefix
	__GI_.
	* gdb.cp/psymtab-parameter.cc (func): Make it a template function.
	(f): New function.
	* gdb.cp/psymtab-parameter.exp (complete break 'func(): Rename to ...
	(complete p 'func<short>(): ... here.
	* gdb.dwarf2/dw2-linkage-name-trust-main.cc: New file.
	* gdb.dwarf2/dw2-linkage-name-trust.S: New file.
	* gdb.dwarf2/dw2-linkage-name-trust.exp: New file.
	* gdb.cp/temargs.exp (test type of F in k3_m, test value of F in k3_m):
	Make them KFAIL gcc/49546.

2011-07-01  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/catch_ex.exp: Add temporary catchpoint tests.

2011-07-01  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Test GCC PR debug/49546.
	* gdb.cp/temargs.exp (set sixth breakpoint for temargs)
	(test type of F in k3_m, test value of F in k3_m): New.
	* gdb.cp/temargs.cc (struct S3, struct K3): New.
	(main): New variable k3.  Call k3.k3_m.

2011-07-01  Jean-Charles Delay  <delay@adacore.com>

	* gdb.ada/packed_array.exp: Fix expected outout.

2011-07-01  Jean-Charles Delay  <delay@adacore.com>

	* gdb.ada/packed_array.exp: fixed expected output.

2011-07-01  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/same_enum: New testcase.

2011-07-01  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/ptr_typedef: New testcase.

2011-07-01  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/arrayptr.exp: Add ptype test.

2011-07-01  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/char_enum: New testcase.

2011-07-01  Yao Qi  <yao@codesourcery.com>

	* gdb.base/dump.exp (capture_pointer_with_type): New.
	Get value from address instead of name.
	Start GDB once, and do `dump' and `restore'
	tests together.

2011-06-30  Jie Zhang <jie.zhang@analog.com>
	    Mike Frysinger  <vapier@gentoo.org>

	* config/monitor.exp (get_remotetimeout, set_remotetimeout): New
	helper functions for getting/setting remotetimeout variable.
	* lib/gdb.exp (gdb_load): If the target is remote, set
	$oldremotetimeout to get_remotetimeout, then call set_remotetimeout
	with $loadtimeout.  Set $load_ok to 0 before doing the load.
	Instead of returning, immediately, set $load_ok to 0.  Call
	set_remotetimeout with $oldremotetimeout, and then return if
	$load_ok is 1.

2011-06-30  Andrew Burgess  <aburgess@broadcom.com>

	* gdb.python/py-template.exp: Don't run this test if the target
	does not support c++ tests.

2011-06-29  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix non-only rename list for Fortran modules import.
	* gdb.fortran/module.exp (print var_x, print var_y, print var_z): New
	tests.
	* gdb.fortran/module.f90 (module moduse): New.
	(program module): use moduse, test var_x, var_y and var_z.

2011-06-29  Tom Tromey  <tromey@redhat.com>

	PR testsuite/12040:
	* gdb.fortran/array-element.exp: Use f90, not f77.
	* gdb.fortran/complex.exp: Use f90, not f77.
	* gdb.fortran/derived-type.exp: Use f90, not f77.
	* gdb.fortran/library-module.exp: Use f90, not f77.
	* gdb.fortran/logical.exp: Use f90, not f77.
	* gdb.fortran/module.exp: Use f90, not f77.
	* gdb.fortran/multi-dim.exp: Use f90, not f77.
	* gdb.fortran/subarray.exp: Use f90, not f77.

2011-06-29  Tom Tromey  <tromey@redhat.com>

	* gdb.fortran/charset.exp: New file.
	* gdb.fortran/charset.f90: New file.

2011-06-29  Tom Tromey  <tromey@redhat.com>

	PR testsuite/12040:
	* lib/future.exp: New file, mostly extracted from ada.exp.
	Rewrote compatibility code to use rename.
	(gdb_find_gfortran): New proc.
	(gdb_default_target_compile): Refresh from dejagnu; plus a pending
	gfortran patch.
	* lib/ada.exp (gdb_find_gnatmake, gdb_default_target_compile):
	Move to future.exp.
	* lib/gdb.exp: Always load future.exp.

2011-06-28  Yao Qi  <yao@codesourcery.com>

	* gdb.cp/exception.cc: Don't include iostream.
	(bar): Remove print statement.
	(catcher): New.
	(main): Remove print statements.  Call function catcher.
	* gdb.cp/exception.exp : Don't match inferior's output in regexp.
	Set breakpoint on catcher, and check the value of parameter.

2011-06-23  Yao Qi  <yao@codesourcery.com>

	* gdb.cp/mb-inline.exp: Parse the output of `info break' to check breakpoint
	1.2 is disabled.  KFAIL for uclinux.

2011-06-23  Marek Polacek  <mpolacek@redhat.com>

	* gdb.mi/mi2-var-display.exp: Replace gdb_test_multiple with
	mi_gdb_test.

2011-06-23  Marek Polacek  <mpolacek@redhat.com>

	* gdb.mi/mi2-return.exp: Replace gdb_test_multiple with mi_gdb_test.

2011-06-23  Marek Polacek  <mpolacek@redhat.com>

	* gdb.mi/mi2-console.exp: Replace gdb_test_multiple with mi_gdb_test.

2011-06-23  Marek Polacek  <mpolacek@redhat.com>

	* gdb.mi/mi2-basics.exp: Fix races.  Honour the
	`test_exec_and_symbol_mi_operatons' return value.
	(test_mi_interpreter_selection): Use mi_gdb_test instead of
	gdb_test_multiple.
	(test_exec_and_symbol_mi_operatons): Likewise.
	(test_path_specification): Likewise.

2011-06-23  Yao Qi  <yao@codesourcery.com>

	* gdb.base/moribund-step.exp: Skip test if displaced stepping is not
	supported.
	* lib/gdb.exp (support_displaced_stepping): New.

2011-06-23  Yao Qi  <yao@codesourcery.com>

	* gdb.threads/execl.exp: Skip on remote target.

2011-06-21  Marek Polacek  <mpolacek@redhat.com>

	* gdb.mi/mi-var-display.exp: Replace gdb_test_multiple with
	mi_gdb_test.

2011-06-20  Marek Polacek  <mpolacek@redhat.com>

	* gdb.mi/mi-nsintrall.exp: Replace gdb_test_multiple with mi_gdb_test.

2011-06-20  Marek Polacek  <mpolacek@redhat.com>

	* gdb.mi/mi-nsmoribund.exp: Replace gdb_test_multiple with
	mi_gdb_test.

2011-06-20  Marek Polacek  <mpolacek@redhat.com>

	* gdb.mi/mi-return.exp: Replace gdb_test_multiple with mi_gdb_test.

2011-06-14  Yao Qi  <yao@codesourcery.com>

	gdb/testsuite/
	* gdb.threads/ia64-sigill.exp: Remove "set debug lin-lwp 1".

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

	* gdb.dwarf2/dw2-filename.exp (info sources): New testcase.

2011-06-10  Tom Tromey  <tromey@redhat.com>

	* gdb.cp/temargs.exp: Let tests pass if compiler bug is fixed.
	Add tests for pointer-to-member-function.
	* gdb.cp/temargs.cc (S::somefunc): New function.
	(K2): New class.
	(main): Instantiate K2; call method.

2011-06-08  Joel Brobecker  <brobecker@adacore.com>

	* gdb.python/py-inferior.c (f2): Make str an array rather
	than a pointer.
	* gdb.python/py-inferior.exp: Adjust testcase accordingly.

2011-06-07  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/async-shell.c: New file.
	* gdb.base/async-shell.exp: New file.

2011-06-06  Pedro Alves  <pedro@codesourcery.com>

	* gdb.threads/pending-step.exp: Add more context to SIGTRAP match.

2011-06-03  Joel Brobecker  <brobecker@adacore.com>  (obvious fix)

	From Stephen Kitt  <steve@sk2.org>
	* gdb.base/help.exp: Adjust following some spelling corrections
	in GDB.

2011-06-01  Yao Qi  <yao@codesourcery.com>

	* gdb.base/ending-run.exp: Match __uClibc_main for uClibc.

2010-05-31  Keith Seitz  <keiths@redhat.com>

	PR c++/12750
	* gdb.cp/static-method.cc: New file.
	* gdb.cp/static-method.exp: New file.

2010-05-31  Keith Seitz  <keiths@redhat.com>

	PR symtab/12704
	* gdb.cp/anon-ns.cc: New file.
	* gdb.cp/anon-ns.exp: New file.

2011-05-31  Pedro Alves  <pedro@codesourcery.com>

	* gdb.arch/i386-dr3-watch.c: New file.
	* gdb.arch/i386-dr3-watch.exp: New file.

2011-05-30  Yao Qi  <yao@codesourcery.com>

	* gdb.base/callfuncs.c (t_structs_fc): New.
	(t_structs_dc, t_structs_ldc): New.
	(t_double_many_args):
	(DEF_FUNC_MANY_ARGS_1, DEF_FUNC_MANY_ARGS_2): Define.
	(DEF_FUNC_MANY_ARGS_3, DEF_FUNC_VALUES_1): Define.
	(DEF_FUNC_VALUES_2, DEF_FUNC_VALUES_3): Define.
	* gdb.base/callfuncs.exp: Call new functions.

2011-05-30  Yao Qi  <yao@codesourcery.com>

	* gdb.base/callfuncs.exp (rerun_and_prepare): New.
	Call rerun_and_prepare for each test to isolate effects.

2011-05-30  Yao Qi  <yao@codesourcery.com>

	* gdb.base/varargs.c (find_max_float_real): New.
	(find_max_double_real, find_max_long_double_real): New.
	* gdb.base/varargs.exp: Call these new added functions.
	* lib/gdb.exp (setup_kfail_for_target): New.

2011-05-30  Yao Qi  <yao@codesourcery.com>

	* gdb.base/funcargs.c (callca, callcb, callcc): New.
	(callcd, callce, callcf, callc1a, callc1b): New.
	(callc2a, callc2b): New.
	* gdb.base/funcargs.exp (complex_args): New.
	(complex_integral_args, complex_float_integral_args): New.
	* lib/gdb.exp (support_complex_tests): New.  Determine
	whether to run test cases on _Complex types.

2011-05-27  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.threads/leader-exit.c: New file.
	* gdb.threads/leader-exit.exp: New file.

2011-05-27  Marek Polacek  <mpolacek@redhat.com>

	* gdb.mi/mi-nonstop.exp: Replace gdb_test_multiple with mi_gdb_test.

2011-05-27  Marek Polacek  <mpolacek@redhat.com>

	* gdb.mi/mi-nonstop-exit.exp: Remove the `-gdb-show non-stop' testcase,
	remove the `supported' variable.
	* gdb.mi/mi-nonstop.exp: Likewise.
	* gdb.mi/mi-ns-stale-regcache.exp: Likewise.
	* gdb.mi/mi-nsintrall.exp: Likewise.
	* gdb.mi/mi-nsmoribund.exp: Likewise.
	* gdb.mi/mi-nsthrexec.exp: Likewise.

2011-05-26  Pedro Alves  <pedro@codesourcery.com>

	* gdb.reverse/finish-reverse-bkpt.exp: New test.

2011-05-26  Pedro Alves  <pedro@codesourcery.com>

	* gdb.reverse/next-reverse-bkpt-over-sr.exp: New test.

2011-05-24  Keith Seitz  <keiths@redhat.com>

	PR breakpoint/12803
	* gdb.cp/cmpd-minsyms.cc (a): New method.
	(b): New method.
	(c): New method.
	* gdb.cp/cmpd-minsyms.exp: Add tests for new methods.

2011-05-24  Pedro Alves  <pedro@codesourcery.com>

	* gdb.base/commands.exp (watchpoint_command_test): Check that the
	watchpoint's command list didn't execute when the watchpoint went
	out of scope.

2011-05-24  Pierre Muller  <muller@ics.u-strasbg.fr>

	Centralize -DSYMBOL_PREFIX=\"_\" additional flags in gdb.exp.
	* lib/gdb.exp (gdb_target_symbol_prefix_flags): New procedure.
	* gdb.arch/i386-bp_permanent.exp: Use gdb_target_symbol_prefix_flags.
	* gdb.arch/i386-gnu-cfi.exp: Likewise.
	* gdb.arch/i386-permbkpt.exp: Likewise.
	* gdb.arch/i386-prologue.exp: Likewise.
	* gdb.arch/i386-size-overlap.exp: Likewise.
	* gdb.arch/i386-size.exp: Likewise.
	* gdb.arch/i386-unwind.exp: Likewise.
	* gdb.reverse/i386-precsave.exp: Likewise.
	* gdb.reverse/i386-reverse.exp: Likewise.
	* gdb.reverse/i386-sse-reverse.exp: Likewise.
	* gdb.reverse/i387-env-reverse.exp: Likewise.
	* gdb.reverse/i387-stack-reverse.exp: Likewise.

2011-05-24  Pedro Alves  <pedro@codesourcery.com>

	* gdb.trace/tfile.exp: Add test that opening the basic.tf trace
	file doesn't error, using MI.

2011-05-23  Tom Tromey  <tromey@redhat.com>

	* gdb.base/charset.exp (string_display): Add tests to assign to
	arrays.
	* gdb.base/charset.c (short_array, int_array, long_array): New.

2011-05-20  Pedro Alves  <pedro@codesourcery.com>

	Cope with async mode.

	* gdb.mi/mi-break.exp (test_breakpoint_commands): Split gdb_test
	into gdb_test + mi_expect_stop.

2011-05-20  Pedro Alves  <pedro@codesourcery.com>

	* gdb.mi/basics.c: Don't include stdio.h or unistd.h.
	(callme): Remove printf call.

2011-05-20  Pierre Muller  <muller@ics.u-strasbg.fr>

	* lib/gdb.exp (gdb_test_list_exact): Suggest use of double
	quote pattern to avoid problems with Cygwin/mingw expect versions.
	* gdb.base/default.exp (show convenience): Use double
	quote pattern for regular expressions.

2011-05-20  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix -readnow for -gdwarf-4 unused type units.
	* gdb.dwarf2/dw4-sig-type-unused.S: New file.
	* gdb.dwarf2/dw4-sig-type-unused.exp: New file.

2011-05-18  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/kill-after-signal.c: New file.
	* gdb.base/kill-after-signal.exp: New file.

2011-05-16  Pedro Alves  <pedro@codesourcery.com>

	* gdb.ada/start.exp: Call untested with the correct test filename.
	* gdb.arch/i386-bp_permanent.exp: Call untested with the correct
	test filename.  Make the test's binary unique.
	* gdb.arch/i386-signal.exp: Call untested with the correct test
	filename.
	* gdb.arch/i386-size-overlap.exp: Ditto.
	* gdb.arch/Makefile.in (EXECUTABLES): Update.
	* gdb.base/gcore-buffer-overflow.exp: Ditto.
	* gdb.cp/call-c.exp: Ditto.
	* gdb.mi/mi-reverse.exp: Call untested with the correct test
	filename.  Make the test's binary unique.
	* gdb.mi/Makefile.in (EXECUTABLES): Update.
	* gdb.python/py-mi.exp: Ditto.
	* gdb.python/Makefile.in (EXECUTABLES): Update.
	* gdb.reverse/i386-precsave.exp: Ditto.
	* gdb.reverse/i387-env-reverse.exp: Call untested with the correct
	test filename.
	* gdb.reverse/i387-stack-reverse.exp: Ditto.
	* gdb.reverse/sigall-precsave.exp: Ditto.  Make the test's binary
	unique.
	* gdb.reverse/sigall-reverse.exp: Call untested with the correct
	test filename.
	* gdb.reverse/Makefile.in (EXECUTABLES): Update.
	* gdb.trace/tfile.exp: Ditto.

2011-05-14  Yao Qi  <yao@codesourcery.com>

	* gdb.trace/tfile.c(add_memory_block): Store address in unsigned
	type.

2011-05-13  Doug Evans  <dje@google.com>

	* gdb.python/py-objfile-script.exp: New file.
	* gdb.python/py-objfile-script.c: New file.
	* gdb.python/py-objfile-script-gdb.py: New file.
	* testsuite/gdb.python/py-section-script.exp: Test
	"info auto-load-scripts".

2011-05-13  Tom Tromey  <tromey@redhat.com>

	* gdb.dwarf2/clztest.exp: New file.
	* gdb.dwarf2/clztest.c: New file.
	* gdb.dwarf2/clztest.S: New file.

2011-05-13  Doug Evans  <dje@google.com>

	* gdb.base/charset.exp: If UTF-16 is not available, skip char16_t,
	String16 tests.

2011-05-13  Tom Tromey  <tromey@redhat.com>

	* lib/gdb.exp (is_x86_like_target): New proc.
	* gdb.dwarf2/watch-notconst.exp: Use is_x86_like_target.
	* gdb.dwarf2/valop.exp: Use is_x86_like_target.
	* gdb.dwarf2/typeddwarf.exp: Use is_x86_like_target.  Pass
	-nostdlib to compiler.
	* gdb.dwarf2/typeddwarf.S (_start): Rename from 'main'.
	* gdb.dwarf2/pieces.exp: Use is_x86_like_target.
	* gdb.dwarf2/implptr.exp: Use is_x86_like_target.
	* gdb.dwarf2/dw2-restore.exp: Check for LP64.
	* gdb.dwarf2/callframecfa.exp: Use is_x86_like_target.

2011-05-13  Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* gdb.python/py-function.exp: Test setting a value from a function
	which executes a command.

2011-05-12  Tom Tromey  <tromey@redhat.com>

	* gdb.dwarf2/typeddwarf.S: New file.
	* gdb.dwarf2/typeddwarf.c: New file.
	* gdb.dwarf2/typeddwarf.exp: New file.

2011-05-12  Marek Polacek  <mpolacek@redhat.com>

	* gdb.mi/mi-basics.exp: Fix races.  Honour the
	`test_exec_and_symbol_mi_operatons' return value.
	(test_mi_interpreter_selection): Use mi_gdb_test instead of
	gdb_test_multiple.
	(test_exec_and_symbol_mi_operatons): Likewise.
	(test_path_specification): Likewise.

2011-05-11  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* lib/gdb.exp (gdb_rename_execfile): Remove catch wrappers.
	(gdb_touch_execfile): Remove catch wrappers.  New variable time.
	Replace `file copy' and `file rename' by `file mtime'.  Twice.

2011-05-11  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/readline-ask.c: New file.
	* gdb.base/readline-ask.exp: New file.
	* gdb.base/readline-ask.inputrc: New file.

2011-05-06  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdb.cell/bt.exp: Delete breakpoints before running to signal
	to avoid race condition.
	* gdb.cell/coremaker.c: Use small stack size.
	* gdb.cell/ea-standalone.exp: Use file name without path as
	argument to c_to.
	* gdb.cell/fork.exp: Allow other output when continuing to end.

2011-05-06  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.threads/corethreads.c: New file.
	* gdb.threads/corethreads.exp: New file.

2011-05-06  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.threads/gcore-thread.exp (objfile, opts): New variables.
	Try to compile the test using -Wl,-z,norelro first.
	(load_core): New variable libthread_db_seen, initialize it.
	(zeroed-threads cannot be listed): Protect it by XFAIL on
	!$libthread_db_seen.

2011-05-06  Jan Kratochvil  <jan.kratochvil@redhat.com>

	PR 12573
	* gdb.dwarf2/dw2-skip-prologue.S: New file.
	* gdb.dwarf2/dw2-skip-prologue.c: New file.
	* gdb.dwarf2/dw2-skip-prologue.exp: New file.

2011-05-06  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.cp/psymtab-parameter.cc: New file.
	* gdb.cp/psymtab-parameter.exp: New file.

2011-05-06  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix a race.
	* gdb.cp/static-print-quit.exp (print c): Split to ...
	(print c - <return>, print c - q <return>, print c - to quit):
	... these.  Make the testfile untested on gdb-7.1.

2011-5-05  Janis Johnson  <janisjo@codesourcery.com>

	* lib/gdb.exp (exec_target_file, exec_symbol_file,
	gdb_rename_execfile, gdb_touch_execfile): New.
	* gdb.base/reread.exp: Use new procs to handle multiple
	exec files.

2011-05-05  Yao Qi  <yao@codesourcery.com>

	* gdb.arch/arm-disp-step.S(test_ldr_literal): New.
	(test_adr_32bit, test_pop_pc): New.
	* gdb.arch/arm-disp-step.exp (test_ldr_literal): New.
	(test_adr_32bit, test_pop_pc): New.

2011-05-04  Joseph Myers  <joseph@codesourcery.com>

	* gdb.base/a2-run.exp (strongarm-*-coff): Don't handle target.
	* gdb.base/float.exp (xscale*-*-*, strongarm*-*-*): Don't handle
	targets.
	* gdb.base/long_long.exp (xscale*-*-*, strongarm*-*-*): Don't
	handle targets.

2011-05-04  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/completion.exp (complete help info wat): Rename to ...
	(complete 'help info wat'): ... here.
	Remove all `-re ".*' and `-re "^.*' redundant regexes.
	(complete 'p 'arg', complete (2) 'p 'arg'): Remove redundant backslash.

2011-05-04  Pedro Alves  <pedro@codesourcery.com>

	* gdb.base/completion.exp: Use gdb_test_multiple instead of
	gdb_test and explicit $gdb_prompt/timeout matches.

2011-05-04  Yao Qi  <yao@codesourcery.com>

	* gdb.arch/arm-disp-step.S: Fix usage of macros __thumb__
	and __thumb2__.

2011-05-03  Marek Polacek  <mpolacek@redhat.com>

	* gdb.base/pr10179.exp: Get rid of races using `delete_breakpoints'
	in place of `gdb_test "delete breakpoints"'.  This eliminates two
	testcases.

2011-05-02  Pedro Alves  <pedro@codesourcery.com>

	PR testsuite/12649
	Fix races.

	* gdb.base/completion.exp: Remove all sleep calls.  Remove
	unnecessary regexs.  Don't explicitly expect anything after the
	prompt.  Eat the prompt if necessary.

2011-05-02  Edjunior Machado  <emachado@linux.vnet.ibm.com>

	* gdb.opt/inline-cmds.exp: Adjust checks with "finish" command to
	accept to show the caller line again as well as the line after.

2011-04-29  Phil Muldoon  <pmuldoon@redhat.com>

	PR mi/12531

	* gdb.python/py-mi.exp: Add CPLUS_FAKE_CHILD tests and a C++
	compile target.
	* gdb.python/py-prettyprint.exp: Add C++ object for
	CPLUS_FAKE_CHILD test.

2011-04-28  Ulrich Weigand  <ulrich.weigand@linaro.org>

	* gdb.base/signest.exp: New file.
	* gdb.base/signest.c: Likewise.

2011-04-28  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* lib/mi-support.exp (mi_expect_stop) <stopped at wrong place>: Accept
	thread and breakpoint notifications.

2011-04-27  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/fortran-sym-case.c: New file.
	* gdb.base/fortran-sym-case.exp: New file.
	* gdb.dwarf2/dw2-case-insensitive-debug.S: New file.
	* gdb.dwarf2/dw2-case-insensitive.c: New file.
	* gdb.dwarf2/dw2-case-insensitive.exp: New file.

2011-04-27  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* lib/gdb.exp (gdb_test_multiple): Eror on newline in $message.
	* gdb.base/ifelse.exp: Give names to the "" tests as `if true else
	false #1', `if true else false #2' and `if true else false #3'.

2011-04-27  Ulrich Weigand  <ulrich.weigand@linaro.org>

	* gdb.base/annota1.exp: Accept breakpoints-invalid annotation
	while delivering signal.

2011-04-27  Vladimir Prus  <vladimir@codesourcery.com>

	MI breakpoint notifications.

	* testsuite/gdb.mi/mi-cli.exp: Adust.
        * testsuite/gdb.mi/mi2-cli.exp: Adust.
        * testsuite/gdb.mi/mi-watch.exp: Adust.
        * testsuite/gdb.mi/mi2-watch.exp: Adust.
        * testsuite/lib/mi-support.exp (mi_expect_stop): Accept breakpoint
        notifications.

2011-04-25  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/gdbindex-stabs-dwarf.c: New file.
	* gdb.base/gdbindex-stabs.c: New file.
	* gdb.base/gdbindex-stabs.exp: New file.

2011-04-25  Yao Qi  <yao@codesourcery.com>

	* gdb.dwarf2/dw2-double-set-die-type.S: Replace comment char `#'
	with /*...*/.
	* gdb.dwarf2/dw2-modula2-self-type.S: Likewise.

2011-04-24  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.python/py-value.exp (test_objfiles): Name the first test
	`py-value in file.filename'.

2011-04-24  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/solib-disc.exp: Set gdbserver_reconnect_p.
	* lib/gdb.exp (gdb_init): Clear gdbserver_reconnect_p.
	* lib/gdbserver-support.exp (gdbserver_start): Add `--once' if
	!gdbserver_reconnect_p..
	(gdbserver_reconnect): Call error if !gdbserver_reconnect_p..

2011-04-20  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.cp/cpcompletion.exp (complete class methods)
	(complete class methods beginning with F): Move them above runto.  New
	comment about the runto delimiter.

2011-04-20  Pedro Alves  <pedro@codesourcery.com>

	* gdb.base/maint.exp: Test that "maint print registers" works
	without a running program.

2011-04-20  Marek Polacek  <mpolacek@redhat.com>

	* gdb.base/setshow.exp: Fix racy tests.
	($old_gdb_prompt): New variable.

2011-04-19  Tom Tromey  <tromey@redhat.com>

	* gdb.mi/mi-nsmoribund.exp:
	* gdb.hp/gdb.objdbg/objdbg01.exp:
	* gdb.base/structs.exp (test_struct_returns):
	* gdb.base/call-sc.exp (test_scalar_returns):
	* gdb.base/bigcore.exp: Remove duplicate words.

2011-04-17  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/break-interp-lib.c (v, vptr): New variables.
	* gdb.base/break-interp.exp (test_attach): New comment.

2011-04-17  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.threads/gcore-thread.exp ($core0file): New variable.
	(clear __stack_user.next, clear stack_used.next)
	(save a zeroed-threads corefile): New test.
	Call core_load for $core0file.
	(zeroed-threads cannot be listed): New test.

2011-04-17  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.threads/gcore-thread.exp ($testfile): Match it the .exp
	filename.
	($srcfile): Preserve the original value.
	($testfile): Match it the .exp filename.
	($corefile): New variable.  Substitute it around.
	Use clean_restart.
	($prev_timeout): Remove.
	(load_core): Move core loading into this proc.
	Fix restore of $timeout if load_core fails.

2011-04-17  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/eu-strip-infcall.c: New file.
	* gdb.base/eu-strip-infcall.exp: New file.

2011-04-17  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/callfuncs.c (Lcallfunc, callfunc): New functions.
	* gdb.base/callfuncs.exp (print callfunc (Lcallfunc, 5)): New test.

2011-04-17  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix Python access to inlined frames.
	* gdb.python/py-frame-inline.c: New file.
	* gdb.python/py-frame-inline.exp: New file.

2011-04-13  Edjunior Machado  <emachado@linux.vnet.ibm.com>

	* gdb.base/gdb1090.exp: Change breakpoint location to read the
	content of 's24' correctly (avoiding "optimized out").
	* gdb.base/gdb1090.c: Add comment in order to set breakpoint.

2011-04-13  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* lib/gdb.exp (gdb_breakpoint): New case for a GDB internal error.

2011-04-13  Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* gdb.base/watchpoint.exp (test_inaccessible_watchpoint): Don't
	expect a colon in watch -location output.

2011-04-13  Marek Polacek  <mpolacek@redhat.com>

	* gdb.base/commands.exp (redefine_backtrace_test): Fix race.
	New testcase `expect response to define backtrace'.  Also remove
	redundant `default' block.

2011-04-11  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.python/py-prettyprint.c (struct hint_error): New.
	(main): New variable hint_error.
	* gdb.python/py-prettyprint.exp (run_lang_tests): New testcase
	"print hint_error".
	* gdb.python/py-prettyprint.py (class pp_hint_error): New.
	(register_pretty_printers): Register it.

2011-04-04  Tom Tromey  <tromey@redhat.com>

	* gdb.cp/maint.exp (test_help): Update.
	(test_namespace): Likewise.

2011-04-01  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/arrayptr/foo.adb: Add access to constrained array.
	* gdb.ada/arrayptr.exp: Add new tests.

2011-04-01  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/mi_catch_ex: New testcase.

2011-04-01  Pedro Alves  <pedro@codesourcery.com>

	* gdb.cp/cpexprs.exp (Overloaded methods): No longer try the
	base::overload(void) method without specifying "const".

2011-04-01  Ulrich Weigand  <ulrich.weigand@linaro.org>

	* gdb.arch/thumb-singlestep.S: New file.
	* gdb.arch/thumb-singlestep.exp: Likewise.

2011-03-31  Tom Tromey  <tromey@redhat.com>

	* gdb.python/py-prettyprint.py (exception_flag): New global.
	(NoStringContainerPrinter._iterator.next): Check it.
	* gdb.python/py-prettyprint.c (main): New variable nstype2.
	* gdb.python/py-mi.exp: Set exception_flag and do more tests.

2011-03-29  Tom Tromey  <tromey@redhat.com>

	* gdb.cp/anon-struct.cc: New file.
	* gdb.cp/anon-struct.exp: New file.

2011-03-28  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Test STT_GNU_IFUNC support.
	* gdb.base/gnu-ifunc-lib.c: New file.
	* gdb.base/gnu-ifunc.c: New file.
	* gdb.base/gnu-ifunc.exp: New file.

2011-03-28  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Support a ring of related breakpoints.
	* gdb.base/watchpoint-delete.c: New file.
	* gdb.base/watchpoint-delete.exp: New file.

2011-03-28  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.ada/arrayparam.exp (print first after function call): Use
	explicit package name.  Add a comment
	(print lasta after function call): Rename ...
	(print last after function call): ... it and use explicit package
	name.
	(print length after function call): Use explicit package name.
	* gdb.ada/str_ref_cmp.exp (operator = works for strings): New test.
	* gdb.ada/sym_print_name.exp: Change `i' to `integervar'.
	(multiple matches for symbol i): Rename ...
	(multiple matches for symbol integervar): ... it.
	* gdb.ada/sym_print_name/foo.adb (Foo): Change `I' to `IntegerVar'.
	* gdb.ada/sym_print_name/pck.ads (Pck): Likewise.

2011-03-25  Andrew Burgess  <aburgess@broadcom.com>

	* lib/gdb.exp (default_gdb_start,gdb_init): Clear the GREP_OPTIONS
	environment variable to make grep output more predictable. Move
	all the environment setup into gdb_init so it's done once per test
	case rather than each time we start gdb.

2011-03-24  Tom Tromey  <tromey@redhat.com>

	* gdb.base/label.exp: Use `main:there' linespec.  Add re-running
	test.

2011-03-22  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.dwarf2/dw2-entry-value-main.c: New file.
	* gdb.dwarf2/dw2-entry-value.S: New file.
	* gdb.dwarf2/dw2-entry-value.exp: New file.

2011-03-22  Phil Muldoon  <pmuldoon@redhat.com>

        PR python/12183

	* gdb.python/py-function.exp: Add GdbError tests.

2011-03-18  Pedro Alves  <pedro@codesourcery.com>

	* gdb.trace/unavailable.cc (args_test_func, local_test_func)
	(reglocal_test_func, statlocal_test_func): New functions.
	(globals_test_func): Call new functions.
	* gdb.trace/unavailable.exp (gdb_collect_args_test)
	(gdb_collect_locals_test): New procedure.
	(gdb_trace_collection_test): Call new procedures.

2011-03-18  Pedro Alves  <pedro@codesourcery.com>

	* gdb.trace/unavailable.exp (fpreg, spreg, pcreg): Define.
	(test_register, test_register_unavailable): New procedures.
	(gdb_unavailable_registers_test): New procedure.
	(gdb_trace_collection_test): Call it.

2011-03-18  Phil Muldoon  <pmuldoon@redhat.com>

        PR python/12149

	* gdb.python/python.exp: Add gdb.write tests.

2010-03-17  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.python/Makefile.in: Add py-objfile.
	* gdb.python/py-objfile.exp: New file.
	* gdb.python/py-objfile.c: New file.
	* gdb.python/py-block.exp: Add is_valid tests.
	* gdb.python/py-inferior.exp: Ditto.
	* gdb.python/py-infthread.exp: Ditto.
	* gdb.python/py-symbol.exp: Ditto.
	* gdb.python/py-symtab.exp: Ditto.

2011-03-16  Keith Seitz  <keiths@redhat.com>

	PR c++/12273
	* gdb.cp/cmpd-minsyms.exp: New test.
	* gdb.cp/cmpd-minsyms.cc: New file.

	PR c++/11734
	* gdb.cp/ovsrch.exp: New test.
	* gdb.cp/ovsrch.h: New file.
	* gdb.cp/ovsrch1.cc: New file.
	* gdb.cp/ovsrch2.cc: New file.
	* gdb.cp/ovsrch3.cc: New file.
	* gdb.cp/ovsrch4.cc: New file.

2011-03-16  Paul Pluzhnikov  <ppluzhnikov@google.com>

	PR gdb/12528
	* gdb.base/Makefile.in: Adjust EXECUTABLES.
	* gdb.base/break-on-linker-gcd-function.exp: New test.
	* gdb.base/break-on-linker-gcd-function.cc: New file.

2011-03-15  Andreas Tobler  <andreast@fgznet.ch>

	* gdb.base/jit-main.c: Define ElfW for non glibc elf targets.

2011-03-15  Phil Muldoon  <pmuldoon@redhat.com>

	* lib/gdb.exp (gdb_unload): Add another termination case.

2011-03-15  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.dwarf2/dw2-empty-pc-range.S: New file.
	* gdb.dwarf2/dw2-empty-pc-range.exp: New file.
	* gdb.dwarf2/pr11465.S: New .text labels text_start and text_end.
	Provide a stub byte there.
	(DW_TAG_compile_unit): Set DW_AT_low_pc, DW_AT_high_pc and
	DW_AT_entry_pc.
	(dieb4, dieda): Set DW_AT_high_pc higher than DW_AT_low_pc.

2011-03-15  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdb.arch/altivec-abi.exp: Skip "generic" tests on 64-bit when
	using a GCC 4.1 or 4.2 compiler.  Add an additional test variant
	"generic ABI, auto".
	(altivec_abi_tests): Accept vectors returned by reference.

2010-03-14  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.python/py-breakpoint.exp: Add Python stop operations tests.

2011-03-13  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdb.python/py-section-script.exp: Skip test if no Python support.

2011-03-12  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdb.base/solib-weak.exp: Allow "." prefix for ppc64.

2011-03-10  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.python/py-parameter.exp: Update tests to the new Python
	parameter API. Add "no documentation" test.  Add deprecated API
	backward compatibility test.

2011-03-09  Tom Tromey  <tromey@redhat.com>

	* gdb.ada/catch_ex.exp: Use explicit gdb_test rather than
	gdb_continue_to_end.

2011-03-09  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/memattr.exp: Adjust regexps to accept spaces as well as
	tabs.

2011-03-09  Tom Tromey  <tromey@redhat.com>

	* lib/gdb.exp (inferior_exited_re): Match. leading `['.  Wrap in
	parentheses.
	(gdb_continue_to_end): Add "allow_extra" parameter.  Use
	$command.
	* gdb.threads/thread-unwindonsignal.exp: Pass "allow_extra"
	argument to gdb_continue_to_end.
	* gdb.threads/interrupted-hand-call.exp: Pass "allow_extra"
	argument to gdb_continue_to_end.
	* gdb.cp/annota3.exp: Fix regex.
	* gdb.cp/annota2.exp: Fix regex.
	* gdb.base/shlib-call.exp: Pass "allow_extra" argument to
	gdb_continue_to_end.
	* gdb.base/call-signal-resume.exp: Revert earlier patch.
	* gdb.ada/tasks.exp: Pass "allow_extra" argument to
	gdb_continue_to_end.

2011-03-08  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.server/ext-run.exp
	(load new file without any gdbserver inferior): New test.

2011-03-07  Tom Tromey  <tromey@redhat.com>

	* Makefile.in (TAGS): Rewrite.

2011-03-07  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.trace/report.exp (12.1: trace report #1): New match for the
	initial commands echo.  New match for `Found trace'.  Anchor all the
	other matches.  Anchor and match for `No trace frame found' the final
	match.

2011-03-07  Tom Tromey  <tromey@redhat.com>

	* Makefile.in (TAGS): New target.

2011-03-07  Tom Tromey  <tromey@redhat.com>

	* lib/opencl.exp (skip_opencl_tests): Update for exit message
	change.
	* lib/mi-support.exp (mi_gdb_test): Update for exit message
	change.
	* lib/gdb.exp (gdb_test_multiple): Update comment.  Update for
	exit message change.
	(skip_altivec_tests): Update for exit message change.
	(skip_vsx_tests): Likewise.
	(gdb_continue_to_end): Likewise.  Add 'command' argument.
	* lib/cell.exp (skip_cell_tests): Update for exit message change.
	* gdb.threads/tls.exp: Update for exit message change.
	* gdb.threads/thread-unwindonsignal.exp: Use
	gdb_continue_to_end.
	* gdb.threads/step.exp (step_it): Update for exit message change.
	(continue_all): Likewise.
	* gdb.threads/print-threads.exp (test_all_threads): Update for
	exit message change.
	* gdb.threads/interrupted-hand-call.exp: Use
	gdb_continue_to_end.
	* gdb.threads/execl.exp: Use gdb_continue_to_end.
	* gdb.python/py-prettyprint.exp (run_lang_tests): Use
	gdb_continue_to_end.
	* gdb.hp/gdb.objdbg/objdbg02.exp: Use gdb_continue_to_end.
	* gdb.hp/gdb.objdbg/objdbg01.exp: Use gdb_continue_to_end.
	* gdb.hp/gdb.defects/solib-d.exp: Update for exit message change.
	* gdb.cp/method.exp: Update for exit message change.
	* gdb.cp/mb-templates.exp: Update for exit message change.
	* gdb.cp/mb-inline.exp: Use gdb_continue_to_end.
	* gdb.cp/annota3.exp: Update for exit message change.
	* gdb.cp/annota2.exp: Update for exit message change.
	* gdb.cell/fork.exp: Use gdb_continue_to_end.
	* gdb.base/term.exp: Update for exit message change.
	* gdb.base/step-test.exp (test_i): Update for exit message change.
	* gdb.base/sigstep.exp (advance): Update for exit message change.
	(advancei): Likewise.
	* gdb.base/siginfo.exp: Update for exit message change.
	* gdb.base/shlib-call.exp: Use gdb_continue_to_end.
	* gdb.base/reread.exp: Use gdb_continue_to_end.
	* gdb.base/langs.exp: Use gdb_continue_to_end.
	* gdb.base/interrupt.exp: Update for exit message change.
	* gdb.base/gdb1555.exp: Update for exit message change.
	* gdb.base/exe-lock.exp: Use gdb_continue_to_end.
	* gdb.base/ending-run.exp: Update for exit message change.
	* gdb.base/chng-syms.exp: Update for exit message change.
	* gdb.base/checkpoint.exp: Update for exit message change.
	* gdb.base/catch-syscall.exp (check_for_program_end): Use
	gdb_continue_to_end.
	(test_catch_syscall_with_wrong_args): Likewise.
	* gdb.base/call-signal-resume.exp: Use gdb_continue_to_end.
	* gdb.base/break-interp.exp (test_ld): Update for exit message
	change.
	* gdb.base/bang.exp: Update for exit message change.
	* gdb.base/attach.exp (do_attach_tests): Use gdb_continue_to_end.
	(do_call_attach_tests): Likewise.
	* gdb.base/a2-run.exp: Update for exit message change.
	* gdb.arch/ppc-dfp.exp: Update for exit message change.
	* gdb.ada/tasks.exp: Use gdb_continue_to_end.
	* gdb.ada/catch_ex.exp: Use gdb_continue_to_end.

2011-03-05  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/help.exp (help thread find): Fix one forgotten quote.

2011-03-03  Tom Tromey  <tromey@redhat.com>

	* gdb.hp/gdb.aCC/Makefile.in (Makefile): Remove.
	* gdb.hp/gdb.aCC/configure (Makefile): Remove.
	* gdb.hp/gdb.aCC/configure.ac: Remove.
	* gdb.hp/gdb.base-hp/Makefile.in (Makefile): Remove.
	* gdb.hp/gdb.base-hp/configure (Makefile): Remove.
	* gdb.hp/gdb.base-hp/configure.ac: Remove.
	* gdb.hp/gdb.compat/Makefile.in (Makefile): Remove.
	* gdb.hp/gdb.compat/configure (Makefile): Remove.
	* gdb.hp/gdb.compat/configure.ac: Remove.
	* gdb.hp/gdb.defects/Makefile.in (Makefile): Remove.
	* gdb.hp/gdb.defects/configure (Makefile): Remove.
	* gdb.hp/gdb.defects/configure.ac: Remove.
	* gdb.hp/gdb.objdbg/Makefile.in (Makefile): Remove.
	* gdb.hp/gdb.objdbg/configure (Makefile): Remove.
	* gdb.hp/gdb.objdbg/configure.ac: Remove.
	* gdb.hp/configure.ac: Remove.
	* gdb.hp/configure: Remove.
	* gdb.hp/Makefile.in (SUBDIRS): No longer a configure
	substitution.
	(Makefile): Remove rule.
	* gdb.cell/configure.ac: Remove.
	* gdb.cell/configure: Remove.
	* gdb.stabs/Makefile.in (Makefile): Remove.
	(distclean): Don't remove config.status or config.log.
	* gdb.stabs/configure (Makefile): Remove.
	* gdb.stabs/configure.ac: Remove.
	* configure: Rebuild.
	* configure.ac: Don't AC_CONFIG_SUBDIRS in gdb.hp or gdb.stabs.
	Remove stabs- and cell-specific logic.  Test for existence of
	../gdbtk before configuring gdb.gdbtk.  Build Makefiles in gdb.hp
	subdirectories, gdb.cell, and and gdb.stabs.
	* Makefile.in (ALL_SUBDIRS): Add gdb.hp and gdb.stabs.

2011-03-03  Joel Brobecker  <brobecker@adacore.com>

	* gdb.python/py-inferior.exp: Avoid searching pattern beyond
	end of buffer.

2011-03-02  Joel Brobecker  <brobecker@adacore.com>

	* gdb.python/py-inferior.exp: Use gdb_test_no_output instead of
	gdb_test when running a test where we expected no output back.

2011-02-28  Michael Snyder  <msnyder@vmware.com>

	* gdb.cp/overload.cc: Change initializer value to integer.

2011-02-27  Michael Snyder  <msnyder@vmware.com>

	* gdb.multi/base.exp: Add test for remove-inferiors.

2011-02-26  Joel Brobecker  <brobecker@adacore.com>

	* gdb.python/py-frame.exp: Simplify the initialization phase
	using prepare_for_testing.

2011-02-25  Michael Snyder  <msnyder@vmware.com>

	* gdb.multi/base.exp: Add tests for info inferiors with args.

2011-02-25  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.dwarf2/dw2-ranges.S: Rename to ...
	* gdb.dwarf2/dw2-ranges.c: ... here, convert it to C.
	* gdb.dwarf2/dw2-ranges.exp: Skip the testcase on !$gcc_compiled.
	Rename srcfile, srcfile2 and srcfile3, new asmfile, asmfile2 and
	asmfile3.  Comment the STABS (#3) file compilation.  Compile
	everything through assembler.  Provide KFAIL for symtab/12497.
	* gdb.dwarf2/dw2-ranges2.S: Rename to ...
	* gdb.dwarf2/dw2-ranges2.c: ... here, convert it to C.
	* gdb.dwarf2/dw2-ranges3.S: Rename to ...
	* gdb.dwarf2/dw2-ranges3.c: ... here, convert it to C.

2011-02-24  Michael Snyder  <msnyder@vmware.com>

	* gdb.base/break.exp: Add tests for delete breakpoints using
	convenience variables and value history references.

2011-02-24  Michael Snyder  <msnyder@vmware.com>

	* gdb.base/break.exp: Remove debugging 'printf' accidentally
	left behind in previous check-in.

2011-02-23  Michael Snyder  <msnyder@vmware.com>

	* gdb.base/break.exp: Add tests for "info break" with arguments.
	* gdb.trace/infotrace.exp: Update patterns for error and help.
	* gdb.base/completion.exp: Update pattern.
	* gdb.base/ena-dis-br.exp: Update pattern.
	* gdb.base/help.exp: Update patterns.

2011-02-23  Michael Snyder  <msnyder@vmware.com>

	* gdb.base/memattr.exp: New test.
	* gdb.base/memattr.c: Test load for memattr.exp.

2011-02-22  Doug Evans  <dje@google.com>

	* gdb.python/py-symbol.exp: Test lookup_global_symbol.

2011-02-22  Michael Snyder  <msnyder@vmware.com>

	* Makefile.in: Make more clean.
	* gdb.ada/Makefile.in: Ditto.
	* gdb.arch/Makefile.in: Ditto.
	* gdb.asm/Makefile.in: Ditto.
	* gdb.base/Makefile.in: Ditto.
	* gdb.cp/Makefile.in: Ditto.
	* gdb.dwarf2/Makefile.in: Ditto.
	* gdb.java/Makefile.in: Ditto.
	* gdb.mi/Makefile.in: Ditto.
	* gdb.modula2/Makefile.in: Ditto.
	* gdb.python/Makefile.in: Ditto.
	* gdb.server/Makefile.in: Ditto.
	* gdb.stabs/Makefile.in: Ditto.
	* gdb.threads/Makefile.in: Ditto.
	* gdb.trace/Makefile.in: Ditto.

2011-02-22  Michael Snyder  <msnyder@vmware.com>

	* gdb.threads/thread-find.exp: Add tests for bad input to
	info threads.

2011-02-22  Joel Brobecker  <brobecker@adacore.com>

	* gdb.python/py-breakpoint.exp: Fix the expected output of
	one of the "maint info breakpoints" tests to accept the output
	generated on platforms that do not have hardware watchpoints.

2011-02-22  Joel Brobecker  <brobecker@adacore.com>

	* gdb.python/py-breakpoint.exp: Remove unnecessary call to
	clean_restart.  Be a little stricter in the expected output
	for one of the tests.  Fix a typo in one of the comments.

2011-02-22  Joel Brobecker  <brobecker@adacore.com>

	* gdb.python/py-block.exp: Simplify using prepare_for_testing.
	Delete variable binfile, no longer use.  Add or modify test
	comments to make them unique.

2011-02-21  Michael Snyder  <msnyder@vmware.com>

	* Makefile.in: Update for make clean.
	* gdb.ada/Makefile.in: Ditto.
	* gdb.arch/Makefile.in: Ditto.
	* gdb.asm/Makefile.in: Ditto.
	* gdb.base/Makefile.in: Ditto.
	* gdb.cp/Makefile.in: Ditto.
	* gdb.dwarf2/Makefile.in: Ditto.
	* gdb.java/Makefile.in: Ditto.
	* gdb.mi/Makefile.in: Ditto.
	* gdb.modula2/Makefile.in: Ditto.
	* gdb.python/Makefile.in: Ditto.
	* gdb.server/Makefile.in: Ditto.
	* gdb.stabs/Makefile.in: Ditto.
	* gdb.threads/Makefile.in: Ditto.
	* gdb.trace/Makefile.in: Ditto.

2011-02-21  Michael Snyder  <msnyder@vmware.com>

	* gdb.threads/thread-find.exp: Update patterns for changes in
	output of "info threads" command.

2011-02-21  Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
	    Ulrich Weigand  <uweigand@de.ibm.com>

	* lib/gdb.exp (skip_hw_breakpoint_tests): Add arm*-*-* target.
	(skip_hw_watchpoint_tests): Likewise.
	(skip_hw_watchpoint_multi_tests): Likewise.

2011-02-21  Ulrich Weigand  <uweigand@de.ibm.com>

	* lib/gdb.exp (skip_hw_breakpoint_tests): New procedure.
	(skip_hw_watchpoint_tests): Likewise.
	(skip_hw_watchpoint_multi_tests): Likewise.
	(skip_hw_watchpoint_access_tests): Likewise.

	* gdb.base/hbreak.exp: Use appropriate skip_hw_..._tests checks.
	* gdb.base/pr11022.exp: Likewise.
	* gdb.base/watch-read.exp: Likewise.
	* gdb.base/watch_thread_num.exp: Likewise.
	* gdb.base/watchpoint-hw-hit-once.exp: Likewise.
	* gdb.base/watchpoint-hw.exp: Likewise.
	* gdb.base/watchpoint.exp: Likewise.
	* gdb.threads/local-watch-wrong-thread.exp: Likewise.
	* gdb.threads/watchthreads-reorder.exp: Likewise.
	* gdb.threads/watchthreads.exp: Likewise.
	* gdb.threads/watchthreads2.exp: Likewise.

2011-02-21  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/packed_array.exp: Add xfail for "print u_var" if
	the debugger is unable to find the array bounds.

2011-02-18  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.cp/typedef-operator.exp: New file.
	* gdb.cp/typedef-operator.cc: New file.

2011-02-17  Michael Snyder  <msnyder@vmware.com>

	* gdb.threads/thread-find.exp: Fix regular expressions.

2011-02-17  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/packed_array: Expand testcase to test printing of
	unconstrained packed array.

2011-02-17  Joel Brobecker  <brobecker@adacore.com>

	* gdb.dwarf2/dw2-ranges.exp: Simplify using clean_restart.

2011-02-16  Pedro Alves  <pedro@codesourcery.com>

	* gdb.trace/collection.c (globalarr3): New global.
	(main): Initialize it before collecting, and and clear it
	afterwards.
	* gdb.trace/collection.exp (gdb_collect_globals_test): Test
	collecting with '{type} addr', where the addr expression is not an
	rvalue.

2011-02-16  Ken Werner  <ken.werner@de.ibm.com>

	* gdb.opencl/datatypes.exp: Allow "false" when printing the content of
	a bool variable. Expect correct OpenCL names for vector types. Use the
	uc3 variable name instead of referring to the uchar3 built-in type.
	Escape the asterisk at the half pointer test.

2011-02-16  Pedro Alves  <pedro@codesourcery.com>

	* gdb.trace/collection.c (globalarr2): New global.
	(main): Initialize it before collecting, and and clear it
	afterwards.
	* gdb.trace/collection.exp (gdb_collect_globals_test): Test
	collecting overlapping memory ranges.

2011-02-15  Michael Snyder  <msnyder@vmware.com>

	* gdb.base/default.exp: Add tests for thread commands.
	* gdb.base/help.exp: Add tests for thread commands.
	* gdb.threads/thread-find.exp: New test for thread find command.

2011-02-15  Ken Werner  <ken.werner@de.ibm.com>

	* gdb.opencl/datatypes.exp: Expect the size of a bool to be one byte.

2011-02-15  Yao Qi  <yao@codesourcery.com>

	PR tdep/12352
	* gdb.arch/arm-disp-step.S : New test for str instruction.
	* gdb.arch/arm-disp-step.exp : Likewise.

2011-02-15  Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* gdb.arch/vsx-regs.exp: Add "vector_register1_vr" and
	"vector_register2_vr" test strings.  Test the extended floating
	point registers (F32~F63).
	* lib/gdb.exp (skip_vsx_tests): Update compile flags for the
	IBM XL C compiler.  Make the test program use a register provided
	by the compiler for the lxvd2x instruction.

2011-02-14  Pedro Alves  <pedro@codesourcery.com>

	* gdb.trace/unavailable.cc (class Base, class Middle, class
	Derived): New types.
	(derived_unavail, derived_partial, derived_whole): New globals.
	(virtual_partial): New global.
	(virtualp): Point at virtual_partial.
	* gdb.trace/unavailable.exp (gdb_collect_globals_test): Add tests
	related to unavailable vptr.

2011-02-14  Pedro Alves  <pedro@codesourcery.com>

	* gdb.trace/unavailable.cc (a, b, c): New globals.
	(main): Set and clear them.
	* gdb.trace/unavailable.exp (gdb_collect_globals_test): Collect
	`a' and `c', and check that `b' isn't collected, although `a' and
	`c' are.

2011-02-14  Pedro Alves  <pedro@codesourcery.com>

	* gdb.trace/unavailable.cc (struct Virtual): New.
	(virtualp): New global pointer.
	* gdb.trace/unavailable.exp (gdb_collect_globals_test): Test
	printing a pointer to an object whose type has a vtable, with
	print object on.

2011-02-14  Pedro Alves  <pedro@codesourcery.com>

	* gdb.trace/unavailable.exp (gdb_collect_globals_test): Test that
	value repeat handles unavailableness.

2011-02-14  Pedro Alves  <pedro@codesourcery.com>

	* gdb.trace/unavailable.exp (gdb_collect_globals_test): Add new
	tests for building arrays from unavailable values, subscripting
	non-memory rvalue unvailable arrays, and accessing fields or
	baseclasses of non-lazy unavailable values,
	* gdb.trace/unavailable.cc (small_struct, small_struct_b): New
	struct types.
	(g_smallstruct, g_smallstruct_b): New globals.

2011-02-14  Pedro Alves  <pedro@codesourcery.com>

	* gdb.trace/unavailable.cc, gdb.trace/unavailable.exp: New files.

2011-02-13  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix const/volatile qualifiers of C++ types, PR c++/12328.
	* gdb.cp/overload-const.exp: New file.
	* gdb.cp/overload-const.cc: New file.

2011-02-08  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdb.opencl/callfuncs.cl: New file.
	* gdb.opencl/callfuncs.exp: New test.
	* gdb.opencl/Makefile.in (EXECUTABLES): Add callfuncs.

2011-02-08  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdb.arch/altivec-abi.c (vec_func): Make use of intv_on_stack_f
	when computing result.
	* gdb.arch/altivec-abi.exp: Update expected results.

2011-02-07  Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* gdb.base/break-interp.exp: Remove ${objdir} from test messages.
	* gdb.base/jit.exp: Likewise.
	* gdb.base/pie-execl.exp: Likewise.
	* gdb.base/solib-nodir.exp: Likewise.
	* gdb.base/solib-overlap.exp: Likewise.

2011-02-07  Pedro Alves  <pedro@codesourcery.com>

	* gdb.trace/collection.c (global_pieces): New.
	* gdb.trace/collection.exp (gdb_collect_global_in_pieces_test):
	New procedure.
	(gdb_trace_collection_test): Call it.

2011-02-04  Sami Wagiaalla  <swagiaal@redhat.com>

	* gdb.python/py-evthreads.c: New file.
	* gdb.python/py-evthreads.exp: New file.
	* gdb.python/py-events.py: New file.
	* gdb.python/py-events.exp: New file.
	* gdb.python/py-events.c: New file.

2011-02-04 David Daney <ddaney@caviumnetworks.com>

	* gdb.base/catch-syscall.exp: Enable for mips*-linux*.

2011-02-03  Andrew Burgess  <aburgess@broadcom.com>

	* gdb.base/disasm-end-cu-1.c, gdb.base/disasm-end-cu-2.c,
	gdb.base/disasm-end-cu.exp: New test for disassembling over the
	boundary between two compilation units.

2011-02-02  Pedro Alves  <pedro@codesourcery.com>

	* gdb.cp/virtbase.cc (VirtualBase, VirtualMiddleA, VirtualMiddleB)
	(Virtual): New structs.
	(virtual_o, virtual_middle_b): New globals.
	* gdb.cp/virtbase.exp: New tests.

2011-01-31  Paul Pluzhnikov  <ppluzhnikov@google.com>

	* gdb.base/jit.exp: New file.
	* gdb.base/jit-main.c: New file.
	* gdb.base/jit-solib.c: New file.

2011-01-31  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdb.opencl/convs_casts.exp: Use tbreak instead of break to
	proceed to initial kernel entry point.
	* gdb.opencl/datatypes.exp: Likewise.
	* gdb.opencl/operators.exp: Likewise.
	* gdb.opencl/vec_comps.exp: Likewise.

2011-01-31  Sami Wagiaalla  <swagiaal@redhat.com>

	* gdb.cp/nsnested.cc: New.
	* gdb.cp/nsnested.exp: New.
	* gdb.cp/nsnoimports.exp: New.
	* gdb.cp/nsnoimports.cc: New.

2011-01-31  Joel Brobecker  <brobecker@adacore.com>

	* gdb.base/interact.exp: Add extra tests that verify that
	the value of the interactive-mode setting does not change
	after the script is sourced.

2011-01-29  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.cp/noparam.exp: New file.
	* gdb.cp/noparam.cc: New file.

2011-01-28  Pedro Alves  <pedro@codesourcery.com>

	* gdb.trace/tfile.exp: Test that with no traceframe selected,
	there's no stack or registers.

2011-01-26  Tom Tromey  <tromey@redhat.com>

	* gdb.python/py-prettyprint.exp (run_lang_tests): Ensure no blank
	space before string output.  Add test for "set print pretty off"
	case.

2011-01-25  Pedro Alves  <pedro@codesourcery.com>

	* gdb.base/frame-args.exp: Adjust.
	* gdb.dwarf2/dw2-noloc.exp: Adjust.
	* gdb.dwarf2/dw2-inline-param.exp: Adjust.
	* gdb.dwarf2/pieces.exp: Adjust.
	* gdb.opt/clobbered-registers-O2.exp: Adjust.
	* gdb.opt/inline-locals.exp: Adjust.
	* gdb.threads/fork-child-threads.exp: Adjust.

2011-01-25  Ken Werner  <ken.werner@de.ibm.com>

	* gdb.opencl/convs_casts.cl: Move program scope variables into the
	OpenCL kernel function. Add a comment as marker. Add address space
	qualifiers for the remaining program scope variables.
	* gdb.opencl/datatypes.cl: Likewise.
	* gdb.opencl/operators.cl: Likewise.
	* gdb.opencl/vec_comps.cl: Likewise.
	* gdb.opencl/convs_casts.exp: Replace gdb_test_multiple by gdb_test.
	Add breakpoint at the marker comment.
	* gdb.opencl/datatypes.exp: Likewise.
	* gdb.opencl/operators.exp: Likewise.
	* gdb.opencl/vec_comps.exp: Likewise.

2011-01-24  Pedro Alves  <pedro@codesourcery.com>

	* gdb.base/printcmds.c (some_struct): New struct and instance.
	* gdb.base/printcmds.exp (test_print_repeats_embedded_array): New
	procedure.
	<global scope>: Call it.

2011-01-21  Ken Werner  <ken.werner@de.ibm.com>

	* lib/opencl.exp (skip_opencl_tests): Add missing compile_flags
	argument to the gdb_compile_opencl_hostapp call.

2011-01-19  Yao Qi  <yao@codesourcery.com>

	* lib/dwarf.exp (dwarf2_support): Change supported targets to a
	positve list.

2011-01-19  Yao Qi  <yao@codesourcery.com>

	* gdb.asm/asm-source.exp: Replace ARM target triplet with a
	canonical form.
	Remove "xscale-*-*"
	* gdb.xml/tdesc-regs.exp: Likewise.
	* gdb.python/py-section-script.exp: Replace ARM target triplet
	with canonical form.
	Match arm*-*-symbianelf*.
	* gdb.base/dup-sect.exp: Likewise.
	* lib/dwarf.exp: New.
	* gdb.dwarf2/callframecfa.exp: Check dwarf2 support by routine
	dwarf2_support.
	* gdb.dwarf2/dup-psym.exp: Likewise.
	* gdb.dwarf2/dw2-ada-ffffffff.exp: Likewise.
	* gdb.dwarf2/dw2-anonymous-func.exp: Likewise.
	* gdb.dwarf2/dw2-bad-parameter-type.exp: Likewise.
	* gdb.dwarf2/dw2-basic.exp: Likewise.
	* gdb.dwarf2/dw2-compressed.exp: Likewise.
	* gdb.dwarf2/dw2-const.exp: Likewise.
	* gdb.dwarf2/dw2-cp-infcall-ref-static.exp: Likewise.
	* gdb.dwarf2/dw2-cu-size.exp: Likewise.
	* gdb.dwarf2/dw2-double-set-die-type.exp: Likewise.
	* gdb.dwarf2/dw2-empty-namespace.exp: Likewise.
	* gdb.dwarf2/dw2-filename.exp: Likewise.
	* gdb.dwarf2/dw2-inheritance.exp: Likewise.
	* gdb.dwarf2/dw2-inline-param.exp: Likewise.
	* gdb.dwarf2/dw2-intercu.exp: Likewise.
	* gdb.dwarf2/dw2-intermix.exp: Likewise.
	* gdb.dwarf2/dw2-modula2-self-type.exp: Likewise.
	* gdb.dwarf2/dw2-noloc.exp: Likewise.
	* gdb.dwarf2/dw2-op-call.exp: Likewise.
	* gdb.dwarf2/dw2-producer.exp: Likewise.
	* gdb.dwarf2/dw2-ranges.exp: Likewise.
	* gdb.dwarf2/dw2-ref-missing-frame.exp: Likewise.
	* gdb.dwarf2/dw2-stack-boundary.exp: Likewise.
	* gdb.dwarf2/dw2-strp.exp: Likewise.
	* gdb.dwarf2/dw2-unresolved.exp: Likewise.
	* gdb.dwarf2/implptr.exp: Likewise.
	* gdb.dwarf2/mac-fileno.exp: Likewise.
	* gdb.dwarf2/member-ptr-forwardref.exp: Likewise.
	* gdb.dwarf2/pieces.exp: Likewise.
	* gdb.dwarf2/pr11465.exp: Likewise.
	* gdb.dwarf2/valop.exp: Likewise.
	* gdb.dwarf2/watch-notconst.exp: Likewise.
	* gdb.mi/dw2-ref-missing-frame.exp: Likewise.

2011-01-19  Tom Tromey  <tromey@redhat.com>

	* gdb.python/py-infthread.exp: Add thread tests.

2011-01-14  Joel Brobecker  <brobecker@adacore.com>

	* gdb.base/wchar.c, gdb.base/wchar.exp: New testcases.

2011-01-14  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/widewide: New testcase.

2011-01-13  Joel Brobecker  <brobecker@adacore.com>

	* gdb.base/interact.exp: New testcase.

2011-01-12  Tom Tromey  <tromey@redhat.com>

	* gdb.mi/gdb2549.exp: Update for error message changes.
	* gdb.mi/mi-cli.exp: Likewise.
	* gdb.mi/mi-disassemble.exp: Likewise.
	* gdb.mi/mi-pthreads.exp: Likewise.
	* gdb.mi/mi-regs.exp: Likewise.
	* gdb.mi/mi-stack.exp: Likewise.
	* gdb.mi/mi-var-block.exp: Likewise.
	* gdb.mi/mi-var-cmd.exp: Likewise.
	* gdb.mi/mi2-cli.exp: Likewise.
	* gdb.mi/mi2-disassemble.exp: Likewise.
	* gdb.mi/mi2-pthreads.exp: Likewise.
	* gdb.mi/mi2-regs.exp: Likewise.
	* gdb.mi/mi2-stack.exp: Likewise.
	* gdb.mi/mi2-var-block.exp: Likewise.
	* gdb.mi/mi2-var-cmd.exp: Likewise.

2011-01-12  Andrew Burgess  <aburgess@broadcom.com>
	    Jan Kratochvil  <jan.kratochvil@redhat.com>

	PR fortran/11104 and DWARF unbound arrays detection.
	* gdb.fortran/multi-dim.exp: New file.
	* gdb.fortran/multi-dim.f90: New file.

2011-01-12  Andrew Burgess  <aburgess@broadcom.com>

	* gdb.mi/mi-disassemble.exp, gdb.mi/mi2-disassemble.exp: Update
	expected output to reflect changes in gdb/mi/mi-cmd-disas.c and
	add new tests for opcode dumping.

2011-01-11  Tom Tromey  <tromey@redhat.com>

	* gdb.python/py-infthread.exp: Load gdb-python.exp.

2010-01-11  Thiago Jung Bauermann  <bauerman@br.ibm.com>

	Convert hardware watchpoints to use breakpoint_ops.
	* gdb.base/foll-exec.exp: Adapt to new error string when the catchpoint
	type is not supported.
	* gdb.base/foll-fork.exp: Likewise.
	* gdb.base/foll-vfork.exp: Likewise.

2011-01-10  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.python/py-cmd.exp: Remove gdb_py_test_multiple function.
	Use load_lib gdb-python.exp.
	* gdb.python/python.exp: Ditto.
	* gdb.python/py-function.exp: Ditto.

2011-01-09  Andreas Schwab  <schwab@linux-m68k.org>

	* gdb.threads/tls.exp ("info address me"): Fix expected output.

2011-01-07  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* configure: Regenerate.

2011-01-06  Tom Tromey  <tromey@redhat.com>

	* gdb.python/py-frame.exp: Test gdb.newest_frame.

2011-01-06  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/array_bounds.exp, gdb.ada/array_return.exp,
	gdb.ada/array_subscript_addr.exp, gdb.ada/arrayidx.exp,
	gdb.ada/arrayparam.exp, gdb.ada/arrayptr.exp,
	gdb.ada/atomic_enum.exp, gdb.ada/call_pn.exp,
	gdb.ada/catch_ex.exp, gdb.ada/char_param.exp,
	gdb.ada/complete.exp, gdb.ada/exprs.exp, gdb.ada/fixed_cmp.exp,
	gdb.ada/fixed_points.exp, gdb.ada/formatted_ref.exp,
	gdb.ada/frame_args.exp, gdb.ada/fun_addr.exp,
	gdb.ada/fun_in_declare.exp, gdb.ada/funcall_param.exp,
	gdb.ada/homonym.exp, gdb.ada/int_deref.exp,
	gdb.ada/interface.exp, gdb.ada/lang_switch.exp,
	gdb.ada/mod_from_name.exp, gdb.ada/nested.exp,
	gdb.ada/null_array.exp, gdb.ada/null_record.exp,
	gdb.ada/packed_array.exp, gdb.ada/packed_tagged.exp,
	gdb.ada/print_chars.exp, gdb.ada/print_pc.exp,
	gdb.ada/ptype_field.exp, gdb.ada/ptype_tagged_param.exp,
	gdb.ada/rec_return.exp, gdb.ada/ref_param.exp,
	gdb.ada/ref_tick_size.exp, gdb.ada/start.exp,
	gdb.ada/str_ref_cmp.exp, gdb.ada/sym_print_name.exp,
	gdb.ada/taft_type.exp, gdb.ada/tagged.exp, gdb.ada/tasks.exp,
	gdb.ada/tick_last_segv.exp, gdb.ada/type_coercion.exp,
	gdb.ada/uninitialized_vars.exp,
	gdb.ada/variant_record_packed_array.exp, gdb.ada/watch_arg.exp:
	Simplify by using clean_restart.

2011-01-06  Joel Brobecker  <brobecker@adacore.com>

	Add marker to be used as anchor for inserting breakpoints.
	* gdb.ada/null_record/null_record.adb: Add "-- START" comment.
	* gdb.ada/start/dummy.adb, gdb.ada/uninitialized_vars/parse.adb:
	Likewise.

	Remove uses of gdb_start_cmd.
	* gdb.ada/null_record.exp: Remove use of gdb_start_cmd.
	* gdb.ada/print_pc.exp, gdb.ada/uninitialized_vars.exp: Ditto.

	Do not run testcase if testing with GDBserver.
	* gdb.ada/exec_changed.exp, gdb.ada/start.exp: Abort as untested
	if testing with GDBserver.

2011-01-06  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/complete/foo.adb, gdb.ada/complete/pck.adb,
	gdb.ada/complete/pck.ads, gdb.ada/print_chars/foo.adb: Add
	copyright header.

2011-01-05  Joel Brobecker  <brobecker@adacore.com>

	* testsuite/configure.ac, testsuite/gdb.arch/gdb1291.s,
	testsuite/gdb.arch/gdb1431.s, testsuite/gdb.fortran/array-element.f,
	testsuite/gdb.fortran/complex.f,
	testsuite/gdb.fortran/derived-type.f90,
	testsuite/gdb.fortran/library-module-lib.f90,
	testsuite/gdb.fortran/library-module-main.f90,
	testsuite/gdb.fortran/logical.f90, testsuite/gdb.fortran/module.f90,
	testsuite/gdb.fortran/subarray.f, testsuite/gdb.mi/array.f:
	Copyright year update.

2011-01-05  Joel Brobecker  <brobecker@adacore.com>

	* gdb.base/langs1.f: Add copyright header.

2011-01-03  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/morestack.exp: New file.
	* gdb.base/morestack.c: New file.

2011-01-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.ada/gnat_ada.gpr: Fix copyright comment line regression by 2011.

2010-12-29  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/arrayptr/foo.adb: Add new local variable Null_String.
	* gdb.ada/arrayptr.exp: Add test printing that new variable.

2010-12-29  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/lang_switch.exp: Correct expected parameter value.

2010-12-25  Andreas Schwab  <schwab@linux-m68k.org>

	* gdb.threads/tls.exp: Fix typo.

	* gdb.threads/thread-specific.exp (get_thread_list): Update.
	* gdb.threads/execl.exp: Update.

2010-12-23  Yao Qi  <yao@codesourcery.com>

	* gdb.arch/arm-disp-step.exp: New.
	* gdb.arch/arm-disp-step.S: New.

2010-12-21  Tom Tromey  <tromey@redhat.com>

	* gdb.threads/execl.exp: Update.
	* gdb.threads/linux-dp.exp: Update.
	* gdb.threads/manythreads.exp: Update.
	* gdb.threads/tls.exp: Update.

2010-12-15  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.cp/nextoverthrow.cc (dummy): Return int 0.
	(NextOverThrowDerivates) <resumebpt>: New.
	(resumebpt_test): New.
	(main): Call resumebpt_test.
	* gdb.cp/nextoverthrow.exp: New block for test of "resumebpt".

2010-12-12  Stan Shebs  <stan@codesourcery.com>

	* gdb.trace/tsv.exp: Test print command on trace state variables.

2010-12-09  Tom Tromey  <tromey@redhat.com>

	* gdb.base/interp.exp: Add regression test.

2010-12-09  Tom Tromey  <tromey@redhat.com>

	* gdb.java/jnpe.java: New file.
	* gdb.java/jnpe.exp: New file.
	* gdb.cp/nextoverthrow.exp: New file.
	* gdb.cp/nextoverthrow.cc: New file.

2010-12-07  Doug Evans  <dje@google.com>

	* gdb.base/catch-syscall.exp (do_syscall_tests): Remove setting
	of data-directory.
	* lib/gdb-python.exp (gdb_check_python_config): Delete, all callers
	updated.
	* lib/gdb.exp (INTERNAL_GDBFLAGS): Add -data-directory.

2010-11-29  Michael Snyder  <msnyder@vmware.com>

	* gdb.base/callfuncs.exp: Test for skip_float_tests.
	* gdb.base/call-sc.exp: Ditto.
	* gdb.base/finish.exp: Ditto.
	* gdb.base/return.exp: Ditto.
	* gdb.base/return2.exp: Ditto.

2010-11-30  Doug Evans  <dje@google.com>

	* lib/gdb.exp (gdb_test_sequence): Return result of gdb_expect_list.
	(gdb_expect_list): Fix spelling errors in comments.
	* gdb.arch/system-gcore.exp: Use gdb_test_sequence instead of
	send_gdb/gdb_expect_list where applicable.
	* gdb.base/call-ar-st.exp: Ditto.
	* gdb.base/funcargs.exp: Ditto.
	* gdb.base/gcore.exp: Ditto.
	* gdb.base/page.exp: Ditto.
	* gdb.base/sigaltstack.exp: Ditto.
	* gdb.base/siginfo.exp: Ditto.
	* gdb.base/sigstep.exp: Ditto.
	* gdb.base/trace-commands.exp: Ditto.

2010-11-29  Doug Evans  <dje@google.com>

	* gdb.python/py-pp-maint.exp: Change printer-name:subprinter-name to
	printer-name;subprinter-name.

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

	* gdb.dwarf2/implptr.exp: New file.
	* gdb.dwarf2/implptr.c: New file.
	* gdb.dwarf2/implptr.S: New file.

2010-11-29  Phil Muldoon  <pmuldoon@redhat.com>

	PR python/12199

	* gdb.python/py-breakpoint.exp: Test the delete method.

2010-11-28  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix step_resume_breakpoint unsaved during an infcall.
	* gdb.base/step-resume-infcall.exp: New file.
	* gdb.base/step-resume-infcall.c: New file.

2010-11-24  Edjunior Machado  <emachado@br.ibm.com>

	* gdb.asm/powerpc.inc: Use 'sys_exit' on gdbasm_exit0 macro.

2010-11-24  Edjunior Machado  <emachado@br.ibm.com>

	* gdb.asm/asm-source.exp: Add new target "powerpc64"; expect leading `.'
	on ppc64's symbols; "finish" and "return" commands must accept to
	show the caller line again as well as the line after.
	* gdb.asm/powerpc64.inc: New file.

2010-11-23  Doug Evans  <dje@google.com>

	* lib/gdb.exp (gdb_test_sequence): New function.
	(gdb_expect_list): Add verbose -log call for each pattern.
	* gdb.base/signals.exp (test_handle_all_print): Call it.
	Reduce timeout increment from 6 minutes to 1 minute.
	* gdb.server/ext-run.exp: Call it.

2010-11-23  Phil Muldoon  <pmuldoon@redhat.com>

	PR python/12212

	* gdb.python/python.exp: Check that selected_thread raises an
	error when no inferior is loaded.

2010-11-20  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.dwarf2/dw2-stack-boundary.exp: New file.
	* gdb.dwarf2/dw2-stack-boundary.S: New file.

2010-11-20  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.dwarf2/dw2-ada-ffffffff.S: New file.
	* gdb.dwarf2/dw2-ada-ffffffff.exp: New file.

2010-11-18  Doug Evans  <dje@google.com>

	* gdb.server/ext-run.exp: Fix intermittent failures.

2010-11-12  Nathan Froyd  <froydnj@codesourcery.com>

	* gdb.stabs/gdb11479.exp: Use runto_main.

2010-11-12  Nathan Froyd  <froydnj@codesourcery.com>

	* gdb.base/break-entry.exp: Skip if using a stub.

2010-11-12  Nathan Froyd  <froydnj@codesourcery.com>

	* gdb.python/py-inferior.exp: Pack values in target endianness.

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

	* gdb.python/py-prettyprint.c (main): Add new 'ns2' local.
	* gdb.python/py-prettyprint.exp (run_lang_tests): Add test for
	MemoryError.
	* gdb.python/python.exp (gdb_py_test_multiple): Update exception
	type.
	* gdb.python/py-value.exp (test_value_in_inferior): Add test for
	MemoryError.
	(test_subscript_regression): Update exception type.

2010-11-11  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.python/py-breakpoint.exp: Add internal watchpoint and
	breakpoint tests.

2010-11-09  Pedro Alves  <pedro@codesourcery.com>

	* gdb.base/watchpoint.exp: Test "watch -location" with an
	innacessible location.

2010-11-09  Edjunior Machado  <emachado@br.ibm.com>
	    Luis Machado  <luisgpm@br.ibm.com>

	* gdb.base/maint.exp: Expect "." prefix.
	* gdb.base/nodebug.exp: Expect "." Likewise.
	* gdb.base/sepsymtab.exp: Expect "." Likewise.
	* gdb.base/watchpoint-cond-gone.exp: Likewise.
	* gdb.base/watchpoint.exp: Expect a software watch to be created for
	POWER server processors.

2010-11-08  Edjunior Machado  <emachado@br.ibm.com>
	    Luis Machado  <luisgpm@br.ibm.com>

	* gdb.base/break-entry.exp: convert entry point for
	ppc64 and expect leading `.' on ppc64's symbols

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

	* gdb.base/help.exp: Update expected output.
	* gdb.python/py-param.exp: Delete, contents moved to ...
	* gdb.python/py-parameter.exp: ... here.  New file.
	Add test for gdb.parameter ("directories").

2010-11-05  Ken Werner  <ken.werner@de.ibm.com>

	* Makefile.in (ALL_SUBDIRS): Add gdb.opencl.
	* configure.ac (AC_OUTPUT): Add gdb.opencl/Makefile.
	* configure: Regenerate.
	* gdb.opencl/Makefile.in: New File.
	* gdb.opencl/datatypes.exp: Likewise.
	* gdb.opencl/datatypes.cl: Likewise.
	* gdb.opencl/operators.exp: Likewise.
	* gdb.opencl/operators.cl: Likewise.
	* gdb.opencl/vec_comps.exp: Likewise.
	* gdb.opencl/vec_comps.cl: Likewise.
	* gdb.opencl/convs_casts.exp: Likewise.
	* gdb.opencl/convs_casts.cl: Likewise.
	* lib/opencl.exp: Likewise.
	* lib/opencl_hostapp.c: Likewise.
	* lib/opencl_kernel.cl: Likewise.
	* lib/cl_util.c: Likewise.
	* lib/cl_util.c: Likewise.
	* gdb.base/default.exp (set language): Add "opencl" to the list of
	languages.

2010-11-04  Sami Wagiaalla  <swagiaal@redhat.com>

	* gdb.cp/overload.exp: Added test for inheritance overload.
	* gdb.cp/overload.cc: Ditto.
	* gdb.cp/oranking.exp: Removed releveant kfails.

2010-11-04  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/null_array.exp (print my_table): Call get_compiler_info and
	check test_compiler_info.

2010-11-03  Ken Werner  <ken.werner@de.ibm.com>

	* gdb.base/gnu_vector.exp: Adjust expect messages.

2010-11-03  Ken Werner  <ken.werner@de.ibm.com>

	* gdb.base/gnu_vector.exp: Add unary operator tests.

2010-11-03  Ken Werner  <ken.werner@de.ibm.com>

	* gdb.base/exprs.exp: Add tests for pre-/post- in-/decrement operators.

2010-11-02  Doug Evans  <dje@google.com>

	* gdb.python/py-pp-maint.c: New file.
	* gdb.python/py-pp-maint.exp: New file.
	* gdb.python/py-pp-maint.py: New file.

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

	* gdb.base/default.exp: Remove "scheme" from language list.

2010-11-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Revert:
	2010-10-17  Jan Kratochvil  <jan.kratochvil@redhat.com>
	* gdb.threads/sigstep-threads.exp: New file.
	* gdb.threads/sigstep-threads.c: New file.

2010-10-20  Michael Snyder  <msnyder@vmware.com>

	* gdb.threads/fork-child-threads.exp: Don't run on remote target.

2010-10-19  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdb.base/watch_thread_num.exp: Revert 2008-09-03 change.
	Skip test completely if gdb,no_hardware_watchpoints.

2010-10-19  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdb.base/foll-fork.exp: Make regexps to match catchpoint hits more
	strict, but do not check for any particular function name within libc.

2010-10-19  Sami Wagiaalla  <swagiaal@redhat.com>

	* gdb.cp/smartp.exp: New test.
	* gdb.cp/smartp.cc : New test.

2010-10-19  Sami Wagiaalla  <swagiaal@redhat.com>

	* gdb.cp/converts.exp: Test pointer to bool conversion.
	Test pointer to long conversion.
	* gdb.cp/oranking.exp: Removed relevant kfail.

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

	* gdb.python/py-prettyprint.exp (run_lang_tests): Test encoding
	argument to lazy_string.
	* gdb.python/py-prettyprint.py (pp_ls_encoding): New global.
	(pp_ls.to_string): Use it.
	* gdb.python/py-prettyprint.c (main): Move declarations to top.
	Add "estring2" local.

2010-10-17  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix s390x compatibility.
	* gdb.dwarf2/pr11465.S (DW_TAG_pointer_type): Use PTRBITS.  Twice.
	* gdb.dwarf2/pr11465.exp: Set ptrbits, use it for -DPTRBITS.

2010-10-17  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.threads/sigstep-threads.exp: New file.
	* gdb.threads/sigstep-threads.c: New file.

2010-10-17  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/pie-execl.exp: New file.
	* gdb.base/pie-execl.c: New file.

2010-10-13  Doug Evans  <dje@google.com>
	    Jan Kratochvil  <jan.kratochvil@redhat.com>

	PR exp/12117
	* gdb.cp/ptype-cv-cp.cc: New file.
	* gdb.cp/ptype-cv-cp.exp: New file.

2010-10-14  Sami Wagiaalla  <swagiaal@redhat.com>

	* gdb.cp/converts.cc: New test program.
	* gdb.cp/converts.exp: New test.
	* gdb.cp/overload.exp: Added test for void* vs int*.
	* gdb.cp/overload.exp: Ditto.
	* gdb.cp/oranking.exp: Removed related kfail.

2010-10-13  Doug Evans  <dje@google.com>

	* lib/gdb-python.exp (gdb_check_python_config): New function.
	* gdb.python/Makefile.in (EXECUTABLES): Add lib-types.
	* gdb.python/lib-types.cc: New file.
	* gdb.python/lib-types.exp: New file.

2010-10-13  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.python/py-error.exp: New file.
	* gdb.python/py-error.py: New file.

2010-10-12  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/break-interp.exp (test_ld): Replace gdb_expect by
	gdb_test_multiple.

2010-10-12  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/break-interp.exp: Use ldlags for linking flags.
	* gdb.base/prelink.exp: Likewise.
	* gdb.base/solib-nodir.exp: Likewise.
	* lib/gdb.exp (gdb_compile) <*-*-openbsd*>
	(gdb_compile) <shlib_load>: Use ldlags for linking flags.
	* lib/prelink-support.exp (build_executable_own_libs): Likewise.

2010-10-12  Ulrich Weigand  <uweigand@de.ibm.com>

	* break-interp.exp (test_ld): Use two separate gdb_expect statements
	for the "info files" test to avoid timeouts on slow machines.

2010-10-11  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.cp/infcall-dlopen.cc (openlib): Support NULL FILENAME.
	(main): Make openlib dummy call.

2010-10-11  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix missing _start PIE relocation on ppc64 due to stop on dl_main.
	* break-interp.exp (reach): Move the core body ...
	(reach_1): ... here.  Use stop-on-solib-events for _dl_debug_state.
	(test_ld): Provide always real argument, even to the linker.  Replace
	dl_main by _dl_debug_state.

2010-10-11  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix results of prelinked PIEs on ppc*.
	* gdb.base/break-interp.exp (reach, test_core, test_attach_gdb):
	Accept also DISPLACEMENT "PRESENT".
	(main): Replace "ZERO" displacements by "PRESENT".

2010-10-08  Sami Wagiaalla  <swagiaal@redhat.com>

	* gdb.cp/oranking.exp: New test.
	* gdb.cp/oranking.cc: New test program.

2010-10-08  Ken Werner  <ken.werner@de.ibm.com>

	* gdb.base/gnu_vector.c (ia, ib, fa, fb): New variables.
	* gdb.base/gnu_vector.exp: Add tests for scalar to vector widening.

2010-10-06  Ken Werner  <ken.werner@de.ibm.com>

	* gdb.base/constvars.c (logical, lugged, luck, lunar, lumen, lurk,
	lush, lynx) New constant.
	* gdb.base/constvars.exp: Test const array types.
	* gdb.dwarf2/dw2-strp.exp: Add const qualifier for ptype tests.

2010-10-06  Doug Evans  <dje@google.com>

	* gdb.base/catch-syscall.exp (do_syscall_tests): Update location
	of syscall staging area.

2010-10-06  Ken Werner  <ken.werner@de.ibm.com>

	* gdb.base/gnu_vector.c: Add variable c4.
	* gdb.base/gnu_vector.exp: Add tests for character vector printing.
	* gdb.arch/altivec-abi.exp: Fix expect pattern of character vectors.

2010-10-05  Maciej W. Rozycki  <macro@codesourcery.com>

	* gdb.arch/altivec-abi.exp: Fix a typo.

2010-10-02  Maciej W. Rozycki  <macro@codesourcery.com>

	* lib/mi-support.exp (thread_selected_re): Correct pattern used
	to match a thread ID.

2010-10-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix s390x testcase compatibility.
	* gdb.dwarf2/dw2-double-set-die-type.S: Use .2byte, not .value.

2010-10-01  Doug Evans  <dje@google.com>

	* lib/gdb-python.exp: New file.
	* gdb.python/py-block.exp: Use it.
	* gdb.python/py-breakpoint.exp: Ditto.
	* gdb.python/py-frame.exp: Ditto.
	* gdb.python/py-inferior.exp: Ditto.
	* gdb.python/py-param.exp: Ditto.
	* gdb.python/py-prettyprint.exp: Ditto.
	* gdb.python/py-shared.exp: Ditto.
	* gdb.python/py-symbol.exp: Ditto.
	* gdb.python/py-symtab.exp: Ditto.
	* gdb.python/py-type.exp: Ditto.
	* gdb.python/py-value.exp: Ditto.
	* gdb.python/python.exp: Ditto.

2010-09-30  Tom Tromey  <tromey@redhat.com>

	* gdb.base/anon.exp: New file.
	* gdb.base/anon.c: New file.

2010-09-30  Tom Tromey  <tromey@redhat.com>

	* gdb.base/completion.exp: Test completion through anonymous
	union.
	* gdb.base/break1.c (struct some_struct): Add anonymous union.

2010-09-30  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix printing parameters of inlined functions.
	* gdb.dwarf2/dw2-inline-param.exp: New file.
	* gdb.dwarf2/dw2-inline-param-main.c: New file.
	* gdb.dwarf2/dw2-inline-param.S: New file.

2010-09-30  Jan Kratochvil  <jan.kratochvil@redhat.com>

	PR corefiles/12071.
	* gdb.base/corefile.exp (quit with a process, no question: load core)
	(quit with a core file): New tests.

2010-09-29  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix GDB crash on inferior calls with self-referencing classes.
	* gdb.dwarf2/dw2-cp-infcall-ref-static.exp: New file.
	* gdb.dwarf2/dw2-cp-infcall-ref-static-main.c: New file.
	* gdb.dwarf2/dw2-cp-infcall-ref-static.S: New file.

2010-09-24  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix lost siginfo_t for inferior calls.
	* gdb.base/siginfo-infcall.exp: New file.
	* gdb.base/siginfo-infcall.c: New file.

2010-09-22  Joel Brobecker  <brobecker@adacore.com>

	* gdb.dwarf2/dw2-const.S: Minor (space) reformatting.

2010-09-22  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.fortran/module.exp (fully qualified name of DW_TAG_constant):
	New test.
	* gdb.fortran/module.f90 (mod1) <var_const>: New constant.

2010-09-22  Joel Brobecker  <brobecker@adacore.com>

	* gdb.dwarf2/dw2-const.S: Use .4byte to reference the target
	type of our const type.

2010-09-22  Sami Wagiaalla  <swagiaal@redhat.com>

	* gdb.cp/pr12028.cc: New.
	* gdb.cp/pr12028.exp: New.

2010-09-22  Joel Brobecker  <brobecker@adacore.com>

	* gdb.dwarf2/dw2-const.S, gdb.dwarf2/dw2-const.exp: New files.

2010-09-16  Phil Muldoon  <pmuldoon@redhat.com>
	    Jan Kratochvil  <jan.kratochvil@redhat.com>

	PR mi/11407
	* gdb.mi/dw2-ref-missing-frame-func.c: New File.
	* gdb.mi/dw2-ref-missing-frame-main.c New File.
	* gdb.mi/dw2-ref-missing-frame.S New File.
	* gdb.mi/dw2-ref-missing-frame.exp New File.

2010-09-14  Tom Tromey  <tromey@redhat.com>

	PR symtab/8399:
	* gdb.threads/tls.exp: Remove kfail.  Update expected output.

2010-09-14  Tom Tromey  <tromey@redhat.com>

	PR exp/11803:
	* gdb.threads/tls.exp: Use C++.
	(check_thread_local): Use K::another_thread_local.
	* gdb.threads/tls.c (class K): New.
	(another_thread_local): Now a member of K.
	(spin): Update.  No longer K&R C.

2010-09-13  Sami Wagiaalla  <swagiaal@redhat.com>

	* gdb.cp/koenig.cc: created class for testing member lookup.
	* gdb.cp/koenig.exp: Added test for member lookup.

2010-09-13  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix false FAILs on sourcetree topdir directory containing "kill".
	* gdb.base/sigall.exp (test_one_sig) <advance to $nextsig>: Extend the
	source line matching regexp.

2010-09-11  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.python/python.exp (set height 0, collect help from uiout)
	(verify help to uiout): New tests.

2010-09-10  Edjunior Barbosa Machado  <emachado@linux.vnet.ibm.com>

	* gdb.base/break-interp.exp (test_ld) <istarget powerpc64-*>: Add
	is_lp64_target to check 64bit target.

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

	* gdb.base/break-interp.exp (reach): Permit leading . for ppc64.
	(test_ld) <powerpc64-*>: New.

2010-09-08  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.cp/templates.exp (test_template_args): Allow "struct".

2010-09-08  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.cp/templates.cc (Empty, FunctionArg): New classes.
	(FunctionArg::method): New function.
	(empty, arg): New variables.
	(main): Call arg.method.
	* gdb.cp/templates.exp (test_template_args): New function.
	(do_tests): Call it.

2010-09-08  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdb.threads/threxit-hop-specific.exp: Use "continue" instead
	of "next" to proceed over pthread_exit call.

2010-09-08  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdb.base/maint.exp: Avoid wildcards against potentially very long
	"maint print statistics" output to prevent expect timeouts.

2010-09-06  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/printcmds.exp (test_float_accepted): Import gdb_prompt.
	Move here, negate and extend by XFAIL the "p 0x1.1" test from ...
	(test_float_rejected): ... here.
	* gdb.java/jv-print.exp (test_float_accepted): Import gdb_prompt.
	Move here, negate and extend by XFAIL the "p 0x1.1" test from ...
	(test_float_rejected): ... here.
	* gdb.objc/print.exp (test_float_accepted): Import gdb_prompt.
	Move here, negate and extend by XFAIL the "p 0x1.1" test from ...
	(test_float_rejected): ... here.
	* gdb.pascal/print.exp (test_float_accepted): Import gdb_prompt.
	Move here, negate and extend by XFAIL the "p 0x1.1" test from ...
	(test_float_rejected): ... here.

2010-09-04  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/watchpoint.exp: Call test_inaccessible_watchpoint
	before disabling hardware watchpoints.
	(test_inaccessible_watchpoint): Check that hardware watchpoints
	are used.  Test for watchpoints on a constant address.

2010-09-03  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/ui-redirect.exp: New file.

2010-09-02  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Joel Brobecker  <brobecker@adacore.com>

	* gdb.dwarf/dw2-filename.S, gdb.dwarf/dw2-filename.exp: New files.

2010-08-31  Doug Evans  <dje@google.com>

	* gdb.dwarf2/dw4-sig-types.exp: Use .x for executable name.

2010-08-30  Tom Tromey  <tromey@redhat.com>

	PR python/11792:
	* gdb.python/py-value.exp (test_subscript_regression): Add
	dynamic_type test.

2010-08-30  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.cp/cpexprs.exp (test_breakpoint): Continue to test_function
	instead of running to main.  Do not test the main function.
	* gdb/testsuite/gdb.cp/cpexprs.cc (main): Rename to test_function.
	Add new main.

2010-08-26  Pedro Alves  <pedro@codesourcery.com>

	* gdb.mi/mi-nsmoribund.exp: Revert back to send_gdb/gdb_expect in
	one test.

2010-08-24  Doug Evans  <dje@google.com>

	PR symtab/11942
	* gdb.dwarf2/dw4-sig-types.cc: New file.
	* gdb.dwarf2/dw4-sig-types.h: New file.
	* gdb.dwarf2/dw4-sig-types-b.cc: New file.
	* gdb.dwarf2/dw4-sig-types.exp: New file.

2010-08-23  Tom Tromey  <tromey@redhat.com>

	PR python/11145:
	* gdb.python/py-value.c (Base, Derived): New types.
	(base): New global.
	* gdb.python/py-value.exp (test_subscript_regression): Add
	dynamic_cast test.

2010-08-23  Tom Tromey  <tromey@redhat.com>

	PR python/10676:
	* gdb.python/py-type.exp (test_fields): Add tests for type
	equality.

2010-08-23  Tom Tromey  <tromey@redhat.com>

	PR python/11915:
	* gdb.python/py-type.exp (test_fields): Add tests for array.

2010-08-23  Keith Seitz  <keiths@redhat.com>

	* gdb.dwarf2/dw2-double-set-die-type.S: DIE 0x51f does not
	have any children. Create a new abbrev for it.
	Add missing terminal sequence to .debug_abbrev.

2010-08-20  Keith Seitz  <keiths@redhat.com>

	PR symtab/11465:
	* gdb.dwarf2/pr11465.exp: New test.
	* gdb.dwarf2/pr11465.S: New file.
	* gdb.dwarf2/dw2-double-set-die-type.S: New file.
	* gdb.dwarf2/dw2-double-set-die-type.exp: New test.

2010-08-19  Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* gdb.arch/vsx-regs.exp: Remove wrong comment about testing AltiVec
	registers.  Update data sets with the new v2_double element in the
	VSX register union.  Add vector_register3_vr data set for the AltiVec
	registers.  Use gdb_test_no_output instead of send_gdb.

2010-08-19  Pedro Alves  <pedro@codesourcery.com>

	* gdb.python/py-shared.exp: New file, factored out from
	python.exp.
	* gdb.python/py-shared.c: New file.
	* gdb.python/py-shared-sl.c: New file.
	* gdb.python/python-1.c: New file.
	* gdb.python/python-sl.c: Delete.
	* gdb.python/python.c: Mention python-1.c.
	* gdb.python/python.exp: Move shared library tests to
	py-shared.exp.
	* gdb.python/Makefile.in (EXECUTABLES): Add py-shared and python.
	(MISCELLANEOUS): New.
	(clean mostlyclean): Also remove $MISCELLANEOUS.

2010-08-19  Doug Evans  <dje@google.com>

	PR exp/11926
	* gdb.base/printcmds.exp (test_float_accepted): New function.
	Move existing float tests there.  Add tests for floats with suffixes.
	(test_float_rejected): New function.
	* gdb.java/jv-print.exp (test_float_accepted): New function.
	(test_float_rejected): New function.
	* gdb.objc/print.exp: New file.
	* gdb.pascal/print.exp: New file.
	* lib/objc.exp: New file.

2010-08-19  Pierre Muller  <muller@ics.u-strasbg.fr>

	* gdb.base/default.exp (info set): Avoid full buffer error and force
	reading up to final gdb prompt.
	(show): Likewise.

2010-08-18  Tom Tromey  <tromey@redhat.com>

	PR symtab/11919:
	* gdb.base/completion.exp: Add test.

2010-08-18  Doug Evans  <dje@google.com>

	* gdb.base/call-ar-st.exp (set_lang_c): Delete, unused.
	* gdb.base/callfuncs.exp (set_lang_c): Delete, set c language directly.
	* gdb.base/printcmds.exp (set_lang_c): Delete, set c language directly.
	Simplify, early exit if runto_main fails.
	* gdb.fortran/exprs.exp: load_lib fortran.exp.
	(set_lang_fortran): Moved to lib/fortran.exp.
	* gdb.fortran/types.exp: load_lib fortran.exp.
	(set_lang_fortran): Moved to lib/fortran.exp.
	* gdb.java/jmisc.exp (set_lang_java): Moved to lib/java.exp.
	* gdb.java/jprint.exp (set_lang_java): Ditto.
	* gdb.java/jv-exp.exp: load_lib java.exp.
	If set_lang_java fails, issue a warning instead of failure to be
	consistent with other set_lang_foo uses.
	(set_lang_java): Moved to lib/java.exp.
	* gdb.java/jv-print.exp (set_lang_java): Moved to lib/java.exp.
	If set_lang_java fails, issue a warning instead of failure to be
	consistent with other set_lang_foo uses.
	* gdb.pascal/types.exp: load_lib pascal.exp.
	(set_lang_pascal): Moved to lib/pascal.exp.
	* lib/fortran.exp: New file.
	* lib/java.exp (set_lang_java): New function.
	* lib/pascal.exp (set_lang_pascal): New function.

2010-08-18  Yao Qi  <yao@codesourcery.com

	* gdb.dwarf2/dw2-ref-missing-frame-func.c: Add .p2align 4 for labels
	func_nofb_start and func_loopfb_start, so that address of functions
	is equal to these labels on Thumb.

2010-08-18  Yao Qi  <yao@codesourcery.com>

	* gdb.gdb/selftest.exp (do_steps_and_nexts): Update test case
	to reflect latest c source file.

2010-08-17  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.cp/infcall-dlopen.exp: New file.
	* gdb.cp/infcall-dlopen.cc: New file.
	* gdb.cp/infcall-dlopen-lib.cc: New file.

2010-08-17  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Pedro Alves  <pedro@codesourcery.com>

	PR breakpoints/11371

	* gdb.base/watch-cond-infcall.exp: New file.
	* gdb.base/watch-cond-infcall.c: New file.

2010-08-16  Tom Tromey  <tromey@redhat.com>

	* gdb.base/help.exp: Update.
	* gdb.base/watchpoint.exp (test_watchpoint_and_breakpoint): Delete
	watchpoint.
	(test_watch_location): New proc.
	(test_watchpoint_in_big_blob): Delete watchpoint.
	* gdb.base/watchpoint.c (func5): New function.
	(main): Call it.

2010-08-16  Doug Evans  <dje@google.com>

	* gdb.python/python.exp: Fix syntax in "post event insertion" test.

2010-08-11  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.python/python.exp (gdb_py_test_multiple): Add gdb.post_event
	tests.

2010-08-11  Ken Werner  <ken.werner@de.ibm.com>

	* gdb.base/Makefile.in (EXECUTABLES): Add gnu_vector.
	* gdb.base/gnu_vector.c: New File.
	* gdb.base/gnu_vector.exp: Likewise.

2010-08-11  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.python/python.c: New File.
	* gdb.python/python-sl.c: New File.
	* gdb.python/python.exp: Test solib_address and decode_line
	* functions.

2010-08-07  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.python/python.exp (show height, set height 10)
	(verify pagination beforehand, verify pagination beforehand: q)
	(gdb.execute does not page, verify pagination afterwards)
	(verify pagination afterwards: q): New.

2010-08-02  Doug Evans  <dje@google.com>

	* gdb.cp/namespace.exp: When "print ::cOtherFileClassVar" fails
	because of an older gcc, change test2
	"print ::C::OtherFileClass::cOtherFileClassVar" from unresolved
	to unsupported.

2010-07-30  Kazu Hirata  <kazu@codesourcery.com>

	* gdb.base/break-always.exp: Do not expect full paths to file
	names.
	* gdb.base/commands.exp: Likewise.

2010-07-30  Doug Evans  <dje@google.com>

	* gdb.cp/temargs.exp: For new tests that require newer gccs,
	xfail them when run with older gccs.

	* lib/gdb.exp (build_executable): Forward "c++" option to
	get_compiler_info.

	* gdb.python/py-type.exp (test_template): Mark as xfail tests
	"python print ttype.template_argument(1)" and
	"python print isinstance(ttype.template_argument(1), gdb.Value)"
	if using gcc 4.4 or earlier.

	* gdb.base/valgrind-db-attach.exp: Use unique test name for
	attach-to-debugger handling.

2010-07-30  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/prelink-lib.c (copyreloc): New initialized variable.
	* gdb.base/prelink.c (copyreloc, bssvar, bssvarp): New variables.
	(main): Use copyreloc.
	* gdb.base/prelink.exp (split debug of executable)
	(.dynbss vs. .bss address shift): New tests.

2010-07-29  Pedro Alves  <pedro@codesourcery.com>

	* gdb.threads/pthreads.exp (check_backtraces): Consume $gdb_prompt
	in gdb_test_multiple.

2010-07-29  Pedro Alves  <pedro@codesourcery.com>

	* lib/gdb.exp (gdb_init): Set LC_ALL and LANG to C in the
	environment.

2010-07-28  Tom Tromey  <tromey@redhat.com>

	PR python/11060:
	* gdb.python/py-type.c (Temargs): New template.
	(temvar): New variable.
	* gdb.python/py-type.exp (test_template): New proc.

2010-07-28  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.cp/member-ptr.exp, gdb.cp/printmethod.exp,
	gdb.dwarf2/member-ptr-forwardref.exp: Adjust.

2010-07-28  Tom Tromey  <tromey@redhat.com>

	PR c++/9946:
	* gdb.cp/temargs.exp: New file.
	* gdb.cp/temargs.cc: New file.

2010-07-27  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/help.exp (help disassemble): Update the content.

2010-07-27  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.threads/ia64-sigill.exp: New file.
	* gdb.threads/ia64-sigill.c: New file.

2010-07-27  Tom Tromey  <tromey@redhat.com>

	* gdb.opt/inline-cmds.c (ATTR): New define.
	(func1): Use it.
	(func2): Likewise.
	(func3): Likewise.
	(outer_inline1): Likewise.
	(outer_inline2): Likewise.
	* gdb.opt/inline-bt.c (ATTR): New define.
	(func1): Use it.
	(func2): Likewise.
	* gdb.opt/inline-locals.c (ATTR): New define.
	(func1): Use it.
	(func2): Likewise.

2010-07-27  Tom Tromey  <tromey@redhat.com>

	* gdb.stabs/gdb11479.c (hack): New function.
	(test): Use it.
	(test2): Use it.
	* gdb.python/py-inferior.c (int8_search_buf, int16_search_buf)
	(int32_search_buf, int64_search_buf): No longer static.
	(x): Remove.
	* gdb.base/relocate.c (hack): New function.

2010-07-27  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.python/py-value.exp (test_inferior_function_call): New function.
	* gdb.python/py-value.c (func1): New function.
	(func2): Likewise.

2010-07-26  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.asm/xstormy16.inc (gdbasm_startup): Fix beginning of stack so
	as not to clash with .data section.

2010-07-26  Jerome Guitton  <guitton@adacore.com>

	* gdb.base/code_elim.exp: New file.
	* gdb.base/code_elim1.c: New file.
	* gdb.base/code_elim2.c: New file.

2010-07-21  Pedro Alves  <pedro@codesourcery.com>

	PR symtab/11827

	* gdb.base/printcmds.c (enum some_volatile_enum): New enum.
	(some_volatile_enum): New variable.
	* gdb.base/printcmds.exp (test_print_enums): New.
	<top level>: Call it.

2010-07-21  Sami Wagiaalla  <swagiaal@redhat.com>

	* gdb.cp/fpointer.cc: New test.
	* gdb.cp/fpointer.exp: New test.

2010-07-20  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/solib-nodir.exp: New file.
	* lib/gdb.exp (runto): New case for a GDB internal error.

2010-07-20  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Ulrich Weigand  <uweigand@de.ibm.com>
	    Tom Tromey  <tromey@redhat.com>

	* gdb.base/charset-malloc.c: New file.
	* gdb.base/charset.c (malloc_stub): New prototype.
	(main): Call it instead of malloc itself.
	* gdb.base/charset.exp: Use only prepare_for_testing.
	(binfile): Remove the variable.

2010-07-19  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Make core files the process_stratum.
	* gdb.base/corefile.exp (run: load core again)
	(run: sanity check we see the core file, run: with core)
	(run: core file is cleared, attach: load core again)
	(attach: sanity check we see the core file, attach: with core)
	(attach: core file is cleared): New tests.
	* gdb.base/coremaker.c (main): New parameters.  Implement "sleep" argv.

2010-07-14  Ken Werner  <ken.werner@de.ibm.com>

	* gdb.arch/altivec-abi.exp: New tests.

2010-07-13  Tom Tromey  <tromey@redhat.com>

	* gdb.python/py-prettyprint.c (struct arraystruct): New struct.
	(main): Use it.
	* gdb.python/py-prettyprint.exp (run_lang_tests): Add test.

2010-07-13  Tom Tromey  <tromey@redhat.com>

	* gdb.base/label.exp: New file.
	* gdb.base/label.c: New file.

2010-07-12  Ulrich Weigand  <uweigand@de.ibm.com>
	    H.J. Lu  <hongjiu.lu@intel.com>

	* lib/gdb.exp (is_ilp32_target): New.
	(is_lp64_target): Likewise.

	* gdb.arch/amd64-byte.exp: Use is_lp64_target to check 64bit
	target.
	* gdb.arch/amd64-disp-step.exp: Likewise.
	* gdb.arch/amd64-dword.exp: Likewise.
	* gdb.arch/amd64-i386-address.exp: Likewise.
	* gdb.arch/amd64-word.exp: Likewise.

	* gdb.arch/i386-avx.exp: Use is_ilp32_target to check for 32bit
	target.
	* gdb.arch/i386-bp_permanent.exp: Likewise.
	* gdb.arch/i386-byte.exp: Likewise.
	* gdb.arch/i386-disp-step.exp: Likewise.
	* gdb.arch/i386-gnu-cfi.exp: Likewise.
	* gdb.arch/i386-prologue.exp: Likewise.
	* gdb.arch/i386-size-overlap.exp: Likewise.
	* gdb.arch/i386-size.exp: Likewise.
	* gdb.arch/i386-sse.exp: Likewise.
	* gdb.arch/i386-unwind.exp: Likewise.
	* gdb.arch/i386-word.exp: Likewise.

	* gdb.arch/ppc64-atomic-inst.exp: Use is_lp64_target to execute
	test only when building 64-bit executables.  Do not hard-code
	-m64 option.

2010-07-07  Doug Evans  <dje@google.com>

	* lib/gdb.exp (gdb_test_list_exact): New function.
	* gdb.base/default.exp (show convenience): Call it, add tests for
	$_sdata = void, $_thread = 0.

2010-07-05  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Joel Brobecker  <brobecker@adacore.com>

	Fix re-run of PIE executable, PR shlibs/11776.
	* gdb.base/break-interp.exp (test_ld): Turn off "disable-randomization".
	Remove $displacement_main to match the solib-svr4.c change.  New "kill"
	and re-"run" of the inferior.

2010-07-05  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Joel Brobecker  <brobecker@adacore.com>

	Cope with missing /usr/sbin/prelink.
	* lib/prelink-support.exp (prelink_no):
	<result == 1 && $output is "no such file or directory">: New.
	(prelink_yes): Likewise.  Return on failed prelink_no.

2010-07-05  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Joel Brobecker  <brobecker@adacore.com>

	* gdb.base/attach-pie-misread.exp: Load prelink-support.exp.  Replace
	build_executable by build_executable_own_libs.  Replace "prelink -R"
	execution by a call of prelink_yes.  Comment why "prelink -r" needs no
	change.
	* gdb.base/break-interp.exp: Load prelink-support.exp.  Rename calls of
	copy to file_copy.  Move setting opts --dynamic-linker and -rpath,
	mkdir $dir and ldd its parsing and copying to lib/prelink-support.exp.
	Replace build_executable by build_executable_own_libs's function
	build_executable_own_libs.
	(prelinkNO): Create new stub to call prelink_no.
	(prelinkYES): Create new stub to call prelink_yes.
	(test_attach): Rename calls of copy to file_copy.
	(section_get, prelinkNO_run, prelinkNO, prelinkYES, symlink_resolve)
	(copy): Move to ...
	* lib/prelink-support.exp: ... a new file.  Rename prelinkNO to
	prelink_no, prelinkYES to prelink_yes, copy to file_copy.
	* gdb.base/prelink.exp: Disable testcase also for is_remote and
	skip_shlib_tests.  Load prelink-support.exp.  Replace gdb_compile with
	special flags by gdb_compile_shlib.  Replace second gdb_compile by
	build_executable_own_libs.  Replace "prelink -R" execution by a call of
	prelink_yes.  Replace "prelink -u" and second "prelink -R" execution by
	a second call of prelink_yes.  Replace restart commands by
	clean_restart.
	(prelink): Rename to ...
	(seen displacement message): ... this test.  Extend its expectation
	strictness.

2010-07-05  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/attach-pie-misread.exp, gdb.base/attach-pie-misread.c: New.
	* gdb.base/break-interp.exp (reach, test_core, test_ld): Require each
	displacement message exactly once.

2010-07-05  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Joel Brobecker  <brobecker@adacore.com>

	* gdb.base/break-interp.exp (test_attach): Keep $interp changed.  Move
	its restore after the <$relink_args != ""> loop.  new comment.

2010-07-05  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Joel Brobecker  <brobecker@adacore.com>

	* gdb.base/break-interp.exp: Run $binpie with new value "ATTACH", new
	code for it.  New variable relink_args.
	(prelinkYES): Call prelinkNO.
	(test_attach): Accept new parameter relink_args.  Re-prelink the binary
	in such case.  Move the core code to ...
	(test_attach_gdb): ... a new function.  Send GDB command "file".
	Extend expected "Attaching to " string.

2010-07-02  Tom Tromey  <tromey@redhat.com>

	* gdb.base/bitops.exp: Remove extraneous "pass".

2010-07-02  Ken Werner  <ken.werner@de.ibm.com>

	* gdb.arch/altivec-abi.exp: Fix expect pattern of character vectors.

2010-07-01  Pedro Alves  <pedro@codesourcery.com>

	* gdb.base/help.exp: Adjust expected output.

2010-07-01  Pedro Alves  <pedro@codesourcery.com>

	* gdb.base/help.exp: Adjust expected output.

2010-06-30  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.cp/namespace.exp (print C::OtherFileClass::cOtherFileClassVar)
	(print ::C::OtherFileClass::cOtherFileClassVar): Remove KFAIL for
	c++/11702.

2010-06-29  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Doug Evans  <dje@google.com>

	* gdb.base/break-interp.exp (prelinkYES): XFAIL on `Not enough room to
	add .dynamic entry'.

2010-06-29  Doug Evans  <dje@google.com>

	Test PR c++/11702.
	* gdb.cp/m-static.exp: Add testcase.
	* gdb.cp/m-static.h (gnu_obj_4): Add initialized static const member.

2010-06-28  Phil Muldoon  <pmuldoon@redhat.com>
	    Tom Tromey  <tromey@redhat.com>
	    Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* gdb.python/py-inferior.c: New File.
	* gdb.python/py-infthread.c: New File.
	* gdb.python/py-inferior.exp: New File.
	* gdb.python/py-infthread.exp: New File.

2010-06-28  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.cp/namespace.exp (ptype OtherFileClass typedefs)
	(ptype ::C::OtherFileClass typedefs): New.
	* gdb.cp/namespace1.cc (C::OtherFileClass::cOtherFileClassType2)
	(C::OtherFileClass::cOtherFileClassVar2): New.
	(C::OtherFileClass::cOtherFileClassVar_use): Use also
	cOtherFileClassVar2.
	(C::cOtherFileType2, C::cOtherFileVar2): New.
	(C::cOtherFileVar_use): use also cOtherFileVar2.
	* gdb.cp/userdef.exp (ptype &*c): Permit arbitrary trailing text.

2010-06-28  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.cp/namespace.exp (whatis C::cOtherFileType)
	(whatis ::C::cOtherFileType, whatis C::cOtherFileVar)
	(whatis ::C::cOtherFileVar, print C::cOtherFileVar)
	(print ::C::cOtherFileVar)
	(whatis C::OtherFileClass::cOtherFileClassType)
	(whatis ::C::OtherFileClass::cOtherFileClassType)
	(print C::OtherFileClass::cOtherFileClassVar)
	(print ::cOtherFileClassVar)
	(print ::C::OtherFileClass::cOtherFileClassVar): New tests.
	(ptype OtherFileClass, ptype ::C::OtherFileClass): Permit arbitrary
	trailing content.
	* gdb.cp/namespace1.cc (C::OtherFileClass::cOtherFileClassType)
	(C::OtherFileClass::cOtherFileClassVar)
	(C::OtherFileClass::cOtherFileClassVar_use, C::cOtherFileType)
	(C::cOtherFileVar, C::cOtherFileVar_use): New.

2010-06-28  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Test PR c++/11703 and PR gdb/1448.
	* gdb.cp/namespace.exp (ptype ::C::NestedClass): Remove KFAIL for
	gdb/1448.

2010-06-28  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.cp/virtbase.cc (class RTTI_base, class RTTI_data)
	(main) <rtti_data>: New.
	* gdb.cp/virtbase.exp (print rtti_data): New.

2010-06-28  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Joel Brobecker  <brobecker@adacore.com>

	* lib/gdb.exp (gdb_test_multiple): Error on trailing newlines.

2010-06-28  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.cp/static-print-quit.exp, gdb.cp/static-print-quit.cc: New.

2010-06-28  Doug Evans  <dje@google.com>

	* gdb.base/break-interp.exp (reach): Relax expected output a bit.

2010-06-27  Doug Evans  <dje@google.com>

	* gdb.cp/m-static.exp: Update expected test output.

2010-06-25  Paul Hilfinger  <hilfinger@adacore.com>

	* gdb.gdb/selftest.exp: Adjust expected message for
	capturing start-up runtime.

2010-06-25  Tom Tromey  <tromey@redhat.com>

	PR python/10808:
	* gdb.python/python.exp: Add new tests.

2010-06-25  Sami Wagiaalla  <swagiaal@redhat.com>

	* gdb.cp/operator.cc: Created an import loop.
	* gdb.cp/operator.exp: Added testcase for import loop.

2010-06-25  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Test PR python/11407.
	* gdb.dwarf2/dw2-ref-missing-frame-func.c: New file.
	* gdb.dwarf2/dw2-ref-missing-frame.S: Use cu_text_start and cu_text_end.
	Split main into func_nofb and func_loopfb dropping NO_FRAME_BASE.
	* gdb.dwarf2/dw2-ref-missing-frame.exp: Remove variables sources,
	executable_nofb and executable_fb.  New variables srcsfile, objsfile,
	srcfuncfile, objfuncfile, srcmainfile, objmainfile, executable and
	binfile.  Call gdb_compile with clean_restart twice.
	(func_nofb print, func_nofb backtrace, func_loopfb print)
	(func_loopfb backtrace): New.

2010-06-25  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.dwarf2/dw2-ref-missing-frame-main.c: New.
	* gdb.dwarf2/dw2-ref-missing-frame.S: Replace compiler generated output
	by a hand made one.
	* gdb.dwarf2/dw2-ref-missing-frame.exp: Remove invalid comment.  Remove
	i?86 requirement.  Remove variables srcfile and binfile.  New variable
	sources, executable_nofb and executable_fb.  Call prepare_for_testing.

2010-06-25  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.cell/dwarfaddr.exp: New file.
	* gdb.cell/dwarfaddr.S: New file.

2010-06-24  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Test PR 9436.
	* gdb.base/nostdlib.exp, gdb.base/nostdlib.c: New.

2010-06-24  Hui Zhu  <teawater@gmail.com>

	* gdb.base/eval.exp: New file.

2010-06-23  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.cell/fork.exp: New file.
	* gdb.cell/fork.c: Likewise.
	* gdb.cell/fork-spu.c: Likewise.

2010-06-22  Pierre Muller  <muller@ics.u-strasbg.fr>

	* lib/gdb.exp (banned_variables_traced): New global variable.
	(gdb_init, gdb_finish): Use new variable to avoid multiple tracing.
	(gdb_init): Use `trace add variable' instead of obsolete
	`trace variable'.

2010-06-21  Doug Evans  <dje@google.com>

	* gdb.gdb/selftest.exp: Remove support for gpl v1 and v2 gdb's.

2010-06-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.arch/spu-ls.exp: New file.
	* gdb.arch/spu-ls.c: Likewise.

2010-06-18  Stan Shebs  <stan@codesourcery.com>

	* gdb.threads/thread-specific.exp: Add tests of $_thread.

2010-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.base/gdb11531.exp: Respect gdb,no_hardware_watchpoints flag.
	* gdb.base/watch-cond.exp: Likewise.
	* gdb.python/py-breakpoint.exp: Likewise.

2010-06-18  Pedro Alves  <pedro@codesourcery.com>

	* gdb.multi/base.exp, gdb.multi/bkpt-multi-exec.exp: Use
	clean_restart, make sure every test has a distinct message, and
	that messages don't include the executable' full path.

2010-06-17  Doug Evans  <dje@google.com>

	* gdb.arch/i386-size.exp: Updated expected output for
	DISASSEMBLY_OMIT_FNAME.

2010-06-16  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Sergio Durigan Junior  <sergiodj@redhat.com>

	* gdb.base/watch-notconst.c: New file.
	* gdb.base/watch-notconst.S: New file.
	* gdb.base/watch-notconst2.c: New file.
	* gdb.base/watch-notconst2.S: New file.
	* gdb.base/watch-notconst.exp: New file.
	* gdb.base/watchpoint.c (global_ptr_ptr): New variable.
	(func4): Add operations on `global_ptr_ptr'.
	* gdb.base/watchpoint.exp (test_constant_watchpoint): New
	routine to test watchpoints created with a constant expression.
	(test_inaccessible_watchpoint): Include tests for watchpoints
	created with a constant expression.

2010-06-14  Kevin Buettner  <kevinb@redhat.com>

	* gdb.disasm/t01_mov.exp, gdb.disasm/t02_mova.exp,
	gdb.disasm/t03_add.exp, gdb.disasm/t04_sub.exp,
	gdb.disasm/t05_cmp.exp, gdb.disasm/t06_ari2.exp,
	gdb.disasm/t07_ari3.exp, gdb.disasm/t08_or.exp,
	gdb.disasm/t09_xor.exp, gdb.disasm/t10_and.exp,
	gdb.disasm/t11_logs.exp, gdb.disasm/t12_bit.exp,
	gdb.disasm/t13_otr.exp: Examine instruction at label `start' instead
	of `_start'.

2010-06-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.mi/mi-nonstop.exp: Do not call perror if non-stop mode is
	not supported on the target.
	* gdb.mi/mi-nonstop-exit.exp: Likewise.
	* gdb.mi/mi-ns-stale-regcache.exp: Likewise.
	* gdb.mi/mi-nsintrall.exp: Likewise.
	* gdb.mi/mi-nsmoribund.exp: Likewise.
	* gdb.mi/mi-nsthrexec.exp: Likewise.

2010-06-11  Stan Shebs  <stan@codesourcery.com>

	* gdb.base/permissions.exp: New file.

2010-06-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.base/valgrind-db-attach.exp: Fail gracefully if valgrind
	does not support ELF executable class.

2010-06-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.trace/packetlen.exp: Respect gdb_target_supports_trace.

2010-06-11  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* lib/gdb.exp (gdb_run_cmd): Return on $gdb_prompt.
	(runto): Catch "The target does not support running in non-stop mode.".

2010-06-11  Michael Snyder  <msnyder@vmware.com>

	* gdb.base/setshow.exp (set language asm): Don't use
	gdb_test_no_output, fails on some targets.

2010-06-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.cp/cpexprs.exp: Skip test on spu*-*-*.
	* gdb.cp/pr9167.exp: Likewise.

2010-06-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.python/py-breakpoint.exp: Handle software watchpoints as well.

2010-06-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.base/solib-corrupted.exp: Respect skip_shlib_tests.

2010-06-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.base/charset.c (main): Make sure malloc gets linked in.

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

	PR gdb/9977, PR exp/11636::
	* gdb.dwarf2/pieces.exp (pieces_test_f3): Remove kfail.
	(pieces_test_f6): Update expected output.

2010-06-11  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/moribund-step.exp: New.

2010-06-08  Michael Snyder  <msnyder@vmware.com>

	* gdb.ada/assign_1.exp: Use ".*" instead of "" as wildcard regexp.
	* gdb.ada/boolean_expr.exp:
	* gdb.ada/frame_args.exp: Ditto.
	* gdb.ada/lang_switch.exp: Ditto.
	* gdb.ada/ptype_arith_binop.exp: Ditto.
	* gdb.ada/ref_param.exp: Ditto.
	* gdb.ada/type_coercion.exp:Ditto.

	* gdb.asm/asm-source.exp: Ditto.

	* gdb.base/attach.exp: Ditto.
	* gdb.base/bitfields2.exp: Ditto.
	* gdb.base/call-signal-resume.exp: Ditto.
	* gdb.base/callfuncs.exp: Ditto.
	* gdb.base/commands.exp: Ditto.
	* gdb.base/dbx.exp: Ditto.
	* gdb.base/default.exp: Ditto.
	* gdb.base/dump.exp: Ditto.
	* gdb.base/exprs.exp: Ditto.
	* gdb.base/freebpcmd.exp: Ditto.
	* gdb.base/interrupt.exp: Ditto.
	* gdb.base/list.exp: Ditto.
	* gdb.base/long_long.exp: Ditto.
	* gdb.base/maint.exp: Ditto.
	* gdb.base/ptype.exp: Ditto.
	* gdb.base/return.exp: Ditto.
	* gdb.base/setshow.exp: Ditto.
	* gdb.base/sigbpt.exp: Ditto.
	* gdb.base/sigrepeat.exp: Ditto.

	* gdb.cp/classes.exp: Ditto.

	* gdb.dwarf2/dw2-restore.exp: Ditto.

	* gdb.gdb/selftest.exp: Ditto.

	* gdb.multi/base.exp: Ditto.
	* gdb.multi/bkpt-multi-exec.exp: Ditto.

	* gdb.python/py-block.exp: Ditto.
	* gdb.python/py-prettyprint.exp: Ditto.
	* gdb.python/py-template.exp: Ditto.

	* gdb.server/ext-attach.exp: Ditto.
	* gdb.server/ext-run.exp: Ditto.
	* gdb.server/server-mon.exp: Ditto.

	* gdb.threads/fork-thread-pending.exp: Ditto.
	* gdb.threads/hand-call-in-threads.exp: Ditto.
	* gdb.threads/interrupted-hand-call.exp: Ditto.
	* gdb.threads/linux-dp.exp: Ditto.
	* gdb.threads/manythreads.exp: Ditto.
	* gdb.threads/print-threads.exp: Ditto.
	* gdb.threads/pthreads.exp: Ditto.
	* gdb.threads/schedlock.exp: Ditto.
	* gdb.threads/thread-unwindonsignal.exp: Ditto.
	* gdb.threads/threadapply.exp: Ditto.

2010-06-08  Michael Snyder  <msnyder@vmware.com>

	* gdb.ada/exec_changed.exp:
	Use ".*" instead of "" as wildcard regexp.

	* gdb.base/async.exp: Use ".*" instead of "" as wildcard regexp.
	* gdb.base/call-ar-st.exp: Ditto.
	* gdb.base/checkpoint.exp: Ditto.
	* gdb.base/default.exp: Ditto.
	* gdb.base/dump.exp: Ditto.
	* gdb.base/ending-run.exp: Ditto.
	* gdb.base/fileio.exp: Ditto.
	* gdb.base/miscexprs.exp: Ditto.
	* gdb.base/pointers.exp: Ditto.
	* gdb.base/readline.exp: Ditto.
	* gdb.base/reread.exp: Ditto.
	* gdb.base/restore.exp: Ditto.
	* gdb.base/shlib-call.exp: Ditto.
	* gdb.base/valgrind-db-attach.exp: Ditto.
	* gdb.base/volatile.exp: Ditto.
	* gdb.base/watchpoints.exp: Ditto.

	* gdb.cp/classes.exp: Use ".*" instead of "" as wildcard regexp.

	* gdb.python/py-frame.exp: Use ".*" instead of "" as wildcard regexp.
	* gdb.python/py-value.exp: Ditto.

	* gdb.trace/backtrace.exp: Use ".*" instead of "" as wildcard regexp.
	* gdb.trace/circ.exp: Ditto.
	* gdb.trace/collection.exp: Ditto.
	* gdb.trace/packetlen.exp: Ditto.
	* gdb.trace/passc-dyn.exp: Ditto.
	* gdb.trace/report.exp: Ditto.
	* gdb.trace/tfile.exp: Ditto.
	* gdb.trace/tfind.exp: Ditto.
	* gdb.trace/while-dyn.exp: Ditto.

2010-06-08  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.python/python.exp (pythonX.Y/lib-dynload/*.so): New.

2010-06-07  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Test PR 10640.
	* gdb.dwarf2/dw2-op-call.exp, gdb.dwarf2/dw2-op-call.S: New.

2010-06-07  Sami Wagiaalla  <swagiaal@redhat.com>

	* gdb.cp/koenig.exp: Test for ADL operators.
	* gdb.cp/koenig.cc: Added ADL operators.
	* gdb.cp/operator.exp: New test.
	* gdb.cp/operator.cc: New test.

2010-06-04  Michael Snyder  <msnyder@vmware.com>

	* gdb.base/attach.exp: Replace gdb_test_multiple with gdb_test.
	* gdb.base/pending.exp: Ditto.

	* gdb.cp/pr-1210.exp: Add message string to gdb_test_multiple.

2010-06-04  Doug Evans  <dje@google.com>

	* gdb.python/py-prettyprint.exp: Add new test for enabled and
	disabled printers.
	* gdb.python/py-prettyprint.py (disable_lookup_function): New function.
	(enable_lookup_function): New function.

2010-06-04  Tom Tromey  <tromey@redhat.com>

	* gdb.python/py-value.exp (test_value_hash): Don't test equality
	of hash and id.

2010-06-04  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/commands.exp (add printf tbreak command): Remove trailing
	newline.
	* gdb.gdb/complaints.exp (empty non-verbose non-noisy clear)
	(empty verbose non-noisy clear, empty verbose noisy clear)
	(empty non-verbose noisy clear): Likewise.

2010-06-03  Michael Snyder  <msnyder@vmware.com>

	* gdb.base/commands.exp: Replace gdb_test with gdb_test_no_output.
	* gdb.base/display.exp: Ditto.
	* gdb.base/find.exp: Ditto.
	* gdb.base/ifelse.exp: Ditto.
	* gdb.base/multi-forks.exp: Ditto.
	* gdb.base/recurse.exp: Ditto.
	* gdb.base/setshow.exp: Ditto.
	* gdb.base/value-double-free.exp: Ditto.
	* gdb.base/watch-vfork.exp: Ditto.
	* gdb.base/watch_thread_num.exp: Ditto.
	* gdb.base/watchpoint-solib.exp: Ditto.
	* gdb.base/watchpoint.exp: Ditto.
	* gdb.base/watchpoints.exp: Ditto.

	* gdb.cp/classes.exp: Replace gdb_test with gdb_test_no_output.
	* gdb.cp/overload.exp: Ditto.
	* gdb.cp/virtfunc.exp: Ditto.

	* gdb.python/py-value.exp: Replace gdb_test with gdb_test_no_output.

	* gdb.reverse/watch-precsave.exp:
	Replace gdb_test with gdb_test_no_output.

	* gdb.threads/attach-into-signal.exp:
	Replace gdb_test with gdb_test_no_output.
	* gdb.threads/local-watch-wrong-thread.exp: Ditto.
	* gdb.threads/watchthreads.exp: Ditto.
	* gdb.threads/watchthreads2.exp: Ditto.

	* gdb.trace/deltrace.exp: Replace gdb_test with gdb_test_no_output.
	* gdb.trace/tfind.exp: Ditto.

2010-06-03  Joel Brobecker  <brobecker@adacore.com>

	* lib/gdb.exp (gdb_test_no_output): Do not emit pass for
	successful test if message is the empty string.

2010-06-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.fortran/module.exp (stopped language detection): New test.

2010-06-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Support DW_TAG_module as separate namespaces.
	* gdb.fortran/library-module.exp, gdb.fortran/library-module-main.f90,
	gdb.fortran/library-module-lib.f90: New.
	* gdb.fortran/module.exp: Replace startup by a prepare_for_testing call.
	(print i): Remove.
	(continue to breakpoint: i-is-1, print var_i value 1)
	(continue to breakpoint: i-is-2, print var_i value 2)
	(continue to breakpoint: a-b-c-d, print var_a, print var_b, print var_c)
	(print var_d, print var_i value 14, ptype modmany, complete `modm)
	(complete `modmany, complete `modmany`, complete `modmany`var)
	(show language, setting breakpoint at module): New tests.
	* gdb.fortran/module.f90 (module mod): Remove.
	(module mod1, module mod2, module modmany, subroutine sub1)
	(subroutine sub2, program module): New.

2010-06-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.cp/ref-types.exp (pass, pass, pass): Rename to ...
	(print value of rUC, print value of rI, print value of UI): ... here.
	* gdb.cp/anon-union.exp (pass): Rename to ...
	(print z 2): ... here.

2010-06-02  Michael Snyder  <msnyder@vmware.com>

	* gdb.trace/actions.exp: Use gdb_test_no_output.
	* gdb.trace/circ.exp: Ditto.
	* gdb.trace/packetlen.exp: Ditto.
	* gdb.trace/save-trace.exp: Ditto.
	* gdb.trace/tracecmd.exp: Ditto.
	* gdb.trace/tsv.exp: Ditto.

	* gdb.threads/fork-thread-pending.exp: Use gdb_test_no_output.
	* gdb.threads/hand-call-in-thraeds.exp: Ditto.
	* gdb.threads/local-watch-wrong-thread.exp: Ditto.
	* gdb.threads/manythreads.exp: Ditto.
	* gdb.threads/print-threads.exp: Ditto.
	* gdb.threads/pthreads.exp: Ditto.
	* gdb.threads/schedlock.exp: Ditto.
	* gdb.threads/staticthreads.exp: Ditto.
	* gdb.threads/thread-specific.exp: Ditto.
	* gdb.threads/thread-unwindonsignal.exp: Ditto.
	* gdb.threads/threadapply.exp: Ditto.
	* gdb.threads/watchthreads.exp: Ditto.
	* gdb.threads/watchthreads2.exp: Ditto.

	* gdb.python/py-block.exp: Use gdb_test_no_output.
	* gdb.python/py-prettyprint.exp: Ditto.
	* gdb.python/py-template.exp: Ditto.
	* gdb.python/py-value.exp: Ditto.

	* gdb.reverse/watch-precsave.exp: Use gdb_test_no_output.
	* gdb.reverse/watch-reverse.exp: Ditto.

	* gdb.server/ext-attach.exp: Use gdb_test_no_output.
	* gdb.server/ext-run.exp: Ditto.

	* gdb.dwarf2/dw2-basic.exp: Use gdb_test_no_output.
	* gdb.dwarf2/dw2-compressed.exp: Ditto.
	* gdb.dwarf2/dw2-intercu.exp: Ditto.
	* gdb.dwarf2/dw2-intermix.exp: Ditto.
	* gdb.dwarf2/dw2-producer.exp: Ditto.
	* gdb.dwarf2/mac-fileno.exp: Ditto.

	* gdb.gdb/observer.exp: Use gdb_test_no_output.
	* gdb.gdb/selftest.exp: Ditto.

	* gdb.multi/base.exp: Use gdb_test_no_output.

	* gdb.opt/inline-cmds.exp: Use gdb_test_no_output.

2010-06-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.cp/ref-types.exp (print value of UI): Remove excessive newline.

2010-06-02  Michael Snyder  <msnyder@msnyder-server.eng.vmware.com>

	* gdb.cp/class2.exp: Use gdb_test_no_output.
	* gdb.cp/classes.exp: Ditto.
	* gdb.cp/extern-c.exp: Ditto.
	* gdb.cp/inherit.exp: Ditto.
	* gdb.cp/maint.exp: Ditto.
	* gdb.cp/mb-inline.exp: Ditto.
	* gdb.cp/mb-templates.exp: Ditto.
	* gdb.cp/method2.exp: Ditto.
	* gdb.cp/misc.exp: Ditto.
	* gdb.cp/ovldbreak.exp: Ditto.
	* gdb.cp/punctuator.exp: Ditto.
	* gdb.cp/templates.exp: Ditto.
	* gdb.cp/virtbase.exp: Ditto.

	* gdb.threads/attach-stopped.exp:
	Replace uses of send_gdb / gdb_expect.
	* gdb.threads/attachstop-mt.exp:
	Replace uses of send_gdb / gdb_expect.
	* gdb.threads/gcore-thread.exp:
	Replace uses of send_gdb / gdb_expect.
	* gdb.threads/hand-call-in-threads.exp:
	Replace uses of send_gdb / gdb_expect.
	* gdb.threads/linux-dp.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.threads/print-threads.exp:
	Replace uses of send_gdb / gdb_expect.
	* gdb.threads/pthreads.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.threads/schedlock.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.threads/sigthread.exp: Replace uses of send_gdb / gdb_expect.

	* gdb.trace/actions.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.trace/backtrace.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.trace/collection.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.trace/deltrace.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.trace/infotrace.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.trace/limits.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.trace/report.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.trace/save-trace.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.trace/tfind.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.trace/tracecmd.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.trace/tsv.exp: Replace uses of send_gdb / gdb_expect.

2010-06-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.cp/re-set-overloaded.exp, gdb.cp/re-set-overloaded.cc: New.

2010-06-02  Sami Wagiaalla  <swagiaal@redhat.com>

	* gdb.cp/koenig.exp: Added new test case.
	* gdb.cp/koenig.cc: Ditto.

2010-06-01  Michael Snyder  <msnyder@vmware.com>

	* gdb.base/arithmet.exp: Use gdb_test_no_output.
	* gdb.base/arrayidx.exp: Ditto.
	* gdb.base/attach.exp: Ditto.
	* gdb.base/auxv.exp: Ditto.
	* gdb.base/bigcre.exp: Ditto.
	* gdb.base/break-always.exp: Ditto.
	* gdb.base/break-interp.exp: Ditto.
	* gdb.base/break.exp: Ditto.
	* gdb.base/breakpoint-shadow.exp: Ditto.
	* gdb.base/call-ar-st.exp: Ditto.
	* gdb.base/call-sc.exp: Ditto.
	* gdb.base/call-signal-resume.exp: Ditto.
	* gdb.base/callfuncs.exp: Ditto.
	* gdb.base/catch-syscall.exp: Ditto.
	* gdb.base/charset.exp: Ditto.
	* gdb.base/code-expr.exp: Ditto.
	* gdb.base/commands.exp: Ditto.
	* gdb.base/cond-expr.exp: Ditto.
	* gdb.base/condbreak.exp: Ditto.
	* gdb.base/cursal.exp: Ditto.
	* gdb.base/cvexpr.exp: Ditto.
	* gdb.base/default.exp: Ditto.
	* gdb.base/del.exp: Ditto.
	* gdb.base/detach.exp: Ditto.
	* gdb.base/display.exp: Ditto.
	* gdb.base/ena-dis-br.exp: Ditto.
	* gdb.base/eval-skip.exp: Ditto.
	* gdb.base/foll-fork.exp: Ditto.
	* gdb.base/foll-vfork.exp: Ditto.
	* gdb.base/frame-args.exp: Ditto.
	* gdb.base/funcargs.exp: Ditto.
	* gdb.base/gcore-buffer-overflow.exp: Ditto.
	* gdb.base/gdbvars.exp: Ditto.
	* gdb.base/help.exp: Ditto.
	* gdb.base/ifelse.exp: Ditto.
	* gdb.base/included.exp: Ditto.
	* gdb.base/list.exp: Ditto.
	* gdb.base/macscp.exp: Ditto.
	* gdb.base/maint.exp: Ditto.
	* gdb.base/multi-fork.exp: Ditto.
	* gdb.base/overlays.exp: Ditto.
	* gdb.base/page.exp: Ditto.
	* gdb.base/pending.exp: Ditto.
	* gdb.base/pointers.exp: Ditto.
	* gdb.base/pr11022.exp: Ditto.
	* gdb.base/prelink.exp: Ditto.
	* gdb.base/printcmds.exp: Ditto.
	* gdb.base/psymtab.exp: Ditto.
	* gdb.base/randomize.exp: Ditto.
	* gdb.base/relational.exp: Ditto.
	* gdb.base/relocate.exp: Ditto.
	* gdb.base/remote.exp: Ditto.
	* gdb.base/sepdebug.exp: Ditto.
	* gdb.base/set-lang-auto.exp: Ditto.
	* gdb.base/setshow.exp: Ditto.
	* gdb.base/setvar.exp: Ditto.
	* gdb.base/signals.exp: Ditto.
	* gdb.base/signull.exp: Ditto.
	* gdb.base/sigstep.exp: Ditto.
	* gdb.base/sizeof.exp: Ditto.
	* gdb.base/solib-disc.exp: Ditto.
	* gdb.base/store.exp: Ditto.
	* gdb.base/structs.exp: Ditto.
	* gdb.base/structs2.exp: Ditto.
	* gdb.base/subst.exp: Ditto.
	* gdb.base/term.exp: Ditto.
	* gdb.base/trace-commands.exp: Ditto.
	* gdb.base/unwindonsignal.exp: Ditto.
	* gdb.base/valgrind-db-attach.exp: Ditto.
	* gdb.base/varargs.exp: Ditto.
	* gdb.base/watch-cond.exp: Ditto.
	* gdb.base/watch_thread_num.exp: Ditto.
	* gdb.base/watchpoint-cond-gone.exp: Ditto.
	* gdb.base/watchpoint.exp: Ditto.
	* gdb.base/whatis-exp.exp: Ditto.

2010-06-01  Michael Snyder  <msnyder@vmware.com>

	* gdb.cp/annota2.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.cp/annota3.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.cp/anon-union.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.cp/cplusfuncs.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.cp/demangle.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.cp/formatted-ref.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.cp/local.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.cp/method.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.cp/misc.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.cp/namespace.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.cp/ovldbreak.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.cp/pr-1023.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.cp/ref-types.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.cp/templates.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.cp/userdef.exp: Replace uses of send_gdb / gdb_expect.

2010-06-01  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/commands.exp (begin commands on watch): Remove excessive
	trailing newline.
	* gdb.mi/mi-nsintrall.exp (-gdb-show non-stop): Likewise.
	* gdb.java/jmisc.exp (p *args\n): Rename to ...
	(p *args): ... here and remove excessive trailing newline.

2010-05-31  Joel Brobecker  <brobecker@adacore.com>

	* gdb.base/subst.exp: Fix call to gdb_test with empty message.

2010-05-31  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Accept the new Linux kernel "t (tracing stop)" string.
	* gdb.threads/watchthreads-reorder.c (thread1_func, thread2_func):
	Update comment.
	(state_wait) <T (tracing stop)>: New.
	(main): Update the state_wait expect string.

2010-05-28  Pedro Alves  <pedro@codesourcery.com>

	* limits.c, limits.exp: Delete files.
	* Makefile.in (clean mostlyclean): Adjust.
	* tracecmd.exp: Adjust.

2010-05-28  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/tui-layout.exp: New.

2010-05-28  Michael Snyder  <msnyder@vmware.com>

	* gdb.reverse/break-precsave.exp:
	Replace uses of send_gdb / gdb_expect.
	* gdb.reverse/break-reverse.exp:
	Replace uses of send_gdb / gdb_expect.
	* gdb.reverse/consecutive-precsave.exp:
	Replace uses of send_gdb / gdb_expect.
	* gdb.reverse/consecutive-reverse.exp:
	Replace uses of send_gdb / gdb_expect.
	* gdb.reverse/finish-precsave.exp:
	Replace uses of send_gdb / gdb_expect.
	* gdb.reverse/finish-reverse.exp:
	Replace uses of send_gdb / gdb_expect.
	* gdb.reverse/i386-precsave.exp:
	Replace uses of send_gdb / gdb_expect.
	* gdb.reverse/i386-reverse.exp:
	Replace uses of send_gdb / gdb_expect.
	* gdb.reverse/i386-sse-reverse.exp:
	Replace uses of send_gdb / gdb_expect.
	* gdb.reverse/i387-env-reverse.exp:
	Replace uses of send_gdb / gdb_expect.
	* gdb.reverse/i387-stack-reverse.exp:
	Replace uses of send_gdb / gdb_expect.
	* gdb.reverse/machinestate-precsave.exp:
	Replace uses of send_gdb / gdb_expect.
	* gdb.reverse/machinestate.exp:
	Replace uses of send_gdb / gdb_expect.
	* gdb.reverse/sigall-precsave.exp:
	Replace uses of send_gdb / gdb_expect.
	* gdb.reverse/sigall-reverse.exp:
	Replace uses of send_gdb / gdb_expect.
	* gdb.reverse/solib-precsave.exp:
	Replace uses of send_gdb / gdb_expect.
	* gdb.reverse/solib-reverse.exp:
	Replace uses of send_gdb / gdb_expect.
	* gdb.reverse/step-precsave.exp:
	Replace uses of send_gdb / gdb_expect.
	* gdb.reverse/step-reverse.exp:
	Replace uses of send_gdb / gdb_expect.
	* gdb.reverse/until-precsave.exp:
	Replace uses of send_gdb / gdb_expect.
	* gdb.reverse/until-reverse.exp:
	Replace uses of send_gdb / gdb_expect.
	* gdb.reverse/watch-precsave.exp:
	Replace uses of send_gdb / gdb_expect.
	* gdb.reverse/watch-reverse.exp:
	Replace uses of send_gdb / gdb_expect.

2010-05-28  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/sepdebug.exp (info silent break bp_location1): Fix racy
	excessive newline.

2010-05-27  Michael Snyder  <msnyder@vmware.com>

	* gdb.base/break.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.base/relational.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.base/relocate.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.base/restore.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.base/return.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.base/return2.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.base/sepdebug.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.base/setshow.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.base/setvar.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.base/shlib-call.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.base/shreloc.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.base/sigall.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.base/sigbpt.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.base/signull.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.base/so-impl-ld.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.base/varargs.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.base/volatile.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.base/watch_thread_num.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.base/watchpoint.exp: Replace uses of send_gdb / gdb_expect.

2010-05-26  Michael Snyder  <msnyder@vmware.com>

	* gdb.java/jmisc.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.java/jprint.exp: Replace uses of send_gdb / gdb_expect.

	* gdb.gdb/complaints.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.gdb/selftest.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.gdb/xfullpath.exp: Replace uses of send_gdb / gdb_expect.

	* gdb.reverse/consecutive-reverse.exp:
	Replace uses of send_gdb / gdb_expect.
	* gdb.reverse/consecutive-precsave.exp:
	Replace uses of send_gdb / gdb_expect.

	* gdb.mi/mi-basics.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.mi/mi-nonstop-exit.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.mi/mi-nonstop.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.mi/mi-ns-stale-regcache.exp:
	Replace uses of send_gdb / gdb_expect.
	* gdb.mi/mi-nsintrall.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.mi/mi-nsmoribund.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.mi/mi-nsthrexec.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.mi/mi-return.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.mi/mi-var-display.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.mi/mi2-basics.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.mi/mi2-console.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.mi/mi2-return.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.mi/mi2-var-display.exp: Replace uses of send_gdb / gdb_expect.

2010-05-26  Michael Snyder  <msnyder@vmware.com>

	* gdb.ada/formatted_ref.exp: Replace uses of send_gdb / gdb_expect.

	* gdb.asm/asm-source.exp: Replace uses of send_gdb / gdb_expect.

	* gdb.base/a2-run.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.base/all-bin.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.base/annota1.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.base/annota3.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.base/assign.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.base/attach.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.base/bitfields.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.base/bitfields2.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.base/bitops.exp: Replace uses of send_gdb / gdb_expect.

2010-05-25  Tom Tromey  <tromey@redhat.com>

	* gdb.base/macscp.exp: Add missing space after setup_kfail.

2010-05-25  Tom Tromey  <tromey@redhat.com>

	* gdb.arch/i386-prologue.exp (skip_breakpoint): Fix setup_kfail
	argument order.
	* gdb.base/macscp.exp: Fix setup_kfail argument order.
	* gdb.base/long_long.exp (gdb_test_xxx): Fix setup_kfail argument
	order.
	* gdb.base/sigbpt.exp (stepi_out): Fix setup_kfail argument
	order.
	* gdb.base/call-sc.exp (setup_kfails): Remove.
	(setup_compiler_kfails): Remove.
	* gdb.base/callfuncs.exp (do_function_calls): Fix setup_kfail
	argument order.
	* gdb.base/siginfo.exp: Fix setup_kfail argument order.
	* gdb.base/sigstep.exp (advance): Fix setup_kfail argument order.
	(advancei): Fix setup_kfail argument order.
	* gdb.base/radix.exp: Fix setup_kfail argument order.
	* gdb.base/solib-weak.exp (do_test): Fix setup_kfail argument
	order.
	* gdb.base/structs.exp (setup_kfails): Remove.
	(setup_compiler_kfails): Fix setup_kfail argument order.
	* gdb.base/sigaltstack.exp (finish_test): Fix setup_kfail argument
	order.
	* gdb.java/jmain.exp: Fix setup_kfail argument order.
	* gdb.pascal/types.exp (test_string_literal_types_accepted): Fix
	setup_kfail argument order.
	* gdb.cp/overload.exp: Fix setup_kfail argument order.

2010-05-25  Tom Tromey  <tromey@redhat.com>

	* gdb.dwarf2/pieces.exp (pieces_test_f3): Mention PR 11636.

2010-05-25  Michael Snyder  <msnyder@vmware.com>

	* gdb.base/a2-run.exp: Replace send_gdb with gdb_test.
	* gdb.base/all-bin.exp: Replace send_gdb with gdb_test.
	* gdb.base/annota1.exp: Replace send_gdb with gdb_test.
	* gdb.base/annota3.exp: Replace send_gdb with gdb_test.
	* gdb.base/assign.exp: Replace send_gdb with gdb_test.
	* gdb.base/attach.exp: Replace send_gdb with gdb_test.
	* gdb.base/bitfields.exp: Replace send_gdb with gdb_test.
	* gdb.base/bitfields2.exp: Replace send_gdb with gdb_test.
	* gdb.base/bitops.exp: Replace send_gdb with gdb_test.
	* gdb.base/call-ar-st.exp: Replace send_gdb with gdb_test.
	* gdb.base/callfuncs.exp: Replace send_gdb with gdb_test.
	* gdb.base/call-rt-st.exp: Replace send_gdb with gdb_test.
	* gdb.base/call-signal-resume.exp: Replace send_gdb with gdb_test.
	* gdb.base/call-strs.exp: Replace send_gdb with gdb_test.
	* gdb.base/catch-syscall.exp: Replace send_gdb with gdb_test.
	* gdb.base/charset.exp: Replace send_gdb with gdb_test.
	* gdb.base/checkpoint.exp: Replace send_gdb with gdb_test.
	* gdb.base/commands.exp: Replace send_gdb with gdb_test.
	* gdb.base/condbreak.exp: Replace send_gdb with gdb_test.
	* gdb.base/cond-exprs.exp: Replace send_gdb with gdb_test.
	* gdb.base/consecutive.exp: Replace send_gdb with gdb_test.
	* gdb.base/constvars.exp: Replace send_gdb with gdb_test.
	* gdb.base/corefile.exp: Replace send_gdb with gdb_test.
	* gdb.base/default.exp: Replace send_gdb with gdb_test.
	* gdb.base/define.exp: Replace send_gdb with gdb_test.
	* gdb.base/display.exp: Replace send_gdb with gdb_test.
	* gdb.base/dump.exp: Replace send_gdb with gdb_test.
	* gdb.base/ending-run.exp: Replace send_gdb with gdb_test.
	* gdb.base/eval-skip.exp: Replace send_gdb with gdb_test.
	* gdb.base/exprs.exp: Replace send_gdb with gdb_test.
	* gdb.base/fileio.exp: Replace send_gdb with gdb_test.
	* gdb.base/finish.exp: Replace send_gdb with gdb_test.
	* gdb.base/foll-fork.exp: Replace send_gdb with gdb_test.
	* gdb.base/funcargs.exp: Replace send_gdb with gdb_test.
	* gdb.base/gcore-buffer-overflow.exp: Replace send_gdb with gdb_test.
	* gdb.base/gcore.exp: Replace send_gdb with gdb_test.
	* gdb.base/gdb1090.exp: Replace send_gdb with gdb_test.
	* gdb.base/gdbvars.exp: Replace send_gdb with gdb_test.
	* gdb.base/help.exp: Replace send_gdb with gdb_test.
	* gdb.base/info-proc.exp: Replace send_gdb with gdb_test.
	* gdb.base/jump.exp: Replace send_gdb with gdb_test.
	* gdb.base/long_long.exp: Replace send_gdb with gdb_test.
	* gdb.base/maint.exp: Replace send_gdb with gdb_test.
	* gdb.base/miscexprs.exp: Replace send_gdb with gdb_test.
	* gdb.base/nodebug.exp: Replace send_gdb with gdb_test.
	* gdb.base/pointers.exp: Replace send_gdb with gdb_test.
	* gdb.base/ptype.exp: Replace send_gdb with gdb_test.
	* gdb.base/whatis.exp: Replace send_gdb with gdb_test.

2010-05-25  Doug Evans  <dje@google.com>

	* gdb.python/py-cmd.exp: Add tests for gdb.GdbError and
	gdb.string_to_argv.

2010-05-21  Tom Tromey  <tromey@redhat.com>

	* gdb.dwarf2/pieces.exp (pieces_test_f3): New proc.
	Call it.
	* gdb.dwarf2/pieces.S: Update.
	* gdb.dwarf2/pieces.c (struct B): Remove initial field.

2010-05-21  Tom Tromey  <tromey@redhat.com>

	* gdb.dwarf2/pieces.exp (pieces_test_f6): New proc.
	Call it.
	* gdb.dwarf2/pieces.c (struct C): New.
	(f6): New function.
	* gdb.dwarf2/pieces.S: Replace.

2010-05-21  Tom Tromey  <tromey@redhat.com>

	* gdb.dwarf2/pieces.exp (pieces_test_f2): New proc.
	Call it.

2010-05-21  Tom Tromey  <tromey@redhat.com>

	* gdb.dwarf2.pieces.exp: New file.
	* gdb.dwarf2.pieces.S: New file.
	* gdb.dwarf2.pieces.c: New file.

2010-05-20  Pedro Alves  <pedro@codesourcery.com>
	    Joel Brobecker  <brobecker@adacore.com>

	* lib/gdb.exp (gdb_test_no_output): New function.
	* lib/gdb.ada/arrayidx.exp: Use gdb_test_no_output instead of gdb_test
	when testing commands that should produce no output.

2010-05-17  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/watch_arg/watch.adb: Rewrite testcase to avoid the
	parameter that we want to watch being a constant.

2010-05-17  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/cond_lang: New testcase.

2010-05-17  Joel Brobecker  <brobecker@adacore.com>

	* lib/gdb.exp (banned_variables): New variable/constant.
	(gdb_init): Add write trace on variables listed in banned_variables.
	(gdb_finish): Remove write traces on variables listed in
	banned_variables.

2010-05-17  Joel Brobecker  <brobecker@adacore.com>

	* gdb.base/gdb11530.exp: Delete setting of prms_id and bug_id.
	* gdb.cp/koenig.exp: Likewise.

2010-05-14  Phil Muldoon  <pmuldoon@redhat.com>

	PR python/11482

	* gdb.python/py-value.exp (test_value_hash): New function.

2010-05-11  Pierre Muller  <muller@ics.u-strasbg.fr>

	PR exp/11530.
	* gdb.base/gdb11530.c: New file.
	* gdb.base/gdb11530.exp: New file.

2010-05-08  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.dwarf2/dw2-modula2-self-type.exp: New.
	* gdb.dwarf2/dw2-modula2-self-type.S: New.

2010-05-07  Sami Wagiaalla  <swagiaal@redhat.com>

	* gdb.cp/koenig.exp: New test.
	* gdb.cp/koenig.cc: New test program.

2010-05-05  Joel Brobecker  <brobecker@adacore.com>

	Remove the use of prms_id and bug_id throughout the testsuite.

2010-05-04  Pierre Muller  <muller@ics.u-strasbg.fr>

	PR exp/11349.
	* testsuite/gdb.cp/ref-types.exp: Add test to examine
	use a reference local variable.

2010-05-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/break-interp.exp: Remove $exec.debug safety removal.
	* gdb.base/sepdebug.exp: Remove .debug subdirectory handling.  New
	variable different_dir. Move debugfile into a full directory pathname
	under DIFFERENT_DIR.
	* lib/gdb.exp (separate_debug_filename): Remove.
	(gdb_gnu_strip_debug): No longer call separate_debug_filename.  Remove
	variable debug_dir and mkdir of it.  Update function comments.

2010-04-29  Pedro Alves  <pedro@codesourcery.com>

	PR gdb/11557

	* gdb.mi/mi-ns-stale-regcache.exp, gdb.mi/ns-stale-regcache.c: New
	files.

2010-04-29  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.python/py-param.exp: New File.

2010-04-29  Mihail Zenkov  <mihail.zenkov@gmail.com>

	* gdb.base/default.exp: Fix "set language" test.

2010-04-24  Pierre Muller  <muller@ics.u-strasbg.fr>

	PR breakpoints/11531.
	* gdb.base/gdb11531.c: New file.
	* gdb.base/gdb11531.exp: New file.

2010-04-26  Tom Tromey  <tromey@redhat.com>

	* gdb.base/completion.exp: Add tests for completion and deprecated
	commands.

2010-04-26  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.pascal/gdb11492.exp (print integer_array, print /d char_array)
	(print /x char_array): Escape curly brackets.

2010-04-23  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix deadlock on looped list of loaded shared objects.
	* gdb.base/solib-corrupted.exp: New.

2010-04-23  Doug Evans  <dje@google.com>

	* gdb.python/py-section-script.c: New file.
	* gdb.python/py-section-script.exp: New file.
	* gdb.python/py-section-script.py: New file.

2010-04-20  Chris Moller  <cmoller@redhat.com>

	PR 10179

	* gdb.base/Makefile.in (EXECUTABLES): Added pr10179.
	* gdb.base/pr10179-a.c:
	* gdb.base/pr10179-b.c:
	* gdb.base/pr10179.exp: New files.

2010-04-22  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix crashes on dangling display expressions.
	* gdb.base/solib-display.exp: Call gdb_gnu_strip_debug if LIBSEPDEBUG
	is SEP.
	(lib_flags): Remove the "debug" keyword.
	(libsepdebug): New variable for iterating new loop.
	(save_pf_prefix): New variable wrapping the loop.
	(sep_lib_flags): New variable derived from LIB_FLAGS.  Use it.
	* lib/gdb.exp (gdb_gnu_strip_debug): Document the return code.

2010-04-22  Pierre Muller  <muller@ics.u-strasbg.fr>

	* gdb.threads/watchthreads.exp: Change to obtain consistent output.

2010-04-22  Pierre Muller  <muller@ics.u-strasbg.fr>

	PR stabs/11479.
	* gdb.stabs/gdb11479.exp: New file.
	* gdb.stabs/gdb11479.c: New file.

2010-04-22  Pierre Muller  <muller@ics.u-strasbg.fr>

	* gdb.base/charset.c (Strin16, String32): New variables.
	* gdb.base/charset.exp (gdb_test): Test correct display
	of 16 or 32 bit strings.

2010-04-21  Chris Moller  <cmoller@redhat.com>

	PR 9167
	* gdb.cp/Makefile.in (EXECUTABLES): Added pr9167.
	* gdb.cp/pr9167.cc: New file.
	* gdb.cp/pr9167.exp: New file.


2010-04-21  Pierre Muller  <muller@ics.u-strasbg.fr>

	PR pascal/11492.
	* gdb.pascal/gdb11492.pas: New file.
	* gdb.pascal/gdb11492.exp: New file.

2010-04-20  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/info_types.c, gdb.ada/info_types.exp: New files.

2010-04-20  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/dyn_loc: New testcase.

2010-04-20  Chris Moller  <cmoller@redhat.com>

	PR 10867

	* gdb.cp/Makefile.in  (EXECUTABLES): Added pr10687
	* gdb.cp/pr10687.cc: New file.
	* gdb.cp/pr10687.exp: New file.


2010-04-20  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Sergio Durigan Junior  <sergiodj@redhat.com>

	* gdb.fortran/logical.exp: New testcase.
	* gdb.fortran/logical.f90: New file.

2010-04-19  Doug Evans  <dje@google.com>

	* gdb.base/help.exp (help source): Update expected output.

2010-04-19  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/solib-display.exp: Replace gdb_exit, gdb_start,
	gdb_reinitialize_dir and gdb_load by clean_restart.  Remove trailing
	gdb_exit and return.
	(executable): New variable.
	(binfile): Use it.

2010-04-19  Pedro Alves  <pedro@codesourcery.com>

	PR breakpoints/8554.

	* gdb.trace/save-trace.exp: Adjust.

2010-04-17  H.J. Lu  <hongjiu.lu@intel.com>

	PR corefiles/11511
	* gdb.arch/system-gcore.exp: New.
	* gdb.arch/gcore.c: Likewise.

2010-04-15  Doug Evans  <dje@google.com>

	* gdb.python/py-progspace.c: New file.
	* gdb.python/py-progspace.exp: New file.

	* gdb.base/source.exp: Add tests for "source -s".

2010-04-14  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.python/py-prettyprint.py (NoStringContainerPrinter): New printer.
	* gdb.python/py-prettyprint.c: Add justchildren struct, typedefs.
	* gdb.python/py-prettyprint.exp: New test for to_string returning None.
	* gdb.python/py-mi.exp: New test for to_string returning None.

2010-04-12  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.python/py-breakpoint.c: Make result global.

2010-04-09  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix non-GNU make compatibility.
	* Makefile.in ($(TEST_TARGETS)): Conditionalize it by @GMAKE_TRUE@.

2010-04-09  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.python/py-breakpoint.exp: New File.
	* gdb.python/py-breakpoint.C: Ditto.

2010-04-08  Stan Shebs  <stan@codesourcery.com>

	* gdb.trace/actions.exp: Clear default-collect.
	* gdb.trace/save-trace.exp: Clear default-collect.

2010-04-08  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.python/py-value: Add null string variable.
	  (test_lazy_string): Test zero length, NULL address lazy
	  strings.

2010-04-07  H.J. Lu  <hongjiu.lu@intel.com>

	* gdb.arch/i386-avx.c: New.
	* gdb.arch/i386-avx.exp: Likewise.

	* gdb.arch/i386-cpuid.h: Updated from gcc 4.4.

2010-04-06  Doug Evans  <dje@google.com>

	* gdb.base/source-test.gdb: New file.
	* gdb.base/source.exp: Test source -v.

2010-04-06  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.cp/inherit.exp (test_print_anon_union): Fix re_class pattern.

2010-04-06  Pierre Muller  <muller@ics.u-strasbg.fr>

	* gdb.stabs/aout.sed: Convert all backslash to double backslash
	within one line, unless it is followed by a double quote.
	* gdb.stabs/hppa.sed: Idem.
	* gdb.stabs/weird.def: Add char and String constants
	* gdb.stabs/weird.exp: Check for correct parsing of
	char and string constants.
	* gdb.stabs/xcoff.sed: Ignore escaped quote quotes
	in .stabs to .stabx substitution.

2010-04-05  Stan Shebs  <stan@codesourcery.com>

	* gdb.trace/tfile.c: Add a variable split across two blocks, and a
	constant global.
	* gdb.trace/tfile.exp: Try to print them.

2010-04-04  Stan Shebs  <stan@codesourcery.com>

	* gdb.base/completion.exp: Update for new "info watchpoints".
	* gdb.base/default.exp: Ditto.
	* gdb.base/help.exp: Ditto.
	* gdb.base/watchpoint.exp: Ditto.
	* gdb.trace/infotrace.exp: Update "info tracpoints" output.

2010-04-04  Stan Shebs  <stan@codesourcery.com>

	* gdb.trace/tfile.exp: Sharpen tfind test.

2010-04-04  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/break-entry.exp: New.

2010-04-02  Hui Zhu  <teawater@gmail.com>
	    Michael Snyder <msnyder@vmware.com>

	* gdb.reverse/i386-sse-reverse.exp: New file.
	* gdb.reverse/i386-sse-reverse.c: New file.

2010-04-02  Pedro Alves  <pedro@codesourcery.com>

	* gdb.trace/tfind.exp: Adjust expected disassembly output.

2010-04-01  Stan Shebs  <stan@codesourcery.com>

	* gdb.trace/actions.exp: Tweak expected output.
	* gdb.trace/while-stepping.exp: Tweak expected output.

2010-04-01  H.J. Lu  <hongjiu.lu@intel.com>

	* gdb.arch/amd64-byte.exp: Check "ah", "bh", "ch", "dh".

2010-04-01  Pedro Alves  <pedro@codesourcery.com>

	* gdb.base/commands.exp: Adjust.
	* gdb.cp/extern-c.exp: Adjust.

2010-04-01  Pedro Alves  <pedro@codesourcery.com>

	* gdb.trace/collection.c (local_test_func): Define a local struct,
	and instanciate it.

2010-04-01  Pedro Alves  <pedro@codesourcery.com>

	* gdb.trace/collection.exp (gdb_collect_args_test)
	(gdb_collect_argarray_test): XFAIL the tests that assume the
	argarray argument's elements are collected.

2010-03-31  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.dwarf2/dw2-bad-parameter-type.exp,
	gdb.dwarf2/dw2-bad-parameter-type.S: New.

2010-03-31  Stan Shebs  <stan@codesourcery.com>

	* gdb.trace/save-trace.exp: Test save/restore of default-collect
	and tracepoint conditionals.
	(gdb_verify_tracepoints): Delete unused return.

2010-03-26  Keith Seitz  <keiths@redhat.com>

	* gdb.java/jmisc.exp (ptype jmisc): Allow the constructor to
	appear in the output before main.
	Remove KFAIL for gdb/2215 aka bz 9320.

2010-03-30  Doug Evans  <dje@google.com>

	* gdb.arch/amd64-word.exp: Rename hex to hexr, the former is defined
	by dejagnu.
	* gdb.arch/amd64-dword.exp: Ditto.

	* gdb.base/annota1.exp (break handle_USR1): Make fail and pass text
	match.
	(break printf): Ditto.

2010-03-29  Sami Wagiaalla  <swagiaal@redhat.com>

	* gdb.cp/nsusing.exp: Marked imported declaration test as xfail with
	gcc < 4.4.
	* gdb.cp/shadow.exp: Ditto.

2010-03-29  Pedro Alves  <pedro@codesourcery.com>

	* gdb.trace/collection.exp (run_trace_experiment): Make sure
	"tstart" is silent.

2010-03-29  Pedro Alves  <pedro@codesourcery.com>

	* gdb.trace/collection.exp (executable): New.
	(binfile): Use it.
	(fpreg, spreg, pcreg): New.
	(test_register): Use gdb_test_multiple.  Pass /x to print.
	(prepare_for_trace_test): New.
	(run_trace_experiment): Use "continue", not gdb_run_cmd.
	(gdb_collect_args_test, gdb_collect_argstruct_test)
	(gdb_collect_argarray_test, gdb_collect_locals_test): Use
	prepare_for_trace_test.
	(gdb_collect_registers_test): Use prepare_for_trace_test.  Use
	fpreg, spreg and pcreg.
	(gdb_collect_expression_test, gdb_collect_globals_test): Use
	prepare_for_trace_test.
	(gdb_trace_collection_test): Use fpreg, spreg and pcreg.  Don't
	try to detect tracing support here.  Don't set breakpoints at
	`begin' or `end' here.
	<global scope>: Use clean_restart.  Run to main before checking
	for tracing support.  Check for for tracing support here.

2010-03-28  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/break-interp.exp (test_core, test_attach, test_ld): Add
	" as $displacement" to "seen displacement message".

2010-03-28  Pedro Alves  <pedro@codesourcery.com>

	* gdb.trace/while-dyn.exp (executable): New variable.
	(binfile): Use it.
	(test_while_stepping): New function.  Move most tests here.  Call
	it once for each of the while-stepping, stepping and ws aliases.

2010-03-26  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.cp/inherit.exp (test_ptype_si): XFAIL test for GCC versions
	that do not provide the tagless_struct type name at all.
	(test_print_anon_union): Do not check value of uninitialized
	union member.  Do not use cp_test_ptype_class, so we can accept
	"long" as well as "long int".

2010-03-26  Pedro Alves  <pedro@codesourcery.com>

	* gdb.trace/tfile.c (tohex, bin2hex): New.
	(write_error_trace_file): Hexify error description.

2010-03-25  Stan Shebs  <stan@codesourcery.com>

	* gdb.trace/tfile.c: Generate an additional trace file, improve
	portability.
	* gdb.trace/tfile.exp: Test trace file with an error stop, delete
	files in a better way.

2010-03-25  Keith Seitz  <keiths@redhat.com>

	* gdb.java/jprint.exp: XFAIL printing of static class members
	because of GCC debuginfo problem.

2010-03-25  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/dup-sect.exp, gdb.base/dup-sect.S: New.

2010-03-24  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/completion.exp: Allow long instead of long int.
	* gdb.base/ending-run.exp: Match _rt_entry.* for RealView.
	* gdb.base/gdbvars.c (main): Remove unused usestubs code.  Reference
	variable p.
	* gdb.base/maint.exp: Allow ER_RO and ER_RW instead of .text and .data.
	* gdb.base/pointers.exp: Allow long instead of long int.
	* gdb.base/printcmds.exp: XFAIL for RealView on ARM EABI.
	* gdb.base/step-line.exp: Allow a directory before the source file name.

2010-03-24  Tom Tromey  <tromey@redhat.com>

	PR breakpoints/9352:
	* gdb.base/default.exp: Update.
	* gdb.base/commands.exp: Update.
	* gdb.cp/extern-c.exp: Test setting commands on multiple
	breakpoints at once.

2010-03-24  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/call-signal-resume.exp, gdb.base/unwindonsignal.exp: Skip
	if gdb,nosignals.
	* gdb.base/watchpoints.c: Do not include unnecessary headers.
	* lib/gdb.exp (gdb_test_multiple): Relax pattern for "the program
	exited".

2010-03-24  Stan Shebs  <stan@codesourcery.com>

	* gdb.trace/tfile.exp: Expect "trace frame", with a space.

2010-03-24  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/callfuncs.exp (do_function_calls): Add XFAILs for RealView.
	* gdb.base/ptype.exp (ptype_maybe_prototyped): Add overprototyped
	argument.  Handle "short" and "long".
	(Top level): Pass overprototyped output for old_fptr and xptr.

2010-03-23  Pedro Alves  <pedro@codesourcery.com>

	* gdb.threads/pthreads.c (thread1, thread2, main): Fix printf
	format strings and add casts to avoid compiler warnings.

2010-03-23  Vladimir Prus  <vladimir@codesourcery.com>

	* lib/trace-support.exp (gdb_trace_setactions):
	Don't expect whitespace after ">" prompt.
	* gdb.trace/actions.exp: Adjust for output changes.
	* gdb.trace/while-stepping.exp: Likewise.

2010-03-22  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* dg-extract-results.sh: Sync with GCC HEAD (import r155655, r157175
	and r157645).

2010-03-22  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.dwarf2/dw2-empty-namespace.exp, gdb.dwarf2/dw2-empty-namespace.S:
	New.

2010-03-22  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.python/Makefile.in (EXECUTABLES): Add py-mi.
	* gdb.python/py-mi.exp (binfile): Rename to py-mi.

2010-03-19  Stan Shebs  <stan@codesourcery.com>

	* gdb.trace/ax.exp: New file.

2010-03-19  Doug Evans  <dje@google.com>

	* lib/gdb.exp (gdb_compile_test): Watch for "compiler not installed"
	output from gcc.

	* gdb.base/break-interp.exp (prelinkNO): Handle prelink binaries
	named /usr/sbin/prelink<foo>.

2010-03-18  Stan Shebs  <stan@codesourcery.com>

	* gdb.trace/circ.exp: Test circular-trace-buffer.
	* gdb.trace/tfile.exp: Update tstatus test.

2010-03-18  Joel Brobecker  <brobecker@adacore.com>

	* gdb.dwarf2/dw2-anonymous-func.S: New file.
	* gdb.dwarf2/dw2-anonymous-func.exp: New testcase.

2010-03-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.mi/gdb680.exp: Revert 2009-06-17 change.

2010-03-18  Pedro Alves  <pedro@codesourcery.com>

	* gdb.base/default.exp: Adjust the expected output of the finish
	and until commands when the inferior is not being run.

2010-03-15  Sami Wagiaalla  <swagiaal@redhat.com>

	* gdb.cp/shadow.exp: Removed kfail; test has been fix.
	* gdb.cp/nsusing.exp: Ditto.

2010-03-15  Tom Tromey  <tromey@redhat.com>

	* gdb.cp/userdef.exp: Add tests for explicit calls to operator==.
	* gdb.cp/userdef.cc (operator==): New function.
	(main): New locals mem1, mem2.

2010-03-15  Jie Zhang  <jie@codesourcery.com>

	* lib/mi-support.exp (mi_gdb_target_load): Delete unused timeout var.
	Declare and use new loadtimeout variable.

2010-03-14  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/printcmds.exp: Use gdb_file_cmd instead of gdb_load.
	Use gdb_load later.

2010-03-14  Pedro Alves  <pedro@codesourcery.com>

	* gdb.base/solib-disc.c (main): Make format of fprintf a string
	literal.  Add missing endlines to prints to stderr.

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

	PR c++/9708:
	* gdb.cp/m-static.exp: Add regression test.
	* gdb.cp/m-static.cc (method): New method.
	(main): Call it.

2010-03-12  Sami Wagiaalla  <swagiaal@redhat.com>

	* gdb.cp/gdb2384-base.h: Created 'namespace B'.
	* gdb.cp/gdb2384-base.cc: Use 'namespace B'.

2010-03-12  Daniel Jacobowitz  <dan@codesourcery.com>

	* lib/gdb.exp (gdb_test_multiple): Handle -timeout.

2010-03-12  Daniel Jacobowitz  <dan@codesourcery.com>

	* lib/gdb.exp (skip_stl_tests): New.
	(gdb_compile): Symbian needs -ldl.
	(shlib_target_file): New.
	(shlib_symbol_file): New.
	(gdb_load_shlibs): Use shlib_target_file.
	* lib/mi-support.exp (mi_load_shlibs): Use shlib_target_file.
	* gdb.cp/exception.exp: Use skip_stl_tests.
	* gdb.cp/bs15503.exp: Use skip_stl_tests.  Use untested.
	* gdb.cp/try_catch.exp: Use skip_stl_tests.
	* gdb.cp/mb-templates.exp: Ditto.
	* gdb.base/commands.exp: Relax regexes.
	* gdb.base/watchpoint-solib.exp: Don't skip on symbian.  Use
	shlib_target_file and shlib_symbol_file.
	* gdb.base/maint.exp: Allow lowercase t.  Allow .rodata in
	sections.
	* gdb.base/ending-run.exp: Accept E32Main for symbian.
	* gdb.base/solib-disc.exp: Use
	shlib_target_file and shlib_symbol_file.
	* gdb.base/unload.exp: Don't skip on symbian.  Use
	shlib_target_file and shlib_symbol_file.
	* gdb.base/list.exp: Check use_gdb_stub instead of is_remote.

2010-03-12  Pedro Alves  <pedro@codesourcery.com>

	* gdb.trace/backtrace.exp: Adjust for x86 and x86_64.
	* gdb.trace/report.exp: Adjust for x86 and x86_64.
	Issue a tfind end before looking for a tracepoint frame.
	* gdb.trace/tfind.exp: Adjust tstatus output.
	Adjust disassembly output.
	* gdb.trace/while-dyn.exp: Adjust for x86 and x86_64.

2010-03-11  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/break-interp.exp: Create new displacement parameter value
	for the test_ld calls.
	(reach): New parameter displacement, verify its content.  New push of
	pf_prefix "reach-$func:".  Import global expect_out.
	(test_core): New parameter displacement, verify its content.  New push
	of pf_prefix "core:".  New command "set verbose on".  Import global
	expect_out.
	(test_attach): New parameter displacement, verify its content.  New
	push of pf_prefix "attach:".  New command "set verbose on".  Import
	global expect_out.
	(test_ld): New parameter displacement, pass it to the reach, test_core
	and test_attach calls and verify its content in the "ld.so exit" test.
	* gdb.base/prelink.exp: Remove gdb_exit and final return.
	(prelink): Update expected text, use gdb_test.

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

	* gdb.base/checkpoint.exp: Fix comment.
	Lengthen timeout while doing >600 checkpoints test.
	Rename duplicate "kill all one" test to keep test names unique.

2010-03-10  Pedro Alves  <pedro@codesourcery.com>

	* gdb.base/watch-cond.c, gdb.base/watch-cond.exp: New.

2010-03-08  Keith Seitz  <keiths@redhat.com>

	* gdb.cp/cp-relocate.exp: Remove single-quoting of C++ methods.
	* gdb.cp/cplusfuncs.cc (dm_type_short): New function.
	(dm_type_long): New function.
	(dm_type_unsigned_short): New function.
	(dm_type_unsigned_long): New function.
	(myint): New typedef.
	* gdb.cp/cplusfuncs.exp (probe_demangler): Add tests for short,
	long, unsigned shor and long, operator char*, and typedef.
	(test_lookup_operator_functions): Add operator char* test.
	(test_paddr_operator_functions): Likewise.
	(test_paddr_overloaded_functions): Use probe values for
	short, long, and unsigned short and long.
	(test_paddr_hairy_functions): If the demangler probe detected
	gdb type printers, "expect" them. Otherwise "expect" the v2 or v3
	demangler.
	* gdb.cp/expand-sals.exp: Backtrace may contain class names.
	* gdb.cp/member-ptr.exp: Refine expected result for "print pmf"
	and "print null_pmf".
	Add test "ptype a.*pmf".
	* gdb.cp/overload.exp: Allow optional "int" to appear with
	"short" and "long".
	* gdb.cp/ovldbreak.exp: Use append to construct super-duper
	long expect value for men_overload1arg.
	Allow "int" to appear with "short" and "long".
	When testing "info break", add argument for main (void).
	Also allow "int" to appear with "short" and "long".
	Ditto with "unsigned" and "long long".
	* gdb.java/jmain.exp: Do not enclose methods names in single
	quotes.
	* gdb.java/jmisc.exp: Likewise.
	* gdb.java/jprint.exp: Likewise.
	* gdb.python/py-symbol.exp: Update expected "linkage_name" value.

	From Jan Kratochvil  <jan.kratochvil@redhat.com>:
	* gdb.cp/exception.exp (backtrace after first throw)
	(backtrace after second throw): Allow a namespace before __cxa_throw.
	(backtrace after first catch, backtrace after second catch): Allow
	a namespace before __cxa_begin_catch.

	* gdb.cp/cpexprs.exp: New file.
	* gdb.cp/cpexprs.cc: New file.

	From Daniel Jacobowitz  <dan@codesourcery.com>
	* gdb.cp/cpexprs.exp (escape): Delete.  Change all callers
	to use string_to_regexp.
	(ctor, dtor): New functions.  Use them to match constructor
	and destructor function types.
	(Top level): Use runto_main.

2010-03-05  Tom Tromey  <tromey@redhat.com>

	* gdb.python/py-prettyprint.py (pp_nullstr.to_string): Use
	gdb.target_charset.
	(pp_ns.to_string): Likewise.

2010-03-04  Keith Seitz  <keiths@redhat.com>

	* gdb.cp/overload.exp: Test that the filename portion of a linespec
	can be quoted.  Test that both the filename and function/line
	portions can be quoted at the same time.

2010-03-04  Pedro Alves  <pedro@codesourcery.com>

	* gdb.base/watch-non-mem.c, gdb.base/watch-non-mem.exp: New.

2010-03-03  Doug Evans  <dje@google.com>

	* lib/gdb.exp (gdb_compile_pthreads): Handle case where
	libc contains libpthread.

	* gdb.threads/linux-dp.c (shared_random): Call rand instead of rand_r.
	* gdb.threads/linux-dp.exp: Compile with gdb_compile_pthreads instead
	of gdb_compile.  Add another pattern to match android backtrace.

2010-03-03  Tom Tromey  <tromey@redhat.com>

	PR gdb/11345:
	* gdb.base/printcmds.exp (test_printf): Add test.

2010-03-02  H.J. Lu  <hongjiu.lu@intel.com>

	* gdb.arch/amd64-byte.exp: New.
	* gdb.arch/amd64-dword.exp: Likewise.
	* gdb.arch/amd64-pseudo.c: Likewise.
	* gdb.arch/amd64-word.exp: Likewise.
	* gdb.arch/i386-byte.exp: Likewise.
	* gdb.arch/i386-pseudo.c: Likewise.
	* gdb.arch/i386-word.exp: Likewise.

2010-03-01  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.xml/extra-regs.xml: Add struct1, struct2, and flags
	types.  Add structreg, bitfields, and flags registers.
	* gdb.xml/tdesc-regs.exp: Test structreg and bitfields
	registers.

2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>

	* gdb.xml/tdesc-regs.exp (architecture): New.  Set it for x86.
	(load_description): Set architecture if defined.

2010-02-28  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.python/py-frame.exp: Add read_var block tests.
	* gdb.python/py-frame.c (block): New function.

2010-02-28  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/callfuncs.exp: New tests for $spval 0 and -1.  Remove return.

2010-02-25  David S. Miller  <davem@davemloft.net>

	* gdb.base/catch-syscall.exp: Allow to run on sparc*-*-linux and
	fix logic for setting all_syscalls_numbers.

2010-02-24  Phil Muldoon  <pmuldoon@redhat.com>

	* Makefile.in: Add py-block and py-symbol.
	* gdb.python/py-symbol.exp: New File.
	* gdb.python/py-symtab.exp: New File.
	* gdb.python/py-block.exp: New File.
	* gdb.python/py-symbol.c: New File.
	* gdb.python/py-block.c: New File.

2010-02-24  Phil Muldoon  <pmuldoon@redhat.com>

	PR python/11314
	* lib/gdb.exp (skip_python_tests): New function.
	* gdb.python/py-cmd.exp: Use skip_python_tests.
	* gdb.python/py-frame.exp: Likewise.
	* gdb.python/py-function.exp: Likewise.
	* gdb.python/py-prettyprint.exp: Likewise.
	* gdb.python/py-template.exp: Likewise.
	* gdb.python/py-type.exp: Likewise.
	* gdb.python/py-value.exp: Likewise.

2010-02-22  Pedro Alves  <pedro@codesourcery.com>

	PR9605

	* gdb.base/watch-read.c, gdb.base/watch-read.exp: New files.

2010-02-19  Tom Tromey  <tromey@redhat.com>

	PR c++/8693, PR c++/9496:
	* gdb.cp/namespace.exp: Remove some setup_kfail calls.  Added
	regression tests.

2010-02-19  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix compatibility with m68k as.
	* gdb.dwarf2/member-ptr-forwardref.S: Use .data section.  Use .2byte.
	Use only /* comments */.

2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* configure.ac: Add gdb.multi/Makefile to AC_OUTPUT.
	* configure: Regenerate.

2010-02-18  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.python/py-type.exp: Check for Python support.

2010-02-17  Pedro Alves  <pedro@codesourcery.com>

	* lib/gdb.exp (build_id_debug_filename_get): Don't assume new
	`regsub' syntax available.

2010-02-17  Pedro Alves  <pedro@codesourcery.com>

	* gdb.base/shmain.c (main): Remove printf call.
	* gdb.base/sizeof.c (main): Cast return of sizeof to int.
	* gdb.base/unload.c (main): Make format of fprintf a string
	literal.  Add missing endlines to prints to stderr.
	* gdb.base/watchpoint-solib.c (open_shlib): Ditto.

2010-02-17  Tom Tromey  <tromey@redhat.com>

	* gdb.java/jprint.java (jprint.props): New field.
	* gdb.java/jprint.exp (set_lang_java): Add regression test.

2010-02-17  Pedro Alves  <pedro@codesourcery.com>

	* gdb.base/charset.exp: Don't assume new `regsub' syntax
	available.

2010-02-16  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.xml/tdesc-arch.exp, gdb.xml/tdesc-regs.exp: Rewrite file
	creation to support remote host testing.

2010-02-16  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/valgrind-db-attach.exp: Use unsupported instead of xfail.
	Recognize "command not found".

2010-02-16  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.arch/thumb2-it.exp (test_it_break): Handle hardware
	single-stepping.

2010-02-16  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.python/py-value.exp (test_value_in_inferior): Skip arg0 test
	if arguments are not supported.

2010-02-16  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.cp/overload.exp: Allow foo::overload1arg's "this" pointer to
	be const or non-const.

2010-02-16  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.mi/mi-break.exp (test_breakpoint_commands): Use
	mi_send_resuming_command to send -exec-continue.

2010-02-16  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/list.exp (test_list_filename_and_function): Add test
	with single quotes.
	* gdb.cp/overload.cc (intToChar): Rewrite onto one line for easy
	matching.
	* gdb.cp/overload.exp: Add tests with filename, function, and quotes.
	Add KFAIL'd tests for PR gdb/11289.

2010-02-16  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.cp/cpcompletion.exp: Specify source file name explicitly.

2010-02-16  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/comp-dir/subdir/dummy.txt: New file.
	* gdb.base/completion.exp: Use comp-dir/subdir instead of creating
	a temporary directory.

2010-02-16  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/charset.exp: Use a single regular expression to match
	show host-charset and show target-charset output.

2010-02-15  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/attach.exp (attach to nonsense is prohibited): Make the
	"Illegal process-id" expect string more exact.
	(attach to digits-starting nonsense is prohibited): New.

2010-02-13  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/prelink.exp (set verbose on): New.

2010-02-12  Tomas Holmberg  <th@virtutech.com>

	* mi-reverse.exp: New file. Test for reverse option to the
	following MI commands: exec-continue, exec-finish, exec-next,
	exec-step, exec-next-instruction, exec-step-instruction.

2010-02-09  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/ptype_tagged_param: New testcase.

2010-02-08  Tom Tromey  <tromey@redhat.com>

	PR c++/8017:
	* gdb.cp/overload.exp: Add tests.
	* gdb.cp/overload.cc (struct K): New.
	(namespace N): New.
	(main): Call new functions.
	(K::staticoverload): Define.

2010-02-08  Chris Moller  <moller@mollerware.com>

	PR gdb/10728
	* gdb.cp/pr10728-x.h: New file.
	* gdb.cp/pr10728-x.cc: New file.
	* gdb.cp/pr10728-y.cc: New file.
	* gdb.cp/pr10728.exp: New file.
	* gdb.cp/Makefile.in (EXECUTABLES): Add pr10728

2010-02-08  Chris Moller  <moller@mollerware.com>

	PR gdb/9067
	* gdb.cp/pr9067.exp:  New
	* gdb.cp/pr9067.cc:   New
	* gdb.cp/Makefile.in (EXECUTABLES): Add pr9067

2010-02-08  Joel Brobecker  <brobecker@adacore.com>

	* lib/gdb.exp (gdb_test_timeout): New global variable.
	Set it to timeout if not already set.
	(gdb_init): Reset the value of timeout to gdb_test_timeout.

2010-02-05  Doug Evans  <dje@google.com>

	* lib/gdb.exp (INTERNAL_GDBFLAGS): Don't override value provided by
	user.

2010-02-05  Sami Wagiaalla  <swagiaal@redhat.com>

	PR c++/7935:
	* gdb.cp/namespace-using.exp: Removed kfail; bug has been fixed.

2010-02-04  Tom Tromey  <tromey@redhat.com>

	* gdb.cp/virtbase.exp: Make test case names unique.

2010-02-02  Tom Tromey  <tromey@redhat.com>

	* gdb.cp/virtbase.exp: Add regression tests.
	* gdb.cp/virtbase.cc (RHA, RHB, RHC): New classes.
	(main): Instantiate RHC.

2010-02-02  Tom Tromey  <tromey@redhat.com>

	* gdb.dwarf2/member-ptr-forwardref.exp: Update expected result for
	type-printing change.

2010-02-02  Tom Tromey  <tromey@redhat.com>

	PR c++/11226, PR c++/9629, PR c++/9688, PR c++/8890:
	* gdb.cp/virtbase.cc: New file.
	* gdb.cp/virtbase.exp: New file.
	* gdb.cp/userdef.exp: Allow 'struct' or 'class'.

2010-02-01  Jan Kratochvil  <jan.kratochvil@redhat.com>

	PR libc/11214:
	* gdb.threads/current-lwp-dead.c: Include features.h.
	(HAS_NOMMU): New.
	(fn, main): Move CLONE_VM into [__UCLIBC__ && HAS_NOMMU].

2010-02-01  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/symbol-without-target_section.exp,
	gdb.base/symbol-without-target_section.c: New.

2010-02-01  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/bigcore.exp: Reset increased timeout.
	* gdb.base/interrupt.exp: Match unexpected gdb prompt.

2010-02-01  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/gcore.exp (capture_command_output): Use
	gdb_test_multiple.

2010-02-01  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.arch/thumb2-it.S (it_breakpoints): New function.
	* gdb.arch/thumb2-it.exp (test_it_break): New function.
	(Top level): Call it.

2010-02-01  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.arch/thumb2-it.S, gdb.arch/thumb2-it.exp: New files.

2010-01-29  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/call-strs.exp, gdb.base/default.exp,
	gdb.base/ending-run.exp, gdb.base/finish.exp, gdb.base/funcargs.exp,
	gdb.base/huge.exp, gdb.base/nodebug.exp, gdb.base/ptype.exp,
	gdb.base/restore.exp, gdb.base/return.exp, gdb.base/setvar.exp,
	gdb.base/watchpoints.exp, gdb.threads/gcore-thread.exp,
	gdb.base/watchpoint-solib.exp: Save and restore timeout.
	* gdb.base/ending-run.exp: Correct restore of timeout.
	* gdb.base/page.exp: Remove unnecessary timeout setting.

2010-01-29  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/rec_return: New testcase.

2010-01-29  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/call_pn: New testcase.

2010-01-28  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.mi/mi-nonstop.exp (mi_nonstop_resume): New function.
	(Top level): Use it to resume.
	* lib/mi-support.exp (mi_send_resuming_command_raw): Recognize
	the Thumb mode displaced stepping error as unsupported.

2010-01-28  Sami Wagiaalla  <swagiaal@redhat.com>

	* gdb.cp/nsusing.exp: Added more tests.
	* gdb.cp/nsrecurs.exp: Ditto.
	* gdb.cp/nsusing.cc: Added test functions.
	* gdb.cp/nsrecurs.cc: Ditto.

2010-01-27  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/break-interp.exp: Use [file tail $filename] to omit any
	absolute directory pathnames in gdb.sum file.

2010-01-27  Sami Wagiaalla  <swagiaal@redhat.com>

	* gdb.cp/namespace-using.exp: Rename to nsusing.exp.
	* gdb.cp/namespace-using.cc: Rename to nsusing.cc.

2010-01-26  Tom Tromey  <tromey@redhat.com>

	PR exp/7643:
	* gdb.base/printcmds.exp (test_print_string_constants): Remove
	setup_kfail.

2010-01-14  Sami Wagiaalla  <swagiaal@redhat.com>

	* gdb.cp/nsrecurs.exp: New test.
	* gdb.cp/nsrecurs.cc: New test program.
	* gdb.cp/nsstress.exp: New test.
	* gdb.cp/nsstress.cc: New test program.
	* gdb.cp/nsdecl.exp: New test.
	* gdb.cp/nsdecl.cc: New test program.

2010-01-26  Sami Wagiaalla  <swagiaal@redhat.com>

	* gdb.cp/namespace-using.exp: Add test for printing of namespaces
	imported into file scope.
	Marked test as xfail.
	* gdb.cp/namespace-using.cc (marker5): New function.
	* gdb.cp/shadow.exp: New test.
	* gdb.cp/shadow.cc: New test program.
	* gdb.cp/nsimport.exp: New test.
	* gdb.cp/nsimport.cc: New test program.

2010-01-25  Tom Tromey  <tromey@redhat.com>

	PR gdb/11049:
	* gdb.base/printcmds.exp (test_print_typedef_arrays): Add test
	with "set print null-stop on".

2010-01-24  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.arch/i386-bp_permanent.exp (Disassemble function '$function'):
	Adjust it for DISASSEMBLY_OMIT_FNAME.

2010-01-22  Jan Kratochvil  <jan.kratochvil@redhat.com>

	PR symtab/11199:
	* gdb.dwarf2/member-ptr-forwardref.exp,
	gdb.dwarf2/member-ptr-forwardref.S: New.

2010-01-20  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.threads/watchthreads-reorder.c (gdbstop_mutex): Remove.
	(thread1_func): Protect thread1_tid with thread1_tid_cond by
	thread1_tid_mutex.  Remove gdbstop_mutex handling.
	(thread2_func): Protect thread2_tid with thread2_tid_cond by
	thread2_tid_mutex.  Remove gdbstop_mutex handling.
	(main): Move thread1_tid_mutex and thread2_tid_mutex locks before
	pthread_create.  Remove gdbstop_mutex handling.  New comment.  Replace
	pthread_cond_wait conditionalizations by while loops.

2010-01-20  Tom Tromey  <tromey@redhat.com>

	PR backtrace/10770:
	* gdb.dwarf2/pr10770.exp: New file.
	* gdb.dwarf2/pr10770.c: New file.
	* gdb.dwarf2/Makefile.in (EXECUTABLES): Add pr10770.

2010-01-20  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.mi/mi-async.exp: Remove check for 'async' target, because
	that target was removed, and the test always runs native anyway.

2010-01-19  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/watchpoint-cond-gone.exp, gdb.base/watchpoint-cond-gone.c,
	gdb.base/watchpoint-cond-gone-stripped.c: New.

2010-01-19  Tom Tromey  <tromey@redhat.com>

	PR c++/8000:
	* gdb.cp/namespace.exp: Use new enum.  Fix line numbers in
	existing tests.
	* gdb.cp/namespace.cc (AAA::SomeEnum): New enum.
	(main): Use AAA::SomeEnum.

2010-01-19  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.mi/mi-break.exp (set line_callme_head, set line_callme_body): New.
	(test_ignore_count): Declare line_callme_body global.
	(run to breakpoint with ignore count): Use line_callme_body.
	* gdb.mi/mi-cli.exp (set line_main_head, set line_main_body)
	(set line_main_hello, set line_main_return): Reindent.
	(set line_callee4_head, set line_callee4_body, set line_callee4_next):
	New.
	(continue to callee4): Use line_callee4_body.
	(check *stopped from CLI command): Use line_callee4_next.
	* gdb.mi/mi2-cli.exp (set line_main_head, set line_main_body)
	(set line_main_hello, set line_main_return): Reindent.
	(set line_callee4_head, set line_callee4_body): New.
	(continue to callee4): Use line_callee4_body.

2010-01-18  Tom Tromey  <tromey@redhat.com>

	PR c++/9680:
	* gdb.cp/casts.cc: Add new classes and variables.
	* gdb.cp/casts.exp: Test new operators.

2010-01-18  Tom Tromey  <tromey@redhat.com>
	    Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* gdb.python/source2.py: New file.
	* gdb.python/source1: New file.
	* gdb.python/python.exp: Test "source" command.

2010-01-15  Stan Shebs  <stan@codesourcery.com>

	* gdb.trace/tfile.c: New file.
	* gdb.trace/tfile.exp: New file.

2010-01-14  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/pie-support.exp, gdb.base/pie-support.c: Remove.

2010-01-14  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/valgrind-db-attach.exp, gdb.base/valgrind-db-attach.c: New.

2010-01-14  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/break-interp-lib.c: Include unistd.h, assert.h and stdio.h.
	(libfunc): New parameter action.  Implement also selectable "sleep".
	* gdb.base/break-interp-main.c: Include assert.h.
	(libfunc): New parameter action.
	(main): New parameters argc and argv.  Assert argc.  Pass argv.
	* gdb.base/break-interp.exp (test_core): Pass the "segv" argument.
	(test_attach): New proc.
	(test_ld): Pass new "segv" exec parameter.  Call also test_attach.
	* lib/gdb.exp (core_find): New parameter arg.  Pass it to $binfile.

2010-01-14  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/break-interp.exp (test_core): New proc.
	(test_ld): Call it.

2010-01-14  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/break-interp-main.c, gdb.base/break-interp-lib.c: New.
	* gdb.base/break-interp.exp: Exit on skip_shlib_tests.  Change $srcfile.
	New variables $binfile_lib and $srcfile_lib.  Call get_compiler_info
	and gdb_compile_shlib.  Use new -Wl compiler options.
	(dl bt, main bt): New tests.

2010-01-14  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Support PIEs with no symfile_objfile.
	* gdb.base/break-interp.exp: New argument at the test_ld calls.
	(test_ld): New parameter trynosym.
	(test_ld <$trynosym>): New block.

2010-01-14  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/break-interp.exp: New file.

2010-01-13  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.python/py-value.exp (test_lazy_strings): Add lazy string test.
	* gdb.python/py-prettyprint.py (pp_ls): New printer.
	* gdb.python/py-prettyprint.exp (run_lang_tests): Add lazy string
	test.
	* gdb.python/py-prettyprint.c: Define lazystring test structure.
	* gdb.python/py-mi.exp: Add lazy string test.

2010-01-13  Vladimir Prus  <vladimir@codesourcery.com>

	* lib/mi-support.exp (mi_check_thread_states): Handle
	core number in thread listing.

2010-01-12  Joel Brobecker  <brobecker@adacore.com>

	* gdb.base/maint.exp: Adjust the expected output for the
	"maint print type" test. Use gdb_test_multiple instead of
	gdb_sent/gdb_expect.

2010-01-11  Doug Evans  <dje@google.com>

	* lib/gdbserver-support.exp (gdbserver_download_current_prog): Rename
	from gdbserver_download.  All callers updated.

	* gdb.server/ext-run.exp: "info os processes" requires xml support.

2010-01-11  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Implement binary numbers parsing.
	* gdb.base/printcmds.exp (test_integer_literals_accepted)
	(test_integer_literals_rejected): New binary tests.

2010-01-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* gdb.cell/configure: Regenerate.

2010-01-09  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/corefile.exp: Move the core finding block out and call it as
	core_find, new variable $corefile, replace corefile by $corefile and
	[file tail $corefile] for usage vs. test names resp.
	* lib/gdb.exp (core_find): Move it as a new function here.  New
	parameter binfile and deletefiles.  New variable $destcore.  Pre-delete
	$destcore.  Return "" on error.

2010-01-08  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Workaround PR binutils/10802.
	* lib/gdb.exp (gdb_gnu_strip_debug): Preserve the file attributes
	(twice).

2010-01-08  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.cp/gdb2495.exp: Skip if gdb,nosignals.

2010-01-08  Joel Brobecker  <brobecker@adacore.com>

	* lib/gdb.exp (gdb_start_cmd): Move comment outside of gdb_expect
	call, to avoid interruption.

2010-01-08  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.stabs/weird.def (args93): New.

2010-01-07  Doug Evans  <dje@google.com>

	* lib/gdb.exp (gdb_skip_xml_test): Add comment.

2010-01-07  Tom Tromey  <tromey@redhat.com>

	* gdb.base/source.exp: Use correct line number.

2010-01-05  Stan Shebs  <stan@codesourcery.com>

	* gdb.trace/tracecmd.exp: Test ftrace.

2010-01-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.xml/tdesc-regs.exp: Support s390*-*-* targets.

2010-01-03  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.mi/var-cmd.c (do_bitfield_tests): Change "V.sharable" type to
	"uint_for_mi_testing".

2010-01-01  Joel Brobecker  <brobecker@adacore.com>

	Test indented comment in file being sourced.
	* gdb.base/commands.exp: Test indented comment in file being sourced.

2010-01-01  Joel Brobecker  <brobecker@adacore.com>

	* gdb.fortran/array-element.f, gdb.fortran/complex.f,
	gdb.fortran/derived-type.f90, gdb.fortran/module.f90,
	gdb.fortran/subarray.f, gdb.mi/array.f: Update year in copyright
	notice.

2010-01-01  Joel Brobecker  <brobecker@adacore.com>

	* gdb.arch/gdb1291.s, gdb.arch/gdb1431.s: Update year in copyright
	notice.

2010-01-01  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* lib/mi-support.exp (mi_expect_stop <stopped at wrong place>): Insert
	missing $after_stopped and comma (,) expectation.

2009-12-31  Stan Shebs  <stan@codesourcery.com>

	* gdb.trace/actions.exp: Test teval action.

2009-12-30  Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* gdb.base/watchpoint.exp (test_watchpoint_in_big_blob): New function.
	(top level): Call test_watchpoint_in_big_blob.
	* gdb.base/watchpoint.c (buf): Change size to value too big for hardware
	watchpoints.
	(func3): Write to buf.

2009-12-29  Stan Shebs  <stan@codesourcery.com>

	* gdb.trace/actions.exp: Test default-collect.

2009-12-28  Stan Shebs  <stan@codesourcery.com>

	* gdb.trace/tsv.exp: New file.
	* gdb.base/completion.exp: Update ambiguous info output.

2009-12-28  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/find.c (main): Reference search buffers.
	* gdb.base/included.c (main): Reference integer.
	* gdb.base/ptype.c (charfoo): Declare.
	(intfoo): Call charfoo.
	* gdb.base/scope0.c (useitp): New function.
	(usestatics): Use useitp.
	(useit): Add a type for val.
	* gdb.base/scope1.c (useit1): Take a pointer argument.
	(usestatics1): Update calls to useit1.
	* gdb.cp/call-c.cc: Declare foo.
	(main): Call foo.
	* gdb.cp/m-static.cc (main): Reference test4.elsewhere.
	* gdb.cp/namespace.cc (ensureOtherRefs): Declare.
	(main): Call C::ensureRefs and ensureOtherRefs.
	* gdb.cp/namespace1.cc (C::ensureOtherRefs): Also reference int
	variables.
	(ensureOtherRefs): New function.
	* gdb.cp/overload.cc (main): Call all overloadNamespace variants.
	* gdb.cp/templates.cc (main): Call t5i.value.

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

	Fix compatibility with G++-4.5.
	* gdb.cp/expand-sals.cc (main): Remove the "exit-line" comment.
	* gdb.cp/expand-sals.exp: Remove breakpoint on "exit-line".
	(uncaught return): Remove.

2009-12-23  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.base/condbreak.exp: Put breakpoint on marker3 and marker4.
	(bp_location13, bp_location14, bp_location17, bp_location18)
	(marker3_proto, marker4_proto): New variables.
	(breakpoint info): Update output.
	(run until breakpoint at marker3, run until breakpoint at marker4): New
	tests.

2009-12-23  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/unload.c (main): Change the UNLOADSHR parameter to 1.
	Replace the printf call of Y by provided "y-set-1" label.  New block
	for the second shared library.
	* gdb.base/unload.exp: Compile also the second library, call
	gdb_load_shlibs also for it.  Use now gdb_breakpoint.
	(single pending breakpoint info): Rename to ...
	(pending breakpoint info before run): ... this extended test.
	(libfile2, libname2, libsrcfile2, libsrc2)
	(lib_sl2): New variables.
	(exec_opts): Set also SHLIB_NAME2.
	(pending breakpoint info on first run at shrfunc1)
	(pending breakpoint info on second run at shrfunc1)
	(pending breakpoint info on second run at shrfunc2)
	(print y from libfile, print y from libfile2): New tests.
	* gdb.base/unloadshr.c (shrfunc1): Change the returned value.
	* gdb.base/unloadshr2.c: New.

2009-12-22  Hui Zhu  <teawater@gmail.com>

	* gdb.reverse/sigall-reverse.exp: Adjust.

2009-12-21  Vladimir Prus  <vladimir@codesourcery.com>

	PR gdb/10884

	* gdb.mi/var-cmd.c (do_bitfield_tests): New
	(main): Call do_bitfield_tests.
	* gdb.mi/mi-var-cmd.exp: Run the 'bitfield' testcase.

2009-12-20  Joel Brobecker  <brobecker@adacore.com>

	* Makefile.in gdb.ada/gnat_ada.gpr, gdb.base/gcore-buffer-overflow.c,
	gdb.base/gcore-buffer-overflow.exp, gdb.base/source-error.gdb,
	gdb.base/watch_thread_num.c, gdb.java/jprint.java,
	gdb.mi/mi-async.exp, gdb.modula2/unbounded-array.exp,
	gdb.modula2/unbounded1.c: Update copyright header.

2009-12-10  Chris Moller  <moller@mollerware.com>

	PR gdb/9399
	* gdb.cp/virtfunc2.exp: New tests
	* gdb.cp/virtfunc2.cc: New tests
	* gdb.cp/Makefile.in: Added tests to EXECUTABLES

2009-12-10  Oza Pawandeep (paawan1982@yahoo.com

	* gdb.reverse/i387-env-reverse.c: New file.
	* gdb.reverse/i387-env-reverse.exp: New file.
	* gdb.reverse/i387-stack-reverse.c: New file.
	* gdb.reverse/i387-stack-reverse.exp: New file.

2009-12-08  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.python/py-type.exp (test_range): New test.

2009-12-03  Phil Muldoon <pmuldoon@redhat.com>

	PR python/10805

	* gdb.python/py-type.exp: New file.
	* gdb.python/py-type.c: New file.
	* Makefile.in: Add py-type.

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

	* gdb.python/py-value.exp (test_parse_and_eval): New
	function.

2009-12-03  Paul Pluzhnikov  <ppluzhnikov@google.com>

       PR gdb/11022

       * gdb.base/pr11022.exp: New test.
       * gdb.base/pr11022.c: New test.

2009-12-03  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix spurious false FAILs.
	* gdb.base/structs.c (chartest): New.
	(main): Fill-in chartest.
	* gdb.base/structs.exp (anychar_re, first): New.
	(start_structs_test): Import global anychar_re and first.
	New gdb_test call "set print elements 300; ${testfile}"
	(start_structs_test <$first>): New block.
	(any): Import global anychar_re.  New variable ac.  Use ${ac}.

2009-11-30  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/bigcore.exp (extract_heap): Set $lim limit to 200.

2009-11-30  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/foll-fork.exp (unpatch child, breakpoint at exit call):
	Force $srcfile file.
	* gdb.base/foll-fork.c (callee): Comment out the printf call.

2009-11-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.base/hbreak.exp: Disable for s390*-*-* targets.
	* gdb.base/watchpoint-hw-hit-once.exp: Likewise.
	* gdb.threads/watchthreads-reorder.exp: Likewise.

2009-11-24  Daniel Jacobowitz  <dan@codesourcery.com>

	PR gdb/8704

	* gdb.base/condbreak.exp: Test combinations of "break *EXP",
	"if", and "thread".  Correct matching in the previous test.

2009-11-25  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.cp/extern-c.cc, gdb.cp/extern-c.exp: New test.

2009-11-23  Michael Snyder  <msnyder@vmware.com>

	* gdb.reverse/watch-reverse.exp: Extend test for hw watchpoints.
	* gdb.reverse-watch-precsave.exp: Ditto.

2009-11-23  Paul Pluzhnikov  <ppluzhnikov@google.com>

	* gdb.asm/asm-source.exp: Adjust.
	* gdb.base/help.exp: Adjust.

2009-11-22  Pedro Alves  <pedro@codesourcery.com>

	* gdb.base/catch-syscall.exp (test_catch_syscall_fail_nodatadir)
	(do_syscall_tests_without_xml): Set data-directory to
	/the/path/to/nowhere.

2009-11-21  Pedro Alves  <pedro@codesourcery.com>

	* gdb.threads/local-watch-wrong-thread.c,
	gdb.threads/local-watch-wrong-thread.exp: New files.

2009-11-21  Pedro Alves  <pedro@codesourcery.com>

	* gdb.cp/cplusfuncs.exp (info_func_regexp, print_addr): Don't
	assume new `regsub' syntax available.

2009-11-20  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/watchpoint-hw-hit-once.exp,
	gdb.base/watchpoint-hw-hit-once.c: New.

2009-11-20  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.threads/watchthreads-reorder.exp,
	gdb.threads/watchthreads-reorder.c: New.

2009-11-17  Nathan Sidwell  <nathan@codesourcery.com>

	* gdb.xml/tdesc-regs.exp: Use for m68k.

2009-11-15  Pedro Alves  <pedro@codesourcery.com>

	* gdb.base/watch-vfork.c, gdb.base/watch-vfork.exp: New files.

2009-11-13  Daniel Jacobowitz  <dan@codesourcery.com>

	* lib/gdb.exp (current_target_name): New procedure.
	(gdb_wrapper_target): New variable.
	(gdb_wrapper_init): Set gdb_wrapper_target.
	(default_gdb_init): Check gdb_wrapper_target before rebuilding the
	wrapper.

2009-11-13  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/remote.exp: Delete the slowest load test.
	Do not load with fixed packet sizes.

2009-11-13  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.cp/virtfunc.exp (do_tests): If runto_main fails, give up.

2009-11-13  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/freebpcmd.exp: Delete unused variable.  Specify
	srcfile when setting a breakpoint.

2009-11-13  Maciej W. Rozycki  <macro@codesourcery.com>

	* gdb.base/find.c (int8_t, int16_t, int32_t, int64_t): Undefine
	macros.

2009-11-13  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.cp/formatted-ref.exp (test_p_x_ref_addr): Allow the reference
	to be in memory.
	* gdb.base/display.c (force_mem): New.
	(do_loops): Use it.  Add breakpoint comments.
	(do_vars): Add a breakpoint comment.
	* gdb.base/display.exp: Use gdb_get_line_number.  Remove hardcoded
	line numbers.

2009-11-13  Nathan Froyd  <froydnj@codesourcery.com>

	* gdb.base/pending.exp: Use gdb_run_cmd to start the program
	instead of a bare "run".

2009-11-13  Paul Pluzhnikov  <ppluzhnikov@google.com>

	* gdb.python/py-prettyprint.exp: Adjust.

2009-11-12  Daniel Jacobowitz  <dan@codesourcery.com>

	* lib/cell.exp (skip_cell_tests): Clean up test files before
	returning.

2009-11-12  Daniel Jacobowitz  <dan@codesourcery.com>

	* lib/gdb.exp (gdb_test_multiple): Handle "y or [n]", "[y] or n",
	and the breakpoint menu.  Do not call perror if a prompt is seen.
	Consume the following GDB prompt.
	* gdb.cp/method2.exp (test_break): Use gdb_test_multiple.
	* gdb.cp/namespace.exp: Use gdb_test.
	* gdb.cp/templates.exp: Use gdb_test.
	(test_template_breakpoints): Use gdb_test_multiple.

2009-11-12  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/break1.c (struct some_struct, values): Move earlier.
	(marker4): Reference values.

2009-11-12  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/macscp.exp: Avoid the first FAIL if macro information
	is missing.

2009-11-12  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/break.c (need_malloc): New.
	* gdb.base/constvars.c (main): Reference crass and crisp.
	* gdb.base/gdb1821.c (main): Reference bar.
	* gdb.cp/gdb1355.cc (main): Reference s1.
	* gdb.cp/hang1.cc (dummy2, dummy3): Declare.
	(main): Call them.
	* gdb.cp/hang2.cc (dummy2): Define.
	* gdb.cp/hang3.cc (dummy3): Define.
	* gdb.cp/m-data.cc (main): Reference shadow.

2009-11-12  Daniel Jacobowitz  <dan@codesourcery.com>
	    Nathan Froyd  <froydnj@codesourcery.com>

	* lib/gdb.exp (gdb_compile): Also set rpath for shlib=, on a
	remote host.

2009-11-12  Nathan Froyd  <froydnj@codesourcery.com>

	* gdb.base/step-line.exp: Copy step-line.inp to the remote host.
	* gdb.dwarf2/dw2-basic.exp: Copy file1.txt to the remote host.
	* gdb.dwarf2/dw2-compressed.exp: Likewise.
	* gdb.dwarf2/dw2-intercu.exp: Likewise.
	* gdb.dwarf2/dw2-intermix.exp: Likewise.
	* gdb.dwarf2/dw2-producer.exp: Likewise.
	* gdb.dwarf2/mac-fileno.exp: Likewise.
	* gdb.python/py-prettyprint.exp (run_lang_tests): Copy
	py-prettyprint.py to the remote host.
	* gdb.python/py-mi.exp: Copy py-mi.py to the remote host.

2009-11-11  Keith Seitz  <keiths@redhat.com>

	* gdb.cp/classes.cc (ByAnyOtherName): Add typedef and
	use it instead of "Foo".
	* gdb.cp/classes.exp (do_tests): Add a test to access
	a method through a typedef'd class name.

2009-11-11  Nathan Froyd  <froydnj@codesourcery.com>

	* gdb.base/long_long.exp: Permit leading zeros on floating-point
	exponents.
	* gdb.base/pointers.exp: Likewise.
	* gdb.cp/ref-types.exp: Likewise.

2009-11-11  Keith Seitz  <keiths@redhat.com>

	* gdb.cp/cplusfuncs.cc (class foo): Add operators
	new[] and delete[].
	* gdb.cp/cplusfuncs.exp (dm_type_void): Change to
	"void".
	(probe_demangler): Remove all single-quoting of
	method and variable names.
	(info_func_regexp): Remove the word "void" from any
	occurrence of "(void)".
	(print_addr_2): Remove all single-quoting of
	method names.
	(print_addr_2_kfail): Likewise.
	(print_addr): Single-quote C function names before
	passing to print_addr_2.
	(test_paddr_operator_functions): Remove single-quoting
	for method names.
	Add tests for operator new[] and operator delete[].

2009-11-11  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.dwarf2/dw2-ranges.exp: Call runto_main.

2009-11-09  Keith Seitz  <keiths@redhat.com>

	* gdb.cp/overload.exp: Add tests for resolving overloaded
	methods in expression parsing/evaluation.

2009-11-10  Daniel Jacobowitz  <dan@codesourcery.com>

	* lib/gdb.exp (default_gdb_version): Use --version instead of
	--command.

2009-11-10  Nathan Sidwell  <nathan@codesourcery.com>

	* lib/gdb.exp (gdb_compile_test): New.
	(skip_ada_tests, skip_java_tests): New.
	(gdb_compile): Use gdb_compile_test for f77.
	* lib/ada.exp (gdb_compile_ada): Use gdb_compile_test to record result.
	* lib/java.exp (compile_java_from_source): Remove runtests check,
	use gdb_compile_test to record result.
	* gdb.ada/packed_array.exp, gdb.ada/fixed_points.exp,
	gdb.ada/exec_changed.exp, gdb.ada/start.exp,
	gdb.ada/watch_arg.exp, gdb.ada/null_record.exp,
	gdb.ada/array_return.exp, gdb.ada/arrayidx.exp,
	gdb.mi/mi-var-child-f.exp, gdb.fortran/types.exp,
	gdb.fortran/array-element.exp, gdb.fortran/subarray.exp,
	gdb.fortran/derived-type.exp, gdb.fortran/exprs.exp,
	gdb.java/jmisc.exp, gdb.java/jmisc1.exp, gdb.java/jprint.exp,
	gdb.java/jv-print.exp, gdb.java/jmain.exp: Add language skip,
	adjust gdb_compile invocations.

2009-11-09  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* Makefile.in (abs_builddir): New.
	(site.exp): New target `$(abs_builddir)/site.exp'.  New comment.
	(check-single, $(TEST_TARGETS), check-gdb.base%): Change `site.exp' to
	`$(abs_builddir)/site.exp'.

2009-11-05  Daniel Jacobowitz  <dan@codesourcery.com>

	* config/m68k-emc.exp, lib/emc-support.exp,
	gdb.trace/gdb_c_test.c: Delete.
	* gdb.trace/actions.exp, gdb.trace/backtrace.exp, gdb.trace/circ.exp,
	gdb.trace/collection.exp, gdb.trace/deltrace.exp,
	gdb.trace/infotrace.exp, gdb.trace/limits.exp, gdb.trace/packetlen.exp,
	gdb.trace/passc-dyn.exp, gdb.trace/passcount.exp, gdb.trace/report.exp,
	gdb.trace/save-trace.exp, gdb.trace/tfind.exp, gdb.trace/tracecmd.exp,
	gdb.trace/while-dyn.exp, gdb.trace/while-stepping.exp: Remove special
	casing for m68k-*-elf.

2009-11-03  Pedro Alves  <pedro@codesourcery.com>

	* gdb.arch/i386-gnu-cfi.exp: Define SYMBOL_PREFIX on *-*-mingw*.
	* gdb.arch/i386-prologue.exp: Likewise.
	* gdb.arch/i386-unwind.exp: Likewise.

2009-11-02  Daniel Jacobowitz  <dan@codesourcery.com>

	* lib/gdb.exp (gdb_expect): Fix timeout typo.

2009-11-02  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/opaque.exp: Remove duplicate tests and xyz from test name.

2009-11-02  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.cp/ctti.exp: Correct return values for unsigned char functions.

2009-11-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/sepdebug.exp: New test_different_dir call for multiple-dirs.

2009-11-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/sepdebug.exp (CRC mismatch is reported): New test.
	* gdb.base/sepdebug2.c: New file.

2009-10-31  Sergio Durigan Junior <sergiodj@linux.vnet.ibm.com>

	* gdb.base/catch-syscall.exp: Adapt the testcase in order to accept
	the modified warnings for catch syscall.  Verify if GDB was compiled
	with support for lib expat, and choose which tests to run depending
	on this.

2009-10-30  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.mi/mi-break.exp (test_breakpoint_commands): Test
	that composite commands are parsed OK. And also test
	that breakpoint commands do work.

2009-10-23  Michael Snyder  <msnyder@vmware.com>

	gdb.reverse/consecutive-precsave.exp: Change expect pattern
	to allow for new disassembly style.

2009-10-22  Paul Pluzhnikov  <ppluzhnikov@google.com>

	* gdb.asm/asm-source.exp: Adjust.

2009-10-22  Michael Snyder  <msnyder@vmware.com>

	* gdb.reverse/break-precsave.exp: New test.
	* gdb.reverse/consecutive-precsave.exp: Ditto.
	* gdb.reverse/finish-precsave.exp: Ditto.
	* gdb.reverse/i386-precsave.exp: Ditto.
	* gdb.reverse/machinestate-precsave.exp: Ditto.
	* gdb.reverse/sigall-precsave.exp: Ditto.
	* gdb.reverse/solilb-precsave.exp: Ditto.
	* gdb.reverse/step-precsave.exp: Ditto.
	* gdb.reverse/until-precsave.exp: Ditto.
	* gdb.reverse/watch-precsave.exp: Ditto.

2009-10-22  Michael Snyder  <msnyder@vmware.com>

	* gdb.reverse/consecutive-reverse.exp: Substitute gdb_test_multiple
	for gdb_expect.  Adjust one test's expect strings for the new
	format of disassemble.
	* gdb.reverse/finish-reverse.exp: Delete 'return'.
	* gdb.reverse/sigall-reverse.exp: Substitute gdb_test for
	gdb_test_multiple.
	* gdb.reverse/step-reverse.exp: Delete 'return'.
	* gdb.reverse/until-reverse.exp: Delete blank lines.
	* gdb.reverse/watch-reverse.exp: Delete blank lines.

2009-10-21  Paul Pluzhnikov  <ppluzhnikov@google.com>

	* gdb.base/consecutive.exp: Adjust.
	* gdb.base/display.exp: Likewise.
	* gdb.base/pc-fp.exp: Likewise.
	* gdb.base/sigbpt.exp: Likewise.

2009-10-19  Michael Snyder  <msnyder@vmware.com>

	* gdb.reverse/consecutive-reverse.c: Add comment at end of main.
	* gdb.reverse/finish-reverse.c: Ditto.
	* gdb.reverse/sigall-reverse.c: Ditto.
	* gdb.reverse/solib-reverse.c: Ditto.
	* gdb.reverse/step-reverse.c: Ditto.
	* gdb.reverse/watch-reverse.c: Ditto.

2009-10-19  Pedro Alves  <pedro@codesourcery.com>
	    Stan Shebs  <stan@codesourcery.com>

	* gdb.base/foll-vfork.exp: Adjust to spell out "follow-fork".
	* gdb.base/foll-exec.exp: Adjust to expect a process id before
	"Executing new program".
	* gdb.base/foll-fork.exp: Adjust to spell out "follow-fork".
	* gdb.base/multi-forks.exp: Ditto.  Adjust to the inferior being
	left listed after having been killed.
	* gdb.base/attach.exp: Adjust to spell out "symbol-file".
	* gdb.base/maint.exp: Adjust test.

	* Makefile.in (ALL_SUBDIRS): Add gdb.multi.
	* gdb.multi/Makefile.in: New.
	* gdb.multi/base.exp: New.
	* gdb.multi/goodbye.c: New.
	* gdb.multi/hangout.c: New.
	* gdb.multi/hello.c: New.
	* gdb.multi/bkpt-multi-exec.c: New.
	* gdb.multi/bkpt-multi-exec.exp: New.
	* gdb.multi/crashme.c: New.

2009-10-13  Tristan Gingold  <gingold@adacore.com>

	* gdb.base/sepdebug.exp: Check debug info are found.

2009-10-08  Pedro Alves  <pedro@codesourcery.com>

	* lib/gdb.exp (gdb_compile): Remove dead aix and irix related
	bits.

2009-10-07  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/hbreak.exp, gdb.base/hbreak.c: New.

2009-10-07  Joel Brobecker  <brobecker@adacore.com>

	* gdb.base/watchpoints.c: Add copyright header.  Reformat one
	of the comments.

2009-10-06  Pierre Muller  <muller@ics.u-strasbg.fr>

	* gdb.base/annota1.exp: Remove obsolete match_max increase.
	* gdb.base/annota3.exp: Idem.
	* gdb.base/maint.exp: Idem.

2009-10-05  Pierre Muller  <muller@ics.u-strasbg.fr>

	* lib/gdb.exp (default_gdb_init): Set current value of match_max
	to default.

2009-10-02  Pierre Muller  <muller@ics.u-strasbg.fr>

	* lib/gdb.exp (gdb_compile): Add --enable-auto-import option for
	mingw and cygwin targets.

2009-10-02  Pierre Muller  <muller@ics.u-strasbg.fr>
	    Pedro Alves  <pedro@codesourcery.com>

	* lib/gdb.exp (gdb_compile): Avoid adding
	gdb_saved_unbuffered_mode_obj if -nostdlib option is used.

2009-10-01  Pierre Muller  <muller@ics.u-strasbg.fr>

	* gdb.base/shr1.c: Use %p in format string.
	* gdb.base/unload.c: Avoid warning in fprintf.
	* gdb.base/watchpoint-solib.c: Idem.

2009-10-01  Pierre Muller  <muller@ics.u-strasbg.fr>

	* gdb.base/fileio.c (test_lseek): typecast ofs_t ret variable to
	long type.
	(test_unlink): Correct printf string.
	* gdb.base/checkpoint.c (main): Correct fprintf string for variable i.
	* gdb.threads/attachstop-mt.c: Add #include <string.h>.

2009-09-29  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/breakpoint-shadow.exp: Move the ia64 part into ...
	* gdb.arch/ia64-breakpoint-shadow.exp: ... a new file, with new tests.
	* gdb.arch/ia64-breakpoint-shadow.S: New file.

2009-09-29  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.objc/basicclass.exp: Disable pending breakpoint query.
	* gdb.objc/nondebug.exp: Likewise.

2009-09-29  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.base/watchpoints.exp: Respect gdb,no_hardware_watchpoints
	target_info setting.

	* gdb.threads/thread-specific.exp (get_thread_list): Support targets
	that detect new threads during "info threads".

2009-09-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.threads/manythreads.c (main): Increase thread stack size
	to 2*PTHREAD_STACK_MIN.
	* gdb.threads/multi-create.c (main): Likewise.
	(create_function): Likewise.

2009-09-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.base/dump.exp: Pass difference of pointer types instead
	of integer types as offset to restore in intarr3.srec case.

2009-09-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.cp/gdb2495.exp: Skip test on spu*-*-*.

2009-09-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.base/pie-support.exp: Pass "quiet" flag to gdb_compile.

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

	New test for two watchpoints, with disabling of
	the first inserted.
	* testsuite/gdb.base/watchpoints.c: New file.
	* testsuite/gdb.base/watchpoints.exp: New file.

2009-09-25  Tom Tromey  <tromey@redhat.com>

	* gdb.base/charset.exp: Test utf-16 strings with Python.

2009-09-25  Tom Tromey  <tromey@redhat.com>

	* gdb.base/charset.exp: Use UTF-16 and UTF-32, not UCS-2 and
	UCS-4.
	* gdb.base/charset.c (utf_32_string): Rename.
	(init_utf32): Rename.
	(main): Update.

2009-09-22  Tom Tromey  <tromey@redhat.com>

	* gdb.python/py-function.exp: Add regression tests.

2009-09-21  Keith Seitz  <keiths@redhat.com>

	* gdb.cp/cplusfuncs.exp (do_tests): Add check for proper error message
	with invalid operator.

2009-09-21  Keith Seitz  <keiths@redhat.com>

	* gdb.cp/classes.exp (do_tests): Add tests to print a constructor
	and destructor using typedef name of class.
	* gdb.cp/classes.cc (class Base1): Add a destructor.
	(base1): New typedef.
	(use_methods): Instanitate an object of type base1.
	* gdb.cp/templates.exp (test_template_typedef): New procedure.
	(do_tests): Call test_template_typedef.
	* gdb.cp/templates.cc (Baz::~Baz): New method.
	(intBazOne): New typedef.
	(main): Instantiate intBazOne.

2009-09-21  Phil Muldoon <pmuldoon@redhat.com>

	PR python/10633

	* gdb.python/py-prettyprint.exp (gdb_py_test_silent_cmd): New
	Function.
	(run_lang_tests): Add print elements test.

2009-09-21  Phil Muldoon <pmuldoon@redhat.com>

	* gdb.python/py-value.exp (test_subscript_regression): New
	function.  Test for invalid subscripts.
	* gdb.python/py-value.c (main): Add test array, and pointer to it.
	(ptr_ref): New function.

2009-09-17  Paul Pluzhnikov  <ppluzhnikov@google.com>

	* gdb.base/default.exp: Fix "show convenience".

2009-09-15  Tom Tromey  <tromey@redhat.com>

	* lib/mi-support.exp (mi_create_varobj): Update.
	(mi_create_floating_varobj): Likewise.
	(mi_create_dynamic_varobj): New proc.
	(mi_varobj_update): Update.
	(mi_varobj_update_with_type_change): Likewise.
	(mi_varobj_update_kv_helper): New proc.
	(mi_varobj_update_dynamic_helper): Rewrite.
	(mi_varobj_update_dynamic): New proc.
	(mi_list_varobj_children): Update.
	(mi_list_varobj_children_range): Add 'from' and 'to' arguments.
	* gdb.python/python-prettyprint.py (pp_outer): New class.
	(pp_nullstr): Likewise.
	(lookup_function): Register new printers.
	* gdb.python/python-prettyprint.c (struct substruct): New type.
	(struct outerstruct): Likewise.
	(substruct_test): New function.
	(struct nullstr): New type.
	(string_1, string_2): New globals.
	(main): Add new tests.
	* gdb.python/python-mi.exp: Added regression tests.
	* gdb.mi/mi2-var-display.exp: Update.
	* gdb.mi/mi2-var-cmd.exp: Update.
	* gdb.mi/mi2-var-child.exp: Update.
	* gdb.mi/mi2-var-block.exp: Update.
	* gdb.mi/mi-var-invalidate.exp: Update.
	* gdb.mi/mi-var-display.exp: Update.
	* gdb.mi/mi-var-cmd.exp: Update.
	* gdb.mi/mi-var-child.exp: Update.
	* gdb.mi/mi-var-block.exp: Update.
	* gdb.mi/mi-break.exp: Update.
	* gdb.mi/gdb701.exp: Update.

2009-09-14  Sergio Durigan Junior <sergiodj@linux.vnet.ibm.com>

	* Makefile.in: Inclusion of catch-syscall object.
	* gdb.base/catch-syscall.c: New file.
	* gdb.base/catch-syscall.exp: New file.

2009-09-12  Michael Snyder  <msnyder@vmware.com>

	* gdb.reverse/step-reverse.exp: Explicitly check for targets
	that can support reverse debuggnig.

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

	* gdb.dwarf2/valop.S: New file.
	* gdb.dwarf2/valop.exp: New file.

2009-09-11  Mark Kettenis  <kettenis@gnu.org>

	* gdb.threads/current-lwp-dead.exp: Only run this on Linux.

2009-09-10  Doug Evans  <dje@google.com>

	* gdb.base/breakpoint-shadow.exp: Fix intermittent failures.
	Add $gdb_prompt to second breakpoint regexp.

2009-09-08  Thiago Jung Bauermann  <thiago.bauermann@gmail.com>

	* gdb.python/Makefile.in (EXECUTABLES): Adjust to new executable
	names, add missing ones.
	* gdb.python/py-cmd.exp: Rename from python-cmd.exp.
	* gdb.python/py-frame.c: Rename from python-frame.c.
	* gdb.python/py-frame.exp: Rename from python-frame.exp.  Adjust
	testfile name.
	* gdb.python/py-function.exp: Rename from python-function.exp.
	* gdb.python/py-mi.exp: Rename from python-mi.exp.  Adjust
	testfile name.
	* gdb.python/py-prettyprint.c: Rename from python-prettyprint.c.
	* gdb.python/py-prettyprint.exp: Rename from python-prettyprint.exp.
	Adjust testfile name.
	* gdb.python/py-prettyprint.py: Rename from python-prettyprint.py.
	* gdb.python/py-template.cc: Rename from python-template.cc.
	* gdb.python/py-template.exp: Rename from python-template.exp.
	Adjust testfile name.
	* gdb.python/py-value.c: Rename from python-value.c.
	* gdb.python/py-value.exp: Rename from python-value.exp.  Adjust
	testfile name.

2009-09-08  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/breakpoint-shadow.exp (Second breakpoint placed): Initialize
	$bpt2address.
	(Second breakpoint address is valid on ia64)
	(Third breakpoint on ia64 in the Second breakpoint's bundle): New.

2009-09-03  Joseph Myers  <joseph@codesourcery.com>

	* gdb.base/ending-run.exp: Restrict regular expression matching
	line number to require closing brace following.

2009-09-03  Doug Evans  <dje@google.com>

	* gdb.base/store.exp (check_set): Fix typo in expected value message.

2009-09-02  Tom Tromey  <tromey@redhat.com>

	* gdb.dwarf2/callframecfa.exp: Use gdb_continue_to_breakpoint.

2009-09-02  Tom Tromey  <tromey@redhat.com>

	* gdb.dwarf2/callframecfa.exp: New file.
	* gdb.dwarf2/callframecfa.S: New file.

2009-09-01  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/solib-overlap.exp, gdb.base/solib-overlap-lib.c,
	gdb.base/solib-overlap-main.c: New.

2009-08-28  Daniel Jacobowitz  <dan@codesourcery.com>

	PR gdb/10565

	* gdb.base/bitfields.c (struct container, container): New.
	(main): Initialize it and call break5.
	* gdb.base/bitfields.exp (bitfield_at_offset): New test.

2009-08-28  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Support constant DW_AT_data_member_location by GCC PR debug/40659.
	* gdb.dwarf2/dw2-inheritance.exp, gdb.dwarf2/dw2-inheritance.S: New.

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

	* gdb.mi/mi2-var-cmd.exp (create variable with invalid FRAME-ADDR): New.

2009-08-26  Michael Snyder  <msnyder@vmware.com>

	* gdb.base/i386-reverse.c: New file.
	* gdb.base/i386-reverse.exp: New file.
	* gdb.base/Makefile.in: Add new files to be removed.

2009-08-26  Joseph Myers  <joseph@codesourcery.com>

	* gdb.mi/mi-basics.exp (test_cwd_specification): Do not test
	environment-pwd for remote host.
	* gdb.mi/mi2-basics.exp (test_cwd_specification): Likewise.

2009-08-24  Keith Seitz  <keiths@redhat.com>

	* gdb.cp/cpcompletion.exp (test_class_complete): New procedure.
	Add two new C++ completer tests which limit the output to a
	given class.

2009-08-24  Michael Snyder  <msnyder@vmware.com>

	* gdb.base/del.exp: Fix typo in comment.
	* gdb.base/step-bt.exp: Fix cut and paste error in comment.

2009-08-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* configure: Regenerate.
	* gdb.hp/configure: Likewise.
	* gdb.hp/gdb.aCC/configure: Likewise.
	* gdb.hp/gdb.base-hp/configure: Likewise.
	* gdb.hp/gdb.compat/configure: Likewise.
	* gdb.hp/gdb.defects/configure: Likewise.
	* gdb.hp/gdb.objdbg/configure: Likewise.
	* gdb.stabs/configure: Likewise.

2009-08-19  Doug Evans  <dje@google.com>

	* gdb.base/gdbvars.c: New file.
	* gdb.base/gdbvars.exp: Test convenience vars with program variables.

2009-08-14  Pedro Alves  <pedro@codesourcery.com>

	* gdb.threads/killed.exp, gdb.threads/manythreads.exp,
	gdb.threads/staticthreads.exp: Adjust to "quit" output changes.

2009-08-13  Pedro Alves  <pedro@codesourcery.com>

	* gdb.base/default.exp: Adjust "set language test": it's now an
	enum command.  Larger help string moved to "help set language".
	* gdb.base/help.exp: Adjust "help set language" expected output,
	now lists all known languages.

2009-08-11  Nathan Froyd  <froydnj@codesourcery.com>

	* gdb.arch/altivec-abi.exp (altivec_abi_tests): Turn on printing of
	all frame arguments.
	* gdb.arch/altivec-regs.exp: Likewise.

2009-08-07  Tom Tromey  <tromey@redhat.com>

	* gdb.base/setshow.exp: Add tests for changes to set language, set
	check range, and set check type.

2009-08-03  Vladimir Prus  <vladimir@codesourcery.com>

	* lib/mi-support.exp (mi_list_breakpoints): Make it work.
	* gdb.mi/mi-break.exp (test_breakpoint_commands): New.
	Call it.

2009-07-31  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* configure.ac: Run gdb.cell tests when appropriate.
	* configure: Regenerate.
	* lib/cell.exp: New file.
	* gdb.cell: New directory.
	* gdb.cell/configure.ac: New file.
	* gdb.cell/configure: New file.
	* gdb.cell/Makefile.in: New file.
	* gdb.cell/arch.exp: New file.
	* gdb.cell/break.c: New file.
	* gdb.cell/break.exp: New file.
	* gdb.cell/break-spu.c: New file.
	* gdb.cell/bt.c: New file.
	* gdb.cell/bt2-spu.c: New file.
	* gdb.cell/bt-spu.c: New file.
	* gdb.cell/bt.exp: New file.
	* gdb.cell/coremaker.c: New file.
	* gdb.cell/coremaker-spu.c: New file.
	* gdb.cell/core.exp: New file.
	* gdb.cell/gcore.exp: New file.
	* gdb.cell/data.c: New file.
	* gdb.cell/data.exp: New file.
	* gdb.cell/data-spu.c: New file.
	* gdb.cell/ea-cache.exp: New file.
	* gdb.cell/ea-cache.c: New file.
	* gdb.cell/ea-cache-spu.c: New file.
	* gdb.cell/ea-standalone.c: New file.
	* gdb.cell/ea-standalone.exp: New file.
	* gdb.cell/ea-test.c: New file.
	* gdb.cell/ea-test.exp: New file.
	* gdb.cell/f-regs.exp: New file.
	* gdb.cell/mem-access.c: New file.
	* gdb.cell/mem-access.exp: New file.
	* gdb.cell/mem-access-spu.c: New file.
	* gdb.cell/ptype.exp: New file.
	* gdb.cell/registers.exp: New file.
	* gdb.cell/size.c: New file.
	* gdb.cell/sizeof.exp: New file.
	* gdb.cell/size-spu.c: New file.
	* gdb.cell/solib.exp: New file.
	* gdb.cell/solib-symbol.exp: New file.

2009-07-31  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.xml/tdesc-regs.exp: Skip for SPU targets.

2009-07-28  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/float.exp: Handle VFP registers.

2009-07-14  Michael Snyder  <msnyder@vmware.com>

	* gdb.reverse/finish-reverse.exp: Do not expect reverse-finish
	to bring gdb to the beginning of the calling line.

	* gdb.arch/i386-signal.c (sigframe): Add a nop to avoid
	confusing the i386 epilogue unwinder.

2009-07-14  Stan Shebs  <stan@codesourcery.com>

	* gdb.trace/tracecmd.exp: Add basic test of tracepoint conditions.

2009-07-14  Michael Snyder  <msnyder@vmware.com>

	* gdb.reverse/step-reverse.exp (stepi into function call):
	Call instruction may not be first instruction in the line.
	(reverse stepi from a function call): Used wrong line number.

2009-07-13  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.arch/amd64-i386-address.exp, gdb.arch/amd64-i386-address.S: New.

2009-07-13  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix gdb.base/macscp.exp when using custom inputrc.
	* gdb.base/completion.exp: Remove env(INPUTRC) set and restore.
	* gdb.base/readline.exp: Remove env(INPUTRC) set and restore.  Remove
	env(TERM) set.
	* gdb.cp/cpcompletion.exp: Remove env(INPUTRC) set.
	* lib/gdb.exp (default_gdb_start): Add env(INPUTRC) and env(TERM) set.

2009-07-13  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix racy clashing of output files for gdb.base{1,2}/ parallel run.
	* gdb.base/annota1.exp (thread_test): Import global $testfile.
	Change the compilation target to match the testcase name.
	* gdb.base/sect-cmd.exp: Change the compilation target to match the
	testcase name.
	* a2-run.exp: Use for setup prepare_for_testing.  Change the
	compilation target to match the testcase name.
	* gdb.base/commands.exp: Likewise.
	* gdb.base/finish.exp: Likewise.
	* gdb.base/float.exp: Likewise.
	* gdb.base/info-target.exp: Likewise.
	* gdb.base/relational.exp: Likewise.
	* gdb.base/term.exp: Likewise.
	* gdb.base/until.exp: Likewise.
	* gdb.base/volatile.exp: Likewise.
	* gdb.base/whatis-exp.exp: Likewise.

2009-07-11  Hui Zhu  <teawater@gmail.com>

	* gdb.base/help.exp (disassemble): Update expected help text.

2009-07-09  Tom Tromey  <tromey@redhat.com>

	* lib/gdb.exp: Handle TRANSCRIPT.
	(remote_spawn, remote_close, send_gdb): New procs.

2009-07-10 Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.python/python-prettyprint.c: Add counted null string
	structure.
	* gdb.python/python-prettyprint.exp: Print null string. Test for
	embedded nulls.
	* gdb.python/python-prettyprint.py (pp_ns): New Function.
	* gdb.python/python-value.exp (test_value_in_inferior): Add
	variable length string fetch tests.
	* gdb.python/python-value.c (main): Add strings for string fetch tests.

2009-07-09  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/dump.exp (inaccessible memory is reported): New test.

2009-07-07  Tom Tromey  <tromey@redhat.com>

	* gdb.base/call-rt-st.exp: Update for change to escape output.
	* gdb.base/callfuncs.exp: Likewise.
	* gdb.base/charset.exp: Likewise.
	* gdb.base/constvars.exp: Likewise.
	* gdb.base/long_long.exp: Likewise.
	* gdb.base/pointers.exp: Likewise.
	* gdb.base/printcmds.exp: Likewise.
	* gdb.base/setvar.exp: Likewise.
	* gdb.base/store.exp: Likewise.
	* gdb.cp/ref-types.exp: Likewise.
	* gdb.mi/mi-var-child.exp: Likewise.
	* gdb.mi/mi-var-display.exp: Likewise.
	* gdb.mi/mi2-var-display.exp: Likewise.
	* gdb.base/charset.exp: Test octal escape sequence length.
	Update for change to escape output.

2009-07-07  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.mi/mi2-var-cmd.exp (floating varobj invalidation): New test.

2009-07-06  Daniel Jacobowitz  <dan@codesourcery.com>

	* lib/java.exp (java_init): Ignore $GCJ if it is empty.

2009-07-06  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* lib/gdbserver-support.exp (gdbserver_start): Loop spawning
	gdbserver increasing $portnum if "Can't bind address" has been seen.

2009-07-05  Pedro Alves  <pedro@codesourcery.com>

	* gdb.base/ending-run.exp: Add "step out of main" pattern for
	mingw32ce.

2009-07-05  Pedro Alves  <pedro@codesourcery.com>

	* gdb.base/long_long.exp: arm-mingw32ce defaults to natural-endian
	VFP format.

2009-07-02  Pedro Alves  <pedro@codesourcery.com>

	* gdb.base/multi-forks.exp: Only run detach-on-fork tests on
	linux.  Adjust to use "inferior", "info inferiors", "detach
	inferior" and "kill inferior" instead of "restart", "info fork",
	"detach fork" and "delete fork".
	* gdb.base/ending-run.exp: Spell out "info".
	* gdb.base/help.exp: Adjust to use test_prefix_command_help for
	the "kill" command.

2009-07-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.threads/tls-shared.exp: Update to locexpr_describe_location
	change to prefix TLS offset in hex with 0x.

2009-07-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.base/default.exp: Update test case for "x" changes.

2009-07-01  Tristan Gingold  <gingold@adacore.com>

	* gdb.base/bigcore.exp: Make darwin untested.

2009-06-30  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/completion.exp (directory completion): Create the directory.
	New variables uniquedir, escapeduniquedir, uniquesu, uniquesub,
	escapeuniquesub.
	(directory completion 2): Expect now ${escapeuniquesub}.
	(Glob remaining of directory test): Remove one excessive newline.
	Expect the real output.

2009-06-30  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix `make check//%' target after `make check' has been ran.
	* Makefile.in (TEST_TARGETS): Remove the %/.dir dependency.  Add
	a mkdir call.
	(check-gdb.base%): Remove the gdb.base%/.dir dependency.
	(%/.dir): Remove.

2009-06-30  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* lib/mi-support.exp (mi_check_thread_states): Permit any output before
	the expected result record.

2009-06-30  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Remove racy FAILs relying just on the timeouts.
	* gdb.base/setshow.exp (set annotate 2, show annotate (2))
	(annotation_level 2): Remove racy FAILs.

2009-06-30  Paul Pluzhnikov  <ppluzhnikov@google.com>

	gdb/10275
	* gdb.dwarf2/dw2-restore.{S,exp}: New test.

2009-06-30  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.opt/inline-locals.exp: Remove XFAIL with duplicated arg1.

2009-06-30  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.mi/mi-stack.exp: Testing symbolic options
	to -stack-list-locals and -stack-list-arguments.

2009-06-29  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.threads/current-lwp-dead.exp, gdb.threads/current-lwp-dead.c: New.

2009-06-29  Tom Tromey  <tromey@redhat.com>

	* dg-extract-results.sh: New file.
	* Makefile.in (FORCE_PARALLEL): New variable.
	(CHECK_TARGET): New conditional variable.
	(check): Use CHECK_TARGET.
	(DO_RUNTEST): New variable.
	(check-single): New target.
	(TEST_DIRS): New variable.
	(TEST_TARGETS): Likewise.
	(check-parallel): New target.
	(check-gdb.%): New pattern.
	(BASE1_FILES): New variable.
	(BASE2_FILES): Likewise.
	(check-gdb.base%): New pattern.
	(%/.dir): New pattern.
	* configure: Rebuild.
	* aclocal.m4 (AM_CONDITIONAL): New defun.
	* configure.ac: Check whether user is using GNU make.
	(GMAKE): New conditional.

2009-06-29  Sami Wagiaalla  <swagiaal@redhat.com>

	* gdb.cp/namespace-nested-import.cc: New test.
	* gdb.cp/namespace-nested-import.exp: New test.

2009-06-27  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/break.exp: Add an XFAIL for gcc/36748.
	* gdb.cp/annota2.exp: Accept frames-invalid in more places.
	* gdb.opt/Makefile.in (EXECUTABLES): Update.
	* gdb.opt/clobbered-registers-O2.exp: Update to GPL v3.
	* gdb.opt/inline-bt.c, gdb.opt/inline-bt.exp,
	gdb.opt/inline-cmds.c, gdb.opt/inline-cmds.exp,
	gdb.opt/inline-locals.c, gdb.opt/inline-locals.exp,
	gdb.opt/inline-markers.c: New files.
	* lib/gdb.exp (skip_inline_frame_tests): New function.
	(skip_inline_var_tests): New function.

2009-06-27  Andreas Schwab  <schwab@linux-m68k.org>

	* gdb.cp/exception.exp: Don't require $hex before inner frame in
	backtrace.

2009-06-27  Michael Snyder  <msnyder@vmware.com>

	* gdb.reverse: New directory.
	* gdb.reverse/break-reverse.c: New test.
	* gdb.reverse/break-reverse.exp: New test.
	* gdb.reverse/consecutive-reverse.c: New test.
	* gdb.reverse/consecutive-reverse.exp: New test.
	* gdb.reverse/finish-reverse.c: New test.
	* gdb.reverse/finish-reverse.exp: New test.
	* gdb.reverse/machinestate.c: New test.
	* gdb.reverse/ms1.c: New test.
	* gdb.reverse/machinestate.exp: New test.
	* gdb.reverse/Makefile.in: New file.
	* gdb.reverse/shr2.c: New test.
	* gdb.reverse/solib-reverse.c: New test.
	* gdb.reverse/solib-reverse.exp: New test.
	* gdb.reverse/step-reverse.c: New test.
	* gdb.reverse/step-reverse.exp: New test.
	* gdb.reverse/until-reverse.c: New test.
	* gdb.reverse/ur1.c: New test.
	* gdb.reverse/until-reverse.exp: New test.
	* gdb.reverse/watch-reverse.c: New test.
	* gdb.reverse/watch-reverse.exp: New test.
	* configure.ac (AC_OUTPUT): Add gdb.reverse/Makefile.
	* configure: Regenerate.

2009-06-26  Doug Evans  <dje@google.com>

	* gdb.base/psymtab.exp: Turn off pending breakpoints.

2009-06-26  Pierre Muller  <muller@ics.u-strasbg.fr>

	* gdb.base/exe-lock.exp (binfile): Add $EXEEXT suffix to fix
	windows problem for 'file delete $binfile'.

2009-06-23  Sami Wagiaalla  <swagiaal@redhat.com>

	* gdb.cp/namespace-using.exp: New test.
	* gdb.cp/namespace-using.cc: New test.

2009-05-20  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/variant_record_packed_array: New testcase.

2009-06-23  Tom Tromey  <tromey@redhat.com>

	* gdb.base/charset.exp (test_combination): Regression test.
	* gdb.base/charset.c (my_wchar_t): New typedef.
	(myvar): New global.
	(main): Set myvar.

2009-06-18  Pierre Muller  <muller@ics.u-strasbg.fr>

	* lib/gdb.exp (gdb_compile): Also force unbuffered mode for DJGPP
	target.

2009-06-17  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.base/dump.exp: Handle SPU like 64-bit platforms.

2009-06-17  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.mi/gdb680.exp: Update test for error message.

2009-06-17  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.base/annota1.exp: Allow multiple occurrences of the
	frames-invalid annotation.
	* gdb.cp/annota2.exp: Likewise.

2009-06-15  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.cp/gdb2495.cc: New file.
	* gdb.cp/gdb2495.exp: New file.

2009-06-12  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Report error on GDB crash during runto.
	* lib/gdb.exp (runto <eof>): New.

2009-06-09  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.mi/mi-async.exp, gdb.mi/mi-basics.exp,
	gdb.mi/mi-break.exp, gdb.mi/mi-cli.exp,
	gdb.mi/mi-disassemble.exp, gdb.mi/mi-eval.exp,
	gdb.mi/mi-file-transfer.exp, gdb.mi/mi-file.exp,
	gdb.mi/mi-regs.exp, gdb.mi/mi-return.exp,
	gdb.mi/mi-simplerun.exp, gdb.mi/mi-stepi.exp,
	gdb.mi/mi-var-block.exp, gdb.mi/mi-var-cmd.exp,
	gdb.mi/mi-var-display.exp, gdb.mi/mi-var-invalidate.exp,
	gdb.mi/mi-watch.exp, gdb.mi/mi2-basics.exp,
	gdb.mi/mi2-break.exp, gdb.mi/mi2-cli.exp,
	gdb.mi/mi2-disassemble.exp, gdb.mi/mi2-eval.exp,
	gdb.mi/mi2-file.exp, gdb.mi/mi2-regs.exp,
	gdb.mi/mi2-return.exp, gdb.mi/mi2-simplerun.exp,
	gdb.mi/mi2-stepi.exp, gdb.mi/mi2-var-block.exp,
	gdb.mi/mi2-var-child.exp, gdb.mi/mi2-var-cmd.exp,
	gdb.mi/mi2-var-display.exp, gdb.mi/mi2-watch.exp,
	gdb.server/ext-run.exp, gdb.server/file-transfer.exp,
	gdb.server/server-mon.exp, gdb.server/server-run.exp,
	gdb.trace/actions.exp, gdb.trace/backtrace.exp,
	gdb.trace/deltrace.exp, gdb.trace/infotrace.exp,
	gdb.trace/packetlen.exp, gdb.trace/passc-dyn.exp,
	gdb.trace/passcount.exp, gdb.trace/report.exp,
	gdb.trace/save-trace.exp, gdb.trace/tfind.exp,
	gdb.trace/tracecmd.exp, gdb.trace/while-dyn.exp,
	gdb.trace/while-stepping.exp: Use a unique name for the compiled
	executable.

2009-06-07  Pedro Alves  <pedro@codesourcery.com>

	* gdb.threads/manythreads.c (main): Check if PTHREAD_STACK_MIN is
	defined before referencing it.

2009-06-03  Doug Evans  <dje@google.com>

	* gdb.arch/i386-sse.exp: Test xmm[8-15] if amd64.
	* gdb.arch/i386-see.c: Ditto.

2009-05-30  Pierre Muller  <muller@ics.u-strasbg.fr>

	* gdb.base/macscp.exp (info_macro): Return undefined if undefined.
	(check_macro): Return 1 if undefined.
	If first test fails, check if macro debug information is available,
	and report unsupported test if no macro information is found.

2009-05-29  Doug Evans  <dje@google.com>

	* gdb.threads/hand-call-in-threads.exp: New.
	* gdb.threads/hand-call-in-threads.c: New.

2009-05-29  Michael Snyder  <msnyder@vmware.com>

	* gdb.base/break-always.exp: Change "1" to "on".
	Add confirmation check.

2009-05-28  Pedro Alves  <pedro@codesourcery.com>

	* gdb.threads/threxit-hop-specific.c: New.
	* gdb.threads/threxit-hop-specific.exp: New.
	* gdb.threads/thread-execl.c: New.
	* gdb.threads/thread-execl.exp: New.

2009-05-27  Tom Tromey  <tromey@redhat.com>
	    Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* lib/mi-support.exp (mi_varobj_update_dynamic): New proc.
	(mi_child_regexp): Likewise.
	(mi_list_varobj_children_range): Likewise.
	(mi_get_features): Likewise.
	(mi_list_varobj_children): Rewrite.
	* gdb.python/python-mi.exp: New file.

2009-05-27  Tom Tromey  <tromey@redhat.com>
	    Thiago Jung Bauermann  <bauerman@br.ibm.com>
	    Phil Muldoon  <pmuldoon@redhat.com>
	    Paul Pluzhnikov  <ppluzhnikov@google.com>

	* gdb.python/python-prettyprint.exp: New file.
	* gdb.python/python-prettyprint.c: New file.
	* gdb.python/python-prettyprint.py: New file.
	* gdb.base/display.exp: print/r is now valid.

2009-05-27  Thiago Jung Bauermann  <bauerman@br.ibm.com>
	    Tom Tromey  <tromey@redhat.com>
	    Pedro Alves  <pedro@codesourcery.com>
	    Paul Pluzhnikov  <ppluzhnikov@google.com>

	* gdb.python/python-template.exp: New file.
	* gdb.python/python-template.cc: New file.
	* gdb.python/python.exp (gdb_py_test_multiple): Add two objfile
	tests.
	* gdb.python/python-value.exp (py_objfile_tests): New proc.
	Call it.
	(test_value_after_death): New proc.
	* gdb.python/python-value.c (PTR): New typedef.
	(main): New variable 'x'.

2009-05-27  Tom Tromey  <tromey@redhat.com>

	* gdb.python/python.exp (gdb_py_test_multiple): Add two objfile
	tests.
	* gdb.python/python-value.exp (py_objfile_tests): New proc.
	Call it.

2009-05-27  Pedro Alves  <pedro@codesourcery.com>

	* gdb.mi/nsthrexec.c, gdb.mi/mi-nsthrexec.exp: New.

2009-05-24  Pedro Alves  <pedro@codesourcery.com>

	* gdb.threads/fork-thread-pending.c: New.
	* gdb.threads/fork-thread-pending.exp: New.

2009-05-21  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.dwarf2/dw2-strp.exp (p a_string2, ptype a_string2): New.
	* gdb.dwarf2/dw2-strp.S (a_string2): New.

2009-05-18  Jon Beniston  <jon@beniston.com>

	* gdb.asm/asm-source.exp: Add lm32 target.

2009-05-17  Pedro Alves  <pedro@codesourcery.com>

	* gdb.base/foll-fork.c: Include stdlib.h.  Add markers for
	`gdb_get_line_number'.  Call `callee' in both parent and child.
	* gdb.base/foll-fork.exp (catch_fork_child_follow): Use
	`gdb_get_line_number' instead of hardcoding line numbers.
	(catch_fork_unpatch_child): New procedure to test detaching
	breakpoints from child fork.
	(tcatch_fork_parent_follow): Use `gdb_get_line_number' instead of
	hardcoding line numbers.
	(do_fork_tests): Run `catch_fork_unpatch_child'.

2009-05-17  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.mi/mi-cmd-var.exp: Check that when varobj
	of structure type enters or leaves the scope, it
	is reported by -var-update.

2009-05-11  Doug Evans  <dje@sebabeach.org>

	* gdb.mi/nsintrall.c (main): Fix off-by-one error.
	* gdb.threads/pending-step.c (main): Fix off-by-one error.
	* gdb.threads/schedlock.c (main): Fix off-by-one error.

2009-05-11  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.cp/expand-sals.exp, gdb.cp/expand-sals.cc: New.

2009-04-30  Doug Evans  <dje@google.com>

	* gdb.threads/watchthreads2.exp: New testcase.
	* gdb.threads/watchthreads2.c: New testcase.

2009-04-29  Doug Evans  <dje@google.com>

	* gdb.cp/mb-ctor.exp: Add multi-line source statement test.
	* gdb.cp/mb-ctor.cc: Ditto.
	* gdb.cp/mb-inline.exp: Add multi-line source statement test.
	* gdb.cp/mb-inline.h (multi_line_foo): New function.
	* gdb.cp/mb-inline1.cc: Call it.
	* gdb.cp/mb-inline2.cc: Ditto.
	* gdb.cp/mb-templates.exp: Add multi-line source statement test.
	* gdb.cp/mb-templates.cc (multi_line_foo): New template.

2009-04-29  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/macscp.exp: New `options' parameter `-DFROM_COMMANDLINE'.
	(info_macro): Remova `decimal' declaration.  New variable `nonzero'.
	Replace all uses of `decimal' by `nonzero'.
	(info macro FROM_COMMANDLINE): New test.

2009-04-27  Tom Tromey  <tromey@redhat.com>

	* gdb.base/printcmds.exp (test_printf): Test comma operator in [].

2009-04-27  Doug Evans  <dje@google.com>

	* gdb.threads/watchthreads.c (main): Initialize args before starting
	the threads.  Plus formatting cleanup.
	* gdb.threads/watchthreads.exp: Avoid errant failures due to
	biased scheduling of one thread.

2009-04-27  Jerome Guitton  <guitton@adacore.com>

	* gdb.cp/templates.cc (GetMax): New template.
	(main): Declare two instances of GetMax.
	* gdb.cp/templates.exp: Add new test.

2009-04-27  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.cp/abstract-origin.exp, gdb.cp/abstract-origin.cc: New test.

2009-04-22  Joseph Myers  <joseph@codesourcery.com>

	* lib/gdb.exp (get_compiler_info): Use -E -o in remote-host case.

2009-04-15  Tom Tromey  <tromey@redhat.com>

	* gdb.base/charset.exp: Add regression test.

2009-04-14  Joel Brobecker  <brobecker@adacore.com>

	* gdb.base/exe-lock.exp: New testcase.

2009-04-13  Tom Tromey  <tromey@redhat.com>

	* gdb.python/python-frame.exp (gdb_py_test_silent_cmd): Test !=
	operator on Frame.

2009-04-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.base/attach.exp: Re-enable for spu*-*-* targets.
	* gdb.server/ext-attach.exp: Likewise.

2009-04-03  Vladimir Prus  <vladimir@codesourcery.com>

	Eliminate some sleep usage.

	* gdb.mi/basics.c (do_nothing): New.
	(main): Use do_nothing instead of printf, so that
	not to introduce race condition between output of
	inferiour and output of gdb. Do not use sleep as it
	is not generally available on embedded targets.

2009-04-02  Pedro Alves  <pedro@codesourcery.com>

	* gdb.server/ext-attach.exp: Expect an optional process id after
	"Detached from remote process".

2009-04-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.dwarf2/dw2-unresolved-main.c, gdb.dwarf2/dw2-unresolved.S,
	gdb.dwarf2/dw2-unresolved.exp: New.

2009-04-02  Pedro Alves  <pedro@codesourcery.com>

	* gdb.mi/mi-nonstop-exit.exp: Don't check isnative.  Use
	mi_run_to_main.

2009-04-02  Pedro Alves  <pedro@codesourcery.com>

	* gdb.mi/mi-nonstop.exp: Don't check isnative.  Use
	mi_run_to_main.  Skip thread exit test on remote targets.
	* gdb.mi/mi-nsintrall.exp: Don't check isnative.  Use
	mi_run_to_main.
	* gdb.mi/mi-nsmoribund.exp: Don't check isnative.  Use
	mi_run_to_main.
	* lib/mi-support.exp (mi_gdb_target_cmd): Remove trailing anchor
	when expecting ^connected.  Detect when the target doesn't support
	non-stop mode.
	(mi_run_cmd): Detect if non-stop mode was requested by isn't
	supported.  Return -1 on error, 0 on success.
	(mi_runto_helper): Don't expect a stop if mi_run_cmd failed.
	(mi_runto): Return mi_runto_helper's result explicitly.

2009-04-01  Pedro Alves  <pedro@codesourcery.com>

	* gdb.threads/pending-step.c, gdb.threads/pending-step.exp: New.

2009-04-01  Tom Tromey  <tromey@redhat.com>

	* gdb.base/funcargs.exp: Set print frame-arguments to "all".
	* gdb.base/call-ar-st.exp: Set print frame-arguments to "all".
	* gdb.ada/ref_param.exp: Set print frame-arguments to "all".
	* gdb.ada/lang_switch.exp: Set print frame-arguments to "all".

2009-03-31  Daniel Jacobowitz  <dan@codesourcery.com>
	    Jan Kratochvil  <jan.kratochvil@redhat.com>

	PR gdb/931
	* gdb.cp/gdb1355.exp (f_li, f_lui, f_si, f_sui): Allow canonical
	output.
	* gdb.cp/templates.exp: Allow canonical output.  Remove KFAILs
	for gdb/931.
	* dw2-strp.S (DW_AT_language): Change to C++.
	(DW_TAG_variable (name ""), Abbrev code 7, .Lemptyname): New.

2009-03-31  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/tasks: New testcase.

2009-03-30  Stan Shebs  <stan@codesourcery.com>

	* gdb.trace/actions.exp: Update to match new info trace format.
	* gdb.trace/deltrace.exp: Ditto.
	* gdb.trace/infotrace.exp: Ditto.
	* gdb.trace/passcount.exp: Ditto.
	* gdb.trace/save-trace.exp: Ditto.
	* gdb.trace/while-stepping.exp: Ditto.
	* gdb.trace/tracecmd.exp: Ditto, plus don't allow pending option.

2009-03-30  Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* gdb.python/python-frame.c: New file.
	* gdb.python/python-frame.exp: New file.

2009-03-29  Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* gdb.python/python-value.exp: Add tests for the address
	attribute.

2009-03-29  Andreas Schwab  <schwab@linux-m68k.org>

	* gdb.arch/powerpc-prologue.exp: Update for disassemble-next-line.

2009-03-26  Doug Evans  <dje@google.com>

	* gdb.mi/mi-nonstop-exit.exp: New file.
	* gdb.mi/non-stop-exit.c: New file.

2009-03-26  Tom Tromey  <tromey@redhat.com>

	Update for change to prologue skipping:
	* gdb.mi/mi2-simplerun.exp: Update.
	* gdb.mi/mi2-break.exp: Update.
	* gdb.mi/mi-simplerun.exp: Update.
	* gdb.mi/mi-break.exp: Update.
	* gdb.base/ending-run.exp: Update.

2009-03-26  Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* gdb.python/python-value.exp (test_value_in_inferior): Test
	gdb.Value.is_optimized_out attribute.

2009-03-26  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.dwarf2/dw2-noloc-main.c: New file.
	* gdb.dwarf2/dw2-noloc.S: New symbols matrix.
	(.text): Remove.
	(.data): New.
	(DW_AT_stmt_list, .debug_line, DW_AT_frame_base): Remove.
	(DW_AT_low_pc, DW_AT_high_pc): Reference `dw2-noloc-main.c'.
	(DW_TAG_subprogram func_cu1, noloc): Remove.
	(main): New.
	* gdb.dwarf2/dw2-noloc.exp: Use prepare_for_testing, compile also
	`dw2-noloc-main.c'.  Test the new DIEs from `dw2-noloc.S'.
	(file_symbols): New procedure.

2009-03-25  Tom Tromey  <tromey@redhat.com>

	* gdb.base/charset.exp (valid_target_charset): New proc.
	Use it to skip tests on invalid charsets.

2009-03-25  Pierre Muller  <muller@ics.u-strasbg.fr>

	* gdb.base/completion.exp: Add a test for directory completion.

2009-03-22  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix a racy FAIL.
	* gdb.base/auxv.exp (fetch_auxv): Fix trailing newlines consumption.
	* gdb.base/callfuncs.exp (fetch_all_registers): Likewise.

2009-03-21  Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* gdb.python/python-cmd.exp: Add tests for keyword arguments.
	* gdb.python/python-function.exp: Add test for function returning
	a GDB value.

2009-03-20  Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* gdb.python/python-function.exp: New file.

2009-03-20  Tom Tromey  <tromey@redhat.com>

	* gdb.base/store.exp: Update for change to escape output.
	* gdb.base/callfuncs.exp (fetch_all_registers): Update for change
	to escape output.
	* gdb.base/pointers.exp: Update for change to escape output.
	* gdb.base/long_long.exp (gdb_test_long_long): Update for change
	to escape output.
	* gdb.base/constvars.exp (do_constvar_tests): Update for change to
	escape output.
	* gdb.base/call-rt-st.exp (print_struct_call): Update for change
	to escape output.
	* gdb.cp/ref-types.exp (gdb_start_again): Update for change to
	escape output.
	* gdb.base/setvar.exp: Update for change to escape output.
	* lib/gdb.exp (default_gdb_start): Set LC_CTYPE to C.
	* gdb.base/printcmds.exp (test_print_all_chars): Update for change
	to escape output.
	(test_print_string_constants): Likewise.
	* gdb.base/charset.exp (valid_host_charset): Check size of
	wchar_t.  Handle UCS-2 and UCS-4.  Add tests for wide and unicode
	cases.  Handle "auto"-related output.
	* gdb.base/charset.c (char16_t, char32_t): New typedefs.
	(uvar, Uvar): New globals.

2009-03-19  Jerome Guitton  <guitton@adacore.com>

	* gdb.ada/fixed_points/fixed_points.adb: Add a test on overprecise
	deltas.
	* gdb.ada/fixed_points.exp: Ditto.

2009-03-18  Pedro Alves  <pedro@codesourcery.com>

	* return-nodebug.c: Don't include stdio.h.
	(init): Delete.
	(func): Delete definition and provide extern declaration.
	(t): New.
	(main): Don't call printf.  Call func and store its result in t.
	* return-nodebug1.c: New.
	* return-nodebug.exp: Don't expect stdio output.  Instead, print
	the global variable t.  Drop printf formatters and cast types from
	foreach loop.  Don't use prepare_for_testing.  Compile
	return-nodebug.c and return-nodebug1.c in separate steps.  Don't
	define FORMAT or CAST.

2009-03-17  Paul Pluzhnikov  <ppluzhnikov@google.com>

	* gdb.base/solib-display.exp: Disable test for remote targers.

2009-03-15  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/return-nodebug.exp, gdb.base/return-nodebug.c: New.

2009-03-14  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix a racy FAIL.
	* gdb.base/multi-forks.exp (continue_to_exit_bp_loc): New function with
	code from `follow parent, print pids'.
	(`follow child, print pids', `follow parent, print pids'): Call it.
	Replace `gdb_test "break..."' by gdb_breakpoint.

2009-03-13  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.mi/mi-cli.exp: Adjust for output difference in
	sync and async modes.

2009-03-12  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/ptype_arith_binop.exp: Remove some commented-out code
	that was checked in by mistake. Remove loading of ada.exp, since
	this is not necessary in this case.

2009-03-12  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/ptype_arith_binop.exp: New testcase.

2009-03-12  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/mod_from_name: New testcase.

2009-03-12  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/tick_last_segv: New testcase.

2009-03-12  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.mi/mi-cli.exp: Remove debug print.

2009-03-12  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.mi/mi-cli.exp: Verify that CLI commands that run inferior
	include the token in ^running and frame info in *stopped.

2009-03-05  Paul Pluzhnikov  <ppluzhnikov@google.com>

	* solib-display.exp: New file.
	* solib-display-main.c: New file.
	* solib-display-lib.c: New file.

2009-03-05  Pedro Alves  <pedro@codesourcery.com>

	* gdb.arch/i386-permbkpt.S, gdb.arch/i386-permbkpt.exp: New.

2009-02-18  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/macscp.exp (objfile): Move it to ${objdir}/${subdir}/.
	(list_and_check_macro): Use more specific test name.
	(next to definition): Make the test names unique.

2009-02-18  Pierre Muller  <muller@ics.u-strasbg.fr>

	* gdb.pascal/floats.exp: Accept approximate results everywhere.

2009-02-17  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.mi/mi-nonstop.exp (notifs): Adjust for library
	notifications.
	* gdb.mi/mi-nsintrall.exp (notifs): Likewise.
	* gdb.mi/mi-nsmoribund.exp (notifs): Likewise.
	* lib/mi-support.exp (library_loaded_re): New.
	(mi_run_cmd, mi_send_resuming_command_raw): Adjust.

2009-02-17  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.gdb/observer.exp: Use test_notification observer, not
	normal_stop, everywhere.
	(test_normal_stop_notifications): Rename to...
	(test_notifications): ...this.
	(test_observer_normal_stop): Rename to...
	(test_observer): ...this.

2009-02-16  Doug Evans  <dje@google.com>

	* gdb.arch/amd64-disp-step.S (test_int3): New test.
	* gdb.arch/amd64-disp-step.exp (test_int3): New test.
	* gdb.arch/i386-disp-step.S (test_prefixed_abs_jump): New test.
	(test_prefixed_syscall,test_int3): New tests.
	* gdb.arch/i386-disp-step.exp (test_prefixed_abs_jump): New test.
	(test_prefixed_syscall,test_int3): New tests.

2009-02-14  Vladimir Prus  <vladimir@codesourcery.com>

	* lib/mi-support.exp (mi_expect_stop): Adjust the order of fields.
	(mi_expect_interrupt): Likewise.
	* gdb.mi/mi-cli.exp: Check that "step" results in proper *stopped
	response.

2009-02-14  Pierre Muller  <muller@ics.u-strasbg.fr>

	* lib/gdb.exp (get_hexadecimal_valueof): New procedure.
	* gdb.base/pc-fp.exp (get_valueofx): Remove.
	Replace calls to get_valueofx by get_hexadecimal_valueof.

2009-02-14  Pierre Muller  <muller@ics.u-strasbg.fr>

	* lib/gdb.exp (get_valueof): Accept anything as a return value.
	(get_integer_valueof): New procedure.
	(get_sizeof): Use new get_integer_value_of.
	* gdb.base/sizeof.exp: Replace all uses of get_valueof
	by get_integer_valueof.

2009-02-13  Tom Tromey  <tromey@redhat.com>

	* gdb.base/remote.exp (get_sizeof): Remove.
	* gdb.base/long_long.exp (get_valueof, get_sizeof): Remove.
	* gdb.base/dfp-test.exp (get_valueof, get_sizeof): Remove.
	* gdb.base/sizeof.exp (get_valueof, get_sizeof): Remove.
	* lib/gdb.exp (get_valueof): Move from long_long.exp.
	(get_sizeof): Likewise.

2009-02-12  Jan Kratochvil  <jan.kratochvil@redhat.com>

	PR fortran/9806
	* gdb.fortran/module.exp, gdb.fortran/module.f90: New.

2009-02-06  Paul Pluzhnikov  <ppluzhnikov@google.com>

	* gdb.cp/pr9594.cc: Prevent GCC from optimizing 'a' out.

2009-02-06  Pedro Alves  <pedro@codesourcery.com>

	* gdb.base/siginfo-obj.c, gdb.base/siginfo-obj.exp: New.

2009-02-06  Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* gdb.python/python-cmd.exp: New file.

2009-02-06  Tristan Gingold  <gingold@adacore.com>

	* gdb.arch/i386-sse.c (main): Replace call to puts by an nop asm.

2009-02-05  Tristan Gingold  <gingold@adacore.com>

	* gdb.base/sigbpt.exp: Detect which signal is received when a NULL
	pointer is dereferenced and use this signal name in regexp.
	* gdb.base/signull.exp: Ditto.
	* gdb.base/sigbpt.c (main): Catch SIGBUS too.
	* gdb.base/signull.c (main): Ditto.

2009-02-04  Tom Tromey  <tromey@redhat.com>
	    Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* gdb.python/python-value.exp: Use `gdb.history' instead of
	`gdb.value_from_history'.
	(test_value_numeric_ops): Add test for conversion of enum constant.
	* gdb.python/python-value.c (enum e): New type.
	(evalue): New global.
	(main): Use argv.

2009-02-04  Jerome Guitton  <guitton@adacore.com>

	* gdb.ada/uninitialized_vars: New test program.
	* gdb.ada/uninitialized_vars.exp: New testcase.

2009-02-02  Tom Tromey  <tromey@redhat.com>

	* gdb.cp/cpcompletion.exp: Name the test "pr9594".
	* gdb.cp/pr2489.cc: Rename...
	* gdb.cp/pr9594.cc: ... to this.

2009-02-02  Tom Tromey  <tromey@redhat.com>

	* gdb.cp/Makefile.in (EXECUTABLES): Add pr2489.
	* gdb.cp/pr2489.cc: New file.
	* gdb.cp/cpcompletion.exp: New file.

2009-02-02  Tom Tromey  <tromey@redhat.com>

	PR exp/9059:
	* gdb.cp/call-c.exp: Add regression test.
	* gdb.cp/call-c.cc (FooHandle): New typedef.
	(main): New variable 'handle'.

2009-01-30  Vladimir Prus  <vladimir@codesourcery.com>

	* lib/mi-support.exp (et_mi_thread_list)
	(check_mi_and_console_threads): Adjust for current thread in
	-thread-list-ids output.

2009-01-30  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.mi/mi-break.exp (test_disabled_creation): New.
	Call it.

2009-01-28  Doug Evans  <dje@google.com>

	* gdb.arch/amd64-disp-step.S: New file.
	* gdb.arch/amd64-disp-step.exp: New file.
	* gdb.arch/i386-disp-step.S: New file.
	* gdb.arch/i386-disp-step.exp: New file.

2009-01-27  Pierre Muller  <muller@ics.u-strasbg.fr>

	* gdb.base/find.exp: Set newline variable
	using quotes instead of braces to fix cygwin failures.

2009-01-23  Pedro Alves  <pedro@codesourcery.com>

	* gdb.base/radix.exp: Add tests to ensure that that set
	input-radix 0 and set output-radix 0 are really rejected.

2009-01-23  Pedro Alves  <pedro@codesourcery.com>

	* gdb.base/hook-stop-frame.c, gdb.base/hook-stop-frame.exp: Update
	copyright years.

2009-01-23  Pedro Alves  <pedro@codesourcery.com>

	PR gdb/9664:
	* gdb.base/hook-stop-frame.c, gdb.base/hook-stop-frame.exp: New.

2009-01-22  Pedro Alves  <pedro@codesourcery.com>

	PR c++/9631:
	* gdb.cp/pr9631.cc, gdb.cp/pr9631.exp: New.

2009-01-22  Pierre Muller  <muller@ics.u-strasbg.fr>

	* gdb.server/file-transfer.exp: Use EXEEXT variable for
	binfile definition to fix Windows OS failure.

2009-01-20  Daniel Jacobowitz  <dan@codesourcery.com>

	PR gdb/9346
	* gdb.base/interrupt.c (sigint_handler): New.
	(main): Install a SIGINT handler if SIGNALS is defined.  Exit
	on error.
	* gdb.base/interrupt.exp: Define SIGNALS unless gdb,nosignals.
	Test "signal SIGINT".

2009-01-19  Doug Evans  <dje@google.com>

	* gdb.base/break.exp: Update expected gdb output.
	* gdb.base/sepdebug.exp: Ditto.
	* gdb.mi/mi-syn-frame.exp: Ditto.
	* gdb.mi/mi2-syn-frame.exp: Ditto.
	* gdb.base/call-signal-resume.exp: New file.
	* gdb.base/call-signals.c: New file.
	* gdb.base/unwindonsignal.exp: New file.
	* gdb.base/unwindonsignal.c: New file.
	* gdb.threads/interrupted-hand-call.exp: New file.
	* gdb.threads/interrupted-hand-call.c: New file.
	* gdb.threads/thread-unwindonsignal.exp: New file.

2009-01-14  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/define.exp: Test defining and hooking prefix commands.
	* gdb.python/python.exp: Update test for "show user" output.

2009-01-07  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.fortran/derived-type.exp: New variables int4 and real4.  Match
	now the output exactly, using less wildcards.  Expect also the output
	of gfortran-4.3.  Update for the f-valprint.c modification from
	2008-04-22.
	* gdb.fortran/subarray.exp: Expect also the output of gfortran-4.3.
	Remove gdb_test test names where matching the command.

2009-01-01  Pedro Alves  <pedro@codesourcery.com>

	PR breakpoints/9681:
	* gdb.base/watchpoint.exp: Add regression test.

2008-12-31  Pedro Alves  <pedro@codesourcery.com>

	* gdb.threads/attach-into-signal.exp: Don't use
	gdb_suppress_entire_file.
	* gdb.threads/attach-stopped.exp: Ditto.
	* gdb.threads/attachstop-mt.exp: Ditto.

2008-12-31  Pedro Alves  <pedro@codesourcery.com>

	PR gdb/8812:
	* gdb.base/signal.exp: Change kfail to fail, and update PR number.

2008-12-29  Pedro Alves  <pedro@codesourcery.com>

	PR gdb/7536:
	* gdb.base/radix.exp: Add tests to ensure invalid input radices
	and unsupported output radices are really rejected.

2008-12-23  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.cp/punctuator.exp: Backslash the '$' signs.

2008-12-22  Tom Tromey  <tromey@redhat.com>

	* gdb.cp/punctuator.exp: New file.

2008-12-22  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/completion.exp (Completing non-existing component): New test.

2008-12-21  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix for PR gdb/8648.
	* gdb.arch/ppc-fp.exp, gdb.arch/vsx-regs.exp, gdb.base/watchpoint-hw.c,
	gdb.gdbtk/browser.test, gdb.gdbtk/console.test, gdb.gdbtk/srcwin.test,
	gdb.gdbtk/srcwin2.test, gdb.gdbtk/srcwin3.test, gdb.gdbtk/windows.test,
	gdb.threads/tls2.c: Remove reference to bug-gdb@prep.ai.mit.edu .

2008-12-21  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/watchpoint-hw.exp, gdb.base/watchpoint-hw.c: New.

2008-12-16  Christophe Lyon  <christophe.lyon@st.com>

	* gdb.base/expand-psymtabs.c: Insert code in foo so that the
	compiler actually generate code at the expected line number.

2008-12-15  Jie Zhang  <jie.zhang@analog.com>

	* gdb.base/consecutive.exp: Don't use global in gdb_expect.

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

	* gdb.base/commands.exp (redefine_hook_test): New proc.
	Call it.

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

	* gdb.base/macscp.exp: New regression test.

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

	* gdb.base/macscp.exp: Print "address.addr".
	* gdb.base/macscp1.c (struct outer): New struct.
	(address): New global.

2008-12-09  Tom Tromey  <tromey@redhat.com>

	* gdb.base/commands.exp (redefine_backtrace_test): New proc.
	Call it.

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

	* gdb.server/ext-run.exp: Relax regexp for init program.

2008-12-03  Tristan Gingold  <gingold@adacore.com>

	* gdb.base/macscp.exp: Generate an object file during compilation
	to work around Darwin dsymutil limitations.

2008-12-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Test resolving external references to TLS variables.
	* gdb.threads/tls.exp: New tests to examine A_THREAD_LOCAL and
	FILE2_THREAD_LOCAL.
	(testfile2, srcfile2): New variables.
	* gdb.threads/tls.c (file2_thread_local)
	(function_referencing_file2_thread_local): New.
	* gdb.threads/tls2.c: New file.

2008-11-28  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/int_deref.exp: Convert the addresses into long_integer
	rather than integer, as integer might not be big enough when
	on 64bit targets.

2008-11-27  Jerome Guitton  <guitton@adacore.com>

	* gdb.cp/formatted-ref.exp: Add equality test.
	* gdb.ada/formatted_ref.exp: Ditto.

2008-11-25  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/breakpoint-shadow.exp, gdb.base/breakpoint-shadow.c: New.
	* gdb.base/start.exp: New comment about an alternative - `runto_main'.

2008-11-20  Andreas Schwab  <schwab@suse.de>

	* gdb.base/foll-fork.exp (catch_fork_child_follow): Fix patterns
	matching syscall entry point.
	* gdb.base/foll-vfork.exp (tcatch_vfork_then_parent_follow)
	(tcatch_vfork_then_child_follow): Likewise.  Finish through
	vfork even if we stopped at the syscall trampoline.

2008-11-20  Doug Evans  <dje@google.com>

	* gdb.base/sepsymtab.exp: Update, old "info sym" format restored.

2008-11-18  Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* gdb.arch/ppc-dfp.exp: New file.
	* gdb.arch/ppc-dfp.c: New file.

2008-11-18  Paul Pluzhnikov  <ppluzhnikov@google.com>

	* gdb.base/sepsymtab.exp: Update for new 'info sym' format.

2008-11-17  Doug Evans  <dje@google.com>

	* gdb.mi/mi-syn-frame.exp: Update expected output.
	* gdb.mi/mi2-syn-frame.exp: Update expected output.

2008-11-17  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.mi/mi-pthreads.exp (check_mi_thread_command_set): Make sure
	"thread N" results in =thread-selected.
	* lib/mi-support (mi_run_cmd, mi_expect_stop)
	(mi_send_resuming_command_raw): Be prepared for
	=thread-selected.

2008-11-17  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.mi/mi-nonstop.exp: Expect 'group-id' field.
	* lib/mi-support.exp: Likewise.

2008-11-16  Joel Brobecker  <brobecker@adacore.com>

	* gdb.base/help.exp: Remove the "catch load" and "catch unload"
	commands from the expected output for "help catch".

2008-11-15  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/int_deref.exp: New testcase.

2008-11-14  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.mi/gdb2549.exp: New file.

2008-11-11  Doug Evans  <dje@google.com>

	* gdb.base/callexit.exp: New file.
	* gdb.base/callexit.c: New file.

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

	* lib/gdb.exp (GDBFLAGS): Move -nx ...
	(INTERNAL_GDBFLAGS): ... to here.  Move -nw to here as well.
	(default_gdb_version): Add $INTERNAL_GDBFLAGS to gdb invocations.
	(default_gdb_start,default_gdb_exit): Ditto.
	* lib/mi-support.exp (default_mi_gdb_start): Ditto.
	(mi_uncatched_gdb_exit): Add $INTERNAL_GDBFLAGS to log message.
	* gdb.base/corefile.exp: Add $INTERNAL_GDBFLAGS to gdb invocations.
	* gdb.base/dbx.exp (dbx_gdb_start): Ditto.
	* gdb.base/args.exp (GDBFLAGS): Don't overwrite, append.
	* gdb.base/remotetimeout.exp (GDBFLAGS): Ditto.

2008-11-03  Andreas Schwab  <schwab@suse.de>

	* gdb.base/hashline2.exp: Fix typo.
	* gdb.base/hashline3.exp: Likewise.

2008-10-30  Tom Tromey  <tromey@redhat.com>

	* gdb.base/pointers.exp: Add test.
	* gdb.base/pointers.c (k, S): New typedefs.
	(instance): New global.

2008-10-30  Andreas Schwab  <schwab@suse.de>

	* gdb.base/args.exp: Add tests for newlines.

2008-10-30  Joel Brobecker  <brobecker@adacore.com>

	gdb.base/foll-exec.exp: Update the expected output of a couple
	of "info breakpoints" tests.

2008-10-28  Tom Tromey  <tromey@redhat.com>

	* gdb.base/exprs.exp (test_expr): Add enum formatting tests.

2008-10-24  Pedro Alves  <pedro@codesourcery.com>

	* gdb.python/python-value.exp (test_value_in_inferior): Don't use
	gdb_start_cmd.
	Use runto_main before any test that requires execution.

2008-10-23  Pedro Alves  <pedro@codesourcery.com>

	* lib/mi-support.exp (mi_expect_interrupt): Expect signal 0
	instead of SIGINT.

2008-10-22  Joel Brobecker  <brobecker@adacore.com>

	* gdb.base/completion.exp: Update expected output following
	the addition of the "info tasks" command.

2008-10-22  Tom Tromey  <tromey@redhat.com>

	* gdb.base/exprs.exp (test_expr): Add test for string
	concatenation.

2008-10-19  Pedro Alves  <pedro@codesourcery.com>

	* configure.ac: Output gdb.python/Makefile.
	* configure: Regenerate.
	* gdb.python/Makefile.in: New.

2008-10-16  Joel Brobecker  <brobecker@adacore.com>

	* gdb.base/foll-fork.exp: Adjust the expected output to match
	the new description for fork/vfork catchpoints in the "info
	breakpoints" output.

2008-10-16  Paul Pluzhnikov  <ppluzhnikov@google.com>

	* Makefile.in: Add gdb.python to ALL_SUBDIRS.

2008-10-16  Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* gdb.python/python-value.c: New file.
	* gdb.python/python-value.exp: New file.

2008-10-15  Pedro Alves  <pedro@codesourcery.com>

	* gdb.mi/mi-nsmoribund.exp, gdb.mi/nsmoribund.c: New test.

2008-10-15  Denis Pilat  <denis.pilat@st.com>

	* gdb.cp/mb-ctor.exp: Fix a typo.

2008-10-09  Tom Tromey  <tromey@redhat.com>

	* gdb.base/macscp.exp: Use 'vafunc' and 'fixedarg' rather than
	'fprintf' and 'stderr'.

2008-10-07  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/ref_tick_size.exp: New testcase.

2008-10-06  Doug Evans  <dje@google.com>

	* gdb.dwarf2/dw2-cu-size.exp: New file.
	* gdb.dwarf2/dw2-cu-size.S: New file.

	* gdb.dwarf2/dw2-intercu.S (.Ltype_int_in_cu2): Renamed from
	.Ltype_int for clarity.

2008-10-03  Paul Pluzhnikov  <ppluzhnikov@google.com>

	PR gdb/2384:
	* gdb.cp/gdb2384.exp: Extended to test more cases.
	* gdb.cp/gdb2384.cc: Likewise.
	* gdb.cp/gdb2384-base.h: Likewise.
	* gdb.cp/gdb2384-base.cc: Likewise.

2008-10-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/maint.exp (maint print type): Remove printing
	UPPER_BOUND_TYPE and LOWER_BOUND_TYPE.

2008-09-30  Tom Tromey  <tromey@redhat.com>

	* gdb.base/macscp.exp: Add completion tests.
	* gdb.base/macscp1.c (FIFTY_SEVEN): New macro.
	(TWENTY_THREE): Likewise.
	(FORTY_EIGHT): Likewise.

2008-09-30  Tom Tromey  <tromey@redhat.com>

	* gdb.base/macscp.exp: Change "M" to "MACRO_TO_EXPAND"
	everywhere.
	* gdb.base/macscp1.c (MACRO_TO_EXPAND): Rename from "M".

2008-09-28  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.threads/attachstop-mt.exp: Note a real testcase name this
	testcase is derived from.  Fix racy dependency on an expected PID
	number.  No longer support the testcase on Linux kernel 2.4.x.

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

	* gdb.base/macscp.exp: Add tests for stringification, splicing,
	and varargs.

2008-09-22  Pedro Alves  <pedro@codesourcery.com>

	* lib/mi-support.exp (mi_expect_interrupt): New.
	(mi_reverse_list, mi_check_thread_states): New, moved and renamed
	from gdb.mi/mi-nonstop.exp.
	* gdb.mi/mi-nsintrall.exp, gdb.mi/nsintrall.c: New.
	* gdb.mi/mi-nonstop.exp (myreverse, check_thread_states): Moved to
	lib/mi-support.exp.
	Use mi_check_thread_states throughout.  Avoid ".*" and do not
	require an anchor after -exec-run.

2008-09-13  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.mi/mi-nonstop.exp: Do not check thread state while a
	stop is pending.  Avoid ".*" when two stops are pending.
	* lib/gdb.exp (fullname_syntax_POSIX, fullname_syntax_UNC)
	(fullname_syntax_DOS_CASE, fullname_syntax_DOS): Do not match
	newlines in fullnames.
	* lib/mi-support.exp (mi_run_cmd): Do not require an anchor.
	(mi_expect_stop): Update comments.  Only anchor in sync mode.
	Do not match newlines.
	(mi_send_resuming_command_raw): Always return status.
	(mi_get_stop_line): Do not match more than one line by accident.
	Only anchor in sync mode.
	(mi_run_inline_test): If -exec-next fails, give up.

2008-09-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.base/stack-checking.c (big_frame): Reduce stack consumption
	on SPU.

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

	* gdb.ada/Makefile.in (EXECUTABLES): Bring up to date.

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

	* gdb.ada/array_bounds.exp, gdb.ada/array_subscript_addr.exp,
	gdb.ada/arrayidx.exp, gdb.ada/arrayparam.exp, gdb.ada/arrayptr.exp,
	gdb.ada/assign_1.exp, gdb.ada/boolean_expr.exp,
	gdb.ada/char_param.exp, gdb.ada/exprs.exp, gdb.ada/fixed_cmp.exp,
	gdb.ada/fixed_points.exp, gdb.ada/fun_addr.exp,
	gdb.ada/funcall_param.exp, gdb.ada/homonym.exp,
	gdb.ada/interface.exp, gdb.ada/null_array.exp,
	gdb.ada/packed_array.exp, gdb.ada/packed_tagged.exp,
	gdb.ada/print_chars.exp, gdb.ada/print_pc.exp,
	gdb.ada/str_ref_cmp.exp, gdb.ada/sym_print_name.exp,
	gdb.ada/taft_type.exp, gdb.ada/tagged.exp, gdb.ada/type_coercion.exp:
	Include the "= " sequence in the expected output of print tests.

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

	* gdb.ada/packed_tagged.exp: Accept "boolean" as a valid type
	description for boolean types.

2008-09-09  Pedro Alves  <pedro@codesourcery.com>

	* gdb.base/hook-stop-continue.c: New.
	* gdb.base/hook-stop-continue.exp: New.

2008-09-08  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/structs3.c, gdb.base/structs3.exp: New files.

2008-09-08  Jerome Guitton  <guitton@adacore.com>

	* gdb.arch/powerpc-aix-prologue.c (stack_check_probe_1)
	(stack_check_probe_2, stack_check_probe_loop_1)
	(stack_check_probe_loop_2): New functions.
	(main): Add call to these new functions.
	* gdb.arch/powerpc-aix-prologue.exp: When breaking on these
	functions, check that the breakpoint is inserted at the appropriate
	location.
	(insert_breakpoint): Slightly refine this procedure so that it can
	be called several times in the test.

2008-09-08  Jerome Guitton  <guitton@adacore.com>

	* gdb.base/stack-checking.c: New file.
	* gdb.base/stack-checking.exp: New file.

2008-09-05  Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* gdb.arch/altivec-abi.exp: Remove extra verbose call.
	* gdb.arch/altivec-regs.exp: Likewise.
	* gdb.arch/vsx-regs.exp: Likewise.

2008-09-05  Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* gdb.arch/ppc-fp.exp: New file.
	* gdb.arch/ppc-fp.c: New file.

2008-09-05  Paul Pluzhnikov  <ppluzhnikov@google.com>

	*gdb.base/mips_pro.exp: compile with gcc -fno-inline,
	lest gcc-4.3.1 optimizes the whole thing away.

2008-09-04  Michael Snyder  <msnyder@vmware.com>

	* lib/gdb.exp (gdb_continue_to_breakpoint): Accept "in" as well
	as "at" (for non-debug functions such as _start).

2008-09-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.base/value-double-free.exp: Respect gdb,no_hardware_watchpoints.
	* gdb.base/watchpoint-solib.exp: Likewise.  Update tests to handle
	software watchpoints.
	* gdb.base/watch_thread_num.exp: Likewise.

2008-09-03  Aleksandar Ristovski  <aristovski@qnx.com>

	* gdb.arch/i386-bp_permanent.exp: New test.

2008-08-24  Tom Tromey  <tromey@redhat.com>

	* gdb.base/maint.exp: Update "maint print type".

2008-08-21  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.mi/mi-nonstop.exp: Fix the check for non-stop
	support.  Adjust the order of "*running" notifications.
	* gdb.mi/non-stop.c: Don't cast from int to void* and
	back.

2008-08-20  Mark Kettenis  <kettenis@gnu.org>

	* gdb.arch/powerpc-prologue.exp: Code doesn't save %r31 so don't
	expect to find it in the "info frame" output.

2008-08-20  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/interp.exp: Always consume both prompts.

2008-08-20  Pedro Alves  <pedro@codesourcery.com>

	* gdb.base/pending.exp: Test pending breakpoints without symbols
	loaded.

2008-08-19  Vladimir Prus  <vladimir@codesourcery.com>

	* lib/mi-support.exp (mi_expect_stop): Produce
	more details on failures.
	* gdb.mi/mi-nonstop.exp: New.
	* gdb.mi/non-stop.c: New.

2008-08-19  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.mi/mi-async.exp: Use 'set target-async'.
	* lib/mi-support.exp: Use 'set/show target-async'.

2008-08-18  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.arch/powerpc-prologue.exp: Correct saved registers.

2008-08-17  Tom Tromey  <tromey@redhat.com>

	* gdb.base/help.exp (help catch): Rewrite.

2008-08-16  Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* gdb.base/define.exp: Test indented command documentation.
	* gdb.python/python.exp: Test indented multi-line command.

2008-08-15  Luis Machado  <luisgpm@br.ibm.com>

	* testsuite/gdb.arch/vsx-regs.c: New source file.
	* testsuite/gdb.arch/vsx-regs.exp: New testcase.
	* testsuite/lib/gdb.exp (skip_vsx_tests): New function.

2008-08-14  Tom Tromey  <tromey@redhat.com>

	* gdb.base/macscp.exp: Add regression test for "macro define" or
	"macro undef" with no arguments.

2008-08-08  Paul Pluzhnikov  <ppluzhnikov@google.com>

	* gdb.base/args.exp: Prevent ~/.gdbinit from affecting test.

2008-08-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.arch/spu-info.exp: Updated for "info spu dma" changes.

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

	* gdb.python/python.exp: New file.

2008-08-06  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix for PR gdb/1543.
	* gdb.base/sep.exp: `sep-proc.c' absolute line numbers replaced with
	$LOCATION.
	(location): New variable.
	* config/cfdbug.exp, config/d10v.exp, config/dve.exp, config/i960.exp,
	config/m32r.exp, config/mn10300-eval.exp, config/proelf.exp,
	config/rom68k.exp, config/sh.exp, config/unix.exp, config/vr4300.exp,
	config/vr5000.exp, config/vxworks.exp, gdb.arch/altivec-regs.exp,
	gdb.arch/e500-abi.exp, gdb.arch/e500-regs.exp, gdb.asm/asm-source.exp,
	gdb.base/a2-run.exp, gdb.base/advance.exp, gdb.base/all-bin.exp,
	gdb.base/args.exp, gdb.base/arithmet.exp, gdb.base/assign.exp,
	gdb.base/async.exp, gdb.base/auxv.exp, gdb.base/bigcore.c,
	gdb.base/bigcore.exp, gdb.base/bitfields.exp, gdb.base/bitops.exp,
	gdb.base/break.c, gdb.base/break.exp, gdb.base/break1.c,
	gdb.base/call-ar-st.exp, gdb.base/call-rt-st.exp,
	gdb.base/call-strs.exp, gdb.base/callfuncs.c, gdb.base/callfuncs.exp,
	gdb.base/checkpoint.exp, gdb.base/chng-syms.exp,
	gdb.base/code-expr.exp, gdb.base/commands.exp, gdb.base/completion.exp,
	gdb.base/complex.exp, gdb.base/cond-expr.exp, gdb.base/condbreak.exp,
	gdb.base/consecutive.exp, gdb.base/corefile.exp, gdb.base/cvexpr.c,
	gdb.base/cvexpr.exp, gdb.base/dbx.exp, gdb.base/default.exp,
	gdb.base/define.exp, gdb.base/del.c, gdb.base/detach.exp,
	gdb.base/display.exp, gdb.base/dump.exp, gdb.base/echo.exp,
	gdb.base/environ.exp, gdb.base/eval-skip.exp, gdb.base/exprs.exp,
	gdb.base/fileio.exp, gdb.base/find.exp, gdb.base/finish.exp,
	gdb.base/funcargs.exp, gdb.base/gcore-buffer-overflow.exp,
	gdb.base/gcore.exp, gdb.base/gdb1555.exp, gdb.base/gdbvars.exp,
	gdb.base/help.exp, gdb.base/huge.exp, gdb.base/info-proc.exp,
	gdb.base/interrupt.exp, gdb.base/jump.exp, gdb.base/langs.exp,
	gdb.base/lineinc.exp, gdb.base/list.exp, gdb.base/macscp.exp,
	gdb.base/maint.exp, gdb.base/mips_pro.exp, gdb.base/miscexprs.exp,
	gdb.base/nodebug.exp, gdb.base/nofield.c, gdb.base/opaque.exp,
	gdb.base/overlays.exp, gdb.base/page.exp, gdb.base/pc-fp.exp,
	gdb.base/pending.c, gdb.base/pendshr.c, gdb.base/pointers.exp,
	gdb.base/psymtab.exp, gdb.base/ptype.exp, gdb.base/randomize.c,
	gdb.base/readline.exp, gdb.base/recurse.exp, gdb.base/regs.exp,
	gdb.base/relational.exp, gdb.base/relocate.exp, gdb.base/remote.exp,
	gdb.base/reread.exp, gdb.base/return.exp, gdb.base/return2.exp,
	gdb.base/scope.exp, gdb.base/sect-cmd.exp, gdb.base/sep-proc.c,
	gdb.base/sep.c, gdb.base/sep.exp, gdb.base/sepdebug.c,
	gdb.base/sepdebug.exp, gdb.base/setshow.exp, gdb.base/shlib-call.exp,
	gdb.base/sigaltstack.c, gdb.base/so-indr-cl.exp, gdb.base/solib.exp,
	gdb.base/source.exp, gdb.base/start.c, gdb.base/step-bt.c,
	gdb.base/step-line.exp, gdb.base/structs.c, gdb.base/structs.exp,
	gdb.base/structs2.exp, gdb.base/term.exp, gdb.base/twice.exp,
	gdb.base/type-opaque.exp, gdb.base/until.exp,
	gdb.base/value-double-free.c, gdb.base/varargs.exp,
	gdb.base/watchpoint.exp, gdb.base/whatis-exp.exp, gdb.disasm/am33.exp,
	gdb.disasm/h8300s.exp, gdb.disasm/hppa.exp, gdb.disasm/mn10300.exp,
	gdb.disasm/sh3.exp, gdb.disasm/t01_mov.exp, gdb.disasm/t02_mova.exp,
	gdb.disasm/t03_add.exp, gdb.disasm/t04_sub.exp, gdb.disasm/t05_cmp.exp,
	gdb.disasm/t06_ari2.exp, gdb.disasm/t07_ari3.exp,
	gdb.disasm/t08_or.exp, gdb.disasm/t09_xor.exp, gdb.disasm/t10_and.exp,
	gdb.disasm/t11_logs.exp, gdb.disasm/t12_bit.exp,
	gdb.disasm/t13_otr.exp, gdb.fortran/exprs.exp, gdb.fortran/types.exp,
	gdb.hp/gdb.aCC/exception.exp, gdb.hp/gdb.aCC/optimize.exp,
	gdb.hp/gdb.aCC/watch-cmd.exp, gdb.hp/gdb.base-hp/callfwmall.exp,
	gdb.hp/gdb.base-hp/dollar.exp, gdb.hp/gdb.base-hp/hwwatchbus.exp,
	gdb.hp/gdb.base-hp/pxdb.exp, gdb.hp/gdb.base-hp/reg-pa64.exp,
	gdb.hp/gdb.base-hp/reg.exp, gdb.hp/gdb.base-hp/sized-enum.exp,
	gdb.hp/gdb.base-hp/so-thresh.exp, gdb.hp/gdb.compat/xdb1.exp,
	gdb.hp/gdb.compat/xdb2.exp, gdb.hp/gdb.compat/xdb3.exp,
	gdb.java/jmisc.exp, gdb.java/jv-exp.exp, gdb.java/jv-print.exp,
	gdb.mi/gdb669.exp, gdb.mi/gdb680.exp, gdb.mi/gdb701.exp,
	gdb.mi/gdb792.exp, gdb.mi/mi-basics.exp, gdb.mi/mi-console.exp,
	gdb.mi/mi-hack-cli.exp, gdb.mi/mi-pending.c, gdb.mi/mi-pendshr.c,
	gdb.mi/mi-pthreads.exp, gdb.mi/mi-read-memory.exp, gdb.mi/mi-regs.exp,
	gdb.mi/mi-syn-frame.exp, gdb.mi/mi-until.exp, gdb.mi/mi2-basics.exp,
	gdb.mi/mi2-console.exp, gdb.mi/mi2-hack-cli.exp,
	gdb.mi/mi2-pthreads.exp, gdb.mi/mi2-read-memory.exp,
	gdb.mi/mi2-regs.exp, gdb.mi/mi2-syn-frame.exp, gdb.mi/mi2-until.exp,
	gdb.pascal/types.exp, gdb.stabs/weird.exp,
	gdb.threads/gcore-thread.exp, gdb.threads/manythreads.exp,
	gdb.threads/print-threads.exp, gdb.threads/pthreads.exp,
	gdb.threads/schedlock.exp, gdb.threads/step.exp, gdb.threads/step2.exp,
	gdb.threads/switch-threads.exp, gdb.threads/thread-specific.exp,
	gdb.threads/thread_check.exp, gdb.threads/thread_events.exp,
	gdb.threads/tls-nodebug.exp, gdb.threads/tls-shared.exp,
	gdb.threads/tls.exp, gdb.trace/actions.exp, gdb.trace/backtrace.exp,
	gdb.trace/circ.exp, gdb.trace/collection.exp, gdb.trace/deltrace.exp,
	gdb.trace/infotrace.exp, gdb.trace/limits.exp, gdb.trace/packetlen.exp,
	gdb.trace/passc-dyn.exp, gdb.trace/passcount.exp, gdb.trace/report.exp,
	gdb.trace/save-trace.exp, gdb.trace/tfind.exp, gdb.trace/tracecmd.exp,
	gdb.trace/while-dyn.exp, gdb.trace/while-stepping.exp,
	lib/mi-support.exp, lib/trace-support.exp: Remove reference
	to bug-gdb@prep.ai.mit.edu .

2008-07-31  Vladimir Prus  <vladimir@codesourcery.com>

	* lib/mi-support.exp (mi_load_shlibs): New.
	* gdb.mi/mi-pending.exp: Use mi_load_shlibs, not gdb_load_shlibs.

2008-07-30  Vladimir Prus  <vladimir@codesourcery.com>

	* lib/mi-support.exp (get_mi_thread_list)
	(check_mi_and_console_threads): New, moved from ...
	* gdb.mi/mi-pthread.exp: ...here.
	* gdb.mi/gdb669.exp (get_mi_thread_list)
	(check_mi_and_console_threads): Delete.
	* gdb.mi/mi2-pthread.exp: Likewise.

2008-07-28  Tom Tromey  <tromey@redhat.com>

	* Makefile.in (just-check): Remove.  Move body to...
	(check): ... here.

2008-07-27  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.threads/manythreads.exp: Use remote_expect instead of after.
	Add a test for duplicated SIGINTs.

2008-07-27  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.threads/schedlock.exp (get_args): Update to work for any
	value of NUM.
	(Top level): Report the number of threads that did not resume.

2008-07-27  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.dwarf2/dw2-compressed.S: Also define __start.

2008-07-27  Daniel Jacobowitz  <dan@codesourcery.com>

	* lib/mi-support.exp (default_mi_gdb_start): Remove check for
	non-MI prompt.

2008-07-26  Tom Tromey  <tromey@redhat.com>

	* gdb.base/callfuncs.c (struct struct_with_fnptr): New struct.
	(function_struct, function_struct_ptr): New globals.
	* gdb.base/callfuncs.exp (do_function_calls): Test calling via a
	function pointer in a struct.

2008-07-26  Tom Tromey  <tromey@redhat.com>

	* gdb.base/macscp.exp: Add test for macro lexing bug.

2008-07-18  Tom Tromey  <tromey@redhat.com>

	* gdb.base/macscp.exp: Add macro tests.

2008-07-17  Paul Pluzhnikov  <ppluzhnikov@google.com>

	* gdb.base/foll-fork.exp: Fix for Linux/VDSO failure.

2008-07-17  Paul Pluzhnikov  <ppluzhnikov@google.com>

	* gdb.base/coremaker.c: Fix for Linux failure in gdb.base/corefile.exp

2008-07-15  Paul Pluzhnikov  <ppluzhnikov@google.com>

	* gdb.cp/class2.exp: fix for failure on spu-elf

2008-07-14  Paul Pluzhnikov  <ppluzhnikov@google.com>

	* gdb.cp/class2.exp, gdb.cp/class2.cc: Test for PR2477.

2008-07-13  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/randomize.exp: Catch non-Linux targets as untested.

2008-07-12  Vladimir Prus  <vladimir@codesourcery.com>

	* lib/mi-support.exp (mi_expect_stop): Adjust for the new field.

2008-07-11  Kevin Buettner  <kevinb@redhat.com>

	* gdb.arch/e500-regs.exp (decimal_vector): Adjust "v8_int8" portion
	of regexp to account for changes made to GDB in the printing of
	byte vectors.

2008-07-11  Tom Tromey  <tromey@redhat.com>

	* gdb.base/completion.exp: Add 'help' completion test.

2008-07-10  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/randomize.exp: Remove dependency on tcl-8.4+.

2008-07-10  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/randomize.exp, gdb.base/randomize.c: New files.

2008-07-09  Pedro Alves  <pedro@codesourcery.com>

	* gdb.base/chng-syms.exp: Don't expect "No symbol ...".

2008-07-09  Pedro Alves  <pedro@codesourcery.com>

	* gdb.base/fullname.exp: Restore pwd if compiling failed.

2008-07-07  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/value-double-free.exp, gdb.base/value-double-free.c: New.

2008-06-28  Vladimir Prus  <vladimir@codesourcery.com>

	* lib/mi-support.exp (mi_send_resuming_command_raw): Revert
	previous commit.  Add a comment.

2008-06-28  Pedro Alves  <pedro@codesourcery.com>

	* gdb.base/sigchld.c, gdb.base/sigchld.exp: New test.

2008-06-28  Vladimir Prus  <vladimir@codesourcery.com>

	* lib/mi-support.exp (mi_send_resuming_command_raw): Report pass.

2008-06-27  Pedro Alves  <pedro@codesourcery.com>

	* lib/gdb.exp (gdb_saved_set_unbuffered_mode_obj): New global.
	(gdb_compile): If target is *-*-cygwin* or *-*-mingw*, and we're
	compiling an executable, link in an object that forces unbuffered
	output.
	* lib/set_unbuffered_mode.c: New file.

2008-06-25  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* lib/gdb.exp (prepare_for_testing): Do not drop the OPTIONS argument.

2008-06-25  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.mi/mi-async.exp: Use mi_sending_resuming_command_raw and
	mi_expect_stop.
	* gdb.mi/mi-support.exp (mi_run_cmd, mi_send_resuming_command):
	Demand that *running is output.
	(detect_async): Perform checking every time.
	(mi_send_resuming_command): Extract everything into...
	(mi_send_resuming_command_raw): ...this.
	(mi_expect_stop): Don't accept any output before *stopped.

2008-06-13  Vladimir Prus  <vladimir@codesourcery.com>

	Robustify mi-simplerun.
	* gdb.mi/basics.c (main): Add a call to sleep.
	* gdb.mi/mi-cli.exp: Adjust for change in line numbers.
	* gdb.mi/mi2-cli.exp: Likewise.
	* gdb.mi/mi-break.exp: Likewise.

2008-06-11  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.mi/mi-break.exp (test_ignore_count): Use mi_expect_stop.

2008-06-10  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.mi/mi-console.exp: Adjust.
	* gdb.mi/mi-syn-frame.exp: Adjust.
	* gdb.mi/mi2-console.exp: Adjust.
	* gdb.mi/mi2-syn-frame.exp: Adjust.
	* lib/mi-support.exp (mi_run_cmd): Adjust.
	(mi_send_resuming_command): Adjust.

2008-06-10  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.mi/mi-break.exp (test_ignore_count): Adjust stopped pattern.
	* gdb.mi/mi-syn-frame.exp: Use mi_expect_stop instead of direct
	testing of stopped.
	* gdb.mi/mi2-syn-frame.exp: Likewise.
	* lib/mi-support.exp (default_mi_gdb_start): Call detect_async.
	(async, detect_async): New.
	(mi_expect_stop, mi_continue_to_line): Adjust expectation
	depending on if we're running in sync or async mode.

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

	* gdb.base/completion.exp: New tests for field name completion
	with spaces, and field name completion with '->'.

2008-06-06  Tom Tromey  <tromey@redhat.com>

	* gdb.base/break1.c (struct some_struct): New struct.
	(values): New global.
	* gdb.base/completion.exp: Add field name completion test.

2008-06-06  Paul Pluzhnikov  <ppluzhnikov@google.com>

	* gdb.cp/call-c.exp: Test for incorrect handling of reference
	to pointer.
	* gdb.cp/call-c.cc: Likewise.

2008-06-06  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.base/annota1.exp (thread_switch): Test for thread-changed
	annotation.

2008-06-05  Paul Pluzhnikov  <ppluzhnikov@google.com>
	    Pedro Alves  <pedro@codesourcery.com>

	* gdb.threads/execl.c, gdb.threads/execl1.c,
	gdb.threads/execl.exp: New tests.

2008-06-05  Aleksandar Ristovski  <aristovski@qnx.com>
	    Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.cp/exception.exp: Activate test, make it work with pending
	catchpoints.

2008-06-05  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* dw2-ref-missing-frame.S, dw2-ref-missing-frame.exp: New files.

2008-05-28  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.mi/mi-var-cmd.exp: Adjust for the fact that type_changed field is
	now printed.
	* gdb.mi/mi2-var-cmd.exp: Likewise.

2008-05-27  Andreas Schwab  <schwab@suse.de>

	* gdb.base/frame-args.exp: Handle arguments that are optimized
	out.

2008-05-26  Luis Machado  <luisgpm@br.ibm.com>

	* gdb.arch/ppc64-atomic-inst.exp: Make the expected compile failure
	quiet for ppc32 and group options into a single variable.

2008-05-23  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/null_array/foo.adb: Add multi-dimensional array
	of zero-size elements.
	* gdb.ada/null_array.exp: Test printing this new array.

2008-05-22  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/longjmp.exp: Fix GDB_TEST_MULTIPLE missing GDB_PROMPT races.

2008-05-21  Joel Brobecker  <brobecker@adacore.com>

	* gdb.base/finish.exp: Test that "fin" works as an abbreviation
	of the "finish" command.

2008-05-21  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.base/annota1.exp: Test for new annotation.

2008-05-16  Pedro Alves  <pedro@codesourcery.com>

	* gdb.base/fixsection.exp: New file.
	* gdb.base/fixsection0.c: New file.
	* gdb.base/fixsection1.c: New file.

2008-05-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.base/annota1.exp: Accept printf@... in place of printf.
	* gdb.base/annota3.exp: Likewise.

2008-05-13  Nathan Froyd  <froydnj@codesourcery.com>

	* gdb.base/watch_thread_num.exp: Don't run tests that require
	watchpoints if the target doesn't support them.

2008-05-12  Doug Evans  <dje@google.com>

	* lib/gdbserver-support.exp (find_gdbserver): Use $GDBSERVER if set.

2008-05-09  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/assign_1.exp: New testcase.

2008-05-09  Doug Evans  <dje@google.com>

	* gdb.base/find.exp: New file.
	* gdb.base/find.c: New file.

2008-05-08  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/commands.exp (watchpoint_command_test): Handle
	gdb,no_hardware_watchpoints.
	* gdb.base/float.exp: Allow ARM targets without floating point.
	* gdb.base/step-test.exp: Allow callee@plt when stepping in.

2008-05-06  Jerome Guitton  <guitton@adacore.com>
	    Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/lang_switch: New test program.
	* gdb.ada/lang_switch.exp: New testcase.

2008-05-05  Doug Evans  <dje@google.com>

	* gdb.base/help.exp (disassemble): Update expected help text.

2008-05-04  Pedro Alves  <pedro@codesourcery.com>

	* gdb.base/longjmp.c, gdb.base/longjmp.exp: New files.

2008-05-04  Pedro Alves  <pedro@codesourcery.com>

	* gdb.cp/annota2.exp: Adjust to breakpoints invalidations at
	different times.

2008-05-04  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.dwarf2/dw2-ranges.S: Merge the secondary section with `.fini'.
	* gdb.dwarf2/dw2-ranges.exp: Compile also `dw2-ranges2.S' and
	`dw2-ranges3.S' and test also their MAIN2, FUNC2 and MAIN3 symbols.
	* gdb.dwarf2/dw2-ranges2.S, gdb.dwarf2/dw2-ranges3.S: New files.

2008-05-04  Vladimir Prus  <vladimir@codesourcery.com>

	* lib/mi-support.exp (mi_run_cmd): Allow for =thread-created
	notification to appear.

2008-05-04  Daniel Jacobowitz  <dan@debian.org>

	* gdb.base/fullname.c: New file.
	* gdb.base/fullname.exp: New file.
	* lib/gdb.exp (gdb_breakpoint): Support no-message option.

2008-05-03  Pedro Alves  <pedro@codesourcery.com>

	* gdb.base/macscp.exp, gdb.base/macscp1.c: Add test for printing
	expressions with macros.

2008-05-03  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/dfp-test.exp: Fix random FAIL risk on calling functions.

2008-05-02  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/completion.exp: Handle lack of other symbols beginning
	with "a".

	* gdb.base/varargs.exp: Correct quoting for options to gdb_compile.

2008-05-02  Jim Blandy  <jimb@codesourcery.com>

	* gdb.asm/asmsrc1.s: Add scratch space.

2008-05-01  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.threads/attach-into-signal.c, gdb.threads/attach-into-signal.exp,
	gdb.threads/attach-stopped.c, gdb.threads/attach-stopped.exp,
	gdb.threads/attachstop-mt.c, gdb.threads/attachstop-mt.exp: New.

2007-05-01  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.arch/thumb-prologue.exp: Do not expect a saved PC.

2008-05-01  Joel Brobecker  <brobecker@adacore.com>

	* gdb.base/info-target.exp: New testcase.

2008-04-30  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.cp/hang.exp: Use .cc instead of .C.
	* gdb.cp/hang1.cc, gdb.cp/hang2.cc, gdb.cp/hang3.cc: Renamed from ...
	* gdb.cp/hang1.C, gdb.cp/hang2.C, gdb.cp/hang3.C: ... here.

2008-04-30  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/gdb1250.exp: Remove perror.
	* lib/mi-support.exp (mi_delete_breakpoints): Match the prompt.

2008-04-30  Pedro Alves  <pedro@codesourcery.com>

	* gdb.dwarf2/dw2-strp.S: Replace .long by .4byte and .value by
	.2byte.

2008-04-25  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/macscp.exp: Enable kfails.  Compile with -g3 for GCC.
	(maybe_kfail): New.

2008-04-25  Pedro Alves  <pedro@codesourcery.com>

	* gdb.dwarf2/dw2-strp.S, gdb.dwarf2/dw2-strp.exp: New files.

2008-04-24  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.mi/mi-syn-frame.exp: Adjust for token disappearance.
	* gdb.mi/mi2-syn-frame.exp: Likewise.
	* lib/mi-support.exp: Likewise.

2008-04-24  Vladimir Prus  <vladimir@codesourcery.com>

	* lib/gdb.exp (gdb_continue_to_breakpoint): Allow the caller
	to specify regexp for the location to stop at.
	* gdb.base/break-always.c: New.
	* gdb.base/break-always.exp: New.

2008-04-24  Vladimir Prus  <vladimir@codesourcery.com>

	* lib/mi-support.exp (mi_runto_helper): Adjust
	for the original-location field.
	(mi_create_breakpoint, mi_list_breakpoints): New.
	* gdb.mi/mi-break.exp: Adjust.
	* gdb.mi/mi2-break.exp: Adjust.
	* gdb.mi/mi-pending.exp: Adjust.
	* gdb.mi/mi-simplerun.exp: Adjust.
	* gdb.mi/mi2-simplerun.exp: Adjust.
	* gdb.mi/mi-syn-frame.exp: Adjust.
	* gdb.mi/mi2-syn-frame.exp: Adjust.
	* gdb.mi/mi-until.exp: Adjust.
	* gdb.mi/mi2-until.exp: Adjust.
	* gdb.mi/mi-var-display.exp: Adjust.
	* gdb.mi/mi2-var-display.exp: Adjust.
	* gdb.mi/mi-watch.exp: Adjust.
	* gdb.mi/mi2-watch.exp: Adjust.

2008-04-23  Paolo Bonzini  <bonzini@gnu.org>

	* aclocal.m4: Add override.m4.
	* configure: Regenerate.

2008-04-19  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.mi/var-cmd.c (do_at_tests): Verify that
	'-var-update --all-values' reports new value even the type
	of a variable object has changed.

2008-04-18  Craig Silverstein  <csilvers@google.com>

	* gdb.dwarf2/dw2-compressed.S, gdb.dwarf2/dw2-compressed.exp: New
	files.

2008-04-18  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/atomic_enum: New test program.
	* gdb.ada/atomic_enum.exp: New testcase.

2008-04-17  Doug Evans  <dje@google.com>

	* gdb.opt/Makefile.in: Fix whitespace.

2008-04-17  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.threads/linux-dp.exp: Continue after unrecognized lines.

2008-04-17  Doug Evans  <dje@google.com>

	* gdb.base/hashline1.exp: New testcase.
	* gdb.base/hashline2.exp: New testcase.
	* gdb.base/hashline2.exp: New testcase.

2008-04-17  Pedro Alves  <pedro@codesourcery.com>

	* gdb.base/step-break.exp, gdb.base/step-break.c: New files.

2008-04-15  Aleksandar Ristovski  <aristovski@qnx.com>

	* gdb.base/attach.exp (do_attach_tests): Matching pattern for
	temporary breakpoint to match "Temporary breakpoint".
	* gdb.base/break.exp (delete_breakpoints): Likewise.
	* gdb.base/call-ar-st.exp (get_debug_format): Likewise.
	* gdb.base/commands.exp (temporary_breakpoint_commands): Likewise.
	* gdb.base/display.exp: Likewise.
	* gdb.base/foll-exec.exp (do_exec_tests): Likewise.
	* gdb.base/foll-fork.exp (catch_fork_child_follow): Likewise.
	* gdb.base/restore.exp (restore_tests): Likewise.
	* gdb.base/sepdebug.exp: Likewise.
	* gdb.base/watchpoint.exp: Likewise.
	* gdb.mi/mi-cli.exp: Added argument for new "disp" field.
	* gdb.mi/mi-pending.exp: Likewise.
	* gdb.mi/mi-simplerun.exp (test_running_the_program): Likewise.
	* gdb.mi/mi-until.exp (test_runnint_to_foo): Likewise.
	* gdb.mi/mi-var-cmd.exp: Likewise.
	* gdb.mi/mi-var-display.exp: Likewise.
	* gdb.mi/mi2-cli.exp: Likewise.
	* gdb.mi/mi2-simplerun.exp (test_running_the_program): Likewise.
	* gdb.mi/mi2-until.exp (test_running_to_foo): Likewise.
	* gdb.mi/mi2-var-display.exp: Likewise.
	* lib/gdb.exp (gdb_breakpoint): Pattern for temporary breakpoint.
	* lib/mi-support.exp (mi_runto_helper): Use "after_reason" argument for
	new "disp" field.
	(mi_expect_stop): Move after_reason argument to be really after
	reason. This is to support fix for PR2424.

2008-04-15  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.dwarf2/dw2-ranges.S: New stub `.file' directive.

2008-04-13  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.mi/mi-var-cmd.exp: Adjust for appearance of type_changed
	field.  Add more floating varobj tests.
	* gdb.mi/mi2-var-cmd.exp: Adjust for appearance of type_changed
	field.
	* gdb.mi/var-cmd.c (do_at_tests_callee, do_at_tests): New.
	(main): Call do_at_tests.
	* lib/mi-support.exp (mi_create_floating_varobj)
	(mi_varobj_update_with_type_change): New.

2008-04-09  Marc Khouzam  <marc.khouzam@ericsson.com>

	* gdb.mi/mi2-var-display.exp: Added tests for the new -f
	option of -var-evaluate-expression.
	* gdb.mi/mi2-var-display.exp: Likewise.

2008-04-07  Vladimir Prus  <vladimir@codesourcery.com>

	Introduce test setup helpers.
	* lib/gdb.exp (build_executable, clean_restart)
	(prepare_for_testing): New.
	* gdb.base/break.exp: Use prepare_for_testing, and clean_restart.
	* gdb.base/return.exp: Likewise.
	* gdb.base/ending-run.exp: Likewise.

2008-04-07  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.mi/mi-async.exp: New test for asynchronous Machine
	Interface (MI) responses.

2008-04-06  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.cp/breakpoint.cc: New code to test conditions involving
	member variables.
	* gdb.cp/breakpoint.exp: Test condition involving member
	variables.

2008-04-05  Vladimir Prus  <vladimir@codesourcery.com>

	* lib/mi-support.exp (mi_expect_stop): New.
	(mi_run_cmd): Change the
	token.  Use mi_send_resuming_command, use
	mi_expect_stop.
	(mi_execute_to_helper): Rename to mi_execute_to.
	(mi_send_resuming_command): Add more error patterns.
	(mi_wait_for_stop): Renamed to...
	(mi_get_stop_line): ...this.
	(mi_run_inline_test): Adjust.

	* gdb.mi/mi-cli.exp: Use mi_execute_to/mi_expect_stop.
	* gdb.mi/mi-console.exp: Likewise.
	* gdb.mi/mi-pending.exp: Likewise.
	* gdb.mi/mi-simplerun.exp: Likewise.
	* gdb.mi/mi-stack.exp: Likewise.
	* gdb.mi/mi-stepi.exp: Likewise.
	* gdb.mi/mi-syn-frame.exp: Add comment.
	* gdb.mi/mi-until.exp: Likewise.
	* gdb.mi/mi-var-display.exp: Likewise.
	* gdb.mi/mi-watch.exp: Likewise.
	* gdb.mi/mi2-cli.exp: Likewise.
	* gdb.mi/mi2-console.exp: Likewise.
	* gdb.mi/mi2-simplerun.exp: Likewise.
	* gdb.mi/mi2-stack.exp: Likewise.
	* gdb.mi/mi2-stepi.exp: Likewise.
	* gdb.mi/mi2-until.exp: Likewise.
	* gdb.mi/mi2-var-display.exp: Likewise.
	* gdb.mi/mi2-watch.exp: Likewise.

2008-04-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.base/watch_thread_num.exp: Use gdb_compile_pthreads.

	* gdb.cp/mb-templates.exp: Skip test on spu*-*-* targets.

2008-04-04  Pedro Alves  <pedro@codesourcery.com>

	* gdb.mi/mi-disassemble.exp, gdb.mi/mi-stack.exp,
	gdb.mi/mi-syn-frame.exp, gdb.mi/mi-var-block.exp,
	gdb.mi/mi-var-cmd.exp, gdb.mi/mi-var-display.exp,
	gdb.mi/mi2-disassemble.exp, gdb.mi/mi2-stack.exp,
	gdb.mi/mi2-syn-frame.exp, gdb.mi/mi2-var-block.exp,
	gdb.mi/mi2-var-cmd.exp, gdb.mi/mi2-var-display.exp: Update to not
	expect an mi error duplicated in stderr.

2008-04-03  Joel Brobecker  <brobecker@adacore.com>

	* gdb.cp/ovldbreak.cc: Add missing bodies for methods foo::foofunc.
	* gdb.cp/ovldbreak.exp: Set multiple-symbols to "ask".
	Add a couple of tests that verify the behavior when the new setting
	is set to "cancel" and "all".
	* gdb.cp/method2.exp, gdb.cp/templates.exp: Set multiple-symbols to
	"ask" before we start the testing.

2008-04-01  Aleksandar Ristovski  <aristovski@qnx.com>

	* gdb.cp/casts.cc: Add class reference variables.
	* gdb.cp/casts.exp: New test cases for up/down casting references.

2008-04-01  Marc Khouzam  <marc.khouzam@ericsson.com>

	* gdb.mi/mi-var-display.exp: Stop at end of do_special_tests
	instead of beginning to make an extra test pass.
	* gdb.mi/mi2-var-display.exp: Likewise.

2008-03-31  Maciej W. Rozycki  <macro@mips.com>

	* gdb.base/break.exp: Mark failures as such.  Fix formatting.

2008-03-31  Markus Deuling  <deuling@de.ibm.com>
	    Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.arch/spu-info.exp (info spu mailbox): Check for correct initial
	value.  Add xfail for older kernels.

2008-03-28  Aleksandar Ristovski  <aristovski@qnx.com>

	Bring mi-support in line with gdb.exp.
	* lib/mi-support.exp (default_mi_gdb_start): Rename from mi_gdb_start.
	(mi_gdb_start): New function.

2008-03-28  Maciej W. Rozycki  <macro@mips.com>

	* gdb.mi/mi-var-cmd.exp: Fix a typo.

2008-03-26  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.mi/mi-var-display.exp: Remove obsolete xfail.
	* gdb.mi/mi2-var-display.exp: Likewise.

2008-03-26  Vladimir Prus  <vladimir@codesourcery.com>

	* lib/mi-support.exp (mi_create_varobj_checked): New.
	(mi_list_varobj_children): Allow to check for a
	value.
	(mi_list_array_varobj_children): New.

	* gdb.mi/mi-var-child.exp: Use mi_create_varobj
	and mi_list_varobj_children, as opposed to hardcoding
	expected strings.
	* gdb.mi/gdb701.exp: Likewise.
	* gdb.mi/gdb792.exp: Likewise.
	* gdb.mi/mi-var-block.exp: Likewise.
	* gdb.mi/mi-var-cmd.exp: Likewise.
	* gdb.mi/mi-var-invalidate.exp: Likewise.
	* gdb.mi/mi2-var-block.exp: Likewise.
	* gdb.mi/mi2-var-child.exp: Likewise.
	* gdb.mi/mi2-var-cmd.exp: Likewise.
	* gdb.mi/mi2-var-display.exp: Likewise.

2008-03-24  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix random false FAILs on i386.
	* gdb.base/prelink.exp: Use `--no-exec-shield' for prelink.

2008-03-23  Daniel Jacobowitz  <dan@codesourcery.com>

	PR gdb/544
	* gdb.cp/annota2.exp, gdb.cp/annota3.exp: Reapply 2008-03-21 changes.

2008-03-23  Daniel Jacobowitz  <dan@codesourcery.com>

	PR gdb/544
	* gdb.cp/annota2.exp, gdb.cp/annota3.exp: Revert 2008-03-21 changes.

2008-03-21  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.cp/annota2.exp, gdb.cp/annota3.exp: Remove KFAIL for
	fixed PR gdb/544.

2008-03-21  Pedro Alves  <pedro@codesourcery.com>

	* gdb.threads/fork-child-threads.exp: Test next over fork.

2008-03-21  Chris Demetriou  <cgd@google.com>

	* gdb.base/break.exp (rbreak junk): New test for rbreak
	"Junk at end of arguments" issue.

2008-03-21  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/printcmds.exp (test_print_array_constants): Do not expect
	*& to work on created array elements.
	(Top level): Test print $pc with a file.  Test string operations
	without a target.
	* gdb.base/ptype.exp: Do not expect *& to work on created array
	elements.

2008-03-21  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.threads/killed.exp, gdb.threads/manythreads.exp,
	gdb.threads/staticthreads.exp: Update exit query.

2008-03-07  Sandra Loosemore  <sandra@codesourcery.com>

	* lib/gdb.exp (gdb_load_cmd): Fix $args typo in timeout error message.

2008-03-03  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/watchpoint.c (global_ptr, func4): New.
	(main): Call func4.
	* gdb.base/watchpoint.exp: Call test_inaccessible_watchpoint.
	(test_inaccessible_watchpoint): New.

2008-02-29  Maciej W. Rozycki  <macro@mips.com>

	* lib/gdb.exp (gdb_expect): Of all the timeouts provided always
	select the largest.

2008-02-28  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/annota1.exp, gdb.cp/annota2.exp: Update for fewer
	frames-invalid annotations.

2008-02-28  Pierre Muller  <muller@ics.u-strasbg.fr>

	* gdb.base/assign.exp: avoid same output for different tests.

2008-02-27  Doug Evans  <dje@google.com>

	* gdb.base/sigstep.exp (breakpoint_to_handler): Remove setup_kfail
	for bug 1738.
	(breakpoint_to_handler_entry): Ditto.

2008-02-27  Joel Brobecker  <brobecker@adacore.com>

	* gdb.base/ending-run.exp: Use the first line of code inside
	function body to test breakpoints.
	* gdb.mi/mi-break.exp, gdb.mi/mi2-break.exp: Adjust the actual
	location where the breakpoint is inserted when using the line
	where a function is declared. Fix typo in the description of
	one of the tests.
	* gdb.mi/mi-simplerun.exp, gdb.mi/mi2-simplerun.exp: Likewise.

2008-02-27  Pierre Muller  <muller@ics.u-strasbg.fr>

	* gdb.arch/i386-sse.exp: avoid same output for two breakpoint setting
	tests.

2008-02-27  Pierre Muller  <muller@ics.u-strasbg.fr>

	* gdb.base/args.exp: avoid same output for tests
	with single quotes.

2008-02-26  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.base/annota1.exp: Adjust for 'info break'
	format changes.
	* gdb.base/annota3.exp: Likewise.
	* gdb.base/break.exp: Likewise.
	* gdb.base/condbreak.exp: Likewise.
	* gdb.base/pending.exp: Likewise.
	* gdb.base/sepdebug.exp: Likewise.
	* gdb.base/unload.exp: Likewise.
	* gdb.cp/ovldbreak.exp: Likewise.
	* gdb.mi/mi-pending.exp: Likewise.

2008-02-07  Doug Evans  <dje@google.com>

	* gdb.cp/mb-inline.exp: New.
	* gdb.cp/mb-inline.h: New.
	* gdb.cp/mb-inline1.cc: New.
	* gdb.cp/mb-inline2.cc: New.

2008-02-06  Pierre Muller  <muller@ics.u-strasbg.fr>

	* gdb.pascal/floats.pas: New test program.
	* gdb.pascal/floats.exp: New testcase.

2008-02-06  Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* gdb.base/callfuncs.c (t_float_many_args): New function.
	(t_double_many_args): New function.
	* gdb.base/callfuncs.exp: Add tests for exceeding float
	and double parameters passed through the stack.

2008-02-05  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/complete/pck.ads, gdb.ada/complete/pck.adb,
	gdb.ada/complete/foo.adb: New files.
	* gdb.ada/complete.exp: New testcase.

2008-02-03  Doug Evans  <dje@google.com>

	* gdb.base/whatis-exp.exp: Fix expected result of whatis x+y, x-y, x*y.

	* gdb.cp/gdb2384.exp: New file.
	* gdb.cp/gdb2384.cc: New file.
	* gdb.cp/gdb2384-base.h: New file.
	* gdb.cp/gdb2384-base.cc: New file.

2008-02-02  Doug Evans  <dje@google.com>

	* gdb.base/sigall.c (main): Ensure all signals aren't blocked.

2007-02-01  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/sym_print_name: New test program.
	* gdb.ada/sym_print_name.exp: New testcase.

2007-02-01  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/nested/hello.adb: New file.
	* gdb.ada/nested.exp: New testcase.
	* gdb.ada/Makefile.in (EXECUTABLES): Update list.

2008-02-01  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.mi/basic.c (return_1): New function.
	* gdb.mi/mi-break.exp: Make sure that failed -break-insert
	don't cause future evaluations of function to report
	creation of internal breakpoints.

2008-02-01  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.mi/mi-break.exp (test_error): New.
	Call it.

2008-01-31  Luis Machado  <luisgpm@br.ibm.com>

	* gdb.arch/ppc64-atomic-inst.c: New testcase source file.
	* gdb.arch/ppc64-atomic-inst.exp: New testcase expect file.

2008-01-31  Pierre Muller  <muller@ics.u-strasbg.fr>

	* gdb.pascal/integers.pas: New test program.
	* gdb.pascal/integers.exp: New testcase.

2008-01-31  Pierre Muller  <muller@ics.u-strasbg.fr>

	* gdb.pascal/hello.exp (binfile): Add ${EXEEXT}.

2008-01-30  Luis Machado  <luisgpm@br.ibm.com>

	* gdb.arch/powerpc-d128-regs.exp: New testcase expect file.
	* gdb.arch/powerpc-d128-regs.c: New testcase source file.

2008-01-30  Paul Hilfinger  <hilfinger@adacore.com>

	* gdb.ada/formatted_ref: New test program.
	* gdb.ada/formatted_ref.exp: New testcase.

	* gdb.cp/formatted-ref.cc: New file.
	* gdb.cp/formatted-ref.exp: New testcase.

2008-01-30  Joel Brobecker  <brobecker@adacore.com>

	* gdb.base/ptype.exp: Add testing of "ptype $pc".

2008-01-30  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.mi/mi-file.exp, gdb.mi/mi2-file.exp
	(test_file_list_exec_source_file): Update to new macro-info field.

2008-01-30  Paul N. Hilfinger  <hilfinger@adacore.com>

	* gdb.ada/exprs: New test program.
	* gdb.ada/exprs.exp: New testcase.

2008-01-30  Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* dfp-test.c (DELTA, DELTA_B): New definitions.
	(double_val1, double_val2, double_val3, double_val4, double_val5,
	double_val6, double_val7, double_val8, double_val9, double_val10,
	double_val11, double_val12, double_val13, double_val14, dec32_val1,
	dec32_val2, dec32_val3, dec32_val4, dec32_val5, dec32_val6, dec32_val7,
	dec32_val8, dec32_val9, dec32_val10, dec32_val11, dec32_val12,
	dec32_val13, dec32_val14, dec32_val15, dec32_val16, dec64_val1,
	dec64_val2, dec64_val3, dec64_val4, dec64_val5, dec64_val6, dec64_val7,
	dec64_val8, dec64_val9, dec64_val10, dec64_val11, dec64_val12,
	dec64_val13, dec64_val14, dec64_val15, dec64_val16, dec128_val1,
	dec128_val2, dec128_val3, dec128_val4, dec128_val5, dec128_val6,
	dec128_val7, dec128_val8, dec128_val9, dec128_val10, dec128_val11,
	dec128_val12, dec128_val13, dec128_val14, dec128_val15,
	dec128_val16): New global variables.
	(decimal_dec128_align): New function.
	(decimal_mixed): Likewise.
	(decimal_many_args_dec32): Likewise.
	(decimal_many_args_dec64): Likewise.
	(decimal_many_args_dec128): Likewise.
	(decimal_many_args_mixed): Likewise.
	* dfp-test.exp: Add tests calling new inferior functions.

2008-01-29  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.server/ext-attach.c, gdb.server/ext-attach.exp,
	gdb.server/ext-run.exp: New files.
	* lib/gdbserver-support.exp (gdbserver_download): New.
	(gdbserver_start): New.  Update gdbserver expected
	output.
	(gdbserver_spawn): Use them.
	(gdbserver_start_extended): New.

2008-01-29  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/foll-exec.exp: Update header.  Skip on remote targets.
	Run on GNU/Linux.
	(do_exec_tests): Check for systems which do not support catchpoints.
	Do not match START.
	* gdb.base/foll-fork.exp: Update header.  Skip on remote targets.
	Run on GNU/Linux.  Enable verbose output.
	(check_fork_catchpoints): New.
	(explicit_fork_child_follow, catch_fork_child_follow)
	(tcatch_fork_parent_follow): Update expected messages.
	(do_fork_tests): Use check_fork_catchpoints.
	* gdb.base/foll-vfork.exp: Update header.  Skip on remote targets.
	Run on GNU/Linux.  Enable verbose output.
	(check_vfork_catchpoints): New.
	(vfork_parent_follow_to_bp, tcatch_vfork_then_child_follow): Update
	expected messages.
	(do_vfork_and_exec_tests): Use check_fork_catchpoints.

2008-01-29  Jim Blandy  <jimb@red-bean.com>

	* lib/gdbserver-support.exp (gdb_target_cmd): Recognize 'unknown
	host' errors.
	* lib/mi-support.exp (mi_gdb_target_cmd): Same.

2008-01-29  Jim Blandy  <jimb@red-bean.com>

	* gdb.threads/sigthread.c: Use barriers to ensure that
	child_thread and child_thread_two are always initialized before we
	start to use them.

2008-01-29  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.base/watchpoint-solib.exp: New.
	* gdb.base/watchpoint-solib.c: New.
	* gdb.base/watchpoint-solib-shr.c: New.

2008-01-29  Pierre Muller  <muller@ics.u-strasbg.fr>

	* gdb.base/gdb1056.exp: Add unsigned integer test.

2008-01-28  Doug Evans  <dje@google.com>

	* gdb.base/maint.exp: Tighten patterns looking for .text/.data/.bss.

2008-01-27  Jim Blandy  <jimb@codesourcery.com>

	* gdb.base/expand-psymtabs.exp: Doc fix to the doc fix.

	* gdb.base/expand-psymtabs.exp: Doc fix.

2008-01-26  Mark Kettenis  <kettenis@gnu.org>

	* gdb.gdb/selftest.exp (do_steps_and_nexts): Add more matches.

2008-01-24  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.mi/mi2-var-display.exp: Add value field to tests for output of
	-var-set-format.

2008-01-23  Chris Demetriou  <cgd@google.com>

	* gdb.threads/thread_events.c: New testcase source file.
	* gdb.threads/thread_events.exp: New testcase expect file.

2008-01-23  Nick Roberts  <nickrob@snap.net.nz>

	* lib/gdb.exp: Add the variable octal.

	* gdb.mi/mi-var-display.exp: Add value field to tests for output of
	-var-set-format.

2008-01-22  Daniel Jacobowitz  <dan@codesourcery.com>
	    Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.base/float.exp: Allow missing floating point for m68k and
	PowerPC.

2008-01-22  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.mi/basics.c: Setup for testing breakpoints
	ignore count.
	* gdb.mi/mi-break.exp: Test for breakpoint ignore count.
	* gdb.mi/mi-cli.exp: Adjust.
	* gdb.mi/mi2-cli.exp: Adjust.

2008-01-17  Pedro Alves  <pedro@codesourcery.com>

	* gdb.mi/mi-var-child.c (do_children_tests): Add 'dummy' integer
	and 'dummy_ptr' integer pointer.  Initialize struct_declarations
	with dummy_ptr's address.
	* gdb.mi/var-cmd.c (do_children_tests): Likewise.
	* gdb.mi/mi-var-child.exp: int_ptr_ptr is now always "editable" on
	all targets.
	* gdb.mi/mi2-var-child.exp: Likewise.

2008-01-09  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/null_array: New test program.
	* gdb.ada/null_array.exp: New testcase.

2008-01-09  Luis Machado  <luisgpm@br.ibm.com>

	* gdb.base/printcmds.exp (test_printf_with_dfp): Update printf calls
	with required float modifiers.

2008-01-08  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/funcall_param: New test program.
	* gdb.ada/funcall_param.exp: New testcase.

2008-01-08  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/arrayparam: New test program.
	* gdb.ada/arrayparam.exp: New testcase.

2008-01-08  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/print_pc.exp: Add verification of where gdb_start_cmd
	landed.  Should also fix random failures in the test following it.

2008-01-07  Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* gdb.base/dfp-exprs.exp (test_dfp_arithmetic_expressions): Add tests
	for expressions with decimal float values.
	(test_dfp_conversions): New function to test casts to and from
	decimal float types.
	Call test_dfp_conversions.
	* gdb.base/dfp-test.c (struct decstruct): Add float4 and double8
	elements.
	(main): Initialize ds.float4 and ds.double8 elements.
	* gdb.base/dfp-test.exp (d32_set_tests): Fix typo.  Adjust expect
	string to new error message.
	(d64_set_tests): Likewise.
	(d128_set_tests): Likewise.
	Add tests for expressions with decimal float variables.  Add tests for
	conversions to and from decimal float types.

2008-01-05  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/packed_tagged/comp_bug.adb: New file.
	* gdb.ada/packed_tagged.exp: New testcase.

2008-01-04  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/homonym/homonym.ads, gdb.ada/homonym/homonym.adb,
	gdb.ada/homonym/homonym_main.adb: New files.
	* gdb.ada/homonym.exp: New testcase.

2008-01-04  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/packed_array.exp: Add testing of references to
	a packed array.

2008-01-04  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/type_coercion/ident.adb, gdb.ada/type_coercion/assign.adb:
	New files.
	* gdb.ada/type_coercion.exp: New testcase.

2008-01-04  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/tagged/pck.ads, gdb.ada/tagged/pck.adb,
	gdb.ada/tagged/foo.adb: New file.
	* gdb.ada/tagged.exp: New testcase.

2008-01-04  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/ptype_field/pck.ads, gdb.ada/ptype_field/pck.adb,
	gdb.ada/ptype_field/foo.adb: New files.
	* gdb.ada/ptype_field.exp: New testcase.

2008-01-03  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/print_pc.exp: New testcase.

2008-01-03  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/taft_type/pck.ads, gdb.ada/taft_type/pck.adb,
	gdb.ada/taft_type/p.adb: New files.
	* gdb.ada/taft_type.exp: New testcase.

2008-01-03  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/array_bounds/bar.adb: New file.
	* gdb.ada/array_bounds.exp: New testcase.

2008-01-03  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/arrayptr/pck.ads, gdb.ada/arrayptr/pck.adb,
	gdb.ada/arrayptr/foo.adb: New files.
	* gdb.ada/arrayptr.exp: New testcase.

2008-01-03  Joel Brobecker  <brobecker@adacore.com>

	* gdb.base/set-lang-auto.exp: New testcase.

2008-01-03  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/fun_addr/foo.adb: New file.
	* gdb.ada/fun_addr.exp: New testcase.

2008-01-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.threads/fork-child-threads.exp, gdb.threads/fork-child-threads.c:
	New files

2008-01-02  Joel Brobecker  <brobecker@adacore.com>

	* array_subscript_addr/p.adb: New file.
	* array_subscript_addr.exp: New testcase.

2008-01-02  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/str_cmp_ref/pck.ads, gdb.ada/str_cmp_ref/foo.adb:
	New files.
	* gdb.ada/str_cmp_ref.exp: New testcase.

2008-01-01  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/fun_in_declare/pck.ads, gdb.ada/fun_in_declare/pck.adb,
	gdb.ada/fun_in_declare/foo.adb: New files.
	* gdb.ada/fun_in_declare.exp: New testcase.

2008-01-01  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/ref_param/foo.adb, gdb.ada/ref_param/pck.adb,
	gdb.ada/ref_param/pck.ads: New files.
	* gdb.ada/ref_param.exp: New testcase.

2008-01-01  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/interface/types.ads, gdb.ada/interface/types.adb,
	gdb.ada/interface/foo.adb: New files.
	* gdb.ada/interface.exp: New testcase.

2007-12-31  Jim Blandy  <jimb@codesourcery.com>

	* gdb.base/multi-forks.exp: Consume all output from child
	processes before proceeding to next test.

2007-12-29  Jim Blandy  <jimb@codesourcery.com>

	* configure: Regenerated.

2007-12-27  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/fixed_cmp/pck.ads, gdb.ada/fixed_cmp/pck.adb,
	gdb.ada/fixed_cmp/fixed.adb: New files.
	* gdb.ada/fixed_cmp.exp: New testcase.

2007-12-27  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/boolean_expr.exp: New testcase.

2007-12-26  Jim Blandy  <jimb@codesourcery.com>

	* gdb.base/multi-forks.exp: Doc fix.

2007-12-26  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/Makefile.in (EXECUTABLES): Update list.
	* gdb.ada/char_param.exp: Do not compile our test program with
	-gnata, this is unnecessary.
	* gdb.ada/char_param/pck.ads: Remove unnecessary "with".

2007-12-24  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/print_chars/pck.ads, gdb.ada/print_chars/pck.adb,
	gdb.ada/print_chars/foo.adb: New files.
	* gdb.ada/print_chars.exp: New testcase.

2007-12-24  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/char_param/pck.ads, gdb.ada/char_param/pck.adb,
	gdb.ada/char_param/foo.adb: New files.
	* gdb.ada/char_param.exp: New testcase.

2007-12-22  Jim Blandy  <jimb@codesourcery.com>

	* gdb.asm/asm-source.exp: Use gdb_get_line_number, instead of
	hard-coding source line numbers into the test.
	* gdb.asm/asmsrc1.s, gdb.asm/asmsrc2.s: Add comments for
	gdb_get_line_number to find.

2007-12-22  Joel Brobecker  <brobecker@adacore.com>

	* gdb.base/ptype.c (highest): New struct type.
	(the_highest): New variable of that type.
	(main): Add dummy assignment to a field of variable the_highest.
	* gdb.base/ptype.exp: Test type printing of our new variable.

2007-12-19  Pierre Muller  <muller@ics-u-strasbg.fr>

	* (gdb.base/watch_thread_num.exp): Add breakpoint at thread_function
	and record first explicitly generated thread number.
	Use that thread number for thread specific watchpoint test.
	Add iteration number to repetitive tests.

2007-12-16  Carlos Eduardo Seo  <cseo@linux.vnet.ibm.com>
	    Jim Blandy  <jimb@codesourcery.com>

	* gdb.base/expand-psymtabs.c: New testcase
	source file.
	* gdb.base/expand-psymtabs.exp: New testcase
	expect file.

2007-12-17  Luis Machado  <luisgpm@br.ibm.com>

	* testsuite/gdb.base/watch_thread_num.c: New testcase source file.
	* testsuite/gdb.base/watch_thread_num.exp: New testcase expect file.

2007-12-17  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/frame_args/foo.adb: New file.
	* gdb.ada/frame_args/pck.ads: New file.
	* gdb.ada/frame_args/pck.adb: New file.
	* gdb.ada/frame_args.exp: New testcase.

2007-12-17  Joel Brobecker  <brobecker@adacore.com>

	* gdb.base/frame-args.c: New file.
	* gdb.base/frame-args.exp: New testcase.

2007-12-16  Daniel Jacobowitz  <dan@codesourcery.com>
	    Joseph Myers  <joseph@codesourcery.com>

	* gdb.base/siginfo-addr.exp, gdb.base/siginfo-addr.c: New.

2007-12-14  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.mi/mi-pending.exp: New.
	* gdb.mi/mi-pending.c: New.
	* gdb.mi/mi-pendshr.c: New.

2007-12-06  Jim Blandy  <jimb@codesourcery.com>

	* gdb.base/default.exp: Update expected output for 'info catch'.

2007-12-10  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* lib/gdb.exp (build_id_debug_filename_get): OBJCOPY pipe being read
	must be set to binary.

2007-12-09  Pedro Alves  <pedro_alves@portugalmail.pt>

	* lib/gdb.exp (gdb_gnu_strip_debug): Remove debug format test.

2007-11-30  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.server/file-transfer.exp, gdb.server/transfer.txt,
	gdb.mi/mi-file-transfer.exp: New.

2007-11-25  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.dwarf2/dw2-ranges.S, gdb.dwarf2/dw2-ranges.exp: New files.

2007-11-22  Maciej W. Rozycki  <macro@mips.com>

	* gdb.trace/backtrace.exp: Fix a typo.
	* gdb.trace/circ.exp: Likewise.
	* gdb.trace/collection.exp: Likewise.
	* gdb.trace/limits.exp: Likewise.
	* gdb.trace/report.exp: Likewise.
	* gdb.trace/tfind.exp: Likewise.
	* gdb.trace/while-dyn.exp: Likewise.

2007-11-21  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.mi/mi2-var-child.exp, gdb.mi/mi-var-child.exp: Variables
	objects of pointers that can't be dereferenced are now
	"noneditable".

2007-11-17  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* Makefile.in (Makefile): Do not depend on target_makefile_frag.
	(target_cpu): Remove.

2007-10-15  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.base/ending-run.exp: Expect the list of cleared
	breakpoint to come in natural order, not the reversed one.

2007-11-07  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.mi/mi-var-child.c (do_child_deletion): New.
	* gdb.mi/mi-var-child.exp: Run child_deletion tests.

2007-11-05  Luis Machado  <luisgpm@br.ibm.com>

	* gdb.base/printcmds.exp: New function
	test_printf_with_dfp.

2007-11-02  Doug Evans  <dje@google.com>

	* gdb.disasm/t01_mov.s: Remove carriage returns.
	* gdb.disasm/t02_mova.s: Ditto.
	* gdb.disasm/t03_add.s: Ditto.
	* gdb.disasm/t04_sub.s: Ditto.
	* gdb.disasm/t05_cmp.s: Ditto.
	* gdb.disasm/t06_ari2.s: Ditto.
	* gdb.disasm/t07_ari3.s: Ditto.
	* gdb.disasm/t08_or.s: Ditto.
	* gdb.disasm/t09_xor.s: Ditto.
	* gdb.disasm/t10_and.s: Ditto.
	* gdb.disasm/t11_logs.s: Ditto.
	* gdb.disasm/t12_bit.s: Ditto.
	* gdb.disasm/t13_otr.s: Ditto.

2007-11-01  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.cp/arg-reference.exp, gdb.cp/arg-reference.c: New files.

2007-10-30  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.base/dfp-test.exp: Fail gracefully if toolchain does not
	provide DFP support.

2007-10-30  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.arch/altivec-abi.exp: Run multiple times for GCC on GNU/Linux.
	Test "set powerpc vector-abi".  Skip auto-detection tests for old
	toolchains.

2007-10-30  Pedro Alves  <pedro_alves@portugalmail.pt>

	* lib/gdb.exp, gdb.base/sepdebug.exp: Replace usage of eq and ne
	with [string compare].

2007-10-30  Pedro Alves  <pedro_alves@portugalmail.pt>

	* gdb.base/sepdebug.exp (binfile): Add ${EXEEXT}.
	* gdb.base/sepsymtab.exp (binfile): Add ${EXEEXT}.

2007-10-25  Luis Machado  <luisgpm@br.ibm.com>

	* gdb.opt/clobbered-registers-O2.c: New testcase source file.
	* gdb.opt/clobbered-registers-O2.exp: New testcase expect file.
	* gdb.opt/Makefile.in: New makefile.
	* Makefile.in: Create new directory "gdb.opt".
	* configure.ac: Add "gdb.opt" directory.
	* configure: Regenerated.

2007-10-25  Doug Evans  <dje@google.com>

	* gdb.cp/mb-ctor.exp: Check skip_cplus_tests.
	* gdb.cp/mb-templates.exp: Check skip_cplus_tests.

2007-10-15  Wu Zhou  <woodzltc@cn.ibm.com>
	    Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* gdb.base/dfp-exprs.exp: new file adding tests for Decimal
	Floating Point expressions.
	* gdb.base/dfp-test.exp: new file adding tests for Decimal
	Floating Point variables.
	* gdb.base/dfp-test.c: new file containing program with Decimal
	Floating variables, used by gdb.base/dfp-test.exp.

2007-10-23  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.threads/multi-create.c, gdb.threads/multi-create.exp: New.

2007-10-21  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.arch/altivec-abi.exp (compile_flags): Use -mabi=altivec when
	compiling test case with GCC.
	* gdb.arch/altivec-regs.exp (compile_flags): Likewise.

2007-10-21  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.arch/altivec-regs.exp (decimal_vector): Adjust for output
	format changes.

2007-10-18  Michael Snyder  <msnyder@specifix.com>

	* gdb.base/dbx.exp: Add missing "-re " operator.

2007-10-16  Gaius Mulley  <gaius@glam.ac.uk>

	* configure.ac: Added gdb.modula2/Makefile to AC_OUTPUT.
	* configure.ac: Removed trailing spaces after backslash.
	* gdb.modula2: New directory.
	* gdb.modula2/Makefile.in: New file.
	* gdb.modula2/unbounded-array.exp: New file.
	* gdb.modula2/unbounded1.c: New file.

2007-10-15  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.xml/tdesc-regs.exp: Add PowerPC support.

2007-10-15  Pierre Muller  <muller@ics.u-strasbg.fr>

	* gdb.base/sigstep.c (main): Add checks for
	return values for setitimer call.
	Call setitimer again with itimer = ITIMER_REAL
	if first call to setitimer fails.

2007-10-11  Kazu Hirata  <kazu@codesourcery.com>

	* lib/gdb.exp (gdb_load_cmd): Print out $loadtimeout instead
	of $timeout.

2007-10-09  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.server/server-run.exp: Test for dynamic linker symbols.

2007-10-09  Pierre Muller  <muller@ics.u-strasbg.fr>

	* lib/gdb.exp (gdb_run_cmd): Move comment outside
	of gdb_expect call, to avoid interruption.

2007-10-09  Pedro Alves  <pedro_alves@portugalmail.pt>

	* gdb.base/whatis.c (v_long_long, v_signed_long_long)
	(v_unsigned_long_long, v_long_long_array)
	(v_signed_long_long_array, v_unsigned_long_long_array)
	(slong_long_addr, a_slong_long_addr, v_long_long_pointer)
	(v_signed_long_long_pointer, v_unsigned_long_long_pointer)
	[!NO_LONG_LONG]: New.
	(t_struct, v_struct2, t_union, v_union2) [!NO_LONG_LONG]: Add
	v_long_long_member.

	(v_long_long_func, v_signed_long_long_func)
	(v_unsigned_long_long_func) [!NO_LONG_LONG]: New.
	(main) [!NO_LONG_LONG]: Initialize long long variants.

	* gdb.base/whatis.exp: If board file requests no_long_long, build
	test with NO_LONG_LONG defined.  Test long long, signed long long,
	and unsigned long long variants but only if board file doesn't
	disable it.

2007-10-08  Pierre Muller  <muller@ics.u-strasbg.fr>
	    Daniel Jacobowitz  <dan@codesourcery.com>

	* Makefile.in (ALL_SUBDIRS): Add gdb.pascal.
	* configure.ac (AC_OUTPUT): Add gdb.pascal/Makefile.
	* configure: Regenerated.
	* gdb.pascal/Makefile.in, gdb.pascal/hello.exp, gdb.pascal/hello.pas,
	gdb.pascal/types.exp, lib/pascal.exp: New files.

2007-10-02  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.cp/classes.exp (do_tests): Always step to the line after the
	call.
	* gdb.mi/mi-simplerun.exp (test_controlled_execution): Allow finish
	to return to the call.
	* gdb.mi/mi2-simplerun.exp (test_controlled_execution): Likewise.
	* gdb.mi/mi-return.exp (test_return_simple): Likewise.
	* gdb.mi/mi2-return.exp (test_return_simple): Likewise.
	* gdb.mi/mi-until.exp (test_until): Likewise.
	* gdb.mi/mi2-until.exp (test_until): Likewise.

2007-10-01  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.mi/var-cmd.c (do_locals_tests): Define lcharacter as a
	two-char array.
	* gdb.mi/mi-var-cmd.exp, gdb.mi/mi2-var-cmd.exp: Use lcharacter[0].

2007-09-30  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.threads/watchthreads.c (thread_function): Sleep between
	iterations.
	* gdb.threads/watchthreads.exp: Allow two watchpoints to trigger
	at once for S/390.  Generate matching fails and passes.

2007-09-27  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.mi/var-cmd.c (do_children_tests): Initialize
	the 'struct_declarations' variable to zeros.

2007-09-24  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.cp/mb-ctor.cc: New.
	* gdb.cp/mb-ctor.exp: New.
	* gdb.cp/mb-templates.cc: New.
	* gdb.cp/mb-templates.exp: New.

2007-09-23  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.cp/pass-by-ref.cc, gdb.cp/pass-by-ref.exp: New files.

2007-09-23  Pedro Alves  <pedro_alves@portugalmail.pt>

	* configure.ac: Do gdb.stabs tests by default on Cygwin and MinGW
	targets.
	* configure: Regenerate.

2007-09-23  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.base/annota1.exp: Adjust for 'info break'
	format changes.
	* gdb.base/annota3.exp: Likewise.
	* gdb.base/break.exp: Likewise.
	* gdb.base/condbreak.exp: Likewise.
	* gdb.base/pending.exp: Likewise.
	* gdb.base/sepdebug.exp: Likewise.
	* gdb.base/unload.exp: Likewise.
	* gdb.base/ovldbreak.exp: Likewise.

2007-09-22  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.base/pending.exp: No longer expect "Pending breakpoint resolved"
	messages.
	* gdb.base/chng-syms.exp: Likewise.
	* gdb.base/unload.exp: Likewise.

2007-09-21  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/sepdebug.exp (test_different_dir): Append to pf_prefix.

2007-09-17  Daniel Jacobowitz  <dan@codesourcery.com>

	* schedlock.c (NUM): Change to 1.
	(main): Use args[0] for the main thread.
	* schedlock.exp: Only expect two threads.  Only issue one pass or fail
	regardless of the number of threads.

2007-09-14  Maciej W. Rozycki  <macro@mips.com>

	* gdb.mi/mi-watch.exp (test_watchpoint_all): Pass the watchpoint
	type down.
	(test_watchpoint_triggering): XFAIL the sw watchpoint scope
	test.
	* gdb.mi/mi2-watch.exp (test_watchpoint_all): Pass the
	watchpoint type down.
	(test_watchpoint_triggering): XFAIL the sw watchpoint scope
	test.

2007-09-14  Maciej W. Rozycki  <macro@mips.com>

	* gdb.mi/mi-watch.exp (test_watchpoint_all): New function.
	Move all the tests here and run them twice, once using software
	watchpoints and once using hardware watchpoints.
	* gdb.mi/mi2-watch.exp (test_watchpoint_all): Likewise.

2007-09-12  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/solib-weak.exp (do_test): Adjust the file names for each
	test.

2007-09-10  Mark Kettenis  <kettenis@gnu.org>

	* lib/gdb.exp (build_id_debug_filename_get): Improve check for
	build-id.

	* lib/gdb.exp (gdb_compile): OpenBSD doesn't need -dl, and doesn't
	know about $ORIGIN.  Calculate output dir from $dest instead of
	using ${objdir}/{$subdir}.

2007-09-09  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/gcore-buffer-overflow.exp: Check whether gdb supports
	gcore, before continuing with the test.

2007-09-06  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.mi/mi2-watch.exp: Set can-use-hw-watchpoints to 0 if required.
	* gdb.mi/mi-watch.exp: Likewise.

2007-09-04  Daniel Jacobowitz  <dan@codesourcery.com>
	    Jim Blandy  <jimb@codesourcery.com>

	* gdb.arch/i386-sse.exp: Do not expect character constants.
	* gdb.base/charsign.c, gdb.base/charsign.exp: Delete.
	* gdb.base/display.exp: Allow print/s.
	* gdb.base/printcmds.exp, gdb.base/setvar.exp: Revert signed
	and unsigned char array changes.

2007-09-04  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/display.exp: Add tests for printf %p.

2007-09-03  Pedro Alves  <pedro_alves@portugalmail.pt>

	* gdb.base/unload.c (dlopen, dlsym): Use the TEXT macro to convert
	the dll name to unicode.

2007-09-03  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/default.exp (show version): Update the version text.
	* gdb.gdb/selftest.exp (xgdb is at prompt): Likewise.

2007-09-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/gcore-buffer-overflow.c, gdb.base/gcore-buffer-overflow.exp:
	New files.

2007-09-01  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* lib/gdb.exp (build_id_debug_filename_get): New function.
	* gdb.base/sepdebug.exp: Reflect the changes in the heading comment.
	Remove the generate DEBUG file for the future testcase runs.
	New testcase for the NT_GNU_BUILD_ID retrieval.
	Move the final testing step to ...
	(test_different_dir): ... a new function.
	New parameter XFAIL to XFAIL all the tests performed.
	New parameter TEST_DIFFERENT_DIR parametrizing the directory.
	New parameter TYPE to PF_PREFIX all the tests performed.

2007-08-31  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.mi/mi-var-cp.cc (path_expression): New
	function.
	* gdb.mi/mi-var-cp.exp: Run path exression tests.

2007-08-27  Markus Deuling  <deuling@de.ibm.com>

	* gdb.cp/cp-relocate.exp (add-symbol-file): Change addresses
	to fit into SPU Local Store memory.

2007-08-23  Joel Brobecker  <brobecker@adacore.com>

	* gdb.base/default.exp: Adjust the expected output of "info
	warranty" after the switch to GPLv3.

2007-08-23  Joel Brobecker  <brobecker@adacore.com>

	* lib/gdb.exp (default_gdb_init): Increase expect buffer size
	to 30000 (from 20000).

2007-08-23  Joel Brobecker  <brobecker@adacore.com>

	Switch the license of all .exp files to GPLv3.
	Switch the license of all .f and .f90 files to GPLv3.
	Switch the license of all .s and .S files to GPLv3.

2007-08-23  Joel Brobecker  <brobecker@adacore.com>

	* configure.ac: Switch license to GPLv3.

2007-08-23  Joel Brobecker  <brobecker@adacore.com>

	Switch the licensing to GPLv3 for all .ads and .adb files.

2007-08-22  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/callfuncs.exp (do_function_calls): Use t_double_int
	and t_int_double.
	* gdb.base/callfuncs.c (t_double_int, t_int_double): New.

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

	* gdb.base/step-line.c: Switch license to GPL version 3, and
	update copyright year.
	* gdb.base/step-line.inp: Likewise.

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

	* gdb.base/gdb1555.exp: Make expected output immune to formatting
	changes inside gdb1555.c.
	* gdb.base/pending.exp: Likewise.

2007-08-13  Daniel Jacobowitz  <dan@codesourcery.com>

	* config/default.exp: New file.

2007-07-31  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/prologue.c, gdb.base/prologue.exp: New.
	* lib/gdb.exp (gdb_breakpoint): Handle "temporary".

2007-07-30  Maciej W. Rozycki  <macro@mips.com>

	* gdb.base/dump.exp: Force the correct endianness for binary
	formats not carrying this information.

2007-07-27  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.threads/staticthreads.exp: Match .*sem_post.

2007-07-27  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/readline.exp (operate_and_get_next): Match the final
	prompt.

2007-07-23  Kevin Buettner  <kevinb@redhat.com>

	* lib/mi-support.exp (mi_gdb_target_load): Do a "kill" prior
	to restarting SID.

2007-07-18  Kevin Buettner  <kevinb@redhat.com>

	* gdb.cp/ref-params.exp (gdb_start_again): Invoke `gdb_exit'
	prior to `gdb_start'.

2007-07-18  Kevin Buettner  <kevinb@redhat.com>

	* config/sid.exp (gdb_load): Add test for empty argument.  Adjust
	return value to be compatible with gdb_run_cmd in lib/gdb.exp.
	Remove call to gdb_unload.

2007-07-17  Pedro Alves  <pedro_alves@portugalmail.pt>
	    Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/unload.c (dlopen, dlsym, dlclose, dlerror): Define
	for __WIN32__.
	(SHLIB_NAME): Delete definition.  Always pass dlerror to fprintf.
	* gdb.base/unload.exp: Use shared library test routines.

2007-07-03  Markus Deuling  <deuling@de.ibm.com>

	* gdb.base/solib-symbol.exp: New file (testcase multiple symbol lookup).
	* gdb.base/solib-symbol-lib.c: Likewise.
	* gdb.base/solib-symbol-main.c: Likewise.

2007-07-02  Daniel Jacobowitz  <dan@codesourcery.com>

	* config/gdbserver.exp (gdb_reconnect): New.
	* gdb.base/so-disc-shr.c, gdb.base/solib-disc.c,
	gdb.base/solib-disc.exp: New files.
	* lib/gdb.exp (gdb_test_multiple): Allow tests to match "Ending
	remote debugging".
	(gdb_compile): Add shlib_load flag.
	* lib/gdbserver-support.exp (gdbserver_run): Save the protocol and
	port.
	(gdbserver_reconnect): New.

2007-07-01  Nick Roberts  <nickrob@snap.net.nz>
	    Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/annota3.exp: Test for if construct.

2007-06-26  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/chng-syms.exp: Handle glibc's __GI_exit.

2007-06-21  Chris Dearman  <chris@mips.com>
	    Maciej W. Rozycki  <macro@mips.com>

	* gdb.base/display.exp: Allow a newline after display/i.
	* gdb.base/pc-fp.exp: Likewise.
	* gdb.base/sigbpt.exp: Likewise.

2007-06-13  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.xml/tdesc-regs.exp: Add MIPS support.  Allow multiple
	required features to be included.

2007-06-12  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.threads/manythreads.exp: Prevent expect buffer overflow
	in info threads output.

2007-06-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
	    Markus Deuling  <deuling@de.ibm.com>

	* gdb.arch/spu-info.exp: New testcase.
	* gdb.arch/spu-info.c: New file.

2007-06-05  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.arch/thumb-prologue.c: Record the breakpoint address in
	tpcs_offset.  Restore lr after the call.
	* gdb.arch/thumb-prologue.exp: Use tpcs_offset.

2007-05-23  Daniel Jacobowitz  <dan@codesourcery.com>

	* lib/gdbserver-support.exp (gdbserver_spawn): Only match full_buffer.
	(gdbserver_run): Kill any running gdbserver.
	* lib/mi-support.exp (mi_gdb_target_load): Likewise.

2007-05-17  Maciej W. Rozycki  <macro@mips.com>

	* gdb.base/sigbpt.exp: Preset segv_addr.

2007-05-16  Daniel Jacobowitz  <dan@codesourcery.com>

	* lib/gdb.exp (gdb_compile): Add support for Windows DLLs.
	(gdb_compile_shlib): Likewise.
	(skip_shlib_tests, gdb_download, gdb_load_shlibs): New.
	(default_gdb_init): Clear cleanfiles.
	(gdb_finish): Delete recorded cleanfiles.
	* lib/gdbserver-support.exp (gdbserver_spawn): Use gdb_download.

	* gdb.base/gdb1555.exp: Use skip_shlib_tests and gdb_load_shlibs.
	Do not use isnative.
	* gdb.base/pending.exp, gdb.base/shlib-call.exp, gdb.base/shreloc.exp,
	gdb.base/so-impl-ld.exp: Likewise.
	* gdb.base/solib-weak.exp: Likewise.  Skip for DLL targets.
	* gdb.base/unload.exp: Likewise.  Do not pass empty option to
	gdb_compile.

2007-05-15  Vladimir Prus  <vladimir@codesourcery.com>

	* config/unknown.exp: Remove.

2007-05-15  Markus Deuling  <deuling@de.ibm.com>

	* gdb.base/info-proc.exp: Check is_remote.

2007-05-14  Markus Deuling  <deuling@de.ibm.com>

	* gdb.base/gcore.exp: Initialize variable core_supported.

2007-05-14  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.threads/linux-dp.exp: Allow non-hexadecimal IDs also.

2007-05-14  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.threads/linux-dp.exp: Expect hexadecimal thread IDs.
	* gdb.threads/print-threads.exp (test_all_threads): Allow
	negative and hexadecimal thread IDs.

2007-05-14  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.java/jprint.java (public): Avoid invalid call to static
	method.

2007-05-14  Denis Pilat  <denis.pilat@st.com>

	* gdb.mi/mi-console.exp, gdb.mi/gdb669.exp, gdb.mi/mi-cli.exp,
	gdb.mi/mi-regs.exp, gdb.mi/mi-stepi.exp, gdb.mi/mi-syn-frame.exp,
	gdb.mi/mi2-cli.exp, gdb.mi/mi2-console.exp, gdb.mi/mi2-disassemble.exp,
	gdb.mi/mi2-regs.exp, gdb.mi/mi2-stepi.exp, gdb.mi/mi-disassemble.exp,
	gdb.mi/mi2-syn-frame.exp: Remove commands already run in mi_run_to_main.

2007-05-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.base/overlays.exp: Add support for targets with only code
	overlay support, not data overlay.  Support spu-*-* target in
	this mode.
	* gdb.base/ovlymgr.c: Provide stubs for spu target.
	* gdb.base/spu.ld: New file.

2007-05-07  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.cp/virtfunc.exp (proc do_tests): Test stepping through a thunk.

2007-05-06  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.fortran/complex.exp, gdb.fortran/complex.f: New files.

2007-04-29  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.java/jmain.exp: Handle demangled names with and without method
	signatures.

2007-04-29  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.mi/mi-syn-frame.c (main, foo, bar)
	(have_a_very_merry_interrupt): Remove calls to puts.
	* gdb.mi/mi-syn-frame.exp, gdb.mi/mi2-syn-frame.exp: Do not expect
	inferior output.
	* lib/mi-support.exp (mi_gdb_test): Check gdb,noinferiorio.  Correct
	test names.

2007-04-29  Markus Deuling  <deuling@de.ibm.com>
	    Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/auxv.exp (core_works): Also check is_remote.
	* gdb.base/checkpoint.exp, gdb.base/multi-forks.exp: Likewise.

2007-04-25  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.base/sigaltstack.exp: Use 'srcfile' in error
	message, not the undefined 'module' variable.
	* gdb.base/siginfo.exp: Likewise.
	* gdb.base/sigstep.exp: Likewise.
	* lib/gdbserver-support.exp (gdb_target_cmd): Quote
	serialport.
	* lib/mi-support.exp (mi_gdb_target_cmd): Likewise.

2007-04-25  Corinna Vinschen <vinschen@redhat.com>

	* config/sim.exp (gdb_target_sim): Just return with -1 when setting
	target sim fails.  Return 0 otherwise.
	(gdb_load): Return prematurely if gdb_target_sim fails.

2007-04-16  Denis Pilat  <denis.pilat@st.com>

	* gdb.base/setshow.exp: Reset height after having set it to 100.

2007-04-16  Denis Pilat  <denis.pilat@st.com>

	* gdb.mi/mi2-stack.exp: update from mi-stack.exp.

2007-04-16  Denis Pilat  <denis.pilat@st.com>

	* gdb.mi/mi2-var-display.exp: Test for the fullname field.

2007-04-14  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.mi/mi-var-cmd.exp: Delete varobjs left by previous
	tests. Run the frozen varobjs test.
	* gdb.mi/var-cmd.c (do_frozen_tests): New.
	* lib/mi-support.exp (mi_varobj_update): Fix thinko.

2007-04-11  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/type-opaque-lib.c, gdb.base/type-opaque-main.c,
	gdb.base/type-opaque.exp: New files.

2007-04-01  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.mi/mi-var-child.c
	(do_children_tests): User char[2] instead of
	char so that automatic printing of pointers to char
	don't give unpredicable result.
	* gdb.mi/var-cmd.c (do_locals_test): Initialize
	local variables.
	* gdb.mi/mi-var-child.exp: Step to right line
	of do_children_tests.
	* gdb.mi/mi2-var-child.exp: Likewise.
	* gdb.mi/mi-var-cmd.exp: Step to right line of
	do_locals_tests.
	(do_children_tests): User char[2] instead of
	char so that automatic printing of pointers to char
	don't give unpredicable result.
	* gdb.mi/mi2-var-cmd.exp: Likewise.
	* lib/mi-support.exp (mi_continue_to_line):
	Pass test name to mi_wait_for_stop.

2007-03-30  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.asm/asm-source.exp: Remove d10v case.
	* lib/gdb.exp (skip_cplus_tests): Likewise.
	* gdb.asm/d10v.inc: Deleted.

2007-03-30  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/infnan.c, gdb.base/infnan.exp: New files.

2007-03-30  Daniel Jacobowitz  <dan@codesourcery.com>

	* config/netware.exp: Delete file.

2007-03-29  Joel Brobecker  <brobecker@adacore.com>

	* gdb.dwarf2/dw2-noloc.S: New file.
	* gdb.dwarf2/dw2-noloc.exp: New file.

2007-03-28  Pedro Alves  <pedro_alves@portugalmail.pt>

	* gdb.cp/method2.cc: New test.
	* gdb.cp/method2.exp: New test.
	* gdb.cp/Makefile.in (EXECUTABLES): Add method2.

2007-03-27  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.ada/exec_changed.exp: Avoid "set confirm off".

2007-03-27  Brooks Moses  <brooks.moses@codesourcery.com>

	* Makefile.in: Add dummy "pdf" and "install-pdf" targets.

2007-03-27  Daniel Jacobowitz  <dan@codesourcery.com>

	* config/gdbserver.exp (gdbserver_gdb_load): Update argument list.
	(gdb_load): Delete, replace with...
	(gdb_reload): ...this.
	* gdb.server/server-run.exp: Use gdb_load and gdbserver_run.
	* gdb.server/server-mon.exp: Likewise.
	* lib/gdb.exp (gdb_run_cmd): Use gdb_reload.
	(gdb_start_cmd): New.
	(gdb_file_cmd): Save the last loaded file.
	(gdb_reload): New.
	(gdb_gnu_strip_debug): Use transform.
	* lib/gdbserver-support.exp (gdbserver_spawn): Move file download
	support here.  Use new $last_loaded_file.  Check mtime.
	(gdb_target_cmd): Handle ObjC failure case.
	(infer_host_exec): Delete.
	(gdbserver_load): Rename to...
	(gdbserver_run): ...this.  Simplify.
	* lib/mi-support.exp (mi_gdb_file_cmd): Set last_loaded_file.
	(mi_gdb_load): Move most contents to a new function...
	(mi_gdb_target_load): ...here.  Simplify call to gdbserver_gdb_load.
	(mi_run_cmd): Use mi_gdb_target_load.
	* gdb.base/break.exp, gdb.base/ending-run.exp, gdb.base/pending.exp,
	gdb.base/sepdebug.exp, gdb.base/unload.exp, gdb.objc/objcdecode.exp:
	Use gdb_run_cmd.
	* gdb.base/charsign.exp: Remove incorrect comment.
	* gdb.base/dbx.exp (gdb_file_cmd): Set last_loaded_file.
	* gdb.ada/exec_changed.exp, gdb.ada/null_record.exp, gdb.ada/start.exp,
	gdb.base/start.exp: Use gdb_start_cmd.

2007-03-23  Nigel Stephens  <nigel@mips.com>
	    Maciej W. Rozycki  <macro@mips.com>

	* gdb.base/sigbpt.exp: Fix the message when skipping test.
	* gdb.base/signull.exp: Similarly.

2007-03-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* lib/gdb.exp (gdb_run_cmd): Use -notransfer to make start-up
	messages available to test cases (like chng-sym.exp).

2007-03-14  Andreas Schwab  <schwab@suse.de>

	* gdb.arch/altivec-regs.exp (decimal_vector): Adjust for output
	format changes.

2007-03-13  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.arch/powerpc-prologue.c (optimized_1_marker, gdb2029_marker)
	(optimized_1): New.
	(main): Call optimized_1.
	(gdb2029): Correct typos.  Call gdb2029_marker.
	* gdb.arch/powerpc-prologue.exp: Run new test.  Use a breakpoint
	for gdb2029.

2007-03-12  Mark Kettenis  <kettenis@gnu.org>

	* gdb.gdb/selftest.exp (do_steps_and_nexts): Match spaces as well
	as tabs.  Remove redundant test pattern.

2007-03-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.base/long_long.exp: Accept optional symbol name in <...>
	for /a format output.

2007-03-09  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/checkpoint.exp: Rewrite 600 checkpoint test to
	collect output incrementally.

2007-03-08  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.mi/mi-var-cmd.exp: Allow value without "..." string
	for -var-create lpcharacter test.
	* gdb.mi/mi2-var-cmd.exp: Likewise.

2007-03-08  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.mi/mi-var-cmd.exp: Allow -var-update null_ptr test to
	pass on targets where address zero is readable.

2007-03-08  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.xml/tdesc-arch.exp: Test is unsupported on target with
	just a single architecture.

2007-03-08  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.base/callfuncs.exp (do_get_all_registers): Remove.
	(fetch_all_registers): New function, uses gdb_test_multiple and
	exp_continue to fetch inferior output line-by-line.
	Replace all uses of do_get_all_registers by fetch_all_registers.

2007-03-08  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.base/relativedebug.exp: Skip test if gdb,nosignals is set
	in target_info.

2007-03-02  Michael Snyder  <michael.snyder@palmsource.com>

	* gdb.threads/manythreads.exp: Use $message string for
	consistancy; add a default (timeout) case.

2007-03-02  Michael Snyder  <michael.snyder@palmsource.com>

	* gdb.base/watchpoint.exp: Fix truncated comment.

2007-03-02  Michael Snyder  <michael.snyder@palmsource.com>

	* Makefile.in: Remove spurious single-quotes from sed command.

2007-02-28  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.mi/mi-var-cmd.exp: Correct test name.  Allow any value for
	func.
	* gdb.mi/mi2-var-cmd.exp: Likewise.

2007-02-27  Joel Brobecker  <brobecker@adacore.com>

	* gdb.dwarf2/dw2-producer.S: New file.
	* gdb.dwarf2/dw2-producer.exp: New testcase.

2007-02-27  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.mi/mi-var-block.exp, gdb.mi/mi2-var-block.exp
	* gdb.mi/mi-var-child.exp, gdb.mi/mi2-var-child.exp
	* gdb.mi/mi-var-child-f.exp, gdb.mi/mi-var-cmd.exp
	* gdb.mi/mi2-var-cmd.exp, gdb.mi/mi-var-display.exp
	* gdb.mi/mi2-var-display.exp, gdb.mi/gdb701.exp
	Revert tests to use mi_gdb_test and include value field in output
	of -var-create.

2007-02-27  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.arch/i386-signal.c, gdb.arch/i386-signal.exp: New files.

2007-02-27  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/maint.exp: Remove full paths from test names.
	* gdb.base/prelink.exp, gdb.cp/cp-relocate.exp,
	gdb.xml/tdesc-errors.exp, gdb.xml/tdesc-xinclude.exp: Likewise.

2007-02-27  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/catch_ex.exp: Fix a couple of copy/paste typos.

2007-02-26  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.server/server-mon.exp: New test.

2007-02-26  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.cp/cp-relocate.cc, gdb.cp/cp-relocate.exp: New.

2007-02-26  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.arch/iwmmxt-regs.c, gdb.arch/iwmmxt-regs.exp: Update
	register capitalization.

2007-02-13  Denis Pilat  <denis.pilat@st.com>

	* gdb.mi/mi-var-invalidate.exp: New file.

2007-02-08  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.arch/iwmmxt-regs.c, gdb.arch/iwmmxt-regs.exp: New.

2007-02-08  Daniel Jacobowitz  <dan@codesourcery.com>

	* tdesc-arch.exp (set_arch): Add KFAIL for missing OS ABI handlers.

2007-02-08  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.xml/single-reg.xml, gdb.xml/tdesc-regs.exp,
	gdb.xml/core-only.xml, gdb.xml/extra-regs.xml: New files.

2007-02-08  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.mi/mi-var-block.exp, gdb.mi/mi2-var-block.exp
	* gdb.mi/mi-var-child.exp, gdb.mi/mi2-var-child.exp
	* gdb.mi/mi-var-child-f.exp, gdb.mi/mi-var-cmd.exp
	* gdb.mi/mi2-var-cmd.exp, gdb.mi/mi-var-display.exp
	* gdb.mi/mi2-var-display.exp, gdb.mi/gdb701.exp
	* gdb.mi/gdb792.exp, lib/mi-support.exp:
	Update tests to include value field in output of -var-create.

2007-02-08  Andreas Schwab  <schwab@suse.de>

	* gdb.mi/mi-var-child.exp: Fix matching display of function value.

2007-02-07  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.xml/bad-include.xml, gdb.xml/inc-2.xml, gdb.xml/inc-body.xml,
	gdb.xml/includes.xml, gdb.xml/tdesc-xinclude.exp: New files.

2007-02-02  Denis Pilat  <denis.pilat@st.com>

	* gdb.threads/threadapply.exp: check that frame is not changed by
	the thread apply all command.

2007-01-31  Andreas Schwab  <schwab@suse.de>

	* gdb.gdb/selftest.exp (do_steps_and_nexts): Add more matches.

	* gdb.dwarf2/dup-psym.S: Use .2byte/.4byte instead of .short/.int
	in the dwarf sections.
	* gdb.dwarf2/mac-fileno.S: Likewise.

	* gdb.base/callfuncs.exp (do_get_all_registers): Filter out
	bspstore register on ia64.

2007-01-29  Andreas Schwab  <schwab@suse.de>

	* gdb.cp/annota3.exp ("watch triggered on a.x"): Match optional
	"frame-begin" annotation.

	* gdb.cp/annota2.exp ("watch triggered on a.x"): Allow arbitrary
	number of "frames-invalid" annotations.

2007-01-29  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/commands.exp: Call if_commands_test.
	(gdb_test_no_prompt, if_commands_test): New.

2007-01-28  Mark Kettenis  <kettenis@gnu.org>

	* gdb.threads/sigthread.c (NSIGS): Make bigger.

2007-01-27  Andreas Schwab  <schwab@suse.de>

	* gdb.dwarf2/dw2-basic.S: Use .2byte/.4byte/.8byte instead of
	.short/.int/.quad in the dwarf sections.
	* gdb.dwarf2/dw2-intercu.S: Likewise.
	* gdb.dwarf2/dw2-intermix.S: Likewise.

2007-01-25  Jan Kratochvil <jan.kratochvil@redhat.com>

	* gdb.base/charsign.exp, gdb.base/charsign.c: New files.
	* gdb.arch/i386-sse.exp: Check $xmm.v16_int8 printing as a number
	array.
	* gdb.base/printcmds.exp: Sign-provided CHARs now became arrays.
	* gdb.base/setvar.exp: Likewise.

2007-01-26  Andreas Schwab  <schwab@suse.de>

	* gdb.base/corefile.exp: Allow non-empty argument list in reinit
	test.

	* gdb.base/multi-forks.exp ("restart $i"): Also match
	__kernel_syscall_via_break.

2007-01-24  Vladimir Prus  <vladimir@codesourcery.com>

	* lib/mi-support.exp (mi_delete_varobj): New.
	* gdb.mi/mi-var-cp.exp: Run the reference_to_struct
	testcase.
	* gdb.mi/mi-var-cp.cc (reference_to_struct): New function.
	(main): Call the above.
	(reference_update_test, base_in_reference_test)
	(reference_to_pointer): Delete the created varobjs.

2007-01-23  Daniel Jacobowitz  <dan@codesourcery.com>

	* Makefile.in (ALL_SUBDIRS): Add gdb.xml.
	* configure: Regenerated.
	* configure.ac (AC_OUTPUT): Add gdb.xml/Makefile.
	* gdb.xml/Makefile.in, gdb.xml/tdesc-arch.exp,
	gdb.xml/tdesc-bogus.xml, gdb.xml/tdesc-errors.exp,
	gdb.xml/trivial.xml, gdb.xml/tdesc-unknown.xml: New files.
	* lib/gdb.exp (gdb_skip_xml_test): New function.

2007-01-23  Nick Hudson  <nick.hudson@dsl.pipex.com>

	* gdb.base/sigrepeat.exp: Correct error message.

2007-01-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.arch/i386-gnu-cfi.exp, gdb.arch/i386-gnu-cfi.c,
	gdb.arch/i386-gnu-cfi-asm.S: New files.

2007-01-14  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* lib/gdb.exp: Abort on missing `site.exp'.

2007-01-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/included.c, gdb.base/included.exp,
	gdb.base/included.h: New files.

2007-01-20  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/bigcore.c (RLIMIT_CAP): Define.
	(maximize_rlimit): Reduce limits on 64-bit systems.

2007-01-19  Mark Kettenis  <kettenis@gnu.org>

	From Marcus Deuling <deuling@de.ibm.com>:
	* gdb.arch/altivec-regs.exp: Initialise variable endianness in
	every case.

2007-01-13  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.mi/mi-basics.exp, gdb.mi/mi2-basics.exp (test_dir_specification)
	(test_path_specification): Use objdir instead of srcdir to always
	get an absolute filename.

2007-01-12  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.cp/member-ptr.cc (class Padding): Make contents public.

2007-01-11  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.mi/mi-var-cp.cc (reference_update_tests):
	Make sure the variable we're using is in scope.
	(reference_to_pointer): Likewise.

2007-01-09  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.ada/catch_ex.exp: Call unsupported and stop if the runtime
	has no debug information.

2007-01-09  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/annota1.exp: Remove extra send_gdb.

2007-01-09  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/relativedebug.c, gdb.base/relativedebug.exp: New files.

2007-01-09  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.arch/i386-size-overlap.c, gdb.arch/i386-size-overlap.exp: New.

2007-01-08  Nick Roberts  <nickrob@snap.net.nz>
	    Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.mi/mi-var-cmd.exp: Expect lpcharacter to update when
	lcharacter or linteger change.  Correct duplicated test name.
	* gdb.mi/mi2-var-cmd.exp: Likewise.

2007-01-08  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.threads/sigthread.c, gdb.threads/sigthread.exp: New.

2007-01-05  Joel Brobecker  <brobecker@adacore.com>

	* gdb.base/nofield.c: New file.
	* gdb.base/nofield.exp: New testcase.

2007-01-05  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.mi/mi-var-cp.exp: New test for references to pointers.

	* gdb.mi/mi-var-cp.cc: (reference_to_pointer): New procedure for above
	 test.

2007-01-04  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.mi/mi-var-cmd.exp: Add tests for unreadable varobjs.

2007-01-04  Daniel Jacobowitz  <dan@codesourcery.com>

	* lib/mi-support.exp (mi_runto_helper): Expect two prompts
	when continuing.

2007-01-04  Pedro Alves  <pedro_alves@portugalmail.pt>

	* gdb.base/annota3.exp ($binfile): Append $EXEEXT.
	Expect ".exe" extension.

2007-01-04  Pedro Alves  <pedro_alves@portugalmail.pt>

	* gdb.base/charset.exp: Add explicit filename to break.
	* gdb.base/dbx.exp: Add explicit filename to breaks.

2007-01-04  Pedro Alves  <pedro_alves@portugalmail.pt>

	* gdb.mi/mi-file.exp: Use mi_gdb_file_cmd instead of mi_gdb_load.
	* gdb.mi/mi2-file.exp: Likewise.

2007-01-04  Vladimir Prus  <vladimir@codesourcery.com>

	Implement specification of MI tests as comments
	in C and C++ sources.
	* lib/mi-support.exp (mi_autotest_data): New variable.
	(mi_autotest_source): New variable.
	(count_newlines, mi_prepare_inline_tests)
	(mi_get_inline_test, mi_continue_to_line)
	(mi_run_inline_test, mi_tbreak)
	(mi_send_resuming_command, mi_wait_for_stop): New functions.
	* gdb.mi/mi-var-cp.exp: Move most content to the C file.
	Run inline tests.
	* gdb.mi/mi-var-cp.cc: Define tests here.

2007-01-04  Vladimir Prus  <vladimir@codesourcery.com>

	Simplify usage of mi_continue_to.
	* lib/mi-support.exp (mi_runto_helper): Renamed
	from mi_runto, added new parameter 'run_or_continue'.
	(mi_runto): Use mi_runto_helper.
	(mi_continue_to): Accept just function name as parameter.
	Use mi_runto_helper.
	* gdb.mi/mi-var-cmd.exp: Adjust to changes.
	* gdb.mi/mi2-var-cmd.exp: Likewise.

2006-01-04  Joel Brobecker  <brobecker@adacore.com>

	Make this testcase a bit more realistic. The current code
	is too simplistic, and allows the compiler to optimize out
	some of the entities we need for this testcase.
	* gdb.ada/null_record/bar.ads (Void_Star): New type.
	(Do_Nothing): Add extra parameter.
	* gdb.ada/null_record/bar.adb (Do_Nothing): Likewise.
	* gdb.ada/null_record/null_record.adb: Fake use of type Empty
	by using a variable of type Void_Star.

2006-01-04  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/catch_ex/foo.adb: New file.
	* gdb.ada/catch_ex.exp: New testcase.

2007-01-03  Pedro Alves  <pedro_alves@portugalmail.pt>

	* gdb.base/shreloc.exp: Use ldflags instead of additional_flags to
	pass --image-base to linker.

2007-01-03  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/readline.exp: Set $TERM.  Test arrow keys in
	secondary prompts.

2007-01-03  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.cp/classes.exp (test_pointers_to_class_members): Update expected
	output.  Test the types of members and member pointers.
	* gdb.cp/inherit.exp (test_print_mi_member_types): Remove KFAILs for
	gdb/2092.
	* gdb.cp/member-ptr.exp: Search for a comment instead of a
	statement.  Enable for GCC.  Update expected output for some tests
	and add new tests.  Remove obsolete GCC KFAILs.  Allow GCC's class
	layout.
	* gdb.cp/member-ptr.cc (Padding, Padding::vspacer, Base, Base::get_x)
	(Base::vget_base, Left, Left::vget, Right, Right::vget, Diamond)
	(Diamond::vget_base): New.
	(main): Add new tests.
	* gdb.cp/printmethod.exp: Update expected output for member functions.
	* gdb.cp/virtfunc.exp (test_virtual_calls): Add a KFAIL for
	print pEe->D::vg().

2007-01-03  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.threads/tls.exp: Allow stops in sem_post.

2006-12-31  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/annota1.exp: Allow .*printf in backtraces.
	* gdb.base/annota3.exp: Likewise.
	* gdb.base/sigstep.exp (advancei): Fail if we hit the breakpoint
	again (instead of timing out).
	* gdb.gdb/selftest.exp (do_steps_and_nexts): Add an XFAIL for
	GCC bug 26475.
	* gdb.java/jmisc.exp: Adjust to work with method signatures including
	return types.  Add kfails for GDB bugs 2214 and 2215.  Move exit
	test from jmisc1.exp.
	* gdb.java/jmisc1.exp: Delete.
	* gdb.java/jprint.exp: Adjust to work with method signatures including
	return types.
	* gdb.objc/basicclass.exp: Update for gobjc 4.1 debug info.
	* gdb.threads/linux-dp.exp: Don't be confused by program output.
	* lib/java.exp (compile_java_from_source): Pass the correct type
	to target_compile.

2006-12-31  Joel Brobecker  <brobecker@adacore.com>

	* gdb.arch/i386-prologue.c (stack_align_ecx): Renamed from stack_align.
	(stack_align_edx): New function.
	(stack_align_eax): New function.
	(main): Add calls to stack_align_edx and stack_align_eax.
	* gdb.arch/i386-prologue.exp: Replace stack_align with stack_align_ecx.
	Add testing for the cases where the register used during a stack
	realignment is edx. Same for eax.

2006-12-30  Pedro Alves  <pedro_alves@portugalmail.pt>

	* lib/gdb.exp: Don't pass -fpic to gcc on Cygwin, MinGW
	and generic PE targets.

2006-12-29  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/array_return.exp: Update copyright date list.

2006-12-27  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/array_return/pck.ads (Small_Float_Vector): New type.
	(Create_Small_Float_Vector): New function.
	* gdb.ada/array_return/pck.adb (Create_Small_Float_Vector): Add
	function body.
	* gdb.ada/array_return/p.adb: Use new type and function from
	package Pck.
	* gdb.ada/array_return.exp: Add a test verifying that GDB is
	able to print the value returned by a function returning an
	array of float.

2006-12-20  Joel Brobecker  <brobecker@adacore.com>

	* gdb.arch/i386-prologue.exp: Remove calls to setup_kfail.
	The associated tests should be PASSing.

2006-12-08  Vladimir Prus  <vladimir@codesourcery.com>

	Test for base in references.
	* gdb.mi/mi-var-cp.cc: Add test code.
	* gdb.mi/mi-var-cp.exp: Test for bases in references.
	* gdb.mi/mi-watch.exp: Adjust to mi_runto changes.
	* gdb.mi/mi2-watch.exp: Likewise.
	* lib/mi-support.exp (mi_runto): Use temporary breakpoint.
	(mi_list_varobj_children): New function.

2006-12-08  Vladimir Prus  <vladimir@codesourcery.com>

	* lib/mi-support.exp
	(mi_runto): Accept "()" after function name.
	(mi_create_varobj): New function.
	(mi_varobj_update): New function.
	(mi_Check_varobj_value): New function.
	* gdb.mi/mi-var-cp.exp: New file.
	* gdb.mi/mi-var-cp.cc: New file.

2006-12-01  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/solib-weak.c, gdb.base/solib-weak.exp, gdb.base/weaklib1.c,
	gdb.base/weaklib2.c: New files.

2006-11-29  Nathan Sidwell  <nathan@codesourcery.com>

	* gdb.threads/linux-dp.exp: Adjust regexps used to scan thread
	info.  Adjust test names.

	* gdb.base/break.c (main): Move position of malloc.
	* gdb.base/break.exp: Revert mistaken checkin.

2006-11-28  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.mi/mi-var-cmd.exp: Check -var-update after
	assignement of arrays and function pointers.
	* gdb.mi/var-cmd.c: Add declaration necessary for above
	tests.

2006-11-27  Nathan Sidwell  <nathan@codesourcery.com>

	* gdb.base/break.c (main): Call malloc.

	* gdb.threads/linux-dp.exp: Read thread table before and after
	creating each philosopher and verify it.

2006-11-27  Nathan Sidwell  <nathan@codesourcery.com>
	    Paul Brook  <paul@codesourcery.com>
	    Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/ending-run.exp: Flatten expect script stepping out of
	main to remove duplication.  Add start function of the form
	'_*start[1-9]*'. Add RVDS start function.

2006-11-22  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.arch/thumb-prologue.c, gdb.arch/thumb-prologue.exp: New files.

2006-11-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.asm/asm-source.exp: Add "spu*-*-*" target.
	* gdb.asm/spu.inc: New file.
	* gdb.base/term.exp: Disable if [target_info exists noargs].
	* gdb.gdb/complaints.exp: Disable if ![isnative].
	* gdb.gdb/selftest.exp: Likewise.
	* gdb.gdb/observer.exp: Likewise.
	* gdb.gdb/xfullpath.exp: Likewise.
	* gdb.base/attach.exp: Disable on SPU target.
	* gdb.cp/bs145503.exp: Likewise.
	* gdb.cp/exception.exp: Likewise.
	* gdb.cp/userdef.exp: Likewise.

2006-11-22  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.stabs/weird.exp (print_weird_var): Don't send extra \n.

2006-11-10  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.base/completion.exp: Fix completion tests for
	'info' and 'info '.
	* gdb.base/help.exp (help_test_raw, test_class_help)
	(test_prefix_command_help): Move...
	* lib/gdb.exp: Here.
	* gdb.base/main.exp: Adjust.
	* gdb.cp/maint.exp: Adjust.
	* gdb.trace/tracecmd.exp: Use test_help_class.

2006-11-09  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.stabs/weird.exp (print_weird_var): Use
	gdb_test_multiple instead of gdb_expect.

2006-11-09  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.base/help.exp (help_test_raw): New.
	(test_class_help): New.
	(test_prefix_command_help): New.
	Adjust testcases.

2006-11-09  Christophe Lyon  <christophe.lyon@st.com>

	* gdb.base/constvars.c (main): Write to crass and crips, so that
	they are allocated by the compiler.

2006-10-27  Andreas Schwab  <schwab@suse.de>

	* gdb.base/multi-forks.exp: Use "detach fork" instead of
	"detach-fork".

2006-10-18  Daniel Jacobowitz  <dan@codesoucery.com>

	* lib/gdbserver-support.exp (gdb_target_cmd): Anchor the ends
	of patterns.

2006-10-17  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/sepdebug.exp: Remove debug format test.
	* lib/gdb.exp (gdb_gnu_strip_debug): Perform debug format test.
	Handle no-symtab.
	* gdb.base/sepsymtab.c, gdb.base/sepsymtab.exp: New.

2006-10-17  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.threads/manythreads.c (thread_function, main): Don't cast
	int to pointer or pointer to int.
	* gdb.threads/manythreads.exp: Don't expect the string "LWP".

2006-10-12  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/annota1.exp, gdb.base/maint.exp: Use string_to_regexp.

2006-10-09  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.threads/tls-nodebug.c, gdb.threads/tls-nodebug.exp: New test.

2006-10-09  Daniel Jacobowitz  <dan@codesourcery.com>

	PR c++/2116
	* gdb.cp/call-c.cc, gdb.cp/call-c.exp, gdb.cp/call-c-1.c: New.

2006-10-06  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/arrayidx.exp: Remove calls to setup_kfail now that
	the corresponding bug has been fixed in GDB (PR/2018).

2006-10-06  Joel Brobecker  <brobecker@adacore.com>

	* gdb.base/subst.exp: New testcase.

2006-10-06  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/array_return/pck.ads: Add copyright notice.
	* gdb.ada/array_return/pck.adb: Likewise.
	* gdb.ada/array_return/p.adb: Likewise.
	* gdb.ada/exec_changed/first.adb: Likewise.
	* gdb.ada/exec_changed/second.adb: Likewise.

2006-10-06  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/watch_arg/watch.adb: New file.
	* gdb.ada/watch_arg.exp: New testcase.

2006-10-02  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.mi/mi-basics.exp (test_path_specification): Pass orig_path
	via string_to_regexp.
	* gdb.mi/mi2-basics.exp: Likewise.

2006-09-20  Michael Snyder  <michael.snyder@palmsource.com>

	* abug.exp, cpu32bug.exp, est.exp hmsirom.exp, nind.exp:
	Remove unused / obsolete files.

2006-09-19  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.base/multi-forks.exp: Include __kernel_vsyscall in regexp.

2006-09-17  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.mi/mi-stack.exp (test_stack_args_listing): Test that
	HIGH_FRAME argument to -stack-list-arguments can be larger than
	the number of frames.

2006-09-15  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/args.c (main): Add breakpoint marker.
	* gdb.base/args.exp: Use args_test for tests.  Add new tests which
	really test empty arguments.
	(args_load): Delete.
	(args_test): New.

2006-09-13  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.mi/mi-file.exp (test_file_list_exec_source_files): Just
	check for one file.

2006-09-07  Vladimir Prus  <ghost@vladimir@codesourcery.com>

	* gdb.mi/mi-stack.exp (test_stack_frame_listing): Test that
	HIGH_FRAME argument to -stack-list-locals can be larger than
	the number of frames.

2006-08-18  Fred Fish  <fnf@specifix.com>

	* lib/gdb.exp (skip_altivec_tests): Fix apparent typo,
	'$' in front of skip_vmx_tests_saved when setting that.

2006-08-10  Andrew Stubbs  <andrew.stubbs@st.com>

	* gdb.base/trace-commands.exp: New file.

2006-08-10  Joel Brobecker  <brobecker@adacore.com>
	    Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/step-bt.exp: Make hexadecimal address optional in
	expected output of the backtrace commands.

2006-08-09  Joel Brobecker  <brobecker@adacore.com>

	* gdb.arch/altivec-abi.exp: Replace gdb_suppress_entire_file with
	untested followed by return combination.
	* gdb.arch/altivec-regs.exp: Likewise.
	* gdb.arch/e500-abi.exp: Likewise.
	* gdb.arch/e500-regs.exp: Likewise.
	* gdb.arch/gdb1291.exp: Likewise.
	* gdb.arch/gdb1431.exp: Likewise.
	* gdb.arch/gdb1558.exp: Likewise.
	* gdb.arch/i386-prologue.exp: Likewise.
	* gdb.arch/i386-unwind.exp: Likewise.
	* gdb.asm/asm-source.exp: Likewise.
	* gdb.base/a2-run.exp: Likewise.
	* gdb.base/advance.exp: Likewise.
	* gdb.base/all-bin.exp: Likewise.
	* gdb.base/annota1.exp: Likewise.
	* gdb.base/annota3.exp: Likewise.
	* gdb.base/args.exp: Likewise.
	* gdb.base/arithmet.exp: Likewise.
	* gdb.base/assign.exp: Likewise.
	* gdb.base/async.exp: Likewise.
	* gdb.base/attach.exp: Likewise.
	* gdb.base/bang.exp: Likewise.
	* gdb.base/bigcore.exp: Likewise.
	* gdb.base/bitfields.exp: Likewise.
	* gdb.base/bitfields2.exp: Likewise.
	* gdb.base/break.exp: Likewise.
	* gdb.base/call-sc.exp: Likewise.
	* gdb.base/call-strs.exp: Likewise.
	* gdb.base/callfuncs.exp: Likewise.
	* gdb.base/checkpoint.exp: Likewise.
	* gdb.base/chng-syms.exp: Likewise.
	* gdb.base/code-expr.exp: Likewise.
	* gdb.base/commands.exp: Likewise.
	* gdb.base/completion.exp: Likewise.
	* gdb.base/cond-expr.exp: Likewise.
	* gdb.base/condbreak.exp: Likewise.
	* gdb.base/consecutive.exp: Likewise.
	* gdb.base/constvars.exp: Likewise.
	* gdb.base/corefile.exp: Likewise.
	* gdb.base/cvexpr.exp: Likewise.
	* gdb.base/dbx.exp: Likewise.
	* gdb.base/define.exp: Likewise.
	* gdb.base/detach.exp: Likewise.
	* gdb.base/display.exp: Likewise.
	* gdb.base/dump.exp: Likewise.
	* gdb.base/ena-dis-br.exp: Likewise.
	* gdb.base/ending-run.exp: Likewise.
	* gdb.base/environ.exp: Likewise.
	* gdb.base/eval-skip.exp: Likewise.
	* gdb.base/exprs.exp: Likewise.
	* gdb.base/fileio.exp: Likewise.
	* gdb.base/finish.exp: Likewise.
	* gdb.base/float.exp: Likewise.
	* gdb.base/foll-exec.exp: Likewise.
	* gdb.base/foll-fork.exp: Likewise.
	* gdb.base/foll-vfork.exp: Likewise.
	* gdb.base/freebpcmd.exp: Likewise.
	* gdb.base/funcargs.exp: Likewise.
	* gdb.base/gcore.exp: Likewise.
	* gdb.base/gdb1090.exp: Likewise.
	* gdb.base/gdb1250.exp: Likewise.
	* gdb.base/huge.exp: Likewise.
	* gdb.base/info-proc.exp: Likewise.
	* gdb.base/interrupt.exp: Likewise.
	* gdb.base/jump.exp: Likewise.
	* gdb.base/langs.exp: Likewise.
	* gdb.base/lineinc.exp: Likewise.
	* gdb.base/list.exp: Likewise.
	* gdb.base/logical.exp: Likewise.
	* gdb.base/long_long.exp: Likewise.
	* gdb.base/macscp.exp: Likewise.
	* gdb.base/maint.exp: Likewise.
	* gdb.base/mips_pro.exp: Likewise.
	* gdb.base/miscexprs.exp: Likewise.
	* gdb.base/multi-forks.exp: Likewise.
	* gdb.base/opaque.exp: Likewise.
	* gdb.base/overlays.exp: Likewise.
	* gdb.base/pc-fp.exp: Likewise.
	* gdb.base/pointers.exp: Likewise.
	* gdb.base/printcmds.exp: Likewise.
	* gdb.base/psymtab.exp: Likewise.
	* gdb.base/ptype.exp: Likewise.
	* gdb.base/recurse.exp: Likewise.
	* gdb.base/relational.exp: Likewise.
	* gdb.base/relocate.exp: Likewise.
	* gdb.base/remote.exp: Likewise.
	* gdb.base/reread.exp: Likewise.
	* gdb.base/restore.exp: Likewise.
	* gdb.base/return.exp: Likewise.
	* gdb.base/return2.exp: Likewise.
	* gdb.base/scope.exp: Likewise.
	* gdb.base/sect-cmd.exp: Likewise.
	* gdb.base/sep.exp: Likewise.
	* gdb.base/sepdebug.exp: Likewise.
	* gdb.base/setshow.exp: Likewise.
	* gdb.base/setvar.exp: Likewise.
	* gdb.base/sigall.exp: Likewise.
	* gdb.base/sigbpt.exp: Likewise.
	* gdb.base/signals.exp: Likewise.
	* gdb.base/signull.exp: Likewise.
	* gdb.base/sizeof.exp: Likewise.
	* gdb.base/solib.exp: Likewise.
	* gdb.base/step-line.exp: Likewise.
	* gdb.base/step-test.exp: Likewise.
	* gdb.base/structs.exp: Likewise.
	* gdb.base/structs2.exp: Likewise.
	* gdb.base/term.exp: Likewise.
	* gdb.base/twice.exp: Likewise.
	* gdb.base/until.exp: Likewise.
	* gdb.base/varargs.exp: Likewise.
	* gdb.base/volatile.exp: Likewise.
	* gdb.base/watchpoint.exp: Likewise.
	* gdb.base/whatis-exp.exp: Likewise.
	* gdb.base/whatis.exp: Likewise.
	* gdb.cp/ambiguous.exp: Likewise.
	* gdb.cp/annota2.exp: Likewise.
	* gdb.cp/annota3.exp: Likewise.
	* gdb.cp/bool.exp: Likewise.
	* gdb.cp/breakpoint.exp: Likewise.
	* gdb.cp/casts.exp: Likewise.
	* gdb.cp/class2.exp: Likewise.
	* gdb.cp/classes.exp: Likewise.
	* gdb.cp/cplusfuncs.exp: Likewise.
	* gdb.cp/ctti.exp: Likewise.
	* gdb.cp/derivation.exp: Likewise.
	* gdb.cp/exception.exp: Likewise.
	* gdb.cp/gdb1355.exp: Likewise.
	* gdb.cp/hang.exp: Likewise.
	* gdb.cp/inherit.exp: Likewise.
	* gdb.cp/local.exp: Likewise.
	* gdb.cp/m-data.exp: Likewise.
	* gdb.cp/m-static.exp: Likewise.
	* gdb.cp/member-ptr.exp: Likewise.
	* gdb.cp/method.exp: Likewise.
	* gdb.cp/misc.exp: Likewise.
	* gdb.cp/namespace.exp: Likewise.
	* gdb.cp/overload.exp: Likewise.
	* gdb.cp/ovldbreak.exp: Likewise.
	* gdb.cp/pr-1023.exp: Likewise.
	* gdb.cp/pr-1210.exp: Likewise.
	* gdb.cp/pr-574.exp: Likewise.
	* gdb.cp/printmethod.exp: Likewise.
	* gdb.cp/psmang.exp: Likewise.
	* gdb.cp/ref-params.exp: Likewise.
	* gdb.cp/ref-types.exp: Likewise.
	* gdb.cp/rtti.exp: Likewise.
	* gdb.cp/templates.exp: Likewise.
	* gdb.cp/try_catch.exp: Likewise.
	* gdb.cp/userdef.exp: Likewise.
	* gdb.cp/virtfunc.exp: Likewise.
	* gdb.disasm/am33.exp: Likewise.
	* gdb.disasm/h8300s.exp: Likewise.
	* gdb.disasm/mn10300.exp: Likewise.
	* gdb.disasm/sh3.exp: Likewise.
	* gdb.disasm/t01_mov.exp: Likewise.
	* gdb.disasm/t02_mova.exp: Likewise.
	* gdb.disasm/t03_add.exp: Likewise.
	* gdb.disasm/t04_sub.exp: Likewise.
	* gdb.disasm/t05_cmp.exp: Likewise.
	* gdb.disasm/t06_ari2.exp: Likewise.
	* gdb.disasm/t07_ari3.exp: Likewise.
	* gdb.disasm/t08_or.exp: Likewise.
	* gdb.disasm/t09_xor.exp: Likewise.
	* gdb.disasm/t10_and.exp: Likewise.
	* gdb.disasm/t11_logs.exp: Likewise.
	* gdb.disasm/t12_bit.exp: Likewise.
	* gdb.disasm/t13_otr.exp: Likewise.
	* gdb.hp/gdb.aCC/optimize.exp: Likewise.
	* gdb.hp/gdb.aCC/watch-cmd.exp: Likewise.
	* gdb.hp/gdb.base-hp/callfwmall.exp: Likewise.
	* gdb.hp/gdb.base-hp/dollar.exp: Likewise.
	* gdb.hp/gdb.base-hp/hwwatchbus.exp: Likewise.
	* gdb.hp/gdb.base-hp/pxdb.exp: Likewise.
	* gdb.hp/gdb.base-hp/reg-pa64.exp: Likewise.
	* gdb.hp/gdb.base-hp/reg.exp: Likewise.
	* gdb.hp/gdb.base-hp/sized-enum.exp: Likewise.
	* gdb.hp/gdb.compat/xdb1.exp: Likewise.
	* gdb.hp/gdb.compat/xdb3.exp: Likewise.
	* gdb.hp/gdb.objdbg/objdbg01.exp: Likewise.
	* gdb.hp/gdb.objdbg/objdbg02.exp: Likewise.
	* gdb.hp/gdb.objdbg/objdbg03.exp: Likewise.
	* gdb.hp/gdb.objdbg/objdbg04.exp: Likewise.
	* gdb.mi/gdb701.exp: Likewise.
	* gdb.mi/gdb792.exp: Likewise.
	* gdb.mi/mi-basics.exp: Likewise.
	* gdb.mi/mi-break.exp: Likewise.
	* gdb.mi/mi-cli.exp: Likewise.
	* gdb.mi/mi-console.exp: Likewise.
	* gdb.mi/mi-disassemble.exp: Likewise.
	* gdb.mi/mi-eval.exp: Likewise.
	* gdb.mi/mi-file.exp: Likewise.
	* gdb.mi/mi-read-memory.exp: Likewise.
	* gdb.mi/mi-regs.exp: Likewise.
	* gdb.mi/mi-return.exp: Likewise.
	* gdb.mi/mi-simplerun.exp: Likewise.
	* gdb.mi/mi-stack.exp: Likewise.
	* gdb.mi/mi-stepi.exp: Likewise.
	* gdb.mi/mi-syn-frame.exp: Likewise.
	* gdb.mi/mi-until.exp: Likewise.
	* gdb.mi/mi-var-block.exp: Likewise.
	* gdb.mi/mi-var-child.exp: Likewise.
	* gdb.mi/mi-var-cmd.exp: Likewise.
	* gdb.mi/mi-var-display.exp: Likewise.
	* gdb.mi/mi-watch.exp: Likewise.
	* gdb.mi/mi2-basics.exp: Likewise.
	* gdb.mi/mi2-break.exp: Likewise.
	* gdb.mi/mi2-cli.exp: Likewise.
	* gdb.mi/mi2-console.exp: Likewise.
	* gdb.mi/mi2-disassemble.exp: Likewise.
	* gdb.mi/mi2-eval.exp: Likewise.
	* gdb.mi/mi2-file.exp: Likewise.
	* gdb.mi/mi2-read-memory.exp: Likewise.
	* gdb.mi/mi2-regs.exp: Likewise.
	* gdb.mi/mi2-return.exp: Likewise.
	* gdb.mi/mi2-simplerun.exp: Likewise.
	* gdb.mi/mi2-stack.exp: Likewise.
	* gdb.mi/mi2-stepi.exp: Likewise.
	* gdb.mi/mi2-syn-frame.exp: Likewise.
	* gdb.mi/mi2-until.exp: Likewise.
	* gdb.mi/mi2-var-block.exp: Likewise.
	* gdb.mi/mi2-var-child.exp: Likewise.
	* gdb.mi/mi2-var-cmd.exp: Likewise.
	* gdb.mi/mi2-var-display.exp: Likewise.
	* gdb.mi/mi2-watch.exp: Likewise.
	* gdb.stabs/exclfwd.exp: Likewise.
	* gdb.stabs/weird.exp: Likewise.
	* gdb.threads/gcore-thread.exp: Likewise.
	* gdb.trace/actions.exp: Likewise.
	* gdb.trace/backtrace.exp: Likewise.
	* gdb.trace/circ.exp: Likewise.
	* gdb.trace/collection.exp: Likewise.
	* gdb.trace/deltrace.exp: Likewise.
	* gdb.trace/infotrace.exp: Likewise.
	* gdb.trace/limits.exp: Likewise.
	* gdb.trace/packetlen.exp: Likewise.
	* gdb.trace/passc-dyn.exp: Likewise.
	* gdb.trace/passcount.exp: Likewise.
	* gdb.trace/report.exp: Likewise.
	* gdb.trace/save-trace.exp: Likewise.
	* gdb.trace/tfind.exp: Likewise.
	* gdb.trace/tracecmd.exp: Likewise.
	* gdb.trace/while-dyn.exp: Likewise.
	* gdb.trace/while-stepping.exp: Likewise.

2006-08-08  Joel Brobecker  <brobecker@adacore.com>

	* gdb.base/step-bt.c: New file.
	* gdb.base/step-bt.exp: New testcase.

2006-08-08  Daniel Jacobowitz  <dan@codesourcery.com>

	* config/monitor.exp (gdb_load): Remove support for obsolete
	download-write-size.
	* gdb.base/remote.exp: Likewise.  Update all callers of
	gdb_timed_load.

2006-08-02  Daniel Jacobowitz  <dan@codesourcery.com>

	* cursal.exp: Pass binfile to gdb_load.

2006-08-01  Nathan Sidwell  <nathan@codesourcery.com>

	* gdb.base/cursal.exp: Add "" to gdb_load call.

2006-07-29  Mark Kettenis  <kettenis@gnu.org>

	* gdb.asm/asm-source.exp: Add alpha-*-netbsd* to the list of
	NetBSD/ELF targets.

2006-07-25  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.cp/userdef.cc, gdb.cp/userdef.exp: New tests for unary
	operator*.

2006-07-24  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/completion.exp: Update for change in "file" behavior.
	* gdb.stabs/weird.exp: Likewise.
	* lib/mi-support.exp (mi_gdb_file_cmd): Likewise.
	* lib/gdb.exp (gdb_file_cmd): Likewise.  Kill the program explicitly.

2006-07-24  Nathan Sidwell  <nathan@codesourcery.com>

	* gdb.base/auxv.exp: Skip on non-linux, non-solaris targets.
	* gdb.base/cursal.exp: Use gdb_file_cmd first, then separate gdb_load.

2006-07-21  Andrew Stubbs  <andrew.stubbs@st.com>

	* gdb.base/default.exp: Update source command error message.
	* gdb.base/help.exp: Update 'help source' message.

2006-07-20  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.cp/bs15503.exp: Update comment for no longer crashing
	test.

2006-07-19  Andrew Stubbs  <andrew.stubbs@st.com>

	* gdb.base/ifelse.exp: Remove troublesome 'got here' messages.

2006-07-18  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.arch/i386-size.c, gdb.arch/i386-size.exp: New files.

2006-07-18  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.threads/print-threads.exp: Use gdb_breakpoint.

2006-07-17  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/long_long.exp (gdb_test_long_long): Exclude
	*-*-openbsd* from targets for wich we expect ARM FPA floating
	point format.

2006-07-17  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.cp/annota3.exp: Expect frame-begin annotation.

2006-07-17  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/annota3.exp: Expect frame-begin annotation.

2006-07-14  Joel Brobecker  <brobecker@adacore.com>

	* gdb.base/help.exp: Adjust "help unset" test to accept
	any list of unset commands.

2006-07-13  Paul N. Hilfinger  <Hilfinger@adacore.com>
	    Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.cp/ref-params.exp: New test.
	* gdb.cp/ref-params.cc: New source file.
	* gdb.cp/Makefile.in (EXECUTABLES): Add ref-params.

2006-07-08  Mark Kettenis  <kettenis@gnu.org>

	* gdb.arch/alpha-step.exp (test_stepi): Do not include trailing
	spaces/tabs in regular expressions since they might not be there.

2006-07-07  Andrew Stubbs  <andrew.stubbs@st.com>

	* gdb.base/ifelse.exp: New file.

2006-07-04  Nathan Sidwell  <nathan@codesourcery.com>

	* gdb.base/huge.c: Allow CRASH_GDB to be set from command
	line.
	* gdb.base/huge.exp: Loop over compilation to find a size that
	is acceptable.
	* gdb.base/remote.exp: Correct expected strings.
	* gdb.dwarf2/mac-fileno.S: Avoid # comments.

2006-06-22  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/store.exp: Don't use gdb_suppress_entire_file.

2006-06-22  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/gdb1555.exp: Use gdb_compile_shlib.  Skip if not
	native.

2006-06-22  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.stabs/exclfwd.exp: Skip the test if configure did not
	enable stabs testing.

2006-06-22  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/auxv.exp: Intercept undefined command messages before
	gdb_test_multiple does.

2006-06-22  Daniel Jacobowitz  <dan@codesourcery.com>

	* Makefile.in (host_alias): Remove.
	(target_alias): Use @target_noncanonical@.
	(site.exp): Don't set host_alias.
	* aclocal.m4: Remove contents.  Include acx.m4.
	* configure: Regenerated.
	* configure.ac: Use ACX_NONCANONICAL_TARGET.

2006-06-13  Nathan Sidwell  <nathan@codesourcery.com>

	* lib/gdb.exp (gdb_load_cmd): New.

	* gdb.base/fileio.c: Add system(NULL) test.
	* gdb.base/fileio.exp: Check it.

	* gdb.base/break.c: Add 10a breakpoint at }
	* gdb.base/break.exp: Add test for breakpoint at }
	* gdb.cp/anon-union.cc: Add code at end of function.
	* gdb.cp/anon-union.exp: Adjust end of function breakpoint.
	* gdb.mi/var-cmd.c: Add code at end of function.
	* gdb.mi/mi-var-display.exp: Adjust end of next.
	* gdb.mi/mi2-var-display.exp: Likewise.
	* gdb.base/fileio.c: Add stop function and insert calls at
	stopping places.
	* gdb.base/fileio.exp: Breakpoint stop function and remove
	explicit line number references.

2006-05-19  Joel Brobecker  <brobecker@adacore.com>

	* gdb.base/del.exp (test_delete_alias): New function.
	Now check that both "del" and "d" work as aliases for "delete".

2006-05-18  Fred Fish  <fnf@specifix.com>

	* gdb.base/a2-run.exp: Allow part of test to run when args aren't
	required.  Check for spurious output after program exits normally.

2006-05-17  Fred Fish  <fnf@specifix.com>

	* gdb.base/relocate.exp: Use gdb_file_cmd rather than
	gdb_load, so it works in the simulator.

2006-05-11  Fred Fish  <fnf@specifix.com>

	* gdb.base/bang.exp: Ignore unexpected output between the
	"program exited normally" and the gdb prompt, as many other
	tests do.

2006-05-07  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/help.exp: Make "delete checkpoint" part option for
	"help d" and "help delete" tests.

2006-05-06  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.mi/mi-basics.exp: Add missing serial number to
	expected output in some mi_gdb_test statements.
	* gdb.mi/mi2-basics.exp: Likewise.

2006-05-05  Joel Brobecker  <brobecker@adacore.com>

	* gdb.base/del.c: New file.
	* gdb.base/del.exp: New testcase.

2006-05-05  David S. Miller  <davem@sunset.davemloft.net>

	* gdb.base/break.exp: Do not assume a breakpoint on
	main will actually be in $srcfile when optimizing.
	* gdb.base/savedregs.exp: Do not require that the dummy
	frame location match up to a symbol and source file location.
	* gdb.mi/mi-regs.exp (111-data-list-register-values x): "No registers"
	will get printed without a mi_cmd_data_list_register_values prefix.
	(*-data-list-register-*): Correct regular expressions to expect the new
	pseudo d? floating point registers.
	* gdb.mi/mi2-regs.exp: Likewise.

2006-05-05  Christophe Lyon  <christophe.lyon@st.com>

	* gdb.cp/m-static.h (class gnu_obj_4): Add dummy member.
	* gdb.cp/m-static.cc (main): Write to test4.dummy, so that test4
	is allocated by the compiler.
	* gdb.mi/var-cmd.c: (do_special_tests): Write to u, anonu, s,
	anons, e, anone to force their allocation by the compiler.

2006-05-05  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/help.exp: Update expected text for help d and
	help delete.

2006-05-02  Mark Kettenis  <kettenis@gnu.org>

	* gdb.asm/asm-source.exp: Add powerpc-*-netbsd* to the list of
	NetBSD/ELF targets.

2006-04-30  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/sigbpt.exp (stepi_out): FAIL when inserting a
	single-step breakpoint fails; make this a KFAIL on
	sparc*-*-openbsd*.
	* gdb.base/siginfo.exp: Likewise.
	* gdb.base/sigstep.exp (advance, advancei): Likewise.

2006-04-26  Michael Snyder  <msnyder@redhat.com>

	* gdb.base/multi-forks.exp: Modify patterns for "run to exit",
	which may have to consume output from other forks.
	Add tests to make sure that "delete fork" succeeded.

2006-04-20  Michael Snyder  <msnyder@redhat.com>

	* 2006-03-22  Jim Blandy  <jimb@redhat.com>
	Add support for the Renesas M32C and M16C.

	* gdb.asm/asm-source.exp: Add m32c target.
	* gdb.asm/m32c.inc: Support for m32c target.

2006-04-07  Andrew Stubbs  <andrew.stubbs@st.com>

	* gdb.base/commands.exp (recursive_source_test): New test.

2006-04-04  David S. Miller  <davem@sunset.davemloft.net>

	* gdb.base/float.exp: Add pattern for sparc targets.

2006-03-30  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/commands.exp (stray_arg0_test): New test.

2006-03-30  Paul Brook  <paul@codesourcery.com>

	* gdb.mi/mi-until.exp: kfail broken until command.
	* gdb.mi/mi2-until.exp: Ditto.

2006-03-27  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.mi/mi-var-child-f.exp, gdb.mi/array.f: New files.

2006-03-08  Alexandre Oliva  <aoliva@redhat.com>

	* gdb.base/prelink.exp: Anchor tested-for regular expression
	on gdb prompt.

2006-03-07  Paul Brook  <paul@codesourcery.com>

	* gdb.base/assign.exp: Correct fail message.

2006-03-07  Paul Brook  <paul@codesourcery.com>

	* lib/compiler.c: Extract armcc version number.
	* lib/compiler.cc: Ditto.

2006-03-07  Paul Brook  <paul@codesourcery.com>

	* gdb.arch/altivec-abi.exp: Use nowarnings instead of
	additional_flags=-w.
	* gdb.arch/altivec-regs.exp: Ditto.
	* gdb.arch/e500-abi.exp: Ditto.
	* gdb.arch/e500-regs.exp: Ditto.
	* gdb.base/all-bin.exp: Ditto.
	* gdb.base/annota1.exp: Ditto.
	* gdb.base/annota3.exp: Ditto.
	* gdb.base/args.exp: Ditto.
	* gdb.base/arithmet.exp: Ditto.
	* gdb.base/assign.exp: Ditto.
	* gdb.base/async.exp: Ditto.
	* gdb.base/bang.exp: Ditto.
	* gdb.base/break.exp: Ditto.
	* gdb.base/call-rt-st.exp: Ditto.
	* gdb.base/completion.exp: Ditto.
	* gdb.base/cond-expr.exp: Ditto.
	* gdb.base/condbreak.exp: Ditto.
	* gdb.base/consecutive.exp: Ditto.
	* gdb.base/define.exp: Ditto.
	* gdb.base/display.exp: Ditto.
	* gdb.base/ena-dis-br.exp: Ditto.
	* gdb.base/environ.exp: Ditto.
	* gdb.base/eval-skip.exp: Ditto.
	* gdb.base/info-proc.exp: Ditto.
	* gdb.base/jump.exp: Ditto.
	* gdb.base/logical.exp: Ditto.
	* gdb.base/long_long.exp: Ditto.
	* gdb.base/maint.exp: Ditto.
	* gdb.base/miscexprs.exp: Ditto.
	* gdb.base/pc-fp.exp: Ditto.
	* gdb.base/pointers.exp: Ditto.
	* gdb.base/relational.exp: Ditto.
	* gdb.base/reread.exp: Ditto.
	* gdb.base/sect-cmd.exp: Ditto.
	* gdb.base/sep.exp: Ditto.
	* gdb.base/sepdebug.exp: Ditto.
	* gdb.base/until.exp: Ditto.
	* gdb.base/whatis-exp.exp: Ditto.
	* gdb.cp/annota2.exp: Ditto.
	* gdb.cp/annota3.exp: Ditto.
	* gdb.trace/actions.exp: Ditto.
	* gdb.trace/backtrace.exp: Ditto.
	* gdb.trace/circ.exp: Ditto.
	* gdb.trace/collection.exp: Ditto.
	* gdb.trace/deltrace.exp: Ditto.
	* gdb.trace/infotrace.exp: Ditto.
	* gdb.trace/limits.exp: Ditto.
	* gdb.trace/packetlen.exp: Ditto.
	* gdb.trace/passc-dyn.exp: Ditto.
	* gdb.trace/passcount.exp: Ditto.
	* gdb.trace/report.exp: Ditto.
	* gdb.trace/save-trace.exp: Ditto.
	* gdb.trace/tfind.exp: Ditto.
	* gdb.trace/tracecmd.exp: Ditto.
	* gdb.trace/while-dyn.exp: Ditto.
	* gdb.trace/while-stepping.exp: Ditto.
	* lib/gdb.exp: Ditto.
	(gdb_compile): Handle nowarning option.

2006-03-07  Alexandre Oliva  <aoliva@redhat.com>

	* gdb.base/prelink.c, gdb.base/prelink-lib.c: Update FSF address.
	* gdb.base/prelink.exp: Likewise.  Add -q to prelink runs.
	Rename executable to prelinkt.  Don't re-prelink if we didn't
	get a core file.  Test prelink -u exit status to tell whether
	prelinking failed.  Use gdb_test_multiple.

2006-03-01  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.cp/inherit.exp (test_print_mi_member_types): New function.
	(do_tests): Call it.

2006-02-28  Alexandre Oliva  <aoliva@redhat.com>

	* gdb.base/prelink.exp: New test.
	* gdb.base/prelink.c, gdb.base/prelink-lib.c: New sources.

2006-02-24  Wu Zhou  <woodzltc@cn.ibm.com>

	* gdb.fortran/derived-type.f90: New file.
	* gdb.fortran/derived-type.exp: New testcase.

2006-02-23  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/default.exp: Allow ';' as a directory separator.

2006-02-21  Andrew Stubbs  <andrew.stubbs@st.com>

	* gdb.base/help.exp (help add-symbol-file): Update.

2006-02-21  Andrew Stubbs  <andrew.stubbs@st.com>

	* gdb.base/help.exp (help load): Update expected results.

2006-02-19  Fred Fish  <fnf@specifix.com>

	* gdb.base/pc-fp.exp (get_valueofx): Don't print environment
	specifix hex value as part of results.
	* gdb.base/shreloc.exp (get_msym_addrs): Ditto.

2006-02-16  Fred Fish  <fnf@specifix.com>

	* gdb.base/whatis.c: Define variables using typedefs char_addr,
	ushort_addr, and slong_addr, so the typedefs are not optimized
	away.
	* gdb.base/whatis.exp: Add tests using type name for struct type,
	union type, enum type, and typedef.

2006-02-13  Mark Kettenis  <kettenis@gnu.org>

	* gdb.arch/i386-prologue.exp: Add testcase for PR breakpoints/2080.

2006-02-13  Jim Blandy  <jimb@redhat.com>

	* gdb.base/scope.exp (test_at_main): Remove logic to handle the
	case where it takes two "next" commands to skip past the init
	call.

2006-02-12  Fred Fish  <fnf@specifix.com>

	* gdb.base/scope.exp (test_at_main): Use gdb_test_multiple
	to handle cases where it takes two "next" commands to skip
	past the init call.

2006-02-07  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/array_return.exp: Mark the last test as expected to fail
	on hppa32 targets.

2006-02-06  Vladimir Prus  <ghost@cs.msu.su>

	* gdb.mi/mi-break.exp, gdb.mi/mi2-break.exp: Test for the fullname
	field.

2006-01-29  Mark Kettenis  <kettenis@gnu.org>

	* gdb.cp/bool.cc, gdb.cp/bool.exp: New files.

2006-01-22  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.arch/powerpc-prologue.c, gdb.arch/powerpc-prologue.exp: New
	files.

2006-01-20  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.cp/maint.exp: Set complaints to a positive value.

2006-01-15  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/multi-forks.c: Add copyright notice.  Include <stdlib.h>.
	* gdb.base/multi-forks.exp: Use a loop.  Allow "fork" as a stopped
	function name.

2006-01-15  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/checkpoint.c: Update copyright notice.  Include
	<stdlib.h>.

2006-01-04  Jim Blandy  <jimb@redhat.com>

	* gdb.asm/asm-source.exp: Independently provide default values for
	asm-flags and debug-flags.  Use 'string equal' to do the
	comparison, not the implicit expr's '==' operator.  Remove
	now-unneeded assignments to asm-flags.  In h8300 case, place
	"-gdwarf-2", not "-gdwarf2", in debug-flags, not asm-flags.

2006-01-04  Michael Snyder  <msnyder@redhat.com>

	* gdb.base/checkpoint.c: New file.
	* gdb.base/checkpoint.exp: New file.
	* gdb.base/multi-fork.c: New file.
	* gdb.base/multi-fork.exp: New file.
	* gdb.base/pi.txt: New file (data for checkpoint.c test).

2006-01-04  Fred Fish  <fnf@specifix.com>

	* gdb.base/ptype.c (foo): Add typedef.
	(intfoo): Add function.
	* gdb.base/ptype1.c: New file.
	* gdb.base/ptype.exp: Handle compilation and linking with two
	source files.  Test that proper type for "foo" is found based
	on source context rather than first match found in symtabs.

2005-12-28  Mark Kettenis  <kettenis@gnu.org>

	* gdb.asm/asm-source.exp (hppa-*-openbsd*): New.
	* gdb.asm/openbsd.inc: Indent commands.

2005-12-26  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/freebpcmd.exp: Increase timeout.

	* gdb.gdb/selftest.exp (test_with_self): Update copyright check.

2005-12-17  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/default.exp: Update check for "show version".

2005-12-09  Randolph Chung  <tausq@debian.org>

	* gdb.asm/asm-source.exp (hppa64-*-hpux*): New.
	* gdb.asm/pa64.inc: New file.

2005-12-09  Randolph Chung  <tausq@debian.org>

	* gdb.asm/common.inc: Indent commands.
	* gdb.asm/asmsrc1.s: Likewise.
	* gdb.asm/asmsrc2.s: Likewise.

2005-12-09  Randolph Chung  <tausq@debian.org>

	* gdb.arch/pa-nullify.exp: Handle hppa64-*-* targets.
	(get_addr_of_sym): Remove duplicate print.
	(gen_core): xfail hppa*-*-hpux*, update expected output.
	* gdb.arch/pa-nullify.s: Reformat to also work on HPUX.
	* gdb.arch/pa64-nullify.s: New file.

2005-12-09  Randolph Chung  <tausq@debian.org>

	* gdb.base/dump.exp: Mark hppa64-*-* as 64-bit target.

2005-12-07  Christophe Lyon  <christophe.lyon@st.com>

	* gdb.cp/printmethod.cc (main): Call virt and nonvirt, to force
	code generation for these functions.
	* gdb.cp/printmethod.exp: Expect "&A::nonvirt()" instead of an
	error message.

2005-12-02  Andrew Stubbs  <andrew.stubbs@st.com>

	* gdb.base/help.exp (help b, help br, help bre, help brea)
	(help break): Update the expected message.

2005-11-11  Stephane Carrez  <stcarrez@nerim.fr>

	* gdb.asm/m68hc11.inc: Setup the data section.
	* gdb.asm/asm-source.exp (m6811-*-*): Don't use the target board linker
	script for this test.
	(m6812-*-*): Likewise.

2005-11-09  Randolph Chung <tausq@debian.org>

	* gdb.base/structs2.exp: Update xfail to only trigger for gcc-3.x.

2005-11-09  Wu Zhou  <woodzltc@cn.ibm.com>

	* gdb.base/break.exp: Fix a comment typo.

2005-11-03  Jim Blandy  <jimb@redhat.com>

	Checked in by Elena Zannoni  <ezannoni@redhat.com>

	* gdb.dwarf2/mac-fileno.exp, gdb.dwarf2/mac-fileno.S: New tests.

2005-11-02  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.arch/gdb1558.c: Include stdio.h.

2005-10-31  Mark Kettenis  <kettenis@gnu.org>

	* gdb.asm/asm-source.exp: Use -e instead of --entry.

2005-10-31  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/bfp-test.exp: Properly anchor gdb_multiple_test usage.

2005-10-17  Paul Gilliam  <pgilliam@us.ibm.com>

	* gdb.arch/altivec-regs.exp: Adjust "info reg vrsave" and "info reg
	vscr" tests to better match output.

2005-10-12  Jim Blandy  <jimb@redhat.com>

	* gdb.base/structs.exp (any): New function.
	(test_struct_returns): Don't make any assumptions at all about
	what value the function returns when GDB can't set the return
	value.

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

	* gdb.ada/arrayidx/p.adb: New file.
	* gdb.ada/arrayidx.exp: New testcase

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

	* gdb.ada/array_return/pck.ads: New file.
	* gdb.ada/array_return/pck.adb: New file.
	* gdb.ada/array_return/p.adb: New file.
	* gdb.ada/array_return.exp: New testcase.

2005-10-03  Joel Brobecker  <brobecker@adacore.com>

	* gdb.base/arrayidx.c: New file.
	* gdb.base/arrayidx.exp: New testcase.

2005-09-29  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.base/annota3.exp, gdb.cp/annota3.exp: The annotations
	frames-invalid and breakpoints-invalid are no longer generated
	with level 3 so don't expect them in the output.

2005-09-27  Bob Rossi  <bob@brasko.net>

	* gdb.mi/mi-disassemble.exp, gdb.mi/mi2-disassemble.exp: Remove .*
	from test.  Escape the | in mi_gdb_test call.
	* gdb.mi/mi-basics.exp, gdb.mi/mi-cli.exp, gdb.mi/mi-disassemble.exp,
	gdb.mi/mi-pthreads.exp, gdb.mi/mi-stack.exp, gdb.mi/mi2-basics.exp,
	gdb.mi/mi2-cli.exp, gdb.mi/mi2-disassemble.exp,
	gdb.mi/mi2-pthreads.exp, gdb.mi/mi2-stack.exp: Add extra details to
	expected regex's in mi_gdb_test calls.
	* lib/mi-support.exp: Remove arbitrary .* from tests.
	(mi_gdb_test): Add string_regex variable. Add anchor to main -re.
	Fully anchor GDB/MI expected results in mi_gdb_test.
	* lib/gdb.exp (string_to_regexp): Escape the ] character.
	* gdb.base/sizeof.exp: Remove escape character. Correct test.

2005-09-26  Paul Brook  <paul@codesourcery.com>

	* long_long.exp: Exclude eabi targets from arm FPA float format test.

2005-09-20  Wu Zhou  <woodzltc@cn.ibm.com>

	* bfp-test.c: New file.
	* bfp-test.exp: New testcase.

2005-09-20  Wu Zhou  <woodzltc@cn.ibm.com>

	* gdb.fortran/subarray.exp: New testcase to test the evaluation
	of subarray and substring variable.
	* gdb.fortran/subarray.f: New source file for the test of subarray
	and substring variable evaluation.
	* gdb.fortran/exprs.exp: Add four tests for substring evaluation
	of string constant.

2005-09-19  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.arch/altivec-regs.exp, gdb.arch/altivec-abi.exp: Update
	copyright dates.

2005-09-19  Paul Gilliam  <pgilliam@us.ibm.com>

	* gdb.arch/altivec-regs.exp (info powerpc altivec): Replace the 'info
	powerpc altivec' test with an almost identical 'info vector' test.

2005-09-13  Paul Gilliam  <pgilliam@us.ibm.com>

	* gdb.arch/altivec-regs.exp: Adjust "info reg vrsave" and "info reg
	vscr" tests to match output.

2005-09-13  Paul Gilliam  <pgilliam@us.ibm.com>

	* gdb.arch/altivec-regs.exp: Adjust "print $vx<i>" tests to match
	output.

2005-09-11  Bob Rossi  <bob@brasko.net>

	* lib/mi-support.exp (mi_gdb_test): Change -re to not be anchored.
	* gdb.mi/mi-syn-frame.exp: Call mi_gdb_test twice instead of once for
	commands that return an MI output command and an asyncronous MI output
	command.
	* gdb.mi/mi-console.exp: Ditto.

2005-09-11  Bob Rossi  <bob@brasko.net>

	* gdb.mi/mi-var-child.c: Include <string.h>.

2005-09-10  Daniel Jacobowitz  <dan@codesourcery.com>

	* killed.exp: Correct gdb_expect syntax.

2005-08-09  Corinna Vinschen  <vinschen@redhat.com>

	* lib/mi-support.exp (mi_gdb_load): Fix typo.

2005-08-02  Bob Rossi  <bob@brasko.net>

	* gdb.mi/mi-basics.exp: Tell mi_gdb_start to use a PTY for inferior.
	(test_setshow_inferior_tty): Add global mi_inferior_tty_name to scope.
	Change tests to inferior-tty-set/show.
	* gdb.mi/mi-console.exp: Tell mi_gdb_start to use a PTY for inferior.
	(47-exec-next): Use mi_gdb_test to get GDB and Inferior output.
	* gdb.mi/mi-syn-frame.exp: Tell mi_gdb_start to use a PTY for
	inferior.  Use mi_gdb_test to get GDB and Inferior output.
	* lib/mi-support.exp (mi_inferior_spawn_id): Add inferior PTY
	descriptor.
	(mi_inferior_tty_name): Add inferior PTY file name.
	(mi_gdb_start): Add INFERIOR_PTY parameter.
	(mi_gdb_test): Add IPATTERN parameter.

2005-08-02   Bob Rossi  <bob@brasko.net>

	* gdb.mi/mi-syn-frame.exp, gdb.mi/mi2-syn-frame.exp: Add MESSAGE
	parameter to mi_gdb_test.
	* lib/mi-support.exp (mi_gdb_test): Make MESSAGE parameter necessary.

2005-07-31  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.mi/mi-var-child.c (do_children_tests): Initialize
	struct_declarations.
	* gdb.mi/mi-var-child.exp: Step over the initialization of
	struct_declarations.

2005-07-31  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.mi/basics.c, gdb.mi/var-cmd.c: Revert last change.
	* gdb.mi/mi-stack.c: New file, based on gdb.mi/basics.c.
	* gdb.mi/mi-var-child.c: New file, based on gdb.mi/var-cmd.c.
	* gdb.mi/mi-stack.exp: Update to use mi-stack.c as a source file.
	* gdb.mi/mi-var-child.exp: Update to use mi-var-child.c as a source
	file.

2005-07-27  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.mi/var-cmd.c: Give long_array in _struct_decl 12 elements.
	(do_children_tests): Assign values to the extra elements.

	* gdb.mi/mi-var-child.exp: Adapt tests for extra elements and use
	them for tests for "-var-update --no-values" and
	"-var-update --all-values".
	Add test for "-var-list-children --simple-values".

	* gdb.mi/basics.c (callee4): Add integer array D[3]...

	* gdb.mi/mi-stack.exp (test_stack_locals_listing): ...to test
	"-stack-list-locals --simple-values"  Improve doc strings and
	comments.

2005-07-18  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/sigaltstack.exp (finish_test): KFAIL gdb/1736 on
	*-*-openbsd*.
	* gdb.base/sigstep.exp (advancei): KFAIL gdb/1736 on *-*-openbsd*.

	* gdb.base/sigaltstack.c (main): Use stack_t instead of `struct
	sigaltsatck'.

2005-07-14  Bob Rossi  <bob@brasko.net>

	* gdb.base/default.exp (tty): Changed output of command.
	* gdb.base/help.exp (help tty): Ditto.

2005-07-12  Mark Kettenis  <kettenis@gnu.org>

	* gdb.arch/i386-sse.exp: Compile with -msse when using GCC.

2005-07-10  Mark Kettenis  <kettenis@gnu.org>

	* gdb.mi/mi2-stack.exp (test_stack_locals_listing): Remove test for
	-stack-select-frame without arguments.
	(test_stack_frame_listing): Add test for newly implemented command
	-stack-info-frame.

2005-07-06  Bob Rossi  <bob@brasko.net>

	* gdb.mi/mi-basics.exp (test_setshow_inferior_tty): Test MI tty
	command.
	(Copyright): Update copyright.

2005-07-06  Wu Zhou  <woodzltc@cn.ibm.com>

	* gdb.fortran/exprs.exp (test_arithmetic_expressions): Add five
	tests to evaluate exponentiation expression.

2005-06-29  Andreas Schwab  <schwab@suse.de>

	* gdb.base/sigrepeat.c: Include <stdlib.h> and add return type for
	main to avoid warnings.

	* gdb.base/sigrepeat.exp: Fix reference to undefined variable.

2005-06-20  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.mi/mi-stack.exp (test_stack_locals_listing): Remove test for
	-stack-select-frame without arguments.
	(test_stack_frame_listing): Add test for newly implemented command
	-stack-info-frame.

2005-06-17  Wu Zhou  <woodzltc@cn.ibm.com>

	* gdb.fortran/array-element.f: New file.
	* gdb.fortran/array-element.exp: New testcase.

2005-06-13  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/bigcore.exp: Correct checks for systems which can
	not dump a large core file.

2005-06-13  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/relocate.c: Add a copyright notice.
	(dummy): Remove.
	* gdb.base/relocate.exp: Test printing the values of variables
	from a relocatable file.

2005-06-12  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.mi/mi-syn-frame.exp, gdb.mi/mi2-syn-frame.exp: Don't expect
	excess MI output after an error.

2005-05-29  Joel Brobecker  <brobecker@adacore.com>

	* gdb.arch/alpha-step.c: New file.
	* gdb.arch/alpha-step.exp: New testcase.

2005-05-17  Daniel Jacobowitz  <dan@codesourcery.com>
	    Dennis Brueni  <dennis@slickedit.com>

	* gdb.mi/mi-cli.exp, gdb.mi/mi-return.exp, gdb.mi/mi-stack.exp,
	gdb.mi/mi-stepi.exp, gdb.mi/mi-syn-frame.exp, gdb.mi/mi-until.exp,
	gdb.mi/mi-var-display.exp, gdb.mi/mi-watch.exp, gdb.mi/mi2-cli.exp,
	gdb.mi/mi2-return.exp, gdb.mi/mi2-stack.exp,
	gdb.mi/mi2-syn-frame.exp, gdb.mi/mi2-until.exp,
	gdb.mi/mi2-var-display.exp: Expect fullname field in stack frames.
	* lib/mi-support.exp (mi_runto, mi_execute_to_helper): Likewise.

2005-05-17  Paul Gilliam  <pgilliam@us.ibm.com>
	    Wu Zhou  <woodzltc@cn.ibm.com>

	* gdb.base/shreloc.exp: Use gdb_compile_shlib.  Add support for
	IBM's xlc compiler.
	* gdb.base/shreloc1.c (fn_1): Reference variable static_var_1.
	* gdb.base/shreloc2.c (fn_2): Reference variable static_var_2.

2005-05-13  Jim Blandy  <jimb@redhat.com>

	* gdb.base/call-ar-st.exp: Call 'untested' and return -1 instead of
	calling gdb_suppress_entire_file.
	* gdb.base/charset.exp: Same.
	* gdb.base/call-rt-st.exp: Same.

2005-05-05  Bob Rossi  <bob_rossi@cox.net>

	* lib/gdb.exp (fullname_syntax): Added global regex.
	(fullname_syntax_POSIX): Ditto.
	(fullname_syntax_UNC): Ditto.
	(fullname_syntax_DOS_CASE): Ditto.
	(fullname_syntax_DOS): Ditto.
	* gdb.mi/mi-file.exp (test_file_list_exec_source_file): Added
	fullname_syntax variable to scope and use it.
	(test_file_list_exec_source_files): Ditto.
	* gdb.mi/mi2-file.exp (test_file_list_exec_source_file): Ditto.

2005-05-04  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.threads/linux-dp.exp: Check for *-*-linux-gnu*.

2004-05-02  Paul Gilliam  <pgilliam@us.ibm.com>

	* lib/gdb.exp (skip_altivec_tests): New function, based on
	check_vmx_hw_available from the GCC testsuite.
	* lib/gdb.arch/altivec-abi.exp: Use skip_altivec_tests.
	* lib/gdb.arch/altivec-regs.exp: Likewise.

2005-05-02  Jim Blandy  <jimb@redhat.com>

	* gdb.base/auxv.exp: Call 'untested' and return -1 instead of
	calling gdb_suppress_entire_file.

2005-04-30  Randolph Chung  <tausq@debian.org>

	* gdb.threads/staticthreads.exp: Override signal to check for hppa.
	Slightly relax "sem_post" name checking.

2005-04-29  Paul Gilliam  <pgilliam@us.ibm.com>

	* gdb.base/unload.exp: Use new shared library infrastructure.

2005-04-29  Paul Gilliam  <pgilliam@us.ibm.com>

	* gdb.base/so-impl-ld.exp: Use new shared library
	infrastructure.

2005-04-29  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.asm/asm-source.exp: Add h8300 to supported targets.
	* gdb.asm/h8300.inc: New file.

2005-04-28  Paul Gilliam  <pgilliam@us.ibm.com>

	* gdb.base/shlib-call.exp: Change to use new shared library
	infrastructure.

2005-04-28  Paul Gilliam  <pgilliam@us.ibm.com>

	* gdb.base/pending.exp: Change to use new shared library
	infrastructure.

2005-04-28  Paul Gilliam  <pgilliam@us.ibm.com>

	* gdb.base/nodebug.exp: Allow for compiling by IBM's xlc compiler,
	use test_compiler_info instead of gcc_compiled, and update copyright.

2005-04-27  Paul Gilliam  <pgilliam@us.ibm.com>

	* gdb.base/annota1.exp : Deal with messages caused by breakpoints in
	shared objects being adjusted and update copyright years.

2005-04-27  Daniel Jacobowitz  <dan@codesourcery.com>

	* ChangeLog: Correct some 2003-01-13 dates.
	* gdb.base/sigbpt.exp, gdb.base/signull.exp, gdb.cp/bs15503.exp,
	gdb.cp/exception.exp, gdb.cp/userdef.cc, gdb.cp/userdef.exp,
	gdb.mi/mi-console.exp, gdb.mi/mi2-console.exp,
	gdb.trace/collection.exp, gdb.trace/passc-dyn.exp,
	gdb.trace/tfind.exp: Update copyright years.

2005-04-14  Paul Gilliam  <pgilliam@us.ibm.com>
	    Daniel Jacobowitz  <dan@codesourcery.com>

	* lib/gdb.exp (gdb_compile): Handle shlib=.
	(gdb_compile_shlib): New function.

2005-04-12  Paul Gilliam  <pgilliam@us.ibm.com>

	* lib/gdb.exp (test_compiler_info): Give argument a default value.

2005-04-08  Daniel Jacobowitz  <dan@codesourcery.com>

	* Makefile.in (ALL_SUBDIRS): Replace gdb.gdbserver with
	gdb.server.
	* configure.ac: Likewise.
	* configure: Regenerated.
	* gdb.gdbserver/Makefile.in: Moved to...
	* gdb.server/Makefile.in: ... here.
	* gdb.gdbserver/server.c: Moved to...
	* gdb.server/server.c: ... here.
	* gdb.gdbserver/server-run.exp: Moved to...
	* gdb.server/server-run.exp: ... here.

2005-04-08  Daniel Jacobowitz  <dan@codesourcery.com>

	* Makefile.in (ALL_SUBDIRS): Add gdb.gdbserver.
	* configure.ac: Create gdb.gdbserver/Makefile.
	* configure: Regenerated.
	* lib/gdbserver-support.exp: New file, derived from
	config/gdbserver.exp.
	* config/gdbserver.exp: Use gdbserver-support.exp.
	* gdb.gdbserver/Makefile.in: New file.
	* gdb.gdbserver/server.c: New file.
	* gdb.gdbserver/server-run.exp: New file.

2005-04-06  Paul Gilliam  <pgilliam@us.ibm.com>

	* lib/gdb.exp (test_compiler_info): Return compiler_info
	if no arguments are given.

2005-04-01  Paul Gilliam  <pgilliam@us.ibm.com>

	* gdb.arch/altivec-abi.exp: Check for compiler and set
	use altivec' flag accordingly.
	* gdb.arch/altivec-regs.exp: Likewise.

2005-03-29  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/ptr-typedef.exp, gdb.base/ptr-typedef.c: New files.

2005-03-27  Andreas Schwab  <schwab@suse.de>

	* gdb.base/bigcore.c (main): Add missing mode argument in open
	call.

2005-03-25  Daniel Jacobowitz  <dan@codesourcery.com>

	* lib/mi-support.exp (mi_gdb_load): Use /tmp for gdbserver
	downloads.
	* config/gdbserver.exp (gdb_load): Likewise.

2005-03-14  Paul Brook  <paul@codesourcery.com>

	* lib/mi-support.exp: Use mi_gdb_target_cmd to connect to remote
	targets.

2005-03-09  Joel Brobecker  <brobecker@adacore.com>

	* gdb.dwarf2/dup-psym.S: New file.
	* gdb.dwarf2/dup-psym.exp: New testcase.

2005-03-09  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/exec_changed/first.adb: New file.
	* gdb.ada/exec_changed/second.adb: New file.
	* gdb.ada/exec_changed.exp: New testcase.

2005-03-08  Nathan Sidwell  <nathan@codesourcery.com>

	* gdb.cp/userdef.cc (A1::operator+): New unary plus.
	(A2): New class.
	(main): Test operator+.
	* gdb.cp/userdef.exp: Test unary plus.  Use A2::operator+ for
	breakpoint test.

	* gdb.base/sigbpt.exp: Disable if gdb,nosignals.
	* gdb.base/signull.exp: Disable if gdb,nosignals.
	* gdb.cp/bs15503.exp: Disable if skip_cplus_tests
	* gdb.cp/exception.exp: Disable if skip_cplus_tests.
	* gdb.mi/mi-console.exp: Disable hello test if gdb,noinferiorio.
	* gdb.mi/mi2-console.exp: Likewise.
	* gdb.trace/collection.exp (run_trace_experiment): Consume the
	continue output at start.
	(gdb_collect_locals_test): Robustify regexp.
	* gdb.trace/passc-dyn.exp: Fix comment typo.
	* gdb.trace/tfind.exp: Don't enable optimization. Remove stray ']'.

2005-03-08  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.asm/asm-source.exp: Add iq2000 case.
	* gdb.asm/iq2000.inc: New file.

2005-03-07  Manoj Iyer <manjo@austin.ibm.com>

	* gdb.base/command.exp: Change hardcoded value to regular expression.
	* gdb.base/float.exp: Add powerpc to the list of targets checked.

2005-03-07  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.asm/alpha.inc, gdb.asm/frv.inc, gdb.asm/i386.inc,
	gdb.asm/ia64.inc, gdb.asm/m68hc11.inc, gdb.asm/m68k.inc,
	gdb.asm/mips.inc, gdb.asm/pa.inc, gdb.asm/powerpc.inc,
	gdb.asm/s390.inc, gdb.asm/s390x.inc, gdb.asm/sh.inc,
	gdb.asm/x86_64.inc: Use .purgem before redefining macros.

2005-03-05  Mark Kettenis  <kettenis@gnu.org>

	* gdb.cp/ovldbreak.exp: Adjust regular expression for recent
	changes.

2004-03-03  Paul Gilliam  <pgilliam@us.ibm.com>

	* lib/compiler.c: Add test for IBM's xlc compiler.
	* lib/compiler.cc: Likewise.

2004-02-24  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/fixed_points.exp: Create compilation object directory
	before running the test.
	* gdb.ada/null_record.exp: Likewise.
	* gdb.ada/packed_array.exp: Likewise.
	* gdb.ada/start.exp: Likewise.

2005-02-15  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/packed_array/pa.adb: New file.
	* gdb.ada/packed_array.exp: New testcase.

2005-02-10  Mark Kettenis  <kettenis@gnu.org>

	* gdb.dwarf2/dw2-intermix.exp, gdb.dwarf2/dw2-intermix.S: New
	files.

	* gdb.dwarf2/dw2-basic.exp, gdb.dwarf2/dw2-intercu.exp: Run tests
	on *-*-openbsd*.  Correctly match whitespace in regukar
	expressions.

2005-02-10  Daniel Jacobowitz  <dan@debian.org>

	From Ramana Radhakrishnan <ramana.radhakrishnan@codito.com>:
	PR exp/1821
	* gdb.base/gdb1821.c: New test file.
	* gdb.base/gdb1821.exp: New test file.

2005-02-09  Joel Brobecker  <brobecker@adacore.com>

	* gdb.base/start.c: New file.
	* gdb.base/start.exp: New testcase.

2005-02-09  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/start/dummy.adb: New file.
	* gdb.ada/start.exp: New testcase.

2005-02-09  Corinna Vinschen  <vinschen@redhat.com>

	* maint.exp: Raise timeout to give Cygwin targeted GDBs more time
	for printing symbols and statistics.
	Add test for using relative pathnames in "maint print msymbols" test.
	Mark "maint info sections DATA" XFAIL on Cygwin.
	Remove Cygwin XFAIL mark on "help maint dump-me" and "maint dump-me"
	tests.

2005-02-09  Andreas Schwab  <schwab@suse.de>

	Committed by Andrew Cagney  <cagney@gnu.org>
	* gdb.base/remotetimeout.exp: New file.

2005-02-07  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/interp.exp: Remove trailing \n in gdb_test commands.

2005-02-03  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/gnat_ada.gpr: New file.
	* gdb.ada/gnat_ada.gin: Delete, no longer used.
	* lib/ada.exp (gdb_compile_ada): Minor adaptation to new project file.
	* configure.ac: No longer generate gnat_ada.gpr.
	* configure: Regenerate.
	* gdb.ada/Makefile.in: Minor adaptations due to new project file.
	* gdb.ada/null_record/null_record.adb: Moved here from gdb.ada.
	* gdb.ada/null_record/bar.ads: Likewise.
	* gdb.ada/null_record/bar.adb: Likewise.
	* gdb.ada/fixed_points/fixed_points.adb: Likewise.
	* gdb.ada/null_record.exp (testdir): New variable.
	(testfile): executable is now in testdir subdirectory.
	(srcfile): Use full path to the main compilation unit.
	* gdb.ada/fixed_points.exp: Same changes as above.

2005-02-03  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.base/interp.exp: New test.

2005-01-24  Andrew Cagney  <cagney@gnu.org>

	* gdb.base/sigrepeat.exp, gdb.base/sigrepeat.c: New test.

2005-01-19  Andrew Cagney  <cagney@gnu.org>

	* gdb.stabs/Makefile.in (Makefile): Update dependencies -
	configure.ac not configure.in.

	* gdb.base/scope.exp (test_at_main): Delete any XFAIL and/or KFAIL
	of powerpc*-*-*.
	* gdb.hp/gdb.base-hp/callfwmall.exp (do_function_calls): Ditto.
	* gdb.base/list.exp (test_list_function)
	(test_list_filename_and_function): Ditto.
	* gdb.base/callfuncs.exp (do_function_calls): Ditto.

2005-01-16  Andrew Cagney  <cagney@gnu.org>

	* gdb.base/source.exp: Delete KFAIL gdb/1846, simplify.

	* gdb.base/source-error.gdb, gdb.base/source.exp: New files.

2005-01-14  Andrew Cagney  <cagney@gnu.org>

	* gdb.mi/mi-var-cmd.exp: Adjust "create int" test to match output.
	* gdb.mi/mi2-var-cmd.exp: Ditto.

2005-01-10  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.base/fileio.c: Include unistd.h as required for lseek(2).

2005-01-07  Andrew Cagney  <cagney@gnu.org>

	* configure.ac: Rename configure.in, require autoconf 2.59.
	* configure: Re-generate.
	* gdb.stabs/configure.ac: Rename configure.in, require autoconf 2.59.
	* gdb.stabs/configure: Re-generate.
	* gdb.hp/configure.ac: Rename configure.in, require autoconf 2.59.
	* gdb.hp/configure: Re-generate.
	* gdb.hp/gdb.objdbg/configure.ac: Rename configure.in, require
	autoconf 2.59.
	* gdb.hp/gdb.objdbg/configure: Re-generate.
	* gdb.hp/gdb.defects/configure.ac: Rename configure.in, require
	autoconf 2.59.
	* gdb.hp/gdb.defects/configure: Re-generate.
	* gdb.hp/gdb.compat/configure.ac: Rename configure.in, require
	autoconf 2.59.
	* gdb.hp/gdb.compat/configure: Re-generate.
	* gdb.hp/gdb.base-hp/configure.ac: Rename configure.in, require
	autoconf 2.59.
	* gdb.hp/gdb.base-hp/configure: Re-generate.
	* gdb.hp/gdb.aCC/configure.ac: Rename configure.in, require
	autoconf 2.59.
	* gdb.hp/gdb.aCC/configure: Re-generate.

2004-12-15  Jim Blandy  <jimb@redhat.com>

	* gdb.threads/linux-dp.exp: Fix output regexp to handle output
	under NPTL when there is debugging info available for libpthread.

2004-12-13  Jerome Guitton  <guitton@gnat.com>

	* gdb.ada/fixed_points.c: New file.
	* gdb.ada/fixed_points.exp: New file.

2004-12-03  Randolph Chung  <tausq@debian.org>

	* gdb.arch/pa-nullify.exp: New file.
	* gdb.arch/pa-nullify.s: New file.

2004-11-30  Randolph Chung  <tausq@debian.org>

	* gdb.threads/thread_check.exp: Use ${srcfile} for test program name
	instead of "tbug".  Fix regexp to work properly with gdb_test.

2004-11-29  Paul Hilfinger  <Hilfinger@gnat.com>

	* gdb.base/bitfields2.exp: New test.
	* gdb.base/bitfields2.c: New file.

2004-11-28  Richard Earnshaw  <rearnsha@arm.com>

	* config/sim.exp (gdb_load): Return 0 on success, -1 on failure.

2004-11-16  Randolph Chung  <tausq@debian.org>

	* gdb.base/unload.exp: Pass relative path to gdb_get_line_number.

2004-11-14  Daniel Jacobowitz  <dan@debian.org>

	* gdb.threads/threadapply.exp: Correct "macro details" test.

2004-11-11  Jeff Johnston  <jjohnstn@redhat.com>

	* gdb.threads/threadapply.exp: New test.
	* gdb.threads/threadapply.c: New file.

2004-11-07  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/savedregs.exp: Correct pattern used for sigtramp
	frames.

2004-11-05  Felix Lee  <felix+log1@specifixinc.com>

	* gdb.base/cursal.exp: New file.
	* gdb.base/cursal.c: New file.

2004-11-03  Andrew Cagney  <cagney@gnu.org>

	* gdb.base/savedregs.exp, gdb.base/savedregs.c: New files.

2004-10-30  Mark Kettenis  <kettenis@gnu.org>

	* gdb.asm/asm-source.exp: Add mips*-*-netbsd* to the list of
	NetBSD/ELF targets.

2004-10-29  Joel Brobecker  <brobecker@gnat.com>

	* gdb.threads/bp_in_thread.c: New file, copied from
	pthread_cond_wait.c.
	* gdb.threads/bp_in_thread.c: Use bp_in_thread.c as the source
	file, rather than reusing the .c file from another testcase.

2004-10-20  Joel Brobecker  <brobecker@gnat.com>

	* gdb.ada/null_record.exp: Check where we stopped after
	sending the start command, instead of where the associated
	temporary breakpoint was inserted.

2004-10-14  Andrew Cagney  <cagney@gnu.org>

	* gdb.mi/gdb701.c (main): Return 0.

2004-10-13  Daniel Jacobowitz  <dan@debian.org>

	* gdb.dwarf2/dw2-intercu.S, gdb.dwarf2/dw2-intercu.exp: New files.

2004-10-12  Jeff Johnston  <jjohnstn@redhat.com>

	* gdb.threads/schedlock.c: Add comment markers to use to find
	line numbers.
	* gdb.threads/schedlock.exp: Adjust regex to handle the new
	comments.
	* gdb.threads/watchthreads.exp: Use gdb_get_line_number to find
	breakpoint lines.

2004-10-12  Daniel Jacobowitz  <dan@debian.org>

	* gdb.dwarf2/dw2-basic.exp: Run on Hurd also.

2004-10-12  Daniel Jacobowitz  <dan@debian.org>

	* configure.in: Add gdb.dwarf2.
	* configure: Regenerated.
	* Makefile.in: Add gdb.dwarf2.
	* gdb.dwarf2/Makefile.in, gdb.dwarf2/dw2-basic.S,
	gdb.dwarf2/dw2-basic.exp, gdb.dwarf2/main.c,
	gdb.dwarf2/file1.txt: New files.

2004-10-11  Orjan Friberg  <orjanf@axis.com>

	* gdb.threads/bp_in_thread.exp: Use runto_main and "continue" instead
	of "run", since the latter doesn't work with remote targets.  Adjust
	the breakpoint numbering accordingly.
	* gdb.threads/pthread_cond_wait.exp: Ditto.

2004-10-08  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.base/overlays.exp: Update copyright years.

2004-10-08  Kei Sakamoto  <sakamoto.kei@renesas.com>

	* gdb.base/overlays.exp: Disable if target is Linux.

2004-10-06  Felix Lee  <felix+log1@specifixinc.com>

	* config/gdbserver.exp (gdb_load): Use right filename on remote.

2004-10-05  Kei Sakamoto  <sakamoto.kei@renesas.com>

	* gdb.asm/asm-source.exp: Add m32r-linux target.
	* gdb.asm/m32r-linux.inc: New file.

2004-09-24  Andrew Cagney  <cagney@redhat.com>
	    David Anderson <anderson@redhat.com>

	* gdb.base/bigcore.exp (extract_heap): If the expect "file size"
	command fails, assume things will work.
	* gdb.base/bigcore.c: Include <sys/stat.h> and <fcntl.h>.
	(_GNU_SOURCE): Define.
	(print_unsigned, print_hex): Change parameter to "long long".
	(print_byte_count): New function, use to print byte counts.
	(large_off_t, large_lseek, O_LARGEFILE): Define dependant on
	O_LARGEFILE.
	(main): Compute an upper bound on a corefile in max_core_size.
	Limit memory chunk size to max_core_size.  Limit total memory
	allocated to max_core_size.

2004-09-23  Andrew Cagney  <cagney@gnu.org>

	* gdb.base/bigcore.exp: Replace the code that creates a corefile
	from a separate process with code that creates a corefile by
	making the inferior dump core.

2004-09-23  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/sigstep.exp: Avoid comments withing gdb_test_multiple
	block.

2004-09-23  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.base/constvars.exp (local_compiler_xfail_check_2):
	New proc.  Accept both gcc 3.x.x and gcc 4.x.x.
	* gdb.base/volatile.exp (local_compiler_xfail_check_2):
	Likewise.

2004-09-20  Jeff Johnston  <jjohnstn@redhat.com>

	* gdb.java/jprint.exp: New test case for java inferior call.
	* gdb.java/jprint.java: Ditto.

2004-09-15  Joel Brobecker  <brobecker@gnat.com>

	* gdb.base/bigcore.exp: Deactivate on IRIX targets.

2004-09-14  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.threads/killed.c: Include <stdlib.h>.
	* gdb.threads/pthreads.c: Likewise.

2004-09-14  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.threads/killed.c: Add copyright notice.

2004-09-10  Jason Molenda  (jmolenda@apple.com)

	* gdb.base/define.exp: Two new tests to verify zero space chars
	after 'if' and 'while' commands in a user-defined command is correctly
	parsed.

2004-09-08  Andrew Cagney  <cagney@gnu.org>

	* gdb.base/signals.exp (signal_tests_1): Delete.  Merge signal
	delivery test with duplicate at end of file.

2004-09-06  Mark Kettenis  <kettenis@jive.nl>

	* gdb.base/unload.exp: Link with -dl on *-*-solaris*.

2004-09-05  Michael Chastain  <mec.gnu@mindspring.com>

	* config/hppro.exp: Removed.

2004-09-05  Michael Chastain  <mec.gnu@mindspring.com>

	* config/sparclet.exp: Removed.

2004-09-05  Michael Chastain  <mec.gnu@mindspring.com>

	* config/udi.exp: Removed.

2004-09-02  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.base/sigstep.exp (advance): Use "-continue_timer" option
	of "exp_continue".
	(advancei): Likewise.

2004-09-01  Jeff Johnston  <jjohnstn@redhat.com>

	* gdb.base/unload.exp: Fix so messages aren't duplicated.

2004-09-01  Manoj Iyer  <manjo@austin.ibm.com>

	* gdb.gdb/complaints.exp (setup_test): Use new gdb.exp functionality
	to check for nodebug in executable.
	* gdb.gdb/observer.exp (setup_test): Likewise.
	* gdb.gdb/selftest.exp (test_with_self): Likewise.
	* gdb.gdb/xfullpath.exp (setup_test): Likewise.

2004-09-01  Andrew Cagney  <cagney@gnu.org>

	* gdb.threads/staticthreads.c, gdb.threads/staticthreads.exp: New
	files.

2004-09-01  Jeff Johnston  <jjohnstn@redhat.com>

	* gdb.base/unload.exp: Fix expected warning message to match
	latest format.

2004-09-01  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.base/call-rt-st.exp: Fix typos.

2004-08-31  Manoj Iyer  <manjo@austin.ibm.com>

	* gdb.threads/thread_check.exp: New testcase.
	* gdb.threads/thread_check.c: New testcase.

2004-08-31  Andrew Cagney  <cagney@gnu.org>

	* gdb.base/sigstep.exp (breakpoint_to_handler_entry)
	(skip_to_handler_entry): New procedures.  Test stepping into a
	handler when the breakpoint is at the handler's entry point.

2004-08-30  Andrew Cagney  <cagney@gnu.org>

	* gdb.base/sigstep.exp (breakpoint_over_handler): Remove kfail
	gdb/1757.

2004-08-27  Michael Chastain  <mec.gnu@mindspring.com>

	With code from Manoj Iyer <manjo@austin.ibm.com>:
	* lib/gdb.exp (gdb_file_cmd): Return more information in the
	return value.  Add an arm for "no debugging symbols found".
	Change a stray "error" to "perror".
	(gdb_run_cmd): Adapt to new return value.
	* gdb.base/remote.exp: Adapt to new return value.
	* gdb.gdb/complaints.exp: Likewise.
	* gdb.gdb/observer.exp: Likewise.
	* gdb.gdb/selftest.exp: Likewise.
	* gdb.gdb/xfullpath.exp: Likewise.

2004-08-27  Joel Brobecker  <brobecker@gnat.com>

	* gdb.threads/bp_in_thread.exp: New testcase.

2004-08-27  Michael Chastain  <mec.gnu@mindspring.com>

	Fix PR testsuite/1735.
	* gdb.threads/schedlock.c (thread_function): Add a cast
	to suppress a gcc warning.
	* gdb.threads/thread-specific.c (thread_function): Likewise.

2004-08-26  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.base/unload.c: Include <stdlib.h>.

2004-08-26  Michael Chastain  <mec.gnu@mindspring.com>

	From Paul Gilliam <pgilliam@us.ibm.com>:
	* gdb.base/call-sc.exp (test_scalar_returns): Make sure PC is
	synchronized after the "return".

2004-08-26  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.mi/basics.c: Include <stdio.h>.
	* gdb.mi/pthreads.c: Include <stdlib.h>.
	* gdb.mi/var-cmd.c: Include <stdlib.h>.

2004-08-26  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.threads/schedlock.c: Add copyright notice.

2004-08-25  Andrew Cagney  <cagney@gnu.org>

	* gdb.base/sigstep.exp (breakpoint_to_handler, skip_to_handler)
	(skip_over_handler, breakpoint_over_hander): New test procedures.
	(advance, advancei): Add a proper prefix, do not use
	rerun_to_main.
	* gdb.base/sigstep.c (main): Change to use an infinite loop.

2004-08-24  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.mi/basics.c: Add copyright notice.
	* gdb.mi/var-cmd.c: Add copyright notice.

2004-08-23  Michael Chastain  <mec.gnu@mindspring.com>

	* lib/gdb.exp: Remove signed_keyword_not_used.
	* lib/compiler.c: Likewise.
	* lib/compiler.cc: Likewise.

2004-08-23  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.base/whatis.c: Remove conditional disabling of "signed".
	* gdb.base/whatis.exp: Remove signed_keyword_not_used.

2004-08-23  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.base/whatis.c: Add copyright notice.

2004-08-20  Mark Kettenis  <kettenis@gnu.org>

	* gdb.arch/i386-prologue.exp (skip_breakpoint): New function.  Use
	it to skip the breakpoints encoded in the inline assembly.

2004-08-20  Michael Chastain  <mec.gnu@mindspring.com>

	* Makefile.in: Add gdb.fortran.

2004-08-20  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.base/call-sc.exp (test_scalar_returns):
	Fix cut-and-paste glitch in "Make fun return now".

2004-08-17  Michael Chastain  <mec.gnu@mindspring.com>

	* configure.in: Add gdb.fortran.
	* configure: Regenerate.
	* gdb.fortran/Makefile.in: New file.
	* lib/gdb.exp (skip_fortran_tests): New procedure.

2004-08-17  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.mi/mi-var-block.exp: Use gdb_get_line_number.  Remove
	reference to bug-gnu@prep.ai.mit.edu.
	* gdb.mi/mi-var-child.exp: Likewise.
	* gdb.mi/mi-var-cmd.exp: Likewise.
	* gdb.mi/mi-var-display.exp: Likewise.
	* gdb.mi/mi2-var-block.exp: Likewise.
	* gdb.mi/mi2-var-child.exp: Likewise.
	* gdb.mi/mi2-var-cmd.exp: Likewise.
	* gdb.mi/mi2-var-display.exp: Likewise.

2004-08-15  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/unload.c (main): Make local variable msg const.

2004-08-15  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.mi/mi-cli.exp: Use gdb_get_line_number.  Remove reference
	to bug-gnu@prep.ai.mit.edu.
	* gdb.mi/mi-disassemble.exp: Likewise.
	* gdb.mi/mi-eval.exp: Likewise.
	* gdb.mi/mi-file.exp: Likewise.  Also, add comment about the
	default line number.
	* gdb.mi/mi-return.exp: Likewise.
	* gdb.mi/mi-simplerun.exp: Likewise.
	* gdb.mi/mi-stack.exp: Likewise.
	* gdb.mi/mi-stepi.exp: Likewise.  Also, replace wildcarded line
	number with explicit range test.
	* gdb.mi/mi-watch.exp: Likewise.
	* gdb.mi/mi2-break.exp: Likewise.
	* gdb.mi/mi2-cli.exp: Likewise.
	* gdb.mi/mi2-disassemble.exp: Likewise.
	* gdb.mi/mi2-eval.exp: Likewise.
	* gdb.mi/mi2-file.exp: Likewise.  Also, add comment about the
	default line number.
	* gdb.mi/mi2-return.exp: Likewise.
	* gdb.mi/mi2-simplerun.exp: Likewise.
	* gdb.mi/mi2-stack.exp: Likewise.
	* gdb.mi/mi2-stepi.exp: Likewise.  Also, replace wildcarded line
	number with explicit range test.
	* gdb.mi/mi2-watch.exp: Likewise.

2004-08-15  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/ctti.exp: Tweak srcfile and objfile to have no slashes.
	* gdb.cp/m-static.exp: Likewise.
	* gdb.cp/rtti.exp: Likewise.

2004-08-14  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/bigcore.c: Include <sys/types.h> and <sys/time.h>.

2004-08-14  Eli Zaretskii  <eliz@gnu.org>

	* ChangeLog: Prefix Local Variables with semi-colons and indent
	the reference to older ChangeLog files, to fix fontification in
	Emacs.

2004-08-13  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.mi/mi-break.exp: Use gdb_get_line_number.
	* gdb.mi/mi2-break.exp: Likewise.

2004-08-13  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.gdb/selftest.exp: Revert removal of call to init_malloc.

2004-08-13  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/inherit.exp: Use cp_test_ptype_class.

2004-08-13  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/classes.exp: Remove unused declarations.  Just let
	test names default instead of providing special names.  Remove
	extraneous demangler test.

2004-08-12  Jeff Johnston  <jjohnstn@redhat.com>

	* gdb.base/unload.exp: New test for breakpoints in dynamically
	loaded libraries.
	* gdb.base/unload.c: Ditto.
	* gdb.base/unloadshr.c: Ditto.

2004-08-12  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/classes.exp (test_ptype_class_objects): Call
	cp_test_ptype_class.
	(test_enums): Likewise.

2004-08-10  Andrew Cagney  <cagney@gnu.org>

	* gdb.threads/staticthreads.c, gdb.threads/staticthreads.exp: New
	files.

2004-08-10  Andrew Cagney  <cagney@gnu.org>

	* gdb.gdb/selftest.exp (do_steps_and_nexts): Remove code to skip
	init_malloc call.

2004-08-10  Michael Chastain  <mec.gnu@mindspring.com>

	* ChangeLog: Add copyright notice.  The notice is copied
	from emacs 21.3 top level ChangeLog.

2004-08-09  Michael Chastain  <mec.gnu@mindspring.com>

	* lib/cp-support.exp: New file.
	* lib/cp-support.exp (cp_test_type_class): New function.
	* gdb.cp/derivation.exp: Use cp_test_ptype_class.
	* gdb.cp/virtfunc.exp (test_one_ptype): Removed.
	* gdb.cp/virtfunc.exp (test_ptype_of_classes): Use
	cp_test_ptype_class.

2004-08-09  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.mi/mi2-basics.exp, gdb.mi/mi2-break.exp,
	gdb.mi/mi2-console.exp, gdb.mi/mi2-disassemble.exp,
	gdb.mi/mi2-eval.exp, gdb.mi/mi2-file.exp, gdb.mi/mi2-hack-cli.exp,
	gdb.mi/mi2-read-memory.exp, gdb.mi/mi2-regs.exp,
	gdb.mi/mi2-return.exp, gdb.mi/mi2-simplerun.exp,
	gdb.mi/mi2-stack.exp, gdb.mi/mi2-stepi.exp, gdb.mi/mi2-until.exp,
	gdb.mi/mi2-var-block.exp, gdb.mi/mi2-var-child.exp,
	gdb.mi/mi2-var-cmd.exp, gdb.mi/mi2-var-display.exp,
	gdb.mi/mi2-watch.exp: Update copyright years.

2004-08-09  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/sigaltstack.exp: Provide proper anchoring.

2004-08-09  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.mi/gdb792.exp, gdb.mi/mi-basics.exp, gdb.mi/mi-break.exp,
	gdb.mi/mi-console.exp, gdb.mi/mi-disassemble.exp,
	gdb.mi/mi-eval.exp, gdb.mi/mi-file.exp, gdb.mi/mi-hack-cli.exp,
	gdb.mi/mi-read-memory.exp, gdb.mi/mi-regs.exp,
	gdb.mi/mi-return.exp, gdb.mi/mi-simplerun.exp,
	gdb.mi/mi-stack.exp, gdb.mi/mi-stepi.exp, gdb.mi/mi-until.exp,
	gdb.mi/mi-var-block.exp, gdb.mi/mi-var-child.exp,
	gdb.mi/mi-var-cmd.exp, gdb.mi/mi-var-display.exp,
	gdb.mi/mi-watch.exp: Update copyright years.

2004-08-08  Daniel Jacobowitz  <dan@debian.org>

	PR gdb/1738
	* gdb.base/signals.exp (signal_tests_1): KFAIL bug in continuing
	from a breakpoint with a pending signal.

2004-08-08  Daniel Jacobowitz  <dan@debian.org>

	PR gdb/1736
	* lib/gdb.exp (gdb_test_multiple): Handle return -code return.
	* gdb.base/sigaltstack.exp (finish_test): Consume output until
	the prompt.
	* gdb.base/sigstep.exp: Add KFAIL for gdb/1736.

2004-08-08  Daniel Jacobowitz  <dan@debian.org>

	* gdb.cp/templates.exp: Handle (char)115 for template argument 's'.

2004-08-08  Daniel Jacobowitz  <dan@debian.org>

	PR gdb/1736
	* gdb.base/sigaltstack.exp (finish_test): New procedure.  KFAIL
	for i?86-*-linux*.

2004-08-08  Daniel Jacobowitz  <dan@debian.org>

	* gdb.arch/i386-prologue.exp: Compile without debug information.

2004-08-08  Michael Chastain  <mec.gnu@mindspring.com>

	* lib/gdb.exp (gdb_get_line_number): Rewrite with native tcl
	rather than asking gdb to search.

2004-08-05  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.base/gcore.c: Include <string.h>.

2004-08-05  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.base/gcore.c: Add copyright notice.

2004-08-05  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.base/freebpcmd.c: Include <stdio.h>.
	* gdb.base/long_long.c: Include <string.h>.
	* gdb.base/sigaltstack.c: Include <stdlib.h> <string.h>.
	* gdb.base/siginfo.c: Include <string.h>.
	* gdb.base/sigstep.c: Include <string.h>.

2004-08-04  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.base/complex.c: Include <stdlib.h>.

2004-08-04  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.base/complex.c: Add copyright notice.

2004-08-04  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.base/charset.c: Include <stdlib.h>.

2004-08-04  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.base/auxv.c: Include <stdlib.h>.

2004-08-04  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.base/auxv.c: Add copyright notice.

2004-08-04  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.base/coremaker.c: Add copyright notice.
	* gdb.base/coremaker2.c: Add copyright notice.

2004-08-04  Andrew Cagney  <cagney@gnu.org>

	* gdb.base/store.exp: Update copyright.
	(check_set, up_set, check_struct, up_struct): Add a prefix to test
	names, do not import gdb_prompt.

2004-08-01  Andrew Cagney  <cagney@gnu.org>

	Fix PR testsuite/1729.
	* gdb.base/dump.exp: Add test name to callers of capture_value, do
	not use capture_value with value 4.
	(capture_value): Add optional test name parameter.
	(test_reload_saved_value, test_restore_saved_value): Use $msg as
	the prefix, pass to capture_value.

2004-08-01  Mark Kettenis  <kettenis@gnu.org>

	* gdb.arch/i386-prologue.exp: Add testcase for standard prolgue.
	* gdb.arch/i386-prologue.c (standard): New prototype and function.
	(main): Call new function.

2004-07-31  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/namespace.exp: Accept more varieties of ptype output.

2004-07-31  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/virtfunc.exp: Accept more varieties of ptype output.

2004-07-31  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/inherit.exp: Accept more varieties of ptype output.
	Accept more values of vtbl pointer.  Remove some messages
	about "obsolete gcc or gdb".

2004-07-30  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/classes.exp: Accept more varieties of ptype output.

2004-07-30  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.base/asm-source.exp: Properly convert target board
	debug flags from gcc format to binutils format.

2004-07-28  Mark Kettenis  <kettenis@gnu.org>

	* gdb.arch/i386-prologue.exp: Remove KFAIL of "backtrace in
	gdb1718".  PR backtrace/1718 partially fixed.

2004-07-27  Jeff Johnston  <jjohnstn@redhat.com>

	* gdb.threads/watchthreads.exp: New test for threaded watchpoints.

2004-07-26  Nick Clifton  <nickc@redhat.com>

	* gdb.asm/asm-source.exp (debug-flags): New variable.  If a known
	good default value for a specific architecture is available then
	set it to that value.  Otherwise default to the -gstabs switch.
	Remove the -g... switches from the asm-flags variable.  Allow the
	target board info to override the value if it wants to.  Pass the
	switch on the assembler command line.

2004-07-23  Mark Kettenis  <kettenis@gnu.org>

	* gdb.arch/i386-prologue.exp: Add testcase for PR backtrace/1718.
	* gdb.arch/i386-prologue.c (gdb1718): New prototype and function.
	(main): Call new function.

2004-07-22  Michael Chastain  <mec.gnu@mindspring.com>

	Test for PR exp/1715.
	* gdb.base/radix.exp: Refactor common procedures.  Make all
	test names unique.  Change XFAIL to KFAIL.

2004-07-20  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.ada/gnat_ada.gpr.in: Rename from here ...
	* gdb.ada/gnat_ada.gin: ... to here.
	* configure.in: Use gnat_ada.gin.
	* configure: Regenerate.

2004-07-20  Andrew Cagney  <cagney@gnu.org>

	* gdb.base/signals.exp: Replace send_gdb and gdb_expect with
	gdb_test and gdb_test_multiple.  Delete bash_bug.  Delete suspect
	XFAILs.  Clean up test messages and comments.  Check backtraces.
	Delete re-sync code.

2004-07-19  Michael Chastain  <mec.gnu@mindspring.com>

	Fix PR cli/740.
	* gdb.base/annota1.exp: Honor gdb,nosignals.
	* gdb.base/annota3.exp: Likewise.

2004-07-19  Michael Chastain  <mec.gnu@mindspring.com>

	* lib/java.exp: Update copyright notice.

2004-07-19  Andrew Cagney  <cagney@gnu.org>

	* gdb.base/selftest.exp: Copy file from here ...
	* gdb.gdb/selftest.exp: ... to here.

2004-07-16  Andrew Cagney  <cagney@redhat.com>

	* lib/insight-support.exp: Delete file.
	* lib/java.exp (java_init): Fix copyright.

2004-07-16  Andrew Cagney  <cagney@gnu.org>

	* gdb.base/restore.c: Append "prologue" to comments marking the a
	function's prologue.
	* gdb.base/restore.exp: Update copyright, re-indent.
	(restore_tests): Use gdb_test_multiple.  Add "calleeN calls
	callerN" prefix where needed.  Update patterns that match a
	function's prologue.

2004-07-16  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.base/restore.c: Add copyright notice.

2004-07-16  Andrew Cagney  <cagney@gnu.org>

	* gdb.base/logical.exp: Update copyright.
	(evaluate): New procedure.  Use to re-implement tests using
	several tables.

2004-07-14  Martin Hunt  <hunt@redhat.com>

	* lib/insight-support.exp (gdbtk_start): Unset TCL_LIBRARY
	which fixes some problems where init.tcl was not found.

2004-07-13  Andrew Cagney  <cagney@gnu.org>

	* gdb.base/sizeof.exp: Skip test when no inferior I/O.
	(check_sizeof, check_valueof): Do not include the output in the
	test name.  Use gdb_test.
	(get_valueof): Use gdb_test_multiple.

	* gdb.base/step-test.exp: Update copyright.  Use
	gdb_test_multiple.  Ensure that test names do not include
	architecture dependent output.

	* gdb.gdb/observer.exp: Update copyright.
	(setup_test): Use gdb_test_multiple.
	(attach_first_observer, attach_second_observer)
	(attach_third_observer, detach_first_observer)
	(detach_second_observer, detach_third_observer)
	(reset_counters, check_counters): Make $message a prefix.
	(test_normal_stop_notifications): Add "args" parameter - a list of
	init functions to be called.  Make $message a prefix,
	(test_observer_normal_stop): Change the message prefixes so that
	they are unique, pass the attach / detach procedures to
	test_normal_stop_notifications.

	* gdb.base/signull.exp (test_segv): Prefix all tests with
	"${name}".  Clean up test messages.

	* gdb.base/annota3.exp, gdb.base/annota1.exp: Update copyright.

	* gdb.base/ena-dis-br.exp: Update copyright.
	(break_at): New function.  Replace send_gdb with gdb_test,
	break_at, and gdb_test_multiple.  Replace XFAIL of "continue with
	ignore count, not stopped at bpt", with KFAIL.

2004-07-13  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.base/attach.exp: Remove cleanupfile handling.

2004-07-12  Andrew Cagney  <cagney@gnu.org>

	* gdb.base/annota1.exp: Cleanup corefile test name.
	* gdb.base/annota3.exp: Ditto.

2004-07-12  Andrew Cagney  <cagney@gnu.org>

	* gdb.base/signals.exp: Clean up copyright, re-indent.

	* gdb.base/attach.exp: Replace send_gdb and gdb_expect with
	gdb_test and gdb_test_multiple.

2004-07-08  Jeff Johnston  <jjohnstn@redhat.com>

	* gdb.java/jmain.exp: Fix expected line number for main to
	break at.  Set XFAIL for break at main test since gcj does not
	provide line number info for first statement in main.

2004-07-08  Andrew Cagney  <cagney@gnu.org>

	* gdb.base/attach.exp: Cleanup copyright.  Re-indent.

	* gdb.base/sigbpt.exp: Make the common part of each test name a
	prefix instead of suffix.

2004-07-07  Bob Rossi  <bob_rossi@cox.net>

	* gdb.mi/mi2-file.exp: Revert to version 1.1, except changed name of
	test from test_tbreak_creation_and_listing to
	test_file_list_exec_source_file
	* gdb.mi/mi-file.exp: Add test for -file-list-exec-source-files
	Changed name of test from test_tbreak_creation_and_listing to
	test_file_list_exec_source_file

2004-07-07  Jeff Johnston  <jjohnstn@redhat.com>

	* gdb.java/jmisc.exp: Fix expected output of ptype to look for
	the jmisc() constructor instead of <init>.
	* gdb.java/jmisc1.exp: Ditto.

2004-07-07  Andrew Cagney  <cagney@gnu.org>

	* gdb.base/sigbpt.exp (stepi_out): Check for a single step
	corrupting the PC.

2004-07-06  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/templates.exp: Accept whitespace change in demangler
	output.

2004-07-06  Andrew Cagney  <cagney@gnu.org>

	* gdb.base/sigbpt.exp, gdb.base/sigbpt.c: New test.

2004-07-02  Michael Chastain  <mec.gnu@mindspring.com>

	* lib/compiler.c: Accept __HP_CXD_SPP for old hp ansi c compiler.
	* lib/compiler.cc: Likewise.

2004-06-30  Michael Chastain   <mec.gnu@mindspring.com>

	* lib/compiler.cc: Work around string preprocessing problem
	with old hp c++ compiler.
	* lib/compiler.c: Likewise.

2004-06-29  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.arch/i386-prologue.c: Add copyright header.  Use preprocessor
	directives to conditionalize symbol prefixing.
	* gdb.arch/i386-prologue.exp: Allow symbol prefixing by adding
	additional_flags handling.  Add underscore prefix for Cygwin.
	* gdb.arch/i386-unwind.c: Use preprocessor directives to
	conditionalize symbol prefixing.
	* gdb.arch/i386-unwind.exp: Allow symbol prefixing by adding
	additional_flags handling.  Add underscore prefix for Cygwin.

2004-06-29  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.base/bigcore.exp: Skip test on Cygwin.

2004-06-28  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.hp/gdb.base-hp/reg.exp: Accept both old and new gdb output
	formats for "info register".  Use gdb_test_multiple.  Fix
	the "invalid register" test.

2004-06-28  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.base/attach.exp: Fix copyright date.  Set testpid to Windows
	PID for Cygwin.  Add Cygwin specific strings to check for in some
	tests.
	(do_attach_tests): Add a test for user interaction when attaching
	to a process with no matching symbol table already loaded.

2004-06-26  Andrew Cagney  <cagney@gnu.org>

	Test PR java/1567 and PR java/1565.
	* gdb.java/jmain.exp, gdb.java/jmain.java: New files.
	* gdb.java/jmisc2.exp: Delete file.

2004-06-26  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.hp/gdb.base-hp/reg.exp: Update copyright notice.

2004-06-25  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.base/attach.exp (do_attach_tests): Don't forget to kill second
	attach process.

2004-06-23  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/pr-1553.exp: Remove.

2004-06-22  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/pr-1553.cc: Remove.
	* gdb.cp/pr-1553.exp: Disable this test.

2004-06-20  Jim Blandy  <jimb@redhat.com>

	Fix PR testsuite/1680.
	* gdb.arch/i386-sse.exp: Properly quote curly braces in
	regular expressions.

2004-06-19  Michael Chastain  <mec.gnu@mindspring.com>

	Fix PR testsuite/1679.
	* gdb.arch/i386-sse.exp: Do not call gdb_suppress_entire_file.
	Issue an UNSUPPORTED result instead.

2004-06-18  Jim Blandy  <jimb@redhat.com>

	* gdb.base/charset.exp: Only send a control-C if we see a new
	prompt and incomplete command.

2004-06-18  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/pr-574.cc: Add copyright notice.

2004-06-17  Jim Blandy  <jimb@redhat.com>

	* gdb.base/charset.exp: Don't refer to $expect_out(1,string) in
	cases where the regexp has no groups; this grabs random text from
	the previous test suite, whatever that was.

2004-06-17  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/printmethod.cc: Add copyright notice.

2004-06-16  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/psmang1.cc, gdb.cp/psmang2.cc: Add copyright notice.

2004-06-16  Andrew Cagney  <cagney@gnu.org>

	* gdb.base/signull.c: Update copyright.  Include <string.h>.
	(bowler): Replace data_pointer with data_read
	and data_write cases.  Add code_descriptor case.
	(zero, desc): New array and pointer.
	(data, code): Change to simple pointers.
	* gdb.base/signull.exp: Fix probe pattern matching a function
	descriptor SIGSEGV.  Replace data_pointer with data_read and
	data_write tests.

2004-06-16  Andrew Cagney  <cagney@gnu.org>

	* gdb.base/long_long.exp, gdb.base/long_long.c: Rewrite.

2004-06-15  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.base/long_long.c: Add copyright notice.

2004-06-15  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.base/long_long.exp: Remove reference to
	bug-gdb@prep.ai.mit.edu.  Change line-number-specific breakpoint
	to gdb_breakpoint and gdb_continue_to_breakpoint.

2004-06-14  Jim Blandy  <jimb@redhat.com>

	* gdb.arch/e500-regs.exp: Fix up 'print' pattern for the little-
	endian case.

2004-06-14  Andrew Cagney  <cagney@gnu.org>

	* gdb.base/gcore.exp (capture_command_output): Delete the always
	passing tests containing inferior values.
	* gdb.base/ending-run.exp: Do not include the breakpoint address
	in the test message.  Update copyright.
	* gdb.base/sizeof.exp (check_sizeof): Do not include the type's
	size in the test name, use gdb_test_multiple.  Update copyright.

2004-06-14  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/ref-types.cc: Add copyright notice.

2004-06-14  Michael Chastain  <mec.gnu@mindspring.com>

	* lib/compiler.c: Remove gcc_compiled, hp_cc_compiler,
	hp_aCC_compiler.
	* lib/compiler.cc: Likewise.
	* lib/gdb.exp (get_compiler_info): Eval lines only if they are
	'set' commands.  Log diagnostics for other lines.  Set
	gcc_compiled, hp_cc_compiler, and hp_aCC_compiler.

2004-06-13  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/try_catch.cc: Add copyright notice.

2004-06-12  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/userdef.cc: Add copyright notice.

2004-06-11  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/virtfunc.cc: Add copyright notice.

2004-06-11  Randolph Chung  <tausq@debian.org>

	* gdb.base/structs2.exp: Mark two tests as xfail because of a compiler
	problem.

2004-06-10  Andrew Cagney  <cagney@gnu.org>

	* lib/compiler.cc, lib/compiler.c: Append either
	__GNUC_PATCHLEVEL__, or "unknown" to the compiler_info.
	* gdb.base/structs.exp (test_struct_calls): Check for gcc-3-3-*
	instead of gcc-3-3.

2004-06-09  Andrew Cagney  <cagney@gnu.org>

	* gdb.base/structs.exp (test_struct_calls): Fix KFAIL for
	gdb/1455, bug is specific to "long long" and "double".

	* gdb.base/structs.exp (test_struct_returns, test_struct_returns)
	(test_struct_calls): Remove KFAIL of "long double" on i*86-*-*,
	x86_64-*-*, sparc64-*-*, and sparc*-*-solaris2*.  PR tdep/1447
	fixed.

2004-06-09  Andrew Cagney  <cagney@gnu.org>

	* gdb.base/structs.exp (test_struct_returns): Replace
	"return_value_unknown" and "finish_value_unknown" by
	"return_value_known" and "finish_value_known".  Instead of
	"return_value_unknown" iff "finish_value_unknown", check
	"return_value_known" implies "finish_value_known".

2004-06-08  Martin Hunt  <hunt@redhat.com>

	* gdb.base/float.exp: Add pattern for mips targets.

2004-06-08  Randolph Chung  <tausq@debian.org>

	* gdb.base/float.exp: Add pattern for hppa*-* target; make the failure
	message for unknown architectures more clear.

2004-06-08  Joel Brobecker  <brobecker@gnat.com>

	* gdb.ada/null_record.exp: Use "start" instead of "begin" to
	start the execution of the program.

2004-06-07  Jim Blandy  <jimb@redhat.com>

	* gdb.arch/i386-sse.exp, gdb.arch/i386-sse.c: New tests.
	* gdb.arch/i386-cpuid.h: New helper file.

2004-06-07  Randolph Chung  <tausq@debian.org>

	* gdb.base/shlib-call.exp: Allow breakpoint to be added after inferior
	has started.

2004-06-04  Roland McGrath  <roland@redhat.com>

	Fix PR gdb/1647.
	* gdb.base/auxv.exp (fetch_auxv): Revert last change and fix it
	differently to be robust to output buffering differences.

2004-06-04  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.threads/pthreads.exp: Update copyright years.
	(check_control_c): Change asynchronous 'after' to synchronous.

2004-06-04  Roland McGrath  <roland@redhat.com>

	* gdb.base/auxv.exp (fetch_auxv): Consume output fully through
	next gdb prompt.

2004-06-02  Michael Chastain  <mec.gnu@mindspring.com>

	Fix PR gdb/1636.
	* gdb.threads/manythreads.exp: Change asynchronous 'after'
	calls to synchronous.

2004-05-26  Jim Blandy  <jimb@redhat.com>

	* gdb.arch/e500-prologue.exp, gdb.arch/e500-prologue.c: New tests.

2004-05-24  Randolph Chung  <tausq@debian.org>

	* gdb.asm/asm-source.exp: Enable test for hppa-linux target.
	* gdb.asm/pa.inc: New file.

2004-05-22  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/signull.c: Use sigjmp_buf instead of jmp_buf.

2004-05-21  Joel Brobecker  <brobecker@gnat.com>
	    Daniel Jacobowitz  <drow@mvista.com>

	* lib/gdb.exp (gdb_test_multiple): Improve regexp matching the
	GDB prompt.

2004-05-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.base/signull.c: Use sigsetjmp/siglongjmp instead of
	setjmp/longjmp.  Use sigaction instead of signal.

2004-05-19  J. Brobecker  <brobecker@gnat.com>
	    Michael Snyder  <msnyder@redhat.com>

	* gdb.threads/pthread_cond_wait.c: New file.
	* gdb.threads/pthread_cond_wait.exp: New testcase.

2004-05-13  Andrew Cagney  <cagney@redhat.com>

	* gdb.base/signull.exp, gdb.base/signull.c: New files.
	* gdb.base/gdb1476.c, gdb.base/gdb1476.exp: Delete files.

2004-05-11  Andrew Cagney  <cagney@redhat.com>

	* gdb.base/sigstep.exp (advancei): Update KFAILs.  gdb/1613 is
	fixed but revealed gdb/1639.

2004-05-10  Andrew Cagney  <cagney@redhat.com>

	* gdb.base/signals.exp (signal_tests_1): Simplify "continue to
	func1" and "next to 2nd alarm", kernel bug avoided.

2004-05-10  Daniel Jacobowitz  <dan@debian.org>

	PR external/1568
	* gdb.base/bigcore.exp: Check the size of the dumped core file.
	XFAIL if it is smaller than bytes_allocated.
	* gdb.base/bigcore.c (bytes_allocated): Make static and unsigned.
	(main): Make chunks_allocated unsigned.  Correct comment.

2004-05-07  Joel Brobecker  <brobecker@gnat.com>

	* gdb.arch/powerpc-aix-prologue.c: New file.
	* gdb.arch/powerpc-aix-prologue.exp: New file.

2004-05-07  Jim Blandy  <jimb@redhat.com>

	* gdb.base/lineinc.exp, gdb.base/lineinc1.h, gdb.base/lineinc2.h,
	gdb.base/lineinc3.h, gdb.base/lineinc.c: New tests.

2004-05-06  Joel Brobecker  <brobecker@gnat.com>

	* gdb.base/sep.exp: No longer setup_kfail when the program was
	built with dwarf2.

2004-05-05  Jim Ingham  <jingham@apple.com>

	* gdb.base/pending.exp: Make sure pending breakpoints
	preserve the ignore count.

2004-04-27  Jerome Guitton  <guitton@gnat.com>

	* i386-prologue.exp: Add testcase for jump instruction as first
	instruction of the real code.
	* i386-prologue.c (jump_at_beginning): New function.

2004-04-28  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/call-sc.exp: Remove patterns to KFAIL PR gdb/1624 on
	x86_64-*-*.

2004-04-28  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/call-sc.exp: Remove patterns to KFAIL PR gdb/1623 on
	i*86-*-*.

2004-04-25  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/call-sc.exp (start_scalars_test): Fix regular
	expression that checks the return type.

2004-04-23  Andrew Cagney  <cagney@redhat.com>

	* gdb.base/call-sc.exp: New test of scalar call/return values.
	* gdb.base/call-sc.c: Ditto.

2004-04-23  Ulrich Weigand <Ulrich.Weigand@de.ibm.com>

	* gdb.threads/manythreads.c: Reduce thread stack size.

2004-04-23  Jeff Johnston  <jjohnstn@redhat.com>

	* gdb.threads/manythreads.c: Add copyright notice.

2004-04-23  Andrew Cagney  <cagney@redhat.com>

	* gdb.base/siginfo.exp: Better handle step out of signal.
	* gdb.base/sigstep.exp: Ditto.

2004-04-22  Jeff Johnston  <jjohnstn@redhat.com>
	    Daniel Jacobowitz  <drow@mvista.com>

	* gdb.threads/manythreads.c: New testcase.
	* gdb.threads/manythreads.exp: Ditto.

2004-04-22  Jim Blandy  <jimb@redhat.com>

	* gdb.stabs/exclfwd.exp, gdb.stabs/exclfwd1.c,
	gdb.stabs/exclfwd2.c, gdb.stabs/exclfwd.h: New test.

2004-04-21  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.stabs/weird.exp: Accept full pathname for $binfile.

2004-04-21  Andrew Cagney  <cagney@redhat.com>

	* gdb.base/sigstep.c: New file.
	* gdb.base/sigstep.exp: New file.

2004-04-16  Joel Brobecker  <brobecker@gnat.com>

	* gdb.gdb/observer.exp (test_normal_stop_notifications): Update
	call to observer_notify_normal_stop.

2004-04-15  Andrew Cagney  <cagney@redhat.com>

	* gdb.base/siginfo.c: New file.
	* gdb.base/siginfo.exp: New file.

2004-04-12  J. Brobecker  <brobecker@gnat.com>

	* gdb.base/sep.exp: Fix typo in comment.

2004-04-12  J. Brobecker  <brobecker@gnat.com>

	* gdb.base/sep.c: New file.
	* gdb.base/sep-proc.c: New file.
	* gdb.base/sep.exp: New testcase.

2004-04-09  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/bigcore.exp: Disable on Solaris; no sparse core file
	support.

2004-04-05  Andrew Cagney  <cagney@redhat.com>

	* gdb.base/sigaltstack.c: New file.
	* gdb.base/sigaltstack.exp: New file.

2004-04-04  Joel Brobecker  <brobecker@gnat.com>

	* gdb.base/foll-fork.exp: Update the expected output for
	"help set follow-fork-mode", to match a change that was made
	to the help of this variable on 2004-01-13.

2004-04-01  Joel Brobecker  <brobecker@gnat.com>

	* lib/ada.exp: Add copyright notice.
	* bar.ads: Likewise.
	* bar.adb: Likewise.
	* null_record.adb: Likewise.
	* null_record.exp: Likewise.
	* gnat_ada.gpr.in: Likewise. Fix typo in a comment, clarify another.

2004-04-01  Joel Brobecker  <brobecker@gnat.com>

	* configure.in: Generate gdb.ada/Makefile and gdb.ada/gnat_ada.gpr.
	* configure: Regenerate.

2004-04-01  Joel Brobecker  <brobecker@gnat.com>

	* lib/ada.exp (gdb_compile_ada): Emit UNSUPPORTED if we failed
	to build the application. Remove the message printed when in
	verbose mode, redundant with the UNSUPPORTED message above.

2004-03-31  Joel Brobecker  <brobecker@gnat.com>

	* gdb.ada (bar.ads, bar.adb, null_record.adb): New files.
	* gdb.ada (null_record.exp): New testcase.

2004-03-31  Joel Brobecker  <brobecker@gnat.com>

	* Makefile.in (ALL_SUBDIRS) Add gdb.ada.

2004-03-31  Joel Brobecker  <brobecker@gnat.com>

	* gdb.ada: New subdirectory.
	* gdb.ada/Makefile.in: New file.
	* gdb.ada/gnat_ada.gpr.in: New file.

2004-03-31  Joel Brobecker  <brobecker@gnat.com>

	* lib/ada.exp: New file.

2004-03-24  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.base/gdb1250.exp: Use runto {allow-pending}.
	* lib/gdb.exp (runto, gdb_breakpoint): Support {allow-pending}.

2004-03-22  Andrew Cagney  <cagney@redhat.com>

	* gdb.base/watchpoint.exp (test_stepping): Delete bogus XFAILs
	hiding problems with DEPRECATED_CALL_DUMMY_BREAKPOINT_OFFSET.
	Problem identified by Ulrich Weigand.

2004-03-17  David Carlton  <carlton@kealia.com>

	* gdb.cp/classes.exp (test_enums): Refer to PR c++/1588 instead of
	PR c++/826.

2004-03-16  Roland McGrath  <roland@redhat.com>

	* gdb.base/auxv.exp: New file.
	* gdb.base/auxv.c: New file, copied verbatim from coremaker2.c.

2004-03-12  David Carlton  <carlton@kealia.com>

	* gdb.cp/pr-1553.exp: New.  Tests for PR c++/1553.
	* gdb.cp/pr-1553.cc: Ditto.
	* gdb.cp/local.exp (ptype NestedInnerLocal): Add comment, third
	pass branch.

2004-03-12  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/templates.exp: Accept more template types.

2004-03-09  Michael Chastain  <mec.gnu@mindspring.com>

	From Corinna Vinschen with modifications.
	* gdb.cp/classes.cc (enums1): Add a line to extend scope of
	local variable obj_with_enum.
	* gdb.cp/classes.exp (test_enums): Remove TODO note about FAIL
	results with obj_with_enum.

2004-03-09  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/classes.cc: New file, copied from misc.cc.
	* gdb.cp/classes.exp: Use classes.cc rather than misc.cc.

2004-03-09  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/misc.cc: Add copyright notice.

2004-03-05  David Carlton  <carlton@kealia.com>

	* gdb.cp/rtti.exp: Add 'print *obj3' test.
	* gdb.cp/rtti.h: Update copyright.
	(namespace n2::n3): New.
	* gdb.cp/rtti1.cc: (refer_to (n2::n3::C3 *)): New.
	(n2::n3::func3): New.
	(main): Call n2::n3::func3.
	* gdb.cp/rtti2.cc: Update copyright.
	(n2::create3): New.

2004-03-04  Mark Kettenis  <kettenis@gnu.org>

	* gdb.asm/openbsd.inc: Fix typo.

2004-03-03  Fred Fish  <fnf@redhat.com>

	* gdb.base/pc-fp.exp (get_valueofx): Fix apparent typo to now set
	"val" instead of unused "size".  Update copyright year.

2004-02-29  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.cp/ctti.exp: Handle unsigned char type.  Expect templates
	to use unsigned char.
	* gdb.cp/cttiadd.c, gdb.cp/cttiadd1.c, gdb.cp/cttiadd2.c,
	gdb.cp/cttiadd3.c: Change type of variable to unsigned char.

2004-02-29  Daniel Jacobowitz  <drow@mvista.com>

	* config/gdbserver.exp (gdbserver_gdb_load): Wait for a complete
	line of output.

2004-02-28  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.base/relocate.c (dummy): Initialize.

2004-02-28  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.base/chng-syms.exp: Anchor exit pattern.  Allow
	a breakpoint at exit.

2004-02-27  Fred Fish  <fnf@redhat.com>

	* gdb.base/chng-syms.exp: Add expect condition to match failing
	case that isn't a timeout.

2004-02-27  Andrew Cagney  <cagney@redhat.com>

	* gdb.base/bigcore.exp: Disable on HP/UX, no sparse corefile
	support.

2004-02-26  Fred Fish  <fnf@redhat.com>

	* gdb.arch/gdb1431.c: Remove.
	* gdb.arch/gdb1431.s: New file, copy of gdb1291.s
	* gdb.arch/gdb1431.exp: Use "advance" correctly instead
	of "until" incorrectly.

2004-02-26  J. Brobecker  <brobecker@gnat.com>

	* gdb.cp/class2.cc (empty): New class.
	(refer): New function.
	(main): Declare an object of type empty and use it.
	* gdb.cp/class2.exp: Print the value of an object of type empty.

2004-02-26  Jeff Johnston  <jjohnstn@redhat.com>

	* gdb.base/langs.exp: Update query string to match the
	new nquery format used for pending breakpoints.

2004-02-26  Andrew Cagney  <cagney@redhat.com>

	Fix PR i18n/1570.
	* gdb.base/charset.c: Update copyright notice.
	(main, init_string): Remove the escape character '\e' tests.
	* gdb.base/printcmds.exp (test_print_all_chars): Ditto.
	* gdb.base/charset.exp (valid_host_charset): Ditto.
	* gdb.base/setvar.exp: Ditto.

2004-02-24  Andrew Cagney  <cagney@redhat.com>

	* gdb.base/corefile.exp: Use gdb_test_multiple, make "accessing
	mmapped data in core file" PASS and FAIL messages consistent.

	* gdb.java/jmisc.exp: Use the fully quallified name of "main" when
	setting a breakpoint.  Work around PR java/1565.

2004-02-23  Jeff Johnston  <jjohnstn@redhat.com>

	* lib/gdb.exp (gdb_breakpoint): Update query string to match
	new nquery format.
	* gdb.base/pending.exp: Ditto.

2004-02-22  Mark Kettenis  <kettenis@gnu.org>

	* configure.in: Run stabs tests on *BSD.
	* configure: Regenerated.

2004-02-21  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/bigcore.exp: Bail out on *BSD instead of only NetBSD.

2004-02-20  Fred Fish  <fnf@redhat.com>

	* gdb.base/callfuncs.exp (do_function_calls): Remove extraneous
	blank in test for "returns short", for consistency with other
	"returns xxx" tests.  Update copyright year.

2004-02-19  Fred Fish  <fnf@redhat.com>

	New testcase for PR breakpoint/1558.
	* gdb.arch/gdb1558.exp: New file.
	* gdb.arch/gdb1558.c: New file.

2004-02-19  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.base/nodebug.exp: Fix typo.

2004-02-17  Ulrich Weigand <Ulrich.Weigand@de.ibm.com>

	Committed by Jim Blandy  <jimb@redhat.com>.

	* gdb.objc/basicclass.exp: Adapt to fixed return type of printHi.

	* gdb.base/dump.exp: Handle negative offsets in decimal, not hex.

	* gdb.base/float.exp: Support s390*-*-* targets.

2004-02-17  Adam Fedor  <fedor@gnu.org>

	* gdb.base/gdb1555.exp: New file.
	* gdb.base/gdb1555-main.c, gdb.base/gdb1555.c: New files.

2004-02-17  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.base/selftest.exp (do_steps_and_nexts): Add comment.

2004-02-16  Fred Fish  <fnf@redhat.com>

	* gdb.arch/gdb1291.c: Remove
	* gdb.arch/gdb1291.s: New test input file.
	* gdb.arch/gdb1291.exp: Expand test to check case that should not
	fail.  Test for correct result, known incorrect result, other
	failures and timeouts.

2004-02-16  Andrew Cagney  <cagney@redhat.com>

	* gdb.base/bigcore.exp: New file.
	* gdb.base/bigcore.c: New file.

2004-02-13  Andrew Cagney  <cagney@redhat.com>

	* gdb.mi/mi1-basics.exp, gdb.mi/mi1-break.exp: Delete file.
	* gdb.mi/mi1-console.exp, gdb.mi/mi1-disassemble.exp: Delete file.
	* gdb.mi/mi1-eval.exp, gdb.mi/mi1-hack-cli.exp: Delete file.
	* gdb.mi/mi1-pthreads.exp, gdb.mi/mi1-read-memory.exp: Delete file.
	* gdb.mi/mi1-regs.exp, gdb.mi/mi1-return.exp: Delete file.
	* gdb.mi/mi1-simplerun.exp, gdb.mi/mi1-stack.exp: Delete file.
	* gdb.mi/mi1-stepi.exp, gdb.mi/mi1-symbol.exp: Delete file.
	* gdb.mi/mi1-until.exp, gdb.mi/mi1-var-block.exp: Delete file.
	* gdb.mi/mi1-var-child.exp, gdb.mi/mi1-var-cmd.exp: Delete file.
	* gdb.mi/mi1-var-display.exp, gdb.mi/mi1-watch.exp: Delete file.

2004-02-11  Jeff Johnston  <jjohnstn@redhat.com>

	* gdb.asm/ia64.inc (gdbasm_startup): Make sure first instruction
	executed is an alloc instruction.

2004-02-11  David Carlton  <carlton@kealia.com>

	* gdb.cp/breakpoint.exp: New.
	* gdb.cp/breakpoint.cc: New.

2004-02-11  Michael Chastain  <mec.gnu@mindspring.com>

	Partial fix for PR gdb/1543.
	* gdb.cp/ambiguous.exp, gdb.cp/annota2.exp, gdb.cp/annota3.exp,
	gdb.cp/anon-union.exp, gdb.cp/casts.exp, gdb.cp/classes.exp,
	gdb.cp/cplusfuncs.exp, gdb.cp/ctti.exp, gdb.exp/demangle.exp,
	gdb.cp/derivation.exp, gdb.cp/exception.exp, gdb.cp/hang.exp,
	gdb.cp/inherit.exp, gdb.cp/local.exp, gdb.cp/maint.exp,
	gdb.cp/member-ptr.exp, gdb.cp/method.exp, gdb.cp/misc.exp,
	gdb.cp/namespace.exp, gdb.cp/overload.exp, gdb.cp/ovldbreak.exp,
	gdb.cp/psmang.exp, gdb.cp/ref-types.exp, gdb.cp/templates.exp,
	gdb.cp/userdef.exp, gdb.cp/virtfunc.exp: Remove reference
	to bug-gdb@prep.ai.mit.edu .
	* gdb.cp/bs15503.cc, gdb.cp/class2.cc, gdb.cp/cttiadd.cc,
	gdb.cp/cttiadd1.cc, gdb.cp/cttiadd2.cc, gdb.cp/cttiadd3.cc,
	gdb.cp/exception.cc, gdb.cp/member-ptr.cc, gdb.cp/namespace1.cc:
	Likewise.

2004-02-10  Andrew Cagney  <cagney@redhat.com>

	* lib/gdb.exp (gdb_expect_list): Recover from internal-errors
	using gdb_internal_error_resync.

2004-02-09  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.threads/thread-specific.exp: Stop early if no threads are
	found.

2004-02-09  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.base/pending.exp: Remove extra \n from gdb_test calls.

2004-02-08  Daniel Jacobowitz  <drow@mvista.com>

	* lib/gdb.exp (gdb_breakpoint): Fail on unexpected pending
	breakpoints.

2004-02-07  Daniel Jacobowitz  <drow@mvista.com>

	* config/sim.exp (gdb_load): Handle $arg == "".
	* lib/gdb.exp (gdb_run_cmd): Honor gdb,do_reload_on_run.
	* gdb.objc/basicclass.exp: Use gdb_run_cmd.

2004-02-07  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.base/maint.exp: Update test to reflect
	 obstack changes.

2004-02-04  Jeff Johnston  <jjohnstn@redhat.com>

	* gdb.base/pendshr.c (pendfunc): New function that calls
	pendfunc1.
	* gdb.base/pending.c: Call pendfunc instead of pendfunc1.

2004-02-04  Fred Fish  <fnf@redhat.com>

	* gdb.arch/gdb1431.c: Add underbar prefixed version of global
	function symbols and update copyright years.
	* gdb.arch/gdb1291.c: Ditto.

2004-02-03  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/virtfunc.exp: Accept both "ctor()" and "ctor(void)".

2004-02-03  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/inherit.exp: Accept both "ctor()" and "ctor(void)".

2004-02-03  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/inherit.exp: Accept output with gcc 3.2-7-rh.

2004-02-02  Fred Fish  <fnf@redhat.com>

	* gdb.base/bang.exp: Use gdb_run_cmd so this tests works with
	remote targets.  Update copyright years.

2004-02-02  Jeff Johnston  <jjohnstn@redhat.com>

	* lib/gdb.exp (gdb_breakpoint): Add pending breakpoint
	support.
	* gdb.base/langs.exp: Fix test which attempts to create
	breakpoint on non-existent function to handle new pending
	support.
	* gdb.base/shlib-call.exp: Use gdb_breakpoint to set
	a breakpoint.
	* gdb.base/pending.exp: New test.
	* gdb.base/pending.c: New file.
	* gdb.base/pendshr.c: Ditto.

2004-02-02  David Carlton  <carlton@kealia.com>

	* gdb.cp/overload.exp: Add overloadNamespace tests.
	* gdb.cp/overload.cc (dummyClass, dummyInstance): New.
	(overloadNamespace, XXX): New.
	(main): Call XXX::marker2.

2004-02-01  Fred Fish  <fnf@redhat.com>

	* gdb.base/dump.exp: Use runto_main instead of "runto main".
	* gdb.base/finish.exp: Ditto.
	* gdb.base/gcore.exp: Ditto.
	* gdb.base/huge.exp: Ditto.
	* gdb.base/info-proc.exp: Ditto.
	* gdb.base/return2.exp: Ditto.
	* gdb.threads/gcore-thread.exp: Ditto.

2004-02-01  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.threads/thread-specific.exp: Add missing anchor to regexp.

2004-02-01  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/fileio.c (test_open): Replace O_RDONLY with O_RDWR such
	that opening the file succeeds on OpenBSD.

2004-02-01  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.threads/thread-specific.c: New file.
	* gdb.threads/threads-specific.exp: New test script.
	* lib/gdb.exp (gdb_test_multiple): Allow user patterns access
	to expect_out.

2004-02-01  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/call-ar-st.exp: Call get_debug_format.  Remove xfail on
	sparc*-*-solaris* into a kfail PR gdb/1539 on sparc-*-* for stabs
	only on the "print_small_structs from print_long_arg_list" test.

2004-02-01  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.base/completion.exp: Kill a stray backslash.

	From Jim Ingham <jingham@apple.com>:
	* gdb.base/completion.exp: Test that "complete file ./gdb.base/compl"
	agrees with the result from sending a tab.

2004-01-31  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.base/chng-syms.exp: Remove stray newline.

2004-01-31  Mark Kettenis  <kettenis@gnu.org>

	* gdb.asm/asm-source.exp: Set asm-note to "openbsd" for
	*-*-openbsd*.
	* gdb.asm/openbsd.inc: New file.

2004-01-30  Mark Kettenis  <kettenis@gnu.org>

	* gdb.asm/asm-source.exp: Strip -Wl, from link-flags.  Don't
	append -static to link-flags for *-*-freebsd*, *-*netbsd* and
	*-*solaris2*.  Remove commented out default settings for
	asm-flags.  Replace gdb_compile with target_link.

2004-01-29  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/inherit.exp: Rewrite.  Use gdb_test_multiple and gdb
	for all tests.  Remove old hp-ux and cygnus xfail cases.

2004-01-29  Paul N. Hilfinger  <Hilfinger@gnat.com>

	* gdb.base/chng-syms.exp: New file.
	* gdb.base/chng-syms.c: New file.

2004-01-24  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/local.exp: Rewrite "ptype Local".  Add "ptype l".
	Provide arms for current output in all my configurations.

2004-01-24  Michael Chastain  <mec.gnu@mindspring.com>

	* lib/compiler.c: Add hp_cc_compiler and hp_aCC_compiler.
	* lib/compiler.cc: Likewise.
	* lib/gdb.exp (get_compiler_info): Always call gdb_compile to
	get the right preprocessor.  Eval the output directly.  Remove
	special tests for hp_cc_compiler and hp_aCC_compiler.  Remove
	hp_f77_compiler and hp_f90_compiler completely.
	(gdb_preprocess): Delete.
	(get_compiler): Delete.

2004-01-24  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/charset.c, gdb.base/dump.c, gdb.base/huge.c: Include
	<string.h>.

2004-01-24  Nick Roberts  <nick@nick.uklinux.net>

	* gdb.mi/mi-stack.exp: Update copyright.

2004-01-23  David Carlton  <carlton@kealia.com>

	* gdb.cp/rtti.exp: Don't include full path in ${srcfile}.  Add
	test for cp_lookup_transparent_type.
	* gdb.cp/rtti1.cc: Update copyright.  Add n2::func and refer_to;
	call them.

2004-01-23  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.mi/mi-var-child.exp: Update copyright year.  Move new test
	after -var-update.

2004-01-23  David Carlton  <carlton@kealia.com>

	* gdb.cp/namespace.cc (C::ensureRefs): New.
	* gdb.cp/namespace1.cc (C::ensureOtherRefs): New.

2004-01-20  Nick Roberts  <nick@nick.uklinux.net>

	* gdb.mi/mi-stack.exp (test_stack_locals_listing): Test for
	case "-stack-list-locals 2".
	* gdb.mi/mi-var-child.exp: Test for case
	"-var-list-children --all-values NAME".

2004-01-18  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/local.exp: Accept correct output for gcc v3 -gstabs+.

2004-01-18  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/fileio.exp: Add "$gdb_prompt $" anchors to patterns
	used with gdb_test_multiple.

	* gdb.base/gdb1476.exp: Accept alternat pattern for failed memory
	read at address 0.  This fixes PR testsuite/1504.

2004-01-18  Daniel Jacobowitz  <drow@mvista.com>

	* config/gdbserver.exp (gdbserver_gdb_load): Rename from gdb_load.
	Remove downloading, guessing the host executable, the calls to
	gdb_file_cmd and gdb_target_cmd, and "load" support.
	(infer_host_exec): New function broken out from gdb_load.
	(gdb_load): New wrapper for gdbserver_gdb_load.
	* lib/mi-support.exp (mi_gdb_target_cmd): New function, based on
	gdb_target_cmd.  Use -target-select.
	(mi_gdb_file_cmd): New function, broken out from mi_gdb_load.
	Download binaries to the host.  Clear last_mi_remote_file when
	we load a new binary.
	(mi_gdb_load): Call mi_gdb_file_cmd.  If gdbserver.exp is loaded,
	call gdbserver_gdb_load and mi_gdb_target_cmd.

2004-01-17  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/templates.exp: Accept more spaces with "<foo, ?bar>"
	type patterns.

2004-01-17  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/templates.exp: Fix typo in test name of
	"print Foo<volatile char*>::foo".

2004-01-15  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.base/setvar.exp: Remove setup_xfail for hppa*-*-*11*.

2004-01-16  Ben Elliston  <bje@wasabisystems.com>

	* gdb.arch/Makefile.in (MISCELLANEOUS): Remove.
	(clean mostlyclean): Remove empty rm.

2004-01-15  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.base/setvar.exp: Add copyright years.

2004-01-14  David Carlton  <carlton@bactrian.org>

	* gdb.cp/rtti.exp: Update copyright.  KFAIL test with repect to
	PR c++/1511 and update coment.
	* gdb.cp/templates.exp: Update patterns to match current output.
	If changes involve something other than whitespace, KFAIL
	w.r.t. PR c++/1512 or PR c++/931 as appropriate.

2004-01-14  David Carlton  <carlton@kealia.com>

	* gdb.cp/namespace.exp: Add tests involving classes defined within
	namespaces.
	* gdb.cp/namespace.cc (C::CClass): New.
	* gdb.cp/namespace1.cc (C::OtherFileClass): New.

2004-01-14  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.base/sepdebug.exp: Bail out of the test if we don't know
	what debug info we have. Print a better message if something goes
	wrong while producing the separate debug info file.

2004-01-14  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.base/callfuncs.c: Remove explicit declaration of malloc.

2004-01-14  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.base/callfuncs.c: Add copyright notice.

2004-01-13  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/derivation.exp: Add XFAIL for bug with protected
	inheritance.  PR gdb/1498, PR gcc/13539.

2004-01-13  Elena Zannoni  <ezannoni@redhat.com>

	 * gdb.threads/gcore-thread.exp: Prefix name of binary with
	 test specific name.
	 * gdb.mi/gdb669.exp: Ditto.
	 * gdb.mi/mi-pthreads.exp: Ditto.
	 * gdb.mi/mi1-pthreads.exp: Ditto.
	 * gdb.mi/mi2-pthreads.exp: Ditto.

2004-01-12  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/member-ptr.cc: Add copyright notice.

2004-01-12  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/member-ptr.exp: Use gdb_test, gdb_test_multiple.  Add
	some patterns for recent versions of gcc and hpacc.  Delete
	calls to setup_xfail for hppa*-*-*.  Delete redundant tests.
	Delete tests that access a NULL pointer-to-member-data.  This
	script is still disabled for gcc.

2004-01-12  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.mi/mi2-basics.exp: Make sure that full pathnames are
	escaped correctly.

2004-01-12  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.base/sepdebug.exp: New file.
	* gdb.base/sepdebug.c: New file.
	* lib/gdb.exp (separate_debug_filename): New procedure.
	(gdb_gnu_strip_debug): New procedure.

2004-01-12  Andrew Cagney  <cagney@redhat.com>

	* gdb.mi/ChangeLog: Delete file.  Renamed to ...
	* gdb.mi/ChangeLog-1999-2003: New file.

2004-01-12  Andrew Cagney  <cagney@redhat.com>

	* gdb.base/fileio.exp: Update copyright year.  On GNU/Linux, for
	"Renaming a directory to a non-empty directory returns ENOTEMPTY
	or EEXIST", treat EBUSY as an XFAIL.

2004-01-11  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.base/scope.exp: Remove obsolete setup_xfail for
	hp_cc_compiler.

2004-01-10  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/classes.exp: Remove old "(obsolescent gcc or gdb)"
	decorations.

2004-01-10  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/virtfunc.exp: Remove old "(obsolescent gcc or gdb)"
	and "(aCC)" decorations.  Remove obsolete doco about old
	test results.

2004-01-09  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/exception.exp: Fix typo in doco.

2004-01-09  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/gdb1476.exp: Fix typo.

2004-01-09  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.hp/gdb.aCC/exception.exp: Re-create as a nearly empty
	file.

2004-01-09  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/exception.cc: Change <iostream.h> to <iostream>.
	* gdb.cp/exception.exp: Use gdb test, gdb_test_multiple.
	Use gdb_compile.  Remove restriction on gcc.  Add some patterns
	for recent version of gdb.  Delete second half, which was a copy
	of the first half with different build flags.  This test is
	still disabled because it is still not ready for production.

2004-01-08  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/exception.cc: Add copyright notice.
	* gdb.cp/exception.exp: Add a notice that this file is broken
	because of line number changes caused by addition of copyright
	notice.

2004-01-08  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/exception.cc: Renamed from gdb.hp/gdb.aCC/exception.cc.
	* gdb.cp/exception.exp: Renamed from gdb.hp/gdb.aCC/exception.exp.

2004-01-08  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/classes.exp: Accept gnu abi 2.
	* gdb.cp/derivation.exp: Likewise.
	* gdb.cp/overload.exp: Likewise.
	* gdb.cp/virtfunc.exp: Likewise.

2004-01-08  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.mi/pthreads.c (done_making_threads): Remove extraneous
	semicolon after end of function.

2004-01-07  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/bs15503.cc: Include <iostream>, not <iostream.h>.
	* gdb.cp/bs15503.exp: Remove hp-only restriction.  Use modern
	boilerplate code for compiling and running the program under
	test.  Add some string method tests.

2004-01-07  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/bs15503.cc: Add copyright notice.
	* gdb.cp/bs15503.exp: Adjust line number.

2004-01-07  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.hp/gdb.defects/bs15503.exp: Renamed to gdb.cp/bs15503.exp.
	* gdb.hp/gdb.defects/bs15503.cc: Renamed to gdb.cp/bs15503.cc.

2004-01-07  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.base/funcargs.exp: Remove obsolete setup_xfail for
	hp_cc_compiler.

2004-01-07  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/cttiadd.c: Add a marker for gdb_get_line_number.
	* gdb.cp/ctti.exp: Use the marker instead of "next".
	With gcc, run further before bailing.

2004-01-07  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/cttiadd.cc: Add copyright notice.
	* gdb.cp/cttiadd1.cc: Likewise.
	* gdb.cp/cttiadd2.cc: Likewise.
	* gdb.cp/cttiadd3.cc: Likewise.

2004-01-07  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/ctti.exp: Partial rewrite.  Call gdb_compile properly.
	Use gdb_test, gdb_test_multiple.  Use floating-point values that
	have exact representations in IEEE-ish formats.

2004-01-07  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.base/constvars.exp: Do not force lang=c++ if using HP
	compilers.  Delete duplicate call to get_compiler_info.
	(local_compiler_xfail_check): setup_xfail if $hp_cc_compiler.
	* gdb.base/volatile.exp: Likewise.

2004-01-07  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/gdb1476.exp: Only run the tests if we can't read the
	memory at address 0.

2004-01-07  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.stabs/weird.exp: Use hp_cc_compiler and hp_aCC_compiler
	to test for hp-ux assembler.  Fix copyright years.

2004-01-07  Andrew Cagney  <cagney@redhat.com>

	* gdb.base/fileio.c (strerrno): Add "EBUSY".

2004-01-07  Andrew Cagney  <cagney@redhat.com>

	* gdb.base/fileio.c (test_open): Do not pass S_IWUSR to "open"
	when creating the read-only file.  From analysis by Roland McGrath
	and Elena Zannoni.

2004-01-06  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/namespace.exp: Call get_compiler_info with "c++".

2004-01-06  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.base/cvexpr.c: Be type-safe with function pointers and
	data pointers.

2004-01-06  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/m-static.exp: Compile one source file at a time.
	Delete unused call to get_compiler_info.

2004-01-06  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.base/call-ar-st.exp: Delete explicit reference to ${binfile}.ci.
	* gdb.base/call-rt-st.exp: Likewise.
	* gdb.base/nodebug.exp: Likewise.
	* gdb.base/volatile.exp: Likewise.
	* gdb.cp/ref-types.exp: Likewise.
	* gdb.cp/templates.exp: Likewise.

2004-01-05  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/gdb1476.exp, gdb.base/gdb1476.c: New files.

2004-01-05  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/funcargs.exp: Delete special timeout of 240 seconds for
	hppa*-hp-hpux*.

2004-01-04  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/structs.exp: Add patterns to kfail PR gdb/1447 for
	x86_64-*-*.

	* gdb.base/structs.exp: Add patterns to kfail PR gdb/1447 for
	sparc64-*-* and sparc*-solaris2*.

2004-01-04  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/structs.exp: Remove ${testfile} from "zed L<n> for
	return ${tests}" test.  The ${tests} already mentions the
	filename.

2004-01-02  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/local.exp: Accept gcc abi 2.

2004-01-02  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/templates.exp: Accept gcc abi 2.

2004-01-02  Michael Chastain  <mec.gnu@mindspring.com>

	* lib/compiler.cc: Remove supports_template_debugging.
	* gdb.cp/templates.exp: Do not test supports_template_debugging.

2004-01-01  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/namespace.exp: Accept gcc abi 2.

2004-01-01  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/method.exp: Accept gcc abi 2.

2004-01-01  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/classes.exp: Generate identical results as old version.
	* gdb.cp/derivation.exp: Likewise.
	* gdb.cp/overload.exp: Likewise.
	* gdb.cp/virtfunc.exp: Likewise.

2004-01-01  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/virtfunc.exp: Modify some patterns to avoid a
	mysterious bug with sourceware version of expect.

2004-01-01  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/overload.exp: Rewrite.  Clean up patterns to match
	current versions of gcc, including gcc abi 2.  Remove gratuitous
	restart of test program.  Use gdb_test_multiple and gdb_test for
	all tests.  Add patterns to xfail missing "const" in "const char *"
	and kfail PR gdb/1155.

2004-01-01  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/derivation.exp: Rewrite.  Clean up patterns to match
	current versions of gcc, including gcc abi 2.  Remove gratuitous
	restart of test program.  Use gdb_test_multiple and gdb_test for
	all tests.  Add patterns to kfail PR gdb/1498.

2003-12-31  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/virtfunc.exp: Rewrite.  Clean up patterns to match
	current versions of gcc, including gcc abi 2.  Use "breakpoint"
	and "continue" instead of restarting the target program.  Use
	gdb_test_multiple and gdb_test for all tests.

2004-01-01  Mark Kettenis  <kettenis@gnu.org>

	* gdb.asm/asm-source.exp: Update copyright year.  Link statically
	for *-*-solaris2*.

2003-12-31  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/classes.exp: Rewrite.  Clean up patterns to match
	current versions of gcc, including gcc abi 2.  Use "breakpoint"
	and "continue" instead of restarting the target program several
	times.  Use gdb_test_multiple and gdb_test for all tests.

2003-12-18  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.base/sect-cmd.exp: Handle compiling test case from multiple
	source files.

2003-12-16  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.base/environ.exp: Handle compiling test case from multiple
	source files.

2003-12-16  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.base/structs.exp: Call gdb_exit as well as gdb_start.

2003-12-17  Jim Blandy  <jimb@redhat.com>

	* gdb.base/freebpcmd.c: Add copyright notice.

	* gdb.base/freebpcmd.exp: Mark the interesting failure as known.

2003-12-16  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.base/maint.exp: Add generic FAIL patterns to prevent timeouts.

2003-12-13  Jim Blandy  <jimb@redhat.com>

	* gdb.base/freebpcmd.exp, gdb.base/freebpcmd.c: New test.

2003-12-12  Kevin Buettner  <kevinb@redhat.com>

	* gdb.asm/frv.inc: New file.
	* gdb.asm/asm-source.exp: Add frv-*-* as a supported target.

2003-12-09  Fred Fish  <fnf@redhat.com>

	* gdb.base/break.c (marker1, marker2, marker3, marker4): Move
	functions to break1.c and leave prototypes behind.  Add more
	"set breakpoint NN here" comments.
	* gdb.base/break1.c: New file.

	* gdb.base/break.exp: Handle compiling test case from multiple
	source files and change source file references as needed.
	* gdb.base/completion.exp: Ditto.
	* gdb.base/condbreak.exp: Ditto.
	* gdb.base/define.exp: Ditto.
	* gdb.base/ena-dis-br.exp: Ditto.
	* gdb.base/info-proc.exp: Ditto.
	* gdb.base/maint.exp: Ditto.
	* gdb.base/until.exp: Ditto.

	* gdb.base/condbreak.exp: Use bp_locationNN variables instead of
	hardcoded line numbers.
	* gdb.base/define.exp: Ditto.
	* gdb.base/ena-dis-br.exp: Ditto.
	* gdb.base/maint.exp: Ditto.
	* gdb.base/until.exp: Ditto.

	* gdb.base/completion.exp: Use "break1" for completion tests since
	"break" is no longer a unique prefix.

2003-12-06  Andrew Cagney  <cagney@redhat.com>

	* gdb.base/structs.exp (test_struct_returns): When applicable, set
	"return_value_unimplemented".  When an unimplemented struct return
	architecture, report incorrect values as a KFAIL

2003-12-05  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/rtti.exp: Accept new wording of warning from
	cp_lookup_rtti_type.

2003-12-05  Michael Chastain  <mec.gnu@mindspring.com>

	Partial fix for PR testsuite/1456.
	* gdb.base/scope.exp (test_at_main): Replace references to
	gcc_compiled with calls to test_compiler_info.
	(test_at_foo): Likewise.
	(test_at_bar): Likewise.

2003-12-04  Michael Chastain  <mec.gnu@mindspring.com>

	Partial fix for PR testsuite/1456.
	* gdb.base/so-impl-ld.exp: Replace reference to gcc_compiled with call
	to test_compiler_info.

2003-12-03  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.base/so-impl-ld.exp: Update copyright notice.

2003-12-02  Michael Chastain  <mec.gnu@mindspring.com>

	Partial fix for PR testsuite/1456.
	* gdb.base/mips_pro.exp: Replace references to gcc_compiled with calls
	to test_compiler_info.

2003-11-28  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.objc/objcdecode.exp: Match and KFAIL the output that comes
	from current versions of gdb.  Clean up regular expressions.
	Delete redundant timeout case.

2003-11-28  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.objc/nondebug.exp: Match and KFAIL the output that comes
	from current versions of gdb.  Clean up regular expressions.
	Delete redundant timeout case.

2003-12-01  Michael Chastain  <mec.gnu@mindspring.com>

	Partial fix for PR testsuite/1456.
	* gdb.base/callfuncs.exp (do_function_calls): Replace reference to
	gcc_compiled with call to test_compiler_info.

2003-11-30  Michael Chastain  <mec.gnu@mindspring.com>

	Partial fix for PR testsuite/1456.
	* gdb.base/list.exp (test_list_function): Delete unused declaration
	of gcc_compiled.

2003-11-29  Michael Chastain  <mec.gnu@mindspring.com>

	Partial fix for PR testsuite/1456.
	* gdb.base/complex.exp: Replace reference to gcc_compiled with
	call to test_compiler_info.

2003-11-29  Mark Kettenis  <kettenis@gnu.org>

	* gdb.asm/asm-source.exp: Initialize asm-note to "empty".  Set
	asm-note to "netbsd" for *-*-netbsdelf* and x86_64-*-netbsd*.  Use
	it to create the appropriate note.inc.
	* gdb.asm/asmsrc1.s: Include "note.inc".
	* gdb.asm/netbsd.inc: New file.
	* gdb.asm/empty.inc: New file.

2003-11-28  Michael Chastain  <mec.gnu@mindspring.com>

	Partial fix for PR testsuite/1456.
	* gdb.base/constvars.exp: Replace references to gcc_compiled with
	calls to test_compiler_info.

2003-11-27  Michael Chastain  <mec.gnu@mindspring.com>

	Partial fix for PR testsuite/1456.
	* gdb.base/volatile.exp: Replace references to gcc_compiled with
	calls to test_compiler_info.

2003-11-27  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/structs.exp: Use i*86-*-* instead of i686-*-* as a
	pattern for the KFAILs.

2003-11-25  Adam Fedor  <fedor@gnu.org>

	* gdb.objc/objcdecode.exp: Test for PR objc/1238.
	* gdb.objc/objcdecode.m: New file.

2003-11-25  Adam Fedor  <fedor@gnu.org>

	* gdb.objc/nondebug.exp: Test for PR objc/1236.
	* gdb.objc/nondebug.m: New file.

2003-11-26  Ben Elliston  <bje@wasabisystems.com>

	* gdb.asm/asm-source.exp: Make sure the final link succeeds on
	NetBSD as it does on FreeBSD.  Modelled on a similar change by
	Mark Kettenis on 2003-05-30.
	(link-flags): Set to "--entry _start" regardless of target.
	Special linker flags are to be appended to $link-flags.
	* gdb.asm/mips.inc (gdbasm_startup): Remove __start label.

2003-11-25  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/method.exp: Accept output of new demangler.

2003-11-25  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb/class2.exp: New file.
	* gdb/class2.cc: New file.

2003-11-25  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/templates.exp (test_ptype_of_templates): Accept output
	of new demangler.

2003-11-23  Mark Kettenis  <kettenis@gnu.org>

	* gdb.arch/i386-unwind.exp: Use gdb_run_cmd and gdb_expect instead
	of gdb_test "run".

2003-11-23  Mark Kettenis  <kettenis@gnu.org>

	* gdb.arch/i386-unwind.exp: Don't use runto_main.  Change
	"continue" into "run".

2003-11-23  Michael Chastain  <mec.gnu@mindspring.com>

	Partial fix for PR testsuite/1456.
	* gdb.cp/ambiguous.exp: Replace reference to gcc_compiled with
	call to test_compiler_info.
	* gdb.cp/ctti.exp: Likewise.
	* gdb.cp/derivation.exp: Likewise.
	* gdb.cp/member-ptr.exp: Likewise.
	* gdb.cp/virtfunc.exp (test_virtual_calls): Remove unused
	reference to gcc_compiled.

2003-11-23  Michael Chastain  <mec.gnu@mindspring.com>

	Fix PR testsuite/1463.
	* gdb.base/structs.exp (start_structs_test): Call
	get_debug_format before using the debug format.

2003-11-22  Andrew Cagney  <cagney@redhat.com>

	* lib/gdb.exp (gdb_test_multiple): Add simple example.
	* gdb.base/structs.exp: Use gdb_test_multiple.

2003-11-20  Andrew Cagney  <cagney@redhat.com>

	* gdb.base/structs.exp: Handle and recover from internal errors.
	Replace "foo${n}" with "foo<n>" in test messages.

	* gdb.base/structs.exp: Update copyright.  Rewrite.
	* gdb.base/structs.c: Update copyright.  Rewrite.

	* lib/gdb.exp (gdb_internal_error_resync): Issue a perror when the
	resync count exceeded.

	* gdb.base/maint.exp: Use gdb_internal_error_resync to recover
	from the internal error.
	* lib/gdb.exp (gdb_internal_error_resync): New procedure.
	Original from Jim Blandy.
	(gdb_test_multiple): Use gdb_internal_error_resync.

2003-11-19  Andrew Cagney  <cagney@redhat.com>

	* gdb.base/callfuncs.exp: Change the XFAILed descriptor test to a
	KFAIL.

2003-11-17  Mark Kettenis  <kettenis@gnu.org>

	New testcase for PR backtrace/1435.
	* gdb.arch/i386-unwind.exp: New file.
	* gdb.arch/i386-unwind.c: New file.

2003-11-17  Andrew Cagney  <cagney@redhat.com>

	* lib/gdb.exp (compiler_info): New global.
	(test_compiler_info): New function.
	(get_compiler_info): Set compiler_info.
	* lib/compiler.c, lib/compiler.cc: Add copyright.  When GNUC, set
	"compiler_info" to gcc-<major>-<minor>.

2003-11-15  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.trace/configure: Remove.

2003-11-13  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.base/break.c: Add comments to aid finding line numbers for
	breakpoints.
	* gdb.base/break.exp: Remove all references to explicit line
	numbers.

2003-11-11  Nick Clifton  <nickc@redhat.com>

	* gdb.base/shreloc.exp: Do not run for targets which do not
	support shared objects.

2003-11-10  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.base/fileio.exp: Drop tests for nointerrupts and noinferiorio.
	Don't run tests if nofileio flag is given.

2003-11-07  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.cp/annota3.exp: Make sure we can match 'Hardware watchpoint'
	as well as 'Watchpoint'.

2003-11-06  Elena Zannoni  <ezannoni@redhat.com>

	Reported by Jim Ingham <jingham@apple.com>:
	* gdb.base/annota1.exp: Match at least one occurrence of the
	signal handler annotation.

2003-11-06  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.cp/annota2.exp: Make sure we can match 'Hardware watchpoint'
	as well as 'Watchpoint'.

2003-11-05  Michael Chastain  <mec@shout.net>

	* gdb.mi/pthreads.c (routine): Handle early return from sleep.

2003-11-03  Kris Warkentin  <kewarken@qnx.com>

	* gdb.arch/gdb1291.c: New test file.
	* gdb.arch/gdb1291.exp: New test script.
	* gdb.arch/gdb1431.c: New test file.
	* gdb.arch/gdb1431.exp: New test script.

2003-10-22  Michael Chastain  <mec@shout.net>

	* gdb.mi/pthreads.c: Add copyright notice.

2003-10-22  Michael Chastain  <mec@shout.net>

	* gdb.threads/pthreads.c: Add copyright notice.

2003-10-20  Michael Chastain  <mec@shout.net>

	* gdb.base/gdb1056.exp: New test script.

2003-10-13  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.threads/killed.exp: Use gdb_run_cmd.

2003-10-13  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.base/gcore.exp: Issue an UNSUPPORTED and exit if we can't
	create a core file.
	* gdb.threads/gcore-thread.exp: Likewise.

2003-10-13  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.base/call-rt-st.c (struct bit_flags_char_t): New bitfield
	type, based on char type.
	(struct bit_flags_short_t): New bitfield type, based on short type.
	(init_bit_flags_char): New fuction.
	(init_bit_flags_short): Ditto.
	(print_bit_flags_char): Ditto.
	(print_bit_flags_short): Ditto.
	(main): Add handling for bit_flags_char_t and bit_flags_short_t.

2003-10-11  Michael Chastain  <mec@shout.net>

	* gdb.base/call-rt-st.exp: Update copyright year.

2003-10-10  Kei Sakamoto  <sakamoto.kei@renesas.com>

	* config/hmsirom.exp: Replace "Hitachi" with "Renesas".
	* gdb.disasm/sh3.s: Ditto.

2003-10-07  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.threads/switch-threads.exp: New test.
	* gdb.threads/switch-threads.c: New source file.

2003-10-07  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.base/ending-run.exp: Add sh specific case.

2003-10-06  Andrew Cagney  <cagney@redhat.com>

	* gdb.base/watchpoint.exp: Delete obsolete clear_xfail.
	* gdb.disasm/mn10200.exp: Delete obsolete file.

2003-09-29  Daniel Jacobowitz  <drow@mvista.com>

	* ChangeLog: Correct an entry command.exp -> commands.exp.
	* gdb.base/commands.exp (bp_deleted_in_command_test)
	(temporary_breakpoint_commands): Check noargs.

2003-09-25  David Carlton  <carlton@kealia.com>

	* gdb.cp/namespace.exp: Tweak comments.  Add non-quoted versions
	of some print tests, where appropriate.  Add tests for C::D::cd,
	E::ce, F::cXfX, G::XgX.
	* gdb.cp/namespace.cc: Add XgX, cXfX, ce.

2003-09-25  Richard Earnshaw  <rearnsha@arm.com>

	* lib/java.exp (java_init): Import target_alias before using it.

2003-09-25  David Carlton  <carlton@kealia.com>

	* gdb.base/corefile.exp: Delete obsolete setup_xfail.

2003-09-23  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.base/selftest.exp: Accomodate more instruction reordering
	weirdness.

2003-09-17  Michael Chastain  <mec@shout.net>

	* gdb.cp/gdb1355.exp: New file.
	* gdb.cp/gdb1355.c: New file.

2003-09-15  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.asm/asm-source.exp: Add sh*-*-* as supported target.
	* gdb.asm/sh.inc: New file.

2003-09-11  David Carlton  <carlton@kealia.com>

	* gdb.cp/namespace.exp: Add tests for namespace types.
	* gdb.cp/maint.exp (test_help): Test 'help maint cp namespace'.
	(test_namespace): New.

2003-09-11  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.base/relocate.exp: Handle new gdb output at startup.
	* gdb.stabs/weird.exp: Ditto.

2003-09-08  Michael Chastain  <mec@shout.net>

	* gdb.base/gdb1250.c: Rename 'gamma' to 'my_gamma'.

2003-09-07  Michael Chastain  <mec@shout.net>

	* gdb.cp/classes.exp: Accommodate both 'syntax error' and
	'parse error'.

2003-09-07  Mark Kettenis  <m.kettenis@osp.nl>

	* gdb.arch/i386-prologue.exp: Add checks for saved registers.

2003-08-30  Michael Chastain  <mec@shout.net>

	* gdb.base/selftest.exp: Remove support for m68k*-*-hpux.
	* gdb.gdb/observer.exp: Ditto.
	* gdb.gdb/xfullpath.exp: Ditto.

2003-08-29  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/interrupt.exp: XFAIL "call function when asleep" for
	*-*-*bsd*.

2003-08-28  Jeff Johnston  <jjohnstn@redhat.com>

	* gdb.base/dump.exp: Skip for ia64.

2003-08-25  Jeff Johnston  <jjohnstn@redhat.com>

	* gdb.asm/asm-source.exp: Add ia64 support.
	* gdb.asm/ia64.inc: New file.

2003-08-22  Michael Chastain  <mec@shout.net>

	* gdb.cp: New directory.
	* gdb.cp/*: Copy from gdb.c++/*.
	* gdb.c++/*: Remove.
	* Makefile.in: Change gdb.c++ to gdb.cp.
	* configure.in:  Ditto.
	* configure: Regnerate.

2003-08-18  Mark Kettenis  <kettenis@gnu.org>

	* gdb.arch/i386-prologue.exp: Add testcase for PR backtrace/1338.
	* gdb.arch/i386-prologue.c (gdb1338): Add function.

2003-08-17  Daniel Jacobowitz  <drow@mvista.com>

	* mi-var-display.exp (-var-list-children weird): Accept function
	pointers with argument types.
	* mi1-var-display.exp (-var-list-children weird): Likewise.
	* mi2-var-display.exp (-var-list-children weird): Likewise.

2003-08-17  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.base/annota3.exp: Add missing newline.

2003-08-06  Michael Chastain  <mec@shout.net>

	* gdb.java/jmisc1.exp: Add test for pr gdb/1322.

2003-08-12  Michael Snyder  <msnyder@redhat.com>

	* gdb.base/float.exp: Add test for SH.

2003-08-10  Mark Kettenis  <kettenis@gnu.org>

	* gdb.arch/i386-prologue.c, gdb.arch/i386-prologue.exp: New files.

2003-08-07  Elena Zannoni  <ezannoni@redhat.com>

       * gdb.base/completion.exp: Remove reduntant completion test
       on filename.

2003-08-07  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.base/attach.exp, gdb.base/detach.exp, gdb.base/gcore.exp,
	gdb.mi/mi-basics.exp, gdb.threads/gcore-thread.exp,
	gdb.trace/save-trace.exp: Make sure that full pathnames are
	escaped correctly.

2003-08-07  Elena Zannoni  <ezannoni@redhat.com>

	* configure.in: Don't generate config.h from config.hin.
	* configure: Regenerate.
	* config.hin: Remove file.
	* gdb.mi/pthreads.c: Remove include of config.h, and other ifdefs.
	* gdb.threads/pthreads.c: Ditto.

2003-08-07  Daniel Jacobowitz  <drow@mvista.com>

	From Kei Sakamoto <sakamoto.kei@renesas.com>:
	* gdb.asm/asm-source.exp : Add -lgloss to link-flags.
	* gdb.asm/m32r.inc : Remove an illegal nop after bl instruction.
	Replace ld24 with seth/add3.

2003-08-02  Andrew Cagney  <cagney@redhat.com>

	* gdb.base/annota3.exp: New file.
	* gdb.base/annota3.c: New file.
	* gdb.c++/annota3.exp: New file.
	* gdb.c++/annota3.cc: New file.

2003-07-29  Michael Chastain  <mec@shout.net>

	* gdb.threads/tls.c (spin): Check errno only if sem_wait
	actually failed.
	(do_pass): Likewise.
	* gdb.threads/tls.exp: Always initialize no_of_threads.

2003-07-27  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.threads/print-threads.exp (test_all_threads): Loosen KFAIL
	pattern.
	* gdb.threads/tls-shared.exp: Don't use gdb_suppress_entire_file.
	* gdb.threads/tls.exp: Recognize one case of the host library not
	supporting TLS.

2003-07-27  Andrew Cagney  <cagney@redhat.com>

	* gdb.base/fileio.exp: Use SH when running commands using
	remote_exec.

2003-07-24  Daniel Jacobowitz  <drow@mvista.com>

	From Kei Sakamoto <sakamoto.kei@renesas.com>:
	* gdb.base/relocate.c (dummy): New padding array.

2003-07-22  Michael Snyder  <msnyder@redhat.com>

	* gdb.disasm/8300s.s: Fix syntax of bsr insn.

	* gdb.disasm/h8300s.exp : Minor changes in disassembler output require
	patterns to be more general, accepting old and new output.
	Some output chars (such as '+') also must be quoted.
	Some addresses are displayed numerically instead of
	symbolically.

2003-07-23  Michael Snyder  <msnyder@redhat.com>

	* gdb.base/return2.exp: Don't test long-long return.

	* gdb.disasm/t01_mov.s: New file, h8300sx disassembly tests.
	* gdb.disasm/t01_mov.exp: Ditto.
	* gdb.disasm/t02_mova.s: Ditto.
	* gdb.disasm/t02_mova.exp: Ditto.
	* gdb.disasm/t03_add.s: Ditto.
	* gdb.disasm/t03_add.exp: Ditto.
	* gdb.disasm/t04_sub.s: Ditto.
	* gdb.disasm/t04_sub.exp: Ditto.
	* gdb.disasm/t05_cmp.s: Ditto.
	* gdb.disasm/t05_cmp.exp: Ditto.
	* gdb.disasm/t06_ari2.s: Ditto.
	* gdb.disasm/t06_ari2.exp: Ditto.
	* gdb.disasm/t07_ari3.s: Ditto.
	* gdb.disasm/t07_ari3.exp: Ditto.
	* gdb.disasm/t08_or.s: Ditto.
	* gdb.disasm/t08_or.exp: Ditto.
	* gdb.disasm/t09_xor.s: Ditto.
	* gdb.disasm/t09_xor.exp: Ditto.
	* gdb.disasm/t10_and.s: Ditto.
	* gdb.disasm/t10_and.exp: Ditto.
	* gdb.disasm/t11_logs.s: Ditto.
	* gdb.disasm/t11_logs.exp: Ditto.
	* gdb.disasm/t12_bit.s: Ditto.
	* gdb.disasm/t12_bit.exp: Ditto.
	* gdb.disasm/t13_otr.s: Ditto.
	* gdb.disasm/t13_otr.exp: Ditto.

2003-07-22  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.threads/tls.exp :Add kfail for 'info address' case.

2003-07-22  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.threads/tls.c : New file.
	* gdb.threads/tls.exp : New file.
	* gdb.threads/tls-main.c : New file.
	* gdb.threads/tls-shared.c : New file.
	* gdb.threads/tls-shared.exp : New file.

2003-07-22  Andreas Schwab  <schwab@suse.de>

	* gdb.asm/powerpc.inc (gdbasm_startup): Force alignment.

2003-07-20  Andreas Schwab  <schwab@suse.de>

	* gdb.base/selftest.exp (do_steps_and_nexts): Add more patterns
	due to insn reordering.

2003-07-15  Andrew Cagney  <cagney@redhat.com>

	* gdb.asm/asm-source.exp: Do not allow "start" in the backtrace.

2003-07-15  Michael Chastain  <mec@shout.net>

	* gdb.base/gdb1250.exp: New file.
	* gdb.base/gdb1250.c: New file.

2003-07-09  Michal Ludvig  <mludvig@suse.cz>

	* gdb.c++/templates.exp (test_ptype_of_templates): Recognize
	expansion of size_t to 'unsigned long', not only to 'unsigned'.

2003-07-09  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.threads/tls.c: New file.
	* gdb.threads/tls.exp: New file.
	* gdb.threads/tls-main.c: New file.
	* gdb.threads/tls-shared.c: New file.
	* gdb.threads/tls-shared.exp: New file.

2003-07-09  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.base/annota1.exp: Make sure that we properly escape the
	full path of the source file. Xfail more permissive patterns,
	due to a compiler debug info problem.

2003-07-07  Andreas Schwab  <schwab@suse.de>

	* gdb.asm/m68k.inc: New file.
	* gdb.asm/asm-source.exp: Use it for m68k-*-*.

	* gdb.objc/basicclass.exp ("Call an Objective-C method with no
	arguments"): Also match negative number.

	* gdb.base/float.exp ("info float"): Add test for m68k-*-*.

2003-07-03  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.base/store.c (charest): New typedef.
	(add_char): Rename to add_charest, update.
	(wack_char): Rename to wack_charest, update types.  Return l + r
	to keep r live across the call.
	(wack_short, wack_int, wack_long, wack_longest, wack_float)
	(wack_double, wack_doublest): Return l + r to keep r live across
	the call.
	* gdb.base/store.exp: Accomodate store.c changes.

2003-06-30  David Carlton  <carlton@kealia.com>

	* gdb.c++/maint.exp (test_invalid_name): New.
	(test_first_component): Add tests for invalid names.

2003-06-29  Michael Chastain  <mec@shout.net>

	* gdb.c++/inherit.exp (test_print_svi_classes): Accept gdb
	output of '<VTT for class>' for virtual base classes.

2003-06-29  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.base/completion.exp: Tab-complete "complet" instead of
	"compl".
	* gdb.base/complex.exp, gdb.base/complex.c: New files.

2003-06-29  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.base/constvars.exp: Remove most xfails for GCC 3.x.
	* gdb.base/volatile.exp: Likewise.

2003-06-29  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.threads/print-threads.exp (test_all_threads): Add kfail for
	gdb/1265.

2003-06-28  Michael Chastain  <mec@shout.net>
	    Daniel Jacobowitz  <drow@mvista.com>

	* gdb.base/selftest.exp (do_steps_and_nexts): Increase maximum
	initial line count of 'captured_main' from 26 to 32.
	(test_with_self): Allow xmalloc call to be interleaved with the
	preceding two lines.

2003-06-24  Joel Brobecker  <brobecker@gnat.com>

	* gdb.base/bang.exp: New testcase.

2003-06-23  Joel Brobecker  <brobecker@gnat.com>

	* gdb.base/langs.exp: Add some tests for the "minimal" language
	support.

2003-06-23  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.objc/basicclass.exp: Return -1 if we cannot compile
	the testcase.

2003-06-22  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.base/relocate.exp: Test add-symbol-file with a variable
	offset.

2003-06-22  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.c++/pr-1210.cc: New file.
	* gdb.c++/pr-1210.exp: New file.

2003-06-21  Daniel Jacobowitz  <drow@mvista.com>

	* lib/mi-support.exp (mi_run_cmd): Expect an MI response to
	000-exec-continue.

2003-06-15  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/attach.exp: Use -1 for the ID of a nonexistent process
	on *-*-*bsd* instead of *-*-freebsd*.

2003-06-14  Andrew Cagney  <cagney@redhat.com>

	* gdb.base/store.exp: Test longest and doublest.  Test all
	parameters.  Weaken return statement match.
	* gdb.base/store.c: Add longest and doublest - aka long long and
	long double functions.  Put all parameters into local register
	variables.  Use negative values.

2003-06-14  Andrew Cagney  <cagney@redhat.com>

	* gdb.base/fileio.c: Include <errno.h>, and <sys/wait.h>.  Gag
	-Wformat errors.  Add lost line.  Use WEXITSTATUS to get system
	exit status.
	* gdb.base/fileio.exp: Disable target when nointerrupts and
	noinferiorio, instead of limiting it to remote.  Use remote_exec
	instead of system.

2003-06-12  Jeff Johnston  <jjohnstn@redhat.com>

	* gdb.base/float.exp: Add ia64 support.

2003-06-12  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.base/fileio.exp: Run only on remote targets.

2003-06-10  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.base/fileio.c: New file, testing File-I/O.
	* gdb.base/fileio.exp: Ditto.

2003-06-09  Raoul Gough  <RaoulGough@yahoo.co.uk>

	* gdb.base/shreloc.exp: New file, check symbol values obtained from
	shared objects after relocation at load time (gdb PR/1132).
	* gdb.base/shreloc.c, gdb.base/shreloc1.c, gdb.base/shreloc2.c:
	as above, part of the shared object relocation test.

2003-06-08  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/readline.exp: Add tests for operate-and-get-next with a
	fully filled history list.
	* gdb.base/gdb_history: New file.

	* gdb.base/signals.exp: XFAIL "continue to func1" on
	i*86-*-freebsd*.

	* gdb.base/attach.exp: When trying to attach to a nonexistent
	process, make it possible to specify the PID based on the target,
	and do so for *-*-freebsd*.

2003-06-02  Richard Henderson  <rth@redhat.com>

	* gdb.base/float.exp: Add expected regexp for alpha-*-*.

2003-06-02  Richard Henderson  <rth@redhat.com>

	* gdb.base/selftest.exp: Next over lim_at_start initialization.

2003-06-02  Richard Henderson  <rth@redhat.com>

	* gdb.base/dump.exp [alpha*-*-*]: Add -taso linker switch.

2003-06-01  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.asm/asm-source.exp: Dissassemble from &globalvar instead
	of globalvar.

2003-06-01  Mark Kettenis  <kettenis@gnu.org>

	* gdb.asm/asm-source.exp: Check for memory read errors in
	disassembler test on *BSD too.

2003-06-01  Richard Henderson  <rth@redhat.com>

	* gdb.asm/alpha.inc (gdbasm_enter): Use numeric register names
	for .frame.
	(gdbasm_call): Lose ldgp.
	(gdbasm_startup): Add frame information.
	* gdb.asm/asm-source.exp (alpha*-*): Add -no-mdebug to asm-flags.

2003-05-31  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/float.exp: Expect similar output for x86_64-*-* as for
	i?86-*-*.

2003-05-30  Mark Kettenis  <kettenis@gnu.org>

	* gdb.asm/asm-source.exp: Make sure the final link succeeds on
	FreeBSD.

2003-05-29  Richard Henderson  <rth@redhat.com>

	* gdb.asm/alpha.inc: New file.
	* gdb.asm/asm-source.exp: Use it.

2003-05-29  Jim Blandy  <jimb@redhat.com>

	* gdb.base/corefile.exp: Find corefiles on Linux, which names them
	'core.PID'.

2003-05-22  Jim Blandy  <jimb@redhat.com>

	* gdb.base/corefile.exp: Tolerate stuff after argument parens in
	backtrace.

2003-05-20  David Carlton  <carlton@math.stanford.edu>

	* gdb.c++/namespace1.cc: Actually do 'cvs add' before committing
	this time.

2003-05-19  David Carlton  <carlton@bactrian.org>

	* gdb.c++/rtti.exp: New file, containing tests for PR c++/488.
	* gdb.c++/rtti.h, gdb.c++/rtti1.cc, gdb.c++/rtti2.cc: Ditto.

2003-05-19  David Carlton  <carlton@bactrian.org>

	* gdb.c++/namespace.exp: Add namespace scope and anonymous
	namespace tests.
	Bump copyright date.
	* gdb.c++/namespace.cc: Add anonymous namespace and namespace C.
	(main): Call C::D::marker2.
	* gdb.c++/namespace1.cc: New file.

2003-05-14  Jeff Johnston  <jjohnstn@redhat.com>

	Roland McGrath  <roland@redhat.com>
	* gdb.threads/linux-dp.exp: Account for fact that in nptl model
	there is no manager thread.

2003-05-08  Jeff Johnston  <jjohnstn@redhat.com>

	* gdb.threads/schedlock.exp: Remove assumption that all threads
	will run in a particular small time slice.  Also ensure we break
	in one of the child threads rather than the main thread.

2003-05-07  Jim Blandy  <jimb@redhat.com>

	Add support for assembly source testing on the s390x.
	* gdb.asm/asm-source.exp: Add a case for the s390x-*-*
	architecture.
	* gdb.asm/s390x.inc: New file.

	* gdb.asm/asm-source.exp: Use a 'switch -glob' statement, not a
	succession of 'if' statements.

2003-05-05  Andrew Cagney  <cagney@redhat.com>

	* gdb.base/maint.exp: Add tests for "maint print dummy-frames".

2003-05-05  Andrew Cagney  <cagney@redhat.com>

	* gdb.base/watchpoint.exp: Rename CALL_DUMMY_BREAKPOINT_OFFSET to
	DEPRECATED_CALL_DUMMY_BREAKPOINT_OFFSET in comments.

2003-05-02  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.base/charset.exp: Update based on new behavior of set/show
	charset commands.

2003-05-01  Andrew Cagney  <cagney@redhat.com>

	* gdb.asm/asm-source.exp: Check that "disassm" and "x/i" of a
	variable do not give memory errors.

2003-04-30  Adam Fedor  <fedor@gnu.org>

	* Makefile.in (ALL_SUBDIRS): Add gdb.objc
	* configure.in (AC_OUTPUT): Add gdb.objc/Makefile
	* gdb.objc/Makefile.in, gdb.objc/basicclass.exp,
	gdb.objc/basicclass.m: : New files

	* lib/gdb.exp (gdb_compile_objc): New procedure.

2003-04-27  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.base/signals.exp: Make backtrace tests more specific.

2003-04-23  David Carlton  <carlton@bactrian.org>

	* gdb.c++/maint.exp (test_first_component): Add tests for
	'operator' in more locations.

2003-04-16  Kevin Buettner  <kevinb@redhat.com>

	* gdb.base/args.exp: Invoke gdb_load for simulator targets.

2003-04-16  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.base/completion.exp: Make 'info func mark' complete on 'info
	func marke' instead. Update test name.

2003-04-15  David Carlton  <carlton@math.stanford.edu>

	* gdb.c++/maint.exp: New file.

2003-04-14  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.threads/schedlock.c: Change type of thread function argument
	to long, to avoid warnings on 64-bit platforms.

2003-04-14  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.base/attach.exp: Add new message from ptrace in case of
	attaching to nonexistent process.

2003-04-11  Jim Blandy  <jimb@redhat.com>

	* gdb.c++/derivation.exp, gdb.c++/overload.exp,
	gdb.c++/userdef.cc: Place comments on the lines to which the
	marker function might return.
	* gdb.c++/derivation.exp, gdb.c++/overload.exp,
	gdb.c++/userdef.exp: Look for those comments to check that we've
	returned to the right place, instead of checking line numbers.

2003-04-11  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.threads/pthreads.exp (test_startup): When setting a breakpoint
	match on sourcefile name, instead of directory name.

2003-04-10  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.base/completion.exp: Use string_to_regexp to match the
	working directory name.

2003-04-09  Jim Blandy  <jimb@redhat.com>

	* gdb.c++/derivation.exp, gdb.c++/overload.exp,
	gdb.c++/userdef.exp: If GDB fails to restore the selected frame
	after an inferior function call, report the failure, but allow the
	test to continue.

2003-04-05  Stephane Carrez  <stcarrez@nerim.fr>

	* gdb.base/break.exp: marker4() is defined at line 46 when compiled
	with -DPROTOTYPES.

2003-04-05  Stephane Carrez  <stcarrez@nerim.fr>

	* gdb.base/break.exp: Revert last patch.

2003-04-04  Stephane Carrez  <stcarrez@nerim.fr>

	* gdb.base/break.exp: marker4() is defined at line 46 when compiled
	with -DPROTOTYPES.

2003-04-02  Andrew Cagney  <cagney@redhat.com>

	* gdb.base/callfuncs.exp: Make "print add" messages unique.
	* gdb.base/ending-run.exp: Put spaces around "breakpoint" to stop
	matching directories by the name breakpoint.
	* gdb.base/pointers.exp: Make "ptype pppC" message consistent.
	Make "continue to marker1" consistent.
	* gdb.base/call-rt-st.exp: Make "finish out from loop_count"
	message consistent.
	* lib/gdb.exp: Put "the program is no longer running", and "the
	program exited" in parenthesis.
	* lib/mi-support.exp: Ditto.

2003-04-02  Bob Rossi  <bob_rossi@cox.net>

	* gdb.mi/mi-file.exp: New file for -file-list-exec-source-file.

2003-03-29  Andrew Cagney  <cagney@redhat.com>

	* gdb.base/sizeof.c (main): Print the value of '\377'.
	* gdb.base/sizeof.exp: Check the sign of '\377'.

2003-03-27  Michael Chastain  <mec@shout.net>

	* gdb.base/gdb1090.exp: New file.
	* gdb.base/gdb1090.cc: New file.

2003-03-27  J. Brobecker  <brobecker@gnat.com>

	* gdb.gdb/observer.exp: New regression test.

2003-03-27  Michael Chastain  <mec@shout.net>

	* gdb.base/list.exp: Remove setup_xfail_format for DWARF 1.
	* gdb.base/ptype.exp: Likewise.

2003-03-27  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.c++/casts.exp: Fix startup to run also on embedded targets.

2003-03-26  Michael Chastain  <mec@shout.net>

	* gdb.base/ptype.exp: Actually use some typedef'd types.

2003-03-21  Stephane Carrez  <stcarrez@nerim.fr>

	* gdb.asm/asm-source.exp: Set asm-arch for m6811 and m6812.
	* gdb.asm/m68hc11.inc: New file for HC11/HC12 macros.

2003-03-20  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.base/default.exp: Fix regular expression.

2003-03-20  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.base/args.exp: Fix regular expression.

2003-03-20  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.base/help.exp: Allow Win32 child process.

2003-03-20  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.base/ending-run.exp: Check for Cygwin specific wrapper function
	when stepping out of main().

2003-03-20  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.base/default.exp: Check for win32 specific message when calling
	"run" without executable.

2003-03-20  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.base/args.exp: Expect .exe in output.

2003-03-20  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.asm/asm-source.exp: Add appropriate --entry linker flag for
	Cygwin native.

2003-03-17  Andrew Cagney  <cagney@redhat.com>

	From Elena Zannoni <ezannoni@redhat.com>.  Test e500 abi and
	vector registes.
	* gdb.arch/e500-regs.c, gdb.arch/e500-regs.exp: New files.
	* gdb.arch/e500-abi.c, gdb.arch/e500-abi.exp: New files.

2003-03-17  David Carlton  <carlton@math.stanford.edu>

	* gdb.base/watchpoint.exp (test_watchpoint_and_breakpoint): New
	test, for PR breakpoints/38.
	Call test_watchpoint_and_breakpoint.
	* gdb.base/watchpoint.c (func3): New function.
	(main): Call func3.

2003-03-04  David Carlton  <carlton@math.stanford.edu>

	* gdb.c++/templates.exp (do_tests): Accept valid const in "print
	Garply<Garply<char> >:: garply".
	(test_ptype_of_templates): KFAIL "ptype T5<int>" and "ptype t5i"
	with respect to PR c++/1111; note also PR c++/1113.
	(test_template_breakpoints): KFAIL "constructor breakpoint" with
	respect to PR c++/1062.
	KFAIL "destructor breakpoint" with respect to PR c++/1112.

2003-03-03  David Carlton  <carlton@math.stanford.edu>

	* gdb.c++/classes.exp (test_enums): KFAIL "ptype obj_with_enum"
	with respect to PR c++/57.
	KFAIL "print (ClassWithEnum::PrivEnum) 42" with respect to PR
	c++/826.
	Create "print ('ClassWithEnum::PrivEnum') 42"; KFAIL it with
	respect to PR c++/57.

2003-03-03  David Carlton  <carlton@math.stanford.edu>

	* gdb.c++/templates.exp (do_tests): Convert the KFAILs with
	respect to PR c++/33 into FAILs.

2003-03-03  Michael Chastain  <mec@shout.net>

	* configure.in: Update copyright years.

2003-03-03  Michael Chastain  <mec@shout.net>

	* Makefile.in: Update copyright years.

2003-02-28  David Carlton  <carlton@math.stanford.edu>

	* gdb.c++/classes.exp (test_ptype_class_objects): Accept it if we
	print class instead of struct and/or superfluous protection
	specifiers, as long as the resulting output is equivalent to the
	source code.
	Delete FIXME from end of messages on tests that don't need
	fixing.

2003-02-28  David Carlton  <carlton@math.stanford.edu>

	* gdb.c++/templates.exp (do_tests): Allow const in the two
	Foo<volatile char *>::foo tests.

2003-02-27  Michael Snyder  <msnyder@redhat.com>

	* gdb.base/restore.c (main): Return zero, so exit code
	will be consistant.

2003-02-26  David Carlton  <carlton@math.stanford.edu>

	* gdb.c++/templates.exp (do_tests): KFAIL the "print Foo<volatile
	char *>::foo" test with respect to PR c++/33.  Create a new test
	which is identical to that one except that it doesn't put the
	space between the "char" and the "*"; KFAIL it, too.

2003-02-26  David Carlton  <carlton@math.stanford.edu>

	* gdb.c++/templates.exp (do_tests): Convert XFAILs about printing
	template types into either PASSes or KFAILs (corresponding to PR
	c++/57).  Tweak indentation.  Update copyright.

2003-02-23  Stephane Carrez  <stcarrez@nerim.fr>

	* lib/gdb.exp: Don't execute C++ tests on m6811/m6812 targets.

2003-02-13  Michael Chastain  <mec@shout.net>

	* gdb.base/exprs.exp: Remove i960 remnants.
	* gdb.base/funcargs.exp: Likewise.
	* gdb.base/list.exp: Likewise.
	* gdb.base/ptype.exp: Likewise.

2003-02-14  David Carlton  <carlton@math.stanford.edu>

	* gdb.c++/virtfunc.exp (test_virtual_calls): Change 'print
	pEe->D::vg()" from XFAIL to KFAIL.

2003-02-13  Jason Molenda  (jmolenda@apple.com)

	* gdb.base/maint.exp: Update maint print statistics regexp to include
	new entries.

2003-02-13  Michael Chastain  <mec@shout.net>

	* gdb.c++/inherit.exp: Remove call to get_debug_format.

2003-02-12  Michael Chastain  <mec@shout.net>

	* gdb.c++/classes.exp: Remove setup_xfail_format for DWARF 1.
	* gdb.c++/inherit.exp: Likewise.
	* gdb.c++/cplusfuncs.exp: Remove suppression logic for DWARF 1.
	* gdb.c++/templates.exp: Likewise.
	* gdb.c++/virtfunc.exp: Likewise.

2003-02-06  Jason Molenda  (jason-cl@molenda.com)

	* gdb.mi/mi-syn-frame.c (subroutine): Add a comment explaining
	why the code is written that way.

2003-02-05  Michael Chastain  <mec@shout.net>

	* gdb.base/dump.exp: Add missing copyright line.

2003-02-05  Jason Molenda  (jason-cl@molenda.com)

	* gdb.mi/mi-syn-frame.c (subroutine): Add an extra statement
	at the beginning so the breakpoint doesn't get set on the loop.

2003-02-05  Michael Chastain  <mec@shout.net>

	* gdb.c++/local.exp: Relax the test for PR gdb/825 to accept
	output for configurations with gcc 2.95.3.

2003-02-05  Keith Seitz  <keiths@redhat.com>
	    Andrew Cagney  <ac131313@redhat.com>

	* gdb.mi/mi-cli.exp: New file.

2003-02-04  Michael Chastain  <mec@shout.net>

	* gdb.c++/anon-union.exp: Do not call gdb_suppress_entire_file.
	Call perror and then continue.

2003-02-03  Michael Chastain  <mec@shout.net>

	* gdb.c++/pr-1023.cc: New file.
	* gdb.c++/pr-1023.exp: New file.

2003-02-05  Jim Blandy  <jimb@redhat.com>

	* gdb.c++/local.exp: Don't expect Local to be in scope in main;
	it's local to foobar.  Check for it there, and check that it's not
	present in main.
	* gdb.c++/local.cc (marker2): New function.
	(foobar): Call marker1.
	(main): Call marker2 instead of marker1.

2003-02-04  Andrew Cagney  <ac131313@redhat.com>

	* gdb.disasm/mn10200.exp: Obsolete file.
	* gdb.trace/Makefile.in (clean mostlyclean): Remove mn10200.
	* gdb.disasm/Makefile.in (clean mostlyclean): Remove mn10200.
	* gdb.base/watchpoint.exp: Mark the mn10200 xfails as obsolete.

2003-02-04  David Carlton  <carlton@math.stanford.edu>

	* gdb.c++/overload.exp: Test intToChar(1).
	* gdb.c++/overload.cc (intToChar): New.
	(main): Call intToChar.

2003-02-03  David Carlton  <carlton@math.stanford.edu>

	* gdb.c++/ovldbreak.exp (continue_to_bp_overloaded): Add
	'might_kfail' arg.
	KFAIL some of the continue_to_bp_overloaded calls, according to
	PR c++/1025.

2003-02-01  Michael Chastain  <mec@shout.net>

	* gdb.base/advance.c (marker1): New marker function.
	* gdb.base/advance.exp: When the 'advance' command lands on the
	return breakpoint, it can legitimately stop on either the
	current line or the next line.  Accommodate both outcomes.
	* gdb.base/until.exp: Likewise.

2003-02-02  Andrew Cagney  <ac131313@redhat.com>

	2002-11-10 Jason Molenda (jason-cl@molenda.com):
	* gdb.mi/mi-var-child.exp: -var-list-children's CHILDREN field is
	now a list, not a tuple.
	* gdb.mi/mi-var-display.exp: Ditto.
	* gdb.mi/gdb792.exp: Ditto.

2003-02-01  Andrew Cagney  <ac131313@redhat.com>

	From 2002-11-09 Jason Molenda (jason-cl@molenda.com):
	* gdb.mi/mi-syn-frame.exp: New tests for synthetic frames in
	stack backtraces.
	* gdb.mi/mi-syn-frame.c: Part of same.

2003-02-01  Mark Kettenis  <kettenis@gnu.org>

	* gdb.mi/gdb669.exp, gdb.mi/mi-pthreads.exp,
	gdb.mi/mi1-pthreads.exp: Return instead of calling
	gdb_suppress_entire_file.

2003-02-01  Mark Salter  <msalter@redhat.com>

	* gdb.asm/arm.inc (gdbasm_startup): Clear frame pointer, not sp.

2003-01-31  Mark Salter  <msalter@redhat.com>

	* lib/mi-support.exp (mi_gdb_load): Support remote targets.
	Support empty arg.

2003-01-30  Michael Chastain  <mec@shout.net>

	* lib/gdb.exp: Revert patch of 2003-01-06, which set LC_ALL.
	This was a workaround for a UTF-8 bug in readline 4.3.  The bug
	has been fixed in gdb/readline on 2003-01-09.

2003-01-29  Michael Snyder  <msnyder@redhat.com>

	* gdb.base/maint.exp: Allow for leading underscore in symbol.
	* gdb.base/display.exp: Allow for leading underscore in symbol.
	* gdb.base/args.exp: Skip if target does not support args passing.

2003-01-22  Daniel Jacobowitz  <drow@mvista.com>

	* lib/gdb.exp (gdb_test_multiple): New function, cloned from
	gdb_test.  Accept a list of expect arguments as the third
	parameter.
	(gdb_test): Use it.

2003-01-20  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.arch/altivec-abi.exp: Set variable 'srcfile' differently, to
	allow for different test tree configurations.  Update some
	tescases accordingly.
	* gdb.arch/altivec-regs.exp: Ditto.
	* gdb.asm/asm-source.exp: Ditto.
	* gdb.base/advance.exp: Ditto.
	* gdb.base/display.exp: Ditto.
	* gdb.base/long_long.exp: Ditto.
	* gdb.base/mips_pro.exp: Ditto.
	* gdb.base/overlays.exp: Ditto.
	* gdb.base/relocate.exp: Ditto.
	* gdb.base/setshow.exp: Ditto.
	* gdb.base/step-line.exp: Ditto.
	* gdb.base/step-test.exp: Ditto.
	* gdb.base/until.exp: Ditto.
	* gdb.c++/virtfunc.exp: Get rid of variable 'src'.

2003-01-17  David Carlton  <carlton@math.stanford.edu>

	* gdb.c++/demangle.exp (test_lucid_style_demangling): KFAIL test
	corresponding to PR c++/945.
	Update copyright.

2003-01-17  David Carlton  <carlton@math.stanford.edu>

	* gdb.c++/inherit.exp (test_print_mi_members): KFAIL tests
	corresponding to PR c++/68.

2003-01-17  David Carlton  <carlton@math.stanford.edu>

	* gdb.c++/cplusfuncs.exp (print_addr_2_kfail): New procedure.
	(test_paddr_hairy_functions): Call print_addr_2_kfail for
	hairyfunc5 through hairyfunc7.  KFAIL for PR c++/19.

2003-01-15  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.base/break.exp: Fix change of default location, because of
	removal of until tests.
	* gdb.base/help.exp: Update test for new 'until' help message.
	Add test for help on 'advance'.
	* gdb.base/args.exp: Fix foobar with GDBFLAGS global.

2003-01-15  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/default.exp: Adapt "info float" test for recent changes
	to that command.  Add test for "info vector".
	* gdb.base/float.exp: New file.  Add test for "info float" that
	resembles the old test in gdb.base/default.exp.

2003-01-15  David Carlton  <carlton@math.stanford.edu>

	* gdb.base/selftest.exp (do_steps_and_nexts): Allow gdb_sysroot.

2003-01-15  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.base/break.exp: Move the tests of until command from here...
	* gdb.base/until.exp: ... to here. New file. Add other tests.
	* gdb.base/advance.c: New file.
	* gdb.base/advance.exp: New file.

2003-01-14  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.base/args.c: New file.
	* gdb.base/args.exp: New file.

2003-01-14  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.c++/virtfunc.exp: Remove fixed XFAIL.

2003-01-14  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.threads/killed.exp: Use KFAIL for gdb/568.

2003-01-14  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.base/constvars.exp: Remove two extra XFAILs.  Update copyright
	dates.

2003-01-13  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.c++/printmethod.exp (print virtual method): Accept "(void)".

2003-01-13  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.base/printcmds.exp: Enable setup_kfail for gdb/538
	(ptype &*"foo").
	* gdb.c++/local.exp: Enable setup_kfail for gdb/482.

2003-01-13  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.mi/mi-console.exp: Remove extra "(known bug)".
	* gdb.mi/mi1-console.exp: Likewise.

2003-01-13  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.mi/mi-console.exp: Add KFAIL for "Hello message (known bug)".
	* gdb.mi/mi1-console.exp: Likewise.

2003-01-13  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.c++/overload.exp: Remove some fixed XFAILs.

2003-01-09  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.base/detach.exp: New test.

2003-01-09  Daniel Jacobowitz  <drow@mvista.com>

	* Makefile.in (ALL_SUBDIRS): New variable.
	(subdirs, clean, distclean): Use it.
	* gdb.arch/Makefile.in: Clean up Makefile.  Remove rules for
	regenerating Makefile, since it is generated from the top level.
	* gdb.asm/Makefile.in: Likewise.
	* gdb.base/Makefile.in: Likewise.
	* gdb.c++/Makefile.in: Likewise.
	* gdb.disasm/Makefile.in: Likewise.
	* gdb.java/Makefile.in: Likewise.
	* gdb.mi/Makefile.in: Likewise.
	* gdb.threads/Makefile.in: Likewise.
	* gdb.trace/Makefile.in: Likewise.

2003-01-09  David Carlton  <carlton@math.stanford.edu>

	* gdb.c++/annota2.exp: KFAIL "watch triggered on a.x".
	Add copyright year 2003.

2003-01-06  Michael Chastain  <mec@shout.net>

	* gdb.mi/mi-pthreads.exp (check_mi_thread_command_set):
	When selecting a thread, 'line' and 'file' are optional.
	* gdb.mi/mi1-pthreads.exp: Likewise.

2003-01-06  Andreas Schwab  <schwab@suse.de>

	* lib/gdb.exp: Set LC_ALL to "C" to avoid spurious testsuite
	failures.

2003-01-04  Daniel Jacobowitz  <drow@mvista.com>

	Fix PR gdb/844
	* lib/gdb.exp (gdb_compile): Handle "quiet" option.
	(gdb_compile_pthreads): Pass "quiet" to gdb_compile.

	* gdb.threads/gcore-thread.exp: Use gdb_compile_pthreads.  Return
	instead of calling gdb_suppress_entire_file.
	* gdb.threads/print-threads.exp: Likewise.
	* gdb.threads/schedlock.exp: Likewise.

	* gdb.threads/killed.exp: Return instead of calling
	gdb_suppress_entire_file.
	* gdb.threads/linux-dp.exp: Likewise.
	* gdb.threads/pthreads.exp: Likewise.

2003-01-04  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.base/callfuncs.exp: Don't XFAIL unprototyped functions for
	stabs.
	* gdb.base/completion.exp: Allow marker1(void) as well as marker1().
	* gdb.base/whatis.exp: Always allow (void) after function names.

2003-01-04  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.c++/casts.exp: Correct regexp.

2003-01-04  Mark Kettenis  <kettenis@gnu.org>

	* configure.in: Call AC_CONFIG_HEADER.  Don't call
	AC_CONFIG_SUBDIRS on gdb.arch, gdb.asm, gdb.base gdb.c++ gdb.java,
	gdb.disasm, gdb.mi, gdb.threads and gdb.trace.  Call
	AC_CHECK_HEADERS on pthread.h.  Put Makefiles in the
	aforementioned directories in the AC_OUPUT call.
	* config.hin: New file.
	* gdb.mi/gdb669.exp, gdb.mi/mi-pthreads.exp,
	gdb.mi/mi1-pthreads.exp, gdb.threads/gcore-thread.exp,
	gdb.threads/killed.exp, gdb.threads/print-threads.exp,
	gdb.threads/pthreads.exp, gdb.threads/schedlock.exp: Make sure we
	pass -I$objdir instead of -I$objdir/$subdir in compilation.
	* gdb.arch/configure.in, gdb.arch/configure, gdb.asm/configure.in,
	gdb.asm/configure, gdb.base/configure.in, gdb.base/configure,
	gdb.c++/configure.in, gdb.c++/configure, gdb.disasm/configure.in,
	gdb.disasm/configure, gdb.java/configure.in, gdb.java/configure,
	gdb.mi/configure.in, gdb.mi/configure, gdb.mi/config.in,
	gdb.threads/configure.in, gdb.threads/configure,
	gdb.threads/config.in, gdb.trace/configure.in,
	gdb.trace/configure: Removed.

2003-01-03  Michael Chastain  <mec@shout.net>

	* gdb.base/miscexprs.c: Fix PR gdb/697, "buglet in
	testsuite/gdb.base/miscexprs.c, off-by-1 array reference".

2003-01-03  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.base/store.exp: Fix regular expressions.

2002-12-28  Mark Kettenis  <kettenis@gnu.org>

	* configure.in: Rewrite.
	* configure: Regenerated.

2003-01-03  David Carlton  <carlton@math.stanford.edu>

	* gdb.base/psymtab.exp: New file.
	* gdb.base/psymtab1.c: Ditto.
	* gdb.base/psymtab2.c: Ditto.

2002-12-23  Adam Fedor  <fedor@gnu.org>

	* gdb.base/maint.exp: Update expect output to include 'ObjC'.

2002-12-23  David Carlton  <carlton@math.stanford.edu>

	* gdb.base/selftest.exp (do_steps_and_nexts): Allow initial brace
	and current_directory initialization.

2002-12-22  Jim Blandy  <jimb@redhat.com>

	* gdb.trace/tfind.exp: Pass '-O1' flag via the 'optimize' option,
	rather than as part of the output file name.

	* gdb.base/attach.exp: There's no need to copy the test program to
	/tmp; that was only ever necessary on HP/UX, and this test is
	entirely disabled there anyway.

2002-12-21  Jim Blandy  <jimb@redhat.com>

	* gdb.c++/psmang.exp: Doc fix.

	* gdb.c++/psmang.exp, gdb.c++/psmang1.cc, gdb.c++/psmang2.cc: New
	test.

2002-12-20  David Carlton  <carlton@math.stanford.edu>

	* gdb.c++/annota2.exp: KFAIL annotate-quit.

2002-12-18  Michael Chastain  <mec@shout.net>

	* gdb.c++/annota2.exp: Add copyright year 2002.

2002-12-17  David Carlton  <carlton@math.stanford.edu>

	* gdb.c++/try_catch.cc: Add marker comments.
	* gdb.c++/try_catch.exp: Get line numbers from marker comments.
	* gdb.c++/m-data.cc: Delete namespace __gnu_test.
	* gdb.c++/m-static.cc: Ditto.
	* gdb.c++/m-static1.cc: Ditto.
	* gdb.c++/try_catch.cc: Ditto.

2002-12-16  Jeff Johnston  <jjohnstn@redhat.com>

	* lib/mi-support.exp (mi_reinitialize_dir): Check mi level
	to see whether we are using the new -environment-directory
	command which resets via -r or the old version of the command
	which may prompt the user.  Part of fix for gdb/741.

2002-12-13  Andrew Cagney  <ac131313@redhat.com>

	* gdb.fortran/types.exp: Update obsolete comment.
	* gdb.fortran/exprs.exp: Ditto.
	* lib/gdb.exp: Delete obsolete code.
	* gdb.chill/ChangeLog, gdb.chill/Makefile.in: Delete.
	* gdb.chill/builtins.ch, gdb.chill/builtins.exp: Delete.
	* gdb.chill/callch.ch, gdb.chill/callch.exp: Delete.
	* gdb.chill/chexp.exp, gdb.chill/chillvars.ch: Delete.
	* gdb.chill/chillvars.exp, gdb.chill/configure: Delete.
	* gdb.chill/configure.in, gdb.chill/enum.ch: Delete.
	* gdb.chill/enum.exp, gdb.chill/func1.ch: Delete.
	* gdb.chill/gch1041.ch, gdb.chill/gch1041.exp: Delete.
	* gdb.chill/gch1272.ch, gdb.chill/gch1272.exp: Delete.
	* gdb.chill/gch1280.ch, gdb.chill/gch1280.exp: Delete.
	* gdb.chill/gch922.ch, gdb.chill/gch922.exp: Delete.
	* gdb.chill/gch981.ch, gdb.chill/gch981.exp: Delete.
	* gdb.chill/misc.ch, gdb.chill/misc.exp: Delete.
	* gdb.chill/powerset.ch, gdb.chill/powerset.exp: Delete.
	* gdb.chill/pr-4975-grt.ch, gdb.chill/pr-4975.ch: Delete.
	* gdb.chill/pr-4975.exp, gdb.chill/pr-5016.ch: Delete.
	* gdb.chill/pr-5016.exp, gdb.chill/pr-5020.ch: Delete.
	* gdb.chill/pr-5020.exp, gdb.chill/pr-5022.ch: Delete.
	* gdb.chill/pr-5022.exp, gdb.chill/pr-5646-grt.ch: Delete.
	* gdb.chill/pr-5646.ch, gdb.chill/pr-5646.exp: Delete.
	* gdb.chill/pr-5984.ch, gdb.chill/pr-5984.exp: Delete.
	* gdb.chill/pr-6292.ch, gdb.chill/pr-6292.exp: Delete.
	* gdb.chill/pr-6632-grt.ch, gdb.chill/pr-6632.ch: Delete.
	* gdb.chill/pr-6632.exp, gdb.chill/pr-8134.exp: Delete.
	* gdb.chill/pr-8136.ch, gdb.chill/pr-8136.exp: Delete.
	* gdb.chill/pr-8405.ch, gdb.chill/pr-8405.exp: Delete.
	* gdb.chill/pr-8742.ch, gdb.chill/pr-8742.exp: Delete.
	* gdb.chill/pr-8894-grt.ch, gdb.chill/pr-8894.ch: Delete.
	* gdb.chill/pr-8894.exp, gdb.chill/pr-9095.ch: Delete.
	* gdb.chill/pr-9095.exp, gdb.chill/pr-9946.ch: Delete.
	* gdb.chill/pr-9946.exp, gdb.chill/result.ch: Delete.
	* gdb.chill/result.exp, gdb.chill/string.ch: Delete.
	* gdb.chill/string.exp, gdb.chill/tests1.ch: Delete.
	* gdb.chill/tests1.exp, gdb.chill/tests2.ch: Delete.
	* gdb.chill/tests2.exp, gdb.chill/tuples.ch: Delete.
	* gdb.chill/tuples.exp, gdb.chill/xstruct-grt.ch: Delete.
	* gdb.chill/xstruct.ch, gdb.chill/xstruct.exp: Delete.

2002-12-11  David Carlton  <carlton@math.stanford.edu>

	* gdb.c++/m-data.exp: Add test for members that shadow global
	variables: see PR gdb/804.
	* gdb.c++/m-data.cc: Ditto.

2002-12-10  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.base/foll-vfork.exp: Re-enable test on HP/UX.

2002-12-06  David Carlton  <carlton@math.stanford.edu>

	* gdb.base/store.c: Don't declare functions static.

2002-12-04  Andrew Cagney  <ac131313@redhat.com>

	* gdb.base/store.exp, gdb.base/store.c: New files.

2002-12-03  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.base/selftest.exp: Update for current gdb.

2002-12-03  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.base/maint.exp: Only dump symbols from one source file
	or objfile.

2002-12-03  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.base/step-test.exp: Allow MIPS to return to the line of a
	function call.

2002-11-25  Jim Blandy  <jimb@redhat.com>

	* lib/mi-support.exp (mi_delete_breakpoints): Change name of
	function appearing in error message.

2002-11-21  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.base/maint.exp (help maint dump-me): Update with typo fix.

2002-11-08  Jeff Johnston  <jjohnstn@redhat.com>

	* lib/mi-support.exp (mi_gdb_start): Verify the startup message
	for mi1 and current mi is in correct format.  New mi startup message
	should be in mi console format.  This is part of fix for PR gdb/604.

2002-09-18  Fernando Nasser  <fnasser@redhat.com>

	* gdb.asm/asm-source.exp: Adjust patter to new disassembler routine
	which explicitly prints the zero offset as "+0".

2002-10-22  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.threads/schedlock.c (args): Make unsigned.

2002-10-21  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.asm/asm-source.exp: Add "mips*-*" pattern.  Update line
	numbers.  Allow "foo2|selected stack frame".
	* gdb.asm/asmsrc1.s: Use gdbasm_declare and gdbasm_end.
	* gdb.asm/asmsrc2.s: Likewise.
	* gdb.asm/common.inc: Define gdbasm_declare and gdbasm_end.  Update
	comments.
	* gdb.asm/mips.inc: New file.

2002-10-18  Adam Fedor  <fedor@gnu.org>

	* gdb.base/default.exp: Update expected output to include 'ObjC'.
	* gdb.base/help.exp: Likewise.

2002-10-17  Kevin Buettner  <kevinb@redhat.com>

	* gdb.base/constvars.c (struct crass, struct crisp): New structs.
	* gdb.base/constvars.exp (ptype crass, ptype crisp): New tests.

2002-10-02  Jim Blandy  <jimb@redhat.com>

	* gdb.c++/casts.cc, gdb.c++/casts.exp: New test.

2002-10-01  Andrew Cagney  <ac131313@redhat.com>

	* mi1-basics.exp: Copy of mi1-basics.exp MIFLAGS set "-i=mi1".
	* mi1-break.exp, mi1-console.exp, mi1-disassemble.exp: Ditto.
	* mi1-eval.exp, mi1-hack-cli.exp, mi1-pthreads.exp: Ditto.
	* mi1-read-memory.exp, mi1-regs.exp, mi1-return.exp: Ditto.
	* mi1-simplerun.exp, mi1-stack.exp, mi1-stepi.exp: Ditto.
	* mi1-until.exp, mi1-var-block.exp, mi1-var-child.exp: Ditto.
	* mi1-var-cmd.exp, mi1-var-display.exp, mi1-watch.exp: Ditto.

2002-09-29  Andrew Cagney  <ac131313@redhat.com>

	* mi0-basics.exp, mi0-break.exp, mi0-console.exp: Delete.
	* mi0-disassemble.exp, mi0-eval.exp: Delete.
	* mi0-hack-cli.exp, mi0-read-memory.exp: Delete.
	* mi0-regs.exp, mi0-return.exp, mi0-simplerun.exp: Delete.
	* mi0-stack.exp, mi0-stepi.exp, mi0-until.exp: Delete.
	* mi0-var-block.exp, mi0-var-child.exp: Delete.
	* mi0-var-cmd.exp, mi0-var-display.exp, mi0-watch.exp: Delete.

2002-09-27  Kevin Buettner  <kevinb@redhat.com>

	* gdb.base/annota1.exp (info break): Make directory components of
	path optional since not all compilers emit this debug information.

	* gdb.base/shlib-call.exp (step inside shr2): Don't fail if first
	step ends up stepping out of the function instead of stopping on
	the epilogue.

2002-09-26  Keith Seitz  <keiths@redhat.com>

	* lib/insight-support.exp (gdbtk_start): Figure out where
	the insight executable is based on where gdb is. Use this
	executable to start insight instead of gdb.

2002-09-25  Andrew Cagney  <cagney@redhat.com>

	* gdb.base/pc-fp.exp, gdb.base/pc-fp.c: New test.

2002-09-24  Andrew Cagney  <ac131313@redhat.com>

	* gdb.gdb/complaints.exp (test_initial_complaints): Rename
	test_isolated_complaints.
	(test_empty_complaint): New function.
	(test_empty_complaints): New function.  Check no output when no
	complaints.

2002-09-19  Jim Blandy  <jimb@redhat.com>

	* gdb.base/charset.exp, gdb.base/charset.c: New files.

2002-09-19  Andrew Cagney  <ac131313@redhat.com>

	* gdb.gdb/complaints.exp: New file.

2002-09-18  Andrew Cagney  <ac131313@redhat.com>

	* gdb.base/maint.exp: Check `help maint internal-warning'.

2002-09-18  David Carlton  <carlton@math.stanford.edu>

	* gdb.c++/m-static.exp: Remove breakpoints depending on line
	numbers, and replace them by a single breakpoint after the
	constructors are all finished.
	Add test 4.
	* gdb.c++/m-static.cc: Add test 4.
	* gdb.c++/m-static.h: New file.
	* gdb.c++/m-static1.cc: New file.

	* gdb.c++/printmethod.exp: New file.
	* gdb.c++/printmethod.cc: New file.

	* gdb.c++/pr-574.exp: New file.
	* gdb.c++/pr-574.cc: New file.

2002-09-18  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.base/ending-run.exp: Add handling of "step to end of run" for
	embedded targets which never actually exit.

2002-09-18  Fernando Nasser  <fnasser@redhat.com>

	* gdb.base/ending-run.exp: Properly mark "continue after exit" and
	"don't step after run" as unresolved or unsupported, instead of xfail.

2002-09-18  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.base/ending-run.exp: Fix expected string for _wrap_main to
	allow correct handling of #ifdef UNDERSCORES from dejagnu/testglue.c.
	Add newline to expected string in "step out of main (status wrapper)"
	case.

2002-09-18  Corinna Vinschen  <vinschen@redhat.com>

	* lib/gdb.exp (rerun_to_main): Allow restarting application.
	* gdb.base/ena-dis-br.exp (rerun_to_main): Eliminate.

2002-09-17  Tom Tromey  <tromey@redhat.com>

	* gdb.base/printcmds.exp (test_print_string_constants): Expect
	\000, not \0, in double-quoted string.

2002-09-14  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.base/commands.exp: Don't expect a "Program exited normally"
	string after running the commands execution on breakpoint tests.

2002-09-13  Corinna Vinschen  <vinschen@redhat.com>

	* lib/gdb.exp (gdb_continue_to_end): Fix typo in expected string.

2002-09-12  Joel Brobecker  <brobecker@gnat.com>

	* gdb.base/call-strs.exp: Fix a small typo in one of the comments.

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

	* lib/mi-support.exp (mi_runto): New proc. Does the same as gdb's
	runto proc.
	(mi_run_to_main): Use mi_runto.
	(mi_execute_to): Renamed from mi_run_to. Changed all callers.

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

	* lib/mi-support.exp: (mi_run_to_main): Allow anything to precede
	regexp for stopping at main. Could have multiple event notifications.
	Don't assume that main was declared with no parameters.
	(mi_next): Use mi_step_to.
	(mi_step): Use mi_next_to.

2002-09-09  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.base/default.exp: Fix expected string in `info float' test.

2002-09-09  Ben Elliston  <bje@redhat.com>

	* config/mips.exp: Update comments.
	* config/mips-idt.exp: Likewise.
	* config/nind.exp: Likewise.
	* config/slite.exp: Likewise.
	* config/sparclet.exp: Likewise.
	* config/udi.exp: Likewise.
	* config/vx.exp: Likewise.
	* config/vxworks29k.exp: Likewise.

2002-09-05  Jim Blandy  <jimb@redhat.com>

	* gdb.threads/killed.exp: Fix test failure message.

2002-09-04  Keith Seitz  <keiths@redhat.com>

	* lib/mi-support.exp: Update copyright.
	(mi_gdb_test): Increase the priority of the expected pattern
	so that it matches gdb_test.

2002-09-03  Keith Seitz  <keiths@redhat.com>

	* lib/gdb.exp (gdb_compile_pthreads): Fix "build_bin" typo.
	Use integer comparison instead of string comparison for testing
	whether binary was built.

2002-09-03  Jim Blandy  <jimb@redhat.com>

	* gdb.threads/killed.exp, gdb.threads/killed.c: New test.

2002-08-29  Jim Blandy  <jimb@redhat.com>

	* gdb.threads/pthreads.exp: Move the portable thread compilation
	code into a function in lib/gdb.exp, and call that from here.
	* lib/gdb.exp (gdb_compile_pthreads): New function.

2002-08-29  Keith Seitz  <keiths@redhat.com>

	* lib/mi-support.exp (mi_gdb_test): Add global declaration for
	expect_out so that callers can get at it.

2002-08-23  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.threads/print-threads.c: New file.
	* gdb.threads/print-threads.exp: New file.
	* gdb.threads/schedlock.c: New file.
	* gdb.threads/schedlock.exp: New file.

2002-08-22  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.arch/altivec-abi.exp: The source C file is altivec-abi.c,
	not altivec.c.

2002-08-17  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/return.exp: Remove i*86-*-* from list of xfail'ed
	targets.  The problem should be fixed now.

2002-08-15  Mark Kettenis  <kettenis@gnu.org>

	* gdb.java/jv-print.exp: Fix p '' and p ''' tests to deal with
	2002-07-24 change that removes final dots from error messages.

2002-08-13  Tom Tromey  <tromey@redhat.com>

	* gdb.base/readline.exp: New file.

2002-08-01  Andrew Cagney  <ac131313@redhat.com>

	* lib/gdb.exp (gdb_expect_list): Only print one pass, fail, or
	supress message.

2002-08-01  Andrew Cagney  <cagney@redhat.com>

	* Makefile.in (TARGET_FLAGS_TO_PASS): Remove CHILLFLAGS, CHILL,
	CHILL_FOR_TARGET and CHILL_LIB.
	* configure.in (configdirs): Remove gdb.chill.
	* configure: Regenerate.
	* lib/gdb.exp: Obsolete references to chill.
	* gdb.fortran/types.exp: Ditto.
	* gdb.fortran/exprs.exp: Ditto.

2002-07-30  Kevin Buettner  <kevinb@redhat.com>

	* gdb.base/shlib-call.exp (additional_flags): Conditionally
	set Irix-specific compile and link flags.

2002-07-29  Kevin Buettner  <kevinb@redhat.com>

	* lib/gdb.exp (mips*-*-irix*): Use alternate method for preprocessing
	source files.  The ``-o'' option doesn't work with the ``-E'' option
	when using the Irix compiler.

2002-07-19  Daniel Jacobowitz  <drow@mvista.com>

	* config/gdbserver.exp (gdb_load): Don't use TCL varargs.
	Improve support for reusing an exec file.  Copy exec file
	to target, and run gdbserver on the target instead of on the host.

2002-07-18  Jim Blandy  <jimb@redhat.com>

	* gdb.base/ending-run.exp: Don't expect to see the program end in
	some orderly fashion when we're running on a real stand-alone
	board.

	* gdb.base/interrupt.exp: Correct logic for skipping tests on
	targets that don't support interrupts.

2002-07-10  Paul N. Hilfinger  <hilfingr@otisco.mckusick.com>

	* gdb.base/attach.exp: Add patterns to match output from /proc-based
	systems.
	Move comments in expect statements to inside the actions, so that they
	don't get matched against.

2002-07-10  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/interrupt.exp: Setup xfail for all i386 BSD's on "call
	function when asleep" test.

2002-07-10  Andrew Cagney  <ac131313@redhat.com>

	* gdb.base/page.exp: Rewrite to handle problems with very long
	`info set' output.  Update copyright.

2002-06-26  Andrew Cagney  <ac131313@redhat.com>

	* gdb.hp/configure.in (AC_CONFIG_SUBDIRS): Do not try to configure
	gdb.threads-hp.
	* gdb.hp/configure: Regenerate.
	* gdb.hp/gdb.threads-hp/configure.in: Delete file.
	* gdb.hp/gdb.threads-hp/configure: Delete file.
	* gdb.hp/gdb.threads-hp/Makefile.in: Delete file.

2002-06-22  Andrew Cagney  <ac131313@redhat.com>

	* gdb.base/selftest.exp (do_stes_and_next): Skip calls to
	setlocale, bindtextdomain and textdomain.

2002-06-11  Jim Blandy  <jimb@redhat.com>

	* lib/gdb.exp (get_debug_format): Tolerate message saying whether
	preprocessor macro information is present.

	* macscp.exp, macscp1.c, macscp2.h, macscp3.h, macscp4.h: New
	tests.

2002-06-06  Michael Snyder  <msnyder@redhat.com>

	* gdb.base/overlays.exp: Record addresses of overlay
	functions in TCL variables rather than in GDB variables,
	to avoid having GDB convert them to pointers (with loss
	of information).

	* gdb.base/d10v.ld: Merge in several years worth of
	default linker script changes.
	* gdb.base/long_long.exp: Add check for sizeof (long double).

2002-06-06  Michal Ludvig  <mludvig@suse.cz>

	* gdb.asm/asm-source.exp: Add x86-64 target.
	* gdb.asm/x86_64.inc: New.

2002-05-30  Michael Chastain  <mec@shout.net>

	From Benjamin Kosnik <bkoz@redhat.com>:
	* gdb.c++/m-static.cc: New file.
	* gdb.c++/m-static.exp: New file.

2002-05-28  Michael Snyder  <msnyder@redhat.com>

	* gdb.base/call-ar-st.exp: Allow for reduced floating point
	precision.

2002-05-27  Michael Chastain  <mec@shout.net>

	From Benjamin Kosnik <bkoz@redhat.com>:
	* gdb.c++/m-data.cc: New file.
	* gdb.c++/m-data.exp: New file.

2002-05-27  Michael Chastain  <mec@shout.net>

	From Benjamin Kosnik <bkoz@redhat.com>:
	* gdb.c++/try_catch.cc: New file.
	* gdb.c++/try_catch.exp: New file.

2002-05-27  Michael Chastain  <mec@shout.net>

	* gdb.c++/local.exp: Accept more nested types in output.

2002-05-26  Michael Chastain  <mec@shout.net>

	* gdb.base/call-rt-st.exp: Fix typo in brace quoting.

2002-05-15  Nick Clifton  <nickc@cambridge.redhat.com>

	* lib/gdb.exp (gdb_wrapper_init): Just because
	gdb_wrapper_file exists, this does not mean that the file
	should not be rebuilt.  That is what gdb_wrapper_initialized
	is for.
	(default_gdb_init): Reset gdb_wrapper_initialized.

2002-05-23  Michael Snyder  <msnyder@redhat.com>

	* gdb.base/all-bin.exp: Revise previous patch by just reducing
	the precision of the floating point test results.
	* gdb.base/call-rt-st.exp: Ditto.

	* gdb.base/all-bin.exp: Allow for reduced floating point precision.
	* gdb.base/call-rt-st.exp: Ditto.

2002-05-19  Michael Chastain  <mec@shout.net>

	* gdb.c++/inherit.exp: Accept "VTT for ..." in output strings.

2002-05-19  Elena Zannoni  <ezannoni@redhat.com>

	* configure.in (configdirs): Add gdb.arch.
	* configure: Regenerate.

2002-05-17  Jim Blandy  <jimb@redhat.com>

	* gdb.base/completion.exp: Recognize the more detailed error
	messages produced by the macro expander's lexical analyzer.

2002-05-14  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.arch/altivec-abi.c: New file.
	* gdb.arch/altivec-abi.exp: New file.
	* gdb.arch/altivec-regs.c: New file.
	* gdb.arch/altivec-regs.exp: New file.

2002-05-14  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.base/maint.exp (maint print type): Update for new type
	structure.

2002-05-14  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.arch: New directory.
	* gdb.arch/configure.in: New file.
	* gdb.arch/configure: New file.
	* gdb.arch/Makefile.in: New file.

2002-05-13  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.asm/asm-source.exp: Add v850 as supported target.
	* gdb.asm/v850.inc: New file.

2002-05-13  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.c++/annota2.exp (annotate-quit): Add comment.

2002-05-12  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.base/break.exp: Check 'break "marker2"'.

2002-05-10  Michael Snyder  <msnyder@redhat.com>

	* gdb.base/long_long.exp: Fix typo.

2002-05-10  Jim Blandy  <jimb@redhat.com>

	* gdb.base/printcmds.exp: Don't xfail the ptype command.  This is
	a bug.

	* gdb.base/printcmds.exp (test_integer_literals_rejected):
	Recognize more detailed error message produced by the macro
	expander's lexical analyzer.
	* lib/gdb.exp (test_print_reject): Same.

2002-05-09  Mark Kettenis  <kettenis@gnu.org>

	* gdb.c++/method.exp: Fix typo.

2002-05-08  Michael Snyder  <msnyder@redhat.com>

	* gdb.mi/mi-var-child.exp: Accept (void) as well as ().
	* gdb.mi/mi0-var-child.exp: Accept (void) as well as ().
	* gdb.base/default.exp: Merge clauses for arm, strongarm, xscale.
	* gdb.base/long_long.exp: Merge clauses for arm and xscale.
	Add iftarget clause for strongarm.

2002-05-06  Michael Snyder  <msnyder@redhat.com>

	* lib/gdb.exp (gdb_test): Add case to allow for status wrapper.
	(gdb_continue_to_end): Accept output from status wrapper.
	* gdb.base/ending-run.exp: Add case for output from status wrapper.
	Clean up fail messages to match pass messages.

	Enable the "needs_status_wrapper" testsuite feature.
	* lib/gdb.exp (gdb_wrapper_init): New procedure.
	(gdb_compile): Conditionally call gdb_wrapper_init.
	* gdb.base/a2-run.exp: Recognize output from status wrapper.
	* gdb.c++/method.exp: Recognize output from status wrapper.

2002-05-06  Ben Elliston  <bje@redhat.com>
From Graydon Hoare  <graydon@redhat.com>

	* config/sid.exp: Include support for "rawsid" protocol.

2002-05-03  Jim Blandy  <jimb@redhat.com>

	* gdb.c++/hang.exp: Check for corruption of the cv_type chain.
	* gdb.c++/hang3.C: New file.

2002-05-04  Andrew Cagney  <ac131313@redhat.com>

	* gdb.base/default.exp: Remove obsolete code.
	* gdb.c++/misc.exp: Ditto.  Update copyright.
	* gdb.c++/cplusfuncs.exp: Ditto.  Update copyright.
	* gdb.base/whatis.exp: Ditto.  Update copyright.
	* gdb.base/scope.exp: Ditto.  Update copyright.
	* gdb.base/ptype.exp: Ditto.  Update copyright.
	* gdb.base/printcmds.exp: Ditto.  Update copyright.
	* gdb.base/opaque.exp: Ditto.  Update copyright.
	* gdb.base/list.exp: Ditto.
	* gdb.base/funcargs.exp: Ditto.  Update copyright.
	* gdb.hp/gdb.threads-hp/usrthbasic.c: Delete.
	* gdb.hp/gdb.threads-hp/usrthbasic.exp: Delete.
	* gdb.hp/gdb.threads-hp/usrthcore.c: Delete.
	* gdb.hp/gdb.threads-hp/usrthcore.exp: Delete.
	* gdb.hp/gdb.threads-hp/usrthfork.c: Delete.
	* gdb.hp/gdb.threads-hp/usrthfork.exp: Delete.

2002-05-02  Michael Snyder  <msnyder@redhat.com>

	* gdb.base/watchpoint.exp: Add xscale target.
	* gdb.base/long_long.exp: Add xscale target.
	* gdb.base/default.exp: Add xscale target.

2002-05-01  Jim Blandy  <jimb@redhat.com>

	* gdb.c++/hang1.C, gdb.c++/hang2.C, gdb.c++/hang.H,
	gdb.c++/hang.exp: New test.

2002-05-01  Fred Fish  <fnf@redhat.com>

	* gdb.base/completion.exp: Handle completions of "./Make" for
	more than one completion possibility, as is the case when we
	build and test in the source tree.

2002-04-29  Anthony Green  <green@redhat.com>

	* gdb.java/jmisc1.exp: New file.
	* gdb.java/jmisc2.exp: New file.

2002-04-24  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.threads/linux-dp.exp: Use 'unset' instead of 'array unset'.

2002-04-23  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.base/help.exp: Change 'help status' to allow for target
	dependent output differences.

2002-04-22  Michael Chastain  <mec@shout.net>

	* gdb.c++/local.exp: Add PR numbers: gdb/482, gdb/483.

2002-04-22  Michael Chastain  <mec@shout.net>

	* gdb.c++/method.exp: Fix syntax of reference to gdb/277.

2002-04-17  David S. Miller  <davem@redhat.com>

	* gdb.asm/sparc64.inc: New file.
	* gdb.asm/asm-source.exp: Handle sparc64-*-*.

2002-04-19  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.asm/asm-source.exp: Don't use a symlink, just copy the
	instruction file directly into the build tree.  Clean up at end of
	test.

2002-04-18  David S. Miller  <davem@redhat.com>

	* gdb.base/annota1.exp: Expect addresses as $hex + whitespace to
	handle 64-bit platforms correctly.
	* gdb.base/maint.exp: Likewise.

2002-04-18  Kevin Buettner  <kevinb@redhat.com>

	* gdb.base/shlib-call.exp (additional_flags): AIX doesn't need
	``-fpic'' when compiling files comprising a shared library, but
	it does need additional linker flags in order to find shared
	libraries at run time.

2002-04-18  Kevin Buettner  <kevinb@redhat.com>

	* gdb.base/cvexpr.c (use): New function.
	(main): Invoke use() on all global variables to prevent
	some linkers from deleting these otherwise unused symbols.

2002-04-17  Michael Chastain  <mec@shout.net>
From David S. Miller  <davem@redhat.com>

	* gdb.c++/ovldbreak.exp: Expect addresses as $hex + whitespace to
	handle 64-bit platforms correctly.

2002-04-12  Michael Snyder  <msnyder@redhat.com>
From Jim Blandy  <jimb@redhat.com>
	* gdb.base/foo.c (foox): Remove section attribute; the linker
	script can handle this instead.
	* gdb.base/bar.c (barx): Same.
	* gdb.base/baz.c (bazx): Same.
	* gdb.base/grbx.c (grbxx): Same.

	* gdb.base/overlays.exp: New test: check that GDB's manual overlay
	manager doesn't automatically unmap overlays unnecessarily.

2002-04-10  Martin M. Hunt  <hunt@redhat.com>

	* gdb.base/ending-run.exp: Fix pattern for Mips targets
	stepping out of main.

2002-04-09  Michael Chastain  <mec@shout.net>

	* gdb.c++/local.cc (main): Move call to marker1() inside nested
	scope so that the nested scope tests will make sense.
	* gdb.c++/local.exp: Write patterns that actually work with gcc
	(the HP patterns "were never known to work with gcc").
	Keep the old aCC patterns too.

2002-04-09  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.base/attach.exp: Correct target board test.

2002-04-08  Michael Chastain  <mec@shout.net>

	* gdb.c++/method.exp: Require "const ... A * ..." for "ptype this"
	in a const method.  Add some xfail and fail cases for configurations
	that do not emit the "const ...".

2002-04-07  Michael Chastain  <mec@shout.net>

	* gdb.c++/method.exp: Use gdb_test instead of send_gdb/gdb_expect.
	Accept "A * const" and "const A * const" as type of "this".
	Fix spelling of getFunky throughout.  Make messages uniform.

2002-04-07  Elena Zannoni  <ezannoni@redhat.com>

	Work around for PR gdb/285:
	* gdb.asm/asm-source.exp: Bail out if multilibs are detected.

2002-04-07  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.asm/asm-source.exp: Build symbolic link to arch specific
	instructions file at run time instead of configure time.
	Sometimes we run the test in a directory that is not the one we
	configured in.
	* gdb.asm/configure.in: Delete creation of symlink.
	* gdb.asm/configure: Regenerate.

2002-04-05  J. Brobecker  <brobecker@gnat.com>

	* gdb.gdb/xfullpath.exp: New test, to exercise the new
	xfullpath () function.

2002-04-04  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.asm/Makefile.in: Correct dependencies.

	* gdb.asm/powerpc.inc: New file.
	* gdb.asm/asm-source.exp: Add PowerPC.
	* gdb.asm/configure.in: Likewise.
	* gdb.asm/configure: Regenerated.

2002-04-04  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.base/relocate.exp: New file.
	* gdb.base/relocate.c: New file.

2002-04-04  Fred Fish  <fnf@redhat.com>

	* gdb.base/step-test.exp: Update comment regarding stopping in
	memcpy/bcopy calls inserted as part of the compiler runtime.

2002-04-04  Michael Snyder  <msnyder@redhat.com>

	* gdb.base/ovlymgr.c: Add overlay event breakpoint support.

2002-04-03  Daniel Jacobowitz  <drow@mvista.com>

	* lib/gdb.exp (gdb_test): Move -notransfer inside of gdb_expect.
	(gdb_expect): Remove $notransfer hack.

2002-04-02  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.c++/classes.exp ("calling method for small class"): Match
	updated register output.

2002-03-30  Daniel Jacobowitz  <drow@mvista.com>

	Fix PR gdb/452
	* gdb.base/dbx.exp: Restore old definition of gdb_file_cmd
	when finished.  Make gdb_file_cmd send "exec-file" when
	appropriate.

2002-03-30  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.base/attach.exp: Remove extra setup_xfail.

2002-03-26  Michael Snyder  <msnyder@redhat.com>

	* gdb.base/default.exp: Add tests for dump, append, and restore.
	* gdb.base/help.exp: Add tests for dump, append, and restore.
	* gdb.base/dump.exp: New file, test dump, append and restore.
	* gdb.base/dump.c: New file.

2002-03-27  Michael Snyder  <msnyder@redhat.com>

	* gdb.base/help.exp: Modify expect strings to reflect
	clean-ups in help messages.

2002-03-26  Fred Fish  <fnf@redhat.com>

	* gdb.base/step-test.exp: Accept stopping in memcpy/bcopy when we
	have debugging info for those functions and the compiler uses them
	internally to copy structs around.

2002-03-26  Fred Fish  <fnf@redhat.com>

	* gdb.base/list.exp: Revert the change made yesterday and add note
	about why we don't list the default lines for remote targets.

2002-03-25  Michael Snyder  <msnyder@redhat.com>

	* gdb.base/help.exp: Clean up unnecessary wild cards in regexps.

2002-03-25  Fred Fish  <fnf@redhat.com>

	* gdb.base/list.exp: This test works on remote targets so remove
	the short circuit for remote targets.  Update copyright.

2002-03-25  Fred Fish  <fnf@redhat.com>

	* gdb.base/attach.exp: Fix logic error that was suppressing this
	test for all non hppa*-*-hpux* targets, instead of the hp target.
	Move comments closer to the suppression point.  Also now need to
	check that we are running natively.

2002-03-22  Michael Snyder  <msnyder@redhat.com>

	* gdb.base/default.exp: Add test for gcore.  Update copyright.
	* gdb.base/help.exp: Add test for gcore.  Update copyright.

2002-03-06  Fred Fish  <fnf@redhat.com>

	* gdb.base/funcargs.c:  Remove extraneous ';' character.
	* gdb.trace/gdb_c_test.c: Remove extraneous ';' character.

2002-03-04  Michael Chastain  <mec@shout.net>

	* gdb.mi/mi-var-cmd.exp: In test "create local variable func",
	accommodate gcc v3 function signature.
	* gdb.mi/mi0-var-cmd-exp: Ditto.

2002-02-24  Andrew Cagney  <ac131313@redhat.com>

	* testsuite/gdb.base/huge.c: Replace ``Linux'' with either
	``GNU/Linux'' or ``Linux kernel''
	* testsuite/gdb.threads/pthreads.c: Ditto.

2002-02-24  Michael Chastain  <mec@shout.net>

	* gdb.threads/pthreads.c (thread1): Add a return statement.
	(thread2): Likewise.
	(foo): Likewise.

2002-02-23  Michael Chastain  <mec@shout.net>

	* gdb.threads/linux-dp.c (philosopher): Add a return statement
	to placate gcc.

2002-02-23  Michael Chastain  <mec@shout.net>

	* gdb.c++/templates.exp: Remove setup_xfail_format "stabs" on
	test "ptype bint".  The test passes on all my stabs configurations.

2002-02-21  Jim Blandy  <jimb@redhat.com>

	* gdb.asm/asm-source.exp: Parse the output from `info sources' one
	filename at a time, and watch for the ones we want to see.

	* gdb.base/ptype.exp, gdb.base/ptype.c: Add tests for printing
	types of pointers to prototyped functions.

2002-02-20  Andrew Cagney  <ac131313@redhat.com>

	* gdb.base/sizeof.c (main): Call fill_structs.  Print value of
	signed, unsigned and straight char.
	(padding_char, padding_short, padding_int, padding_long,
	padding_long_long, padding_float, padding_double,
	padding_long_double): New global variables.
	(fill, fill_structs): New functions.

	* gdb.base/sizeof.exp: Check for signed and unsigned char.  Check
	for correctly sized writes.  Update copyright.
	(get_valueof): New procedure.
	(get_sizeof): Call get_valueof.
	(check_valueof): New procedure.
	(check_padding): New procedure.

2002-02-20  Michael Chastain  <mec@shout.net>

	* gdb.c++/virtfunc.exp (test_virtual_calls): Remove obsolete calls
	to setup_xfail.  Document some of the remaining calls.

2002-02-18  Michael Chastain  <mec@shout.net>

	* gdb.c++/userdef.exp: Update copyright year.

2002-02-18  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.c++/userdef.exp: Test overloaded operators properly.
	Remove xfails.

2002-02-14  Michael Snyder  <msnyder@redhat.com>

	* gdb.base/gcore.exp: Relax recognition of function breakpoint.

2002-02-14  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.base/a2-run.exp: Check for a remote target properly.
	* gdb.base/annota1.exp: Likewise.
	* gdb.base/list.exp: Likewise.
	* gdb.base/reread.exp: Likewise.
	* gdb.base/scope.exp: Likewise.
	* gdb.base/shlib-call.exp: Likewise.
	* gdb.base/term.exp: Likewise.
	* gdb.c++/annota2.exp: Likewise.

2002-02-13  Richard Earnshaw  <rearnsha@arm.com>

	* gdb.base/watchpoint.exp: Restore previous timeout at end of test.

2002-02-10  Michael Chastain  <mec@shout.net>

	* gdb.base/funcargs.c (localvars_after_alloca): Fix return type.
	(call_after_alloca): Ditto.

2002-02-10  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.base/ending-run.exp: Guard "cont" test with
	gdb_skip_stdio_test.

2002-02-06  Jim Blandy  <jimb@redhat.com>

	* gdb.base/callfwmall.c, gdb.base/callfwmall.exp: Move these tests
	from here...
	* gdb.hp/gdb.base-hp/callfwmall.c, gdb.hp/gdb.base-hp/callfwmall.exp:
	To here.  Disable this test on non-HP platforms.  Add big comment.

2002-02-04  Michael Snyder  <msnyder@redhat.com>

	* gdb.base/ovlymgr.c  (ovly_copy): Generalize for targets
	  other than d10v and m32r.

2002-02-02  Richard Earnshaw  <rearnsha@arm.com>

	* gdb.base/default.exp: Rewrite test patterns to reduce time
	taken to match them.

2002-01-30  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.base/annota1.exp (backtrace from shlibrary): Fix spelling.
	Allow a start function above main.
	* gdb.threads/linux-dp.exp: Fix copyright date.

2002-01-30  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.threads/linux-dp.exp: Use 'array unset', not 'array set'.
	(check_philosopher_stack): Check for manager thread before checking
	for a just-starting thread.

2002-01-30  Daniel Jacobowitz  <drow@mvista.com>

	From Neil Booth <neil@daikokuya.demon.co.uk>:
	* gdb.base/bitfields.c: Correct assignments to bitfields to avoid
	warnings.

2002-01-21  Fred Fish  <fnf@redhat.com>

	* gdb.base/restore.exp (restore_tests): Fix obvious typo, callee
	not caller.

2002-01-21  Jim Blandy  <jimb@redhat.com>

	* gdb.base/reread.exp: Check that GDB properly re-reads the
	executable file when it changes while no inferior is running.

2002-01-21  Fred Fish  <fnf@redhat.com>

	* gdb.base/maint.exp: Simplify the "maint info breakpoints" test to
	optionally accept the "shlib events" variation.

2002-01-21  Jim Blandy  <jimb@redhat.com>

	* gdb.base/ending-run.c (main): Avoid messing with setvbuf; just
	call `fflush' after every `printf', so that the output is produced
	at predictable points, regardless of whatever buffering does (or
	doesn't) take place.
	* gdb.base/ending-run.exp: Adjust tests to expect output to appear
	at different points.

2002-01-20  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.c++/inherit.exp: Update copyright years.
	* gdb.c++/method.exp: Likewise.

2002-01-20  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.c++/classes.exp: Update for improved v3 support and skipping
	artificial methods/arguments.
	* gdb.c++/derivation.exp: Likewise.
	* gdb.c++/inherit.exp: Likewise.
	* gdb.c++/method.exp: Likewise.
	* gdb.c++/virtfunc.exp: Likewise.

2002-01-18  Andrew Cagney  <ac131313@redhat.com>

	* gdb.hp/gdb.threads-hp/usrthfork.exp: Mark as obsolete.
	* gdb.hp/gdb.threads-hp/usrthcore.exp: Ditto.
	* gdb.hp/gdb.threads-hp/usrthbasic.exp: Ditto.
	* gdb.hp/gdb.threads-hp/usrthfork.c: Ditto.
	* gdb.hp/gdb.threads-hp/usrthbasic.c: Ditto.
	* gdb.hp/gdb.threads-hp/usrthcore.c: Ditto.

2002-01-17  Jim Blandy  <jimb@redhat.com>

	* gdb.asm/asm-source.exp (info symbol): Take another shot at
	anchoring the pattern matching the entry point symbol's name.

2002-01-17  Andrew Cagney  <ac131313@redhat.com>

	* gdb.base/maint.exp: Update ``maint internal-error'' to match
	continue/quit query.  Update copyright.

2002-01-14  Michael Snyder  <msnyder@redhat.com>

	* gdb.base/gcore.exp: Remove extra debugging output.

2002-01-13  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.c++/demangle.exp: Accept slightly dubious v2 demangler result
	for slightly dubious v2 mangled string.

2002-01-13  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.base/completion.exp: Expand ${srcdir} to an absolute path.

2002-01-10  Jason Merrill  <jason@redhat.com>

	* gdb.c++/namespace.exp: Accept trailing const for 'this'.

	* gdb.c++/classes.exp: Accept 'A const' or 'const A' in copy
	constructors.
	* gdb.c++/derivation.exp: Likewise.
	* gdb.c++/templates.exp: Likewise.
	* gdb.c++/virtfunc.exp: Likewise.

2002-01-10  Michael Snyder  <msnyder@redhat.com>

	* gdb.c++/namespace.exp: Accept both '\0' and '\000'.

2002-01-08  Michael Snyder  <msnyder@redhat.com>

	* gdb.base/gcore.exp: New test for generate-core-file command.
	* gdb.base/gcore.c: Testcase for above.
	* gdb.threads/gcore-thread.exp: New test for gcore (threaded).

2002-01-08  Jason Merrill  <jason@redhat.com>

	* gdb.c++/userdef.cc: Use <iostream> instead of <iostream.h>.

2002-01-07  Fred Fish  <fnf@redhat.com>

	* gdb.c++/overload.exp: Remove unconditional xfails for:
	print foo_instance1.overloadargs(1)
	print foo_instance1.overloadargs(1, 2)
	print foo_instance1.overloadargs(1, 2, 3)
	print foo_instance1.overloadargs(1, 2, 3, 4)
	print foo_instance1.overloadargs(1, 2, 3, 4, 5)
	print foo_instance1.overloadargs(1, 2, 3, 4, 5, 6)
	print foo_instance1.overloadargs(1, 2, 3, 4, 5, 6, 7)
	print foo_instance1.overloadargs(1, 2, 3, 4, 5, 6, 7, 8)
	print foo_instance1.overloadargs(1, 2, 3, 4, 5, 6, 7, 8, 9)
	print foo_instance1.overloadargs(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
	print foo_instance1.overloadargs(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
	print foo_instance1.overload1arg()
	print foo_instance1.overload1arg((char)arg2)
	print foo_instance1.overload1arg((signed char)arg3)
	print foo_instance1.overload1arg((unsigned char)arg4)
	print foo_instance1.overload1arg((int)arg7)
	print foo_instance1.overload1arg((unsigned int)arg8)
	print foo_instance1.overload1arg((float)arg11)
	print foo_instance1.overload1arg((double)arg12)

2002-01-07  Michael Snyder  <msnyder@redhat.com>

	* gdb.base/huge.exp: New test.  Print a very large target data object.
	(skip_huge_test): New test variable.  Define if you want to skip this
	test.  The test reads an 8 megabyte data object from the target, so it
	might be very time consuming on remote targets with a slow connection.
	* gdb.base/huge.c: New file.  Test case for above.

2002-01-07  Fred Fish  <fnf@redhat.com>

	* gdb.c++/derivation.exp: Remove gcc xfails for g_instance.afoo,
	g_instance.bfoo, and g_instance.cfoo.

2002-01-07  Jeffrey A Law  <law@redhat.com>

	* gdb.base/break.c (multi_line_if_conditional): New function.
	(multi_ilne_while_conditional): Likewise.
	* gdb.base/break.exp: Verify that a breakpoint on a multi-line
	IF or WHILE condition puts the breakpoint at the start of
	the condition.

	* gdb.base/selftest.exp (backtrace through signal handler): Remove
	hppa*-*-hpux* expected failure.
	* gdb.base/structs.exp (do_function_calls): Similarly.

	* gdb.c++/annota2.exp (watch triggered on a.x): Handle hardware
	watchpoints.

2002-01-06  Andrew Cagney  <ac131313@redhat.com>

	Fix PR gdb/66.
	* gdb.base/structs.exp: Replace skip for a29k with skip for
	gdb,cannot_call_functions.
	* gdb.base/call-ar-st.exp: Remove references to a29k in comments.
	* gdb.base/callfuncs.exp: Ditto.
	* gdb.base/call-rt-st.exp: Ditto.
	* gdb.base/call-strs.exp: Ditto.
	* gdb.base/callfwmall.exp: Ditto.
	* gdb.base/scope.exp: Obsolete xfail a29k.
	* gdb.c++/misc.exp: Ditto.
	* gdb.c++/cplusfuncs.exp: Ditto.
	* gdb.base/ptype.exp: Ditto.
	* gdb.base/printcmds.exp: Ditto.
	* gdb.base/opaque.exp: Ditto.
	* gdb.base/list.exp: Ditto.
	* gdb.base/funcargs.exp: Ditto.
	* gdb.base/default.exp: Ditto.

2002-01-04  Michael Snyder  <msnyder@redhat.com>

	* gdb.base/info-proc.exp: New file, test for "info proc" cmd.
	* gdb.base/maint.exp: Add tests for maint info sections options.

Fri Dec 21 09:42:11 2001  Jeffrey A Law  (law@redhat.com)

	* gdb.base/default.exp: Remove bogus hppa*-hp-hpux* xfails.

2001-12-20  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.asm/arm.inc: New file.
	* gdb.asm/asm-source.exp: Add arm targets.
	* gdb.asm/configure.in: Ditto.
	* gdb.asm/configure: Recreated from configure.in.

Thu Dec 20 09:54:36 2001  Jeffrey A Law  (law@redhat.com)

	* gdb.hp/gdb.defects/bs15503.exp: Only run this test if compiling
	with HP's compiler.
	* gdb.hp/gdb.objdbg/objdbg01.exp: Likewise.
	* gdb.hp/gdb.objdbg/objdbg02.exp: Likewise.
	* gdb.hp/gdb.objdbg/objdbg03.exp: Likewise.
	* gdb.hp/gdb.objdbg/objdbg04.exp: Likewise.

	* gdb.hp/gdb.defects/solib-d.exp: Update to handle building with
	either HP's compilers or GCC.

	* gdb.hp/gdb.base-hp/hwwatchbus.exp: Allow inferior to get either
	a SIGBUS or SIGSEGV.

	* gdb.hp/gdb.base-hp/so-thresh.exp: Remove useless send_user command.

	* gdb.hp/gdb.defects/bs14602.exp: Revamp slightly so that test
	can be compiled with either HP's compiler or GCC.

	* gdb.hp/gdb.threads-hp/usrthbasic.exp: Disable completely.
	* gdb.hp/gdb.threads-hp/usrthcore.exp: Disable completely.
	* gdb.hp/gdb.threads-hp/usrthfork.exp: Disable completely.

	* gdb.hp/gdb.base-hp/so-thresh.exp: Update text in expect strings
	to match current gdb output.  Update due to using auto-solib-limit
	for limiting instead of overloading auto-solib-add.
	* gdb.hp/gdb.base-hp/so-thresh.mk: Always use "cc" to build the
	test program.

	* gdb.c++/templates.exp: Use "hppa64-*-*", not "hppa2.0w-*-*"
	* gdb.hp/gdb.base-hp/dollar.exp: Likewise
	* gdb.hp/gdb.base-hp/pxdb.exp: Likewise.
	* gdb.hp/gdb.base-hp/reg-pa64.exp: Likewise.
	* gdb.hp/gdb.base-hp/reg.exp: Likewise.
	* gdb.hp/gdb.compat/xdb3.exp: Likewise.
	* gdb.hp/gdb.defects/bs15503.exp: Likewise.
	* gdb.hp/gdb.objdbg/objdbg01.exp: Likewise
	* gdb.hp/gdb.objdbg/objdbg02.exp: Likewise
	* gdb.hp/gdb.objdbg/objdbg03.exp: Likewise
	* gdb.hp/gdb.threads-hp/usrthbasic.exp: Likewise.
	* gdb.hp/gdb.threads-hp/usrthcore.exp: Likewise.
	* gdb.hp/gdb.threads-hp/usrthfork.exp: Likewise.

	* gdb.base/annota1.exp: Expect failure for hpux11 when posting
	a SIGTRAP to the inferior.

2001-12-19  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.asm/asm-source.exp: Drop setting link-flags for xstormy16.
	Substitute call to target_link by call to gdb_compile.

Wed Dec 19 14:10:57 2001  Jeffrey A Law  (law@redhat.com)

	* gdb.base/break.exp: Fix HP specific search string when testing
	backtracing in a called function.

	* gdb.base/constvars.exp: Only set lang to C++ if we're
	compiling the test with HP's compilers.
	* gdb.base/volatile.exp: Similarly.

2001-12-19  Jim Blandy  <jimb@redhat.com>

	* gdb.base/printcmds.exp: Expect the null character to be printed
	as '\0', and the '\013' to be printed as '\v'.
	* gdb.base/callfuncs.exp ("backtrace at nested call level 4"): Same.
	* gdb.base/setvar.exp: Same.

2001-12-17  Jim Blandy  <jimb@redhat.com>

	* gdb.base/completion.exp: Rather than completing very long
	filenames, which can make the readline library produce output we
	don't recognize, cd to the directory first, and then complete
	using nice, short relative paths.

	* gdb.base/completion.exp: On some systems, there is, in fact, a
	variable named `b' in scope, since GDB treats all static
	variables as being in scope.  So use `no_var_named_this'
	instead of `b'.

	* gdb.base/corefile.exp: Recognize the message saying that GDB
	can't find the core file's registers as a failure.

2001-12-13  Jackie Smith Cashion  <jsmith@redhat.com>

	* gdb.base/commands.exp (user_defined_command_test): Make "show user"
	test expect string more specific.

2001-12-13  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.asm/asm-source.exp: Add support for xstormy16.
	* gdb.asm/configure.in: Ditto.
	* gdb.asm/configure: Rebuild.
	* gdb.asm/xstormy16.inc: New file.

2001-12-10  Fred Fish  <fnf@redhat.com>

	* gdb.base/maint.exp: Update to match changes in type dumping code.

2001-12-10  Jim Blandy  <jimb@redhat.com>

	* gdb.asm/asm-source.exp (info symbol): Anchor the pattern
	matching the entry point symbol's name at the beginning of the
	line.

2001-12-07  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.c++/classes.exp, gdb.c++/derivation.exp,
	gdb.c++/inherit.exp, gdb.c++/method.exp,
	gdb.c++/namespace.exp, gdb.c++/templates.exp,
	gdb.c++/userdef.exp, gdb.c++/virtfunc.exp: Updates for v3 demangler
	and class layout support.

2001-12-07  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.c++/classes.exp: Add test for static member function.
	* gdb.c++/misc.cc: Add class with static member function.

2001-12-07  Jim Blandy  <jimb@redhat.com>

	If GDB says it can't find the struct the function returned, report
	those tests as `unsupported'.
	* gdb.base/call-rt-st.exp (print_struct_call): New function.
	Rewrite subsequent tests to use it.

	If GDB says it can't find the struct the function returned, report
	those tests as `unsupported'.
	* gdb.base/structs.exp (call_struct_func): New function.
	(do_function_calls): Use call_struct_func to call the functions
	returning structs.

	* gdb.base/callfuncs.exp: The stabs generated by GCC don't tell us
	whether functions are prototyped or not, so we can't possibly pass
	arguments to t_float_values2 properly.

	* gdb.base/break.exp: (test_next_with_recursion): Don't change the
	value of `timeout' for targets other than the mips*tx39-*.

2001-12-06  Michael Snyder  <msnyder@redhat.com>

	* gdb.asm/asm-source.exp: Add tests for info target, info symbol,
	and detect whether the start symbol has a leading underscore.

2001-12-04  Jim Blandy  <jimb@redhat.com>

	* gdb.base/completion.exp: Clarify indentation.

2001-12-03  Jim Blandy  <jimb@redhat.com>

	* gdb.asm/s390.inc (gdbasm_datavar): Use `.long' to create `int'
	variables on the S/390, not `.word'.

2001-11-30  Jim Blandy  <jimb@redhat.com>

	Add assembly-source tests for s390-ibm-linux.
	* gdb.asm/s390.inc: New file.
	* gdb.asm/configure.in, gdb.asm/asm-source.exp: Add clauses for
	the S/390 architecture.
	* gdb.asm/configure: Regenerated.

2001-11-30  Michael Snyder  <msnyder@redhat.com>

	* gdb.asm/asm-source.exp: Add tests for list, search, finish, return,
	next, info source, info sources, info line, global and static
	variables, and static functions.
	* gdb.asm/common.inc: New macro gdbasm_datavar (default definition).
	* gdb.asm/i386.inc: Override default definition of gdbasm_datavar.
	* gdb.asm/asmsrc1.s: Add a static function and some variables.
	* gdb.asm/asmsrc2.s: Make foo2 call foo3 twice (to test 'next').
	* gdb.asm/d10v.inc (gdbasm_enter): Set up frame pointer.
	(gdbasm_leave): Restore frame pointer.
	(gdbasm_startup): Copy stack set-up from crt0.S.

2001-11-26  Fernando Nasser  <fnasser@redhat.com>

	From 2001-11-12 Jackie Smith Cashion  <jsmith@redhat.com>:
	* gdb.base/callfuncs.c (t_structs_a): Do not return a pointer
	to a local (non-static) variable. Copy tstruct.a to a static buffer
	and return a pointer to that buffer.
	* gdb.base/callfwmall.c (t_structs_a): Ditto.

2001-11-24  Mark Kettenis  <kettenis@gnu.org>

	* gdb.asm/configure.in: Fix recognition of ix86 target.
	* gdb.asm/configure: Regenerate.

2001-11-21  Michael Snyder  <msnyder@redhat.com>

	* gdb.asm/sparc.inc: New file.
	* gdb.asm/asm-source.exp: Recognize sparc target.
	* gdb.asm/configure.in: Recognize sparc target.
	* gdb.asm/configure: Regenerate.

2001-11-21  Michael Snyder  <msnyder@redhat.com>

	* gdb.asm/m32r.inc: New file.
	* gdb.asm/asm-source.exp: Recognize m32r target.
	* gdb.asm/configure.in: Recognize m32r target.
	* gdb.asm/configure: Regenerate.

2001-11-20  Michael Snyder  <msnyder@redhat.com>

	* gdb.asm/i386.inc: New file.
	* gdb.asm/asm-source.exp: Recognize ix86 target.
	* gdb.asm/configure.in: Recognize ix86 target.
	* gdb.asm/configure: Regenerate.

	* gdb.c++/namespace.exp: Fix quotes in output messages.

2001-11-14  Michael Snyder  <msnyder@redhat.com>

	* gdb.base/code-expr.exp: New file.  Tests use of the "@code"
	qualifier in a type cast expression, to designate an address
	in the instruction space (Harvard architecture).

2001-11-13  Michael Snyder  <msnyder@redhat.com>

	* gdb.base/cvexpr.c, gdb.base/cvexpr.exp: New files.
	Tests for expressions using 'const' and 'volatile'.

2001-11-13  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.asm/asm-sources.exp: Allow defining linker flags.

2001-11-12  Daniel Jacobowitz  <drow@mvista.com>

	* lib/mi-support.exp (mi_run_to_helper): Move comments
	outside of gdb_expect.

2001-11-11  Daniel Jacobowitz  <drow@mvista.com>

	* lib/mi-support.exp: (mi_run_to_helper, mi_run_to,
	mi_step_to, mi_next_to, mi_continue_to, mi_finish_to,
	mi0_step_to, mi0_next_to, mi0_continue_to, mi0_finish_to,
	mi0_run_to): New functions.
	* gdb.mi/mi-simplerun.exp: Use them.
	* gdb.mi/mi0-simplerun.exp: Likewise.
	* gdb.mi/mi-var-cmd.exp: Likewise.
	* gdb.mi/mi0-var-cmd.exp: Likewise.

2001-11-10  Andrew Cagney  <ac131313@redhat.com>

	* gdb.asm/asmsrc1.s: Add ``gdbasm_'' prefix to all macros.
	* gdb.asm/asmsrc2.s, gdb.asm/d10v.inc: Update.

2001-11-09  Andrew Cagney  <ac131313@redhat.com>

	* gdb.base/restore.exp: Include $expected value in restored test
	message.

2001-11-09  Andrew Cagney  <ac131313@redhat.com>

	* gdb.asm/asm-source.exp: Supress file, instead of skip, when not
	implemented.

2001-11-08  Michael Snyder  <msnyder@redhat.com>

	* gdb.base/callfuncs.exp: Add tests for nested call dummies.
	Add pass/fail message for stop at breakpoint in call dummy function.

2001-11-07  Michael Snyder  <msnyder@redhat.com>

	* gdb.c++/templates.exp (test_template_breakpoints):
	If we get an overload menu, but it does not match what
	we expect, we still need to issue the "cancel" command.
	* gdb.c++/templates.exp: Replace "void \\*" with "void ?\\*",
	making the whitespace optional.  Argument for "new" may be
	"unsigned" as well as "unsigned int/long".
	* gdb.c++/templates.exp: Replace "const &" with "const ?&",
	making the whitespace optional.  Also replace "(void) with
	"((void|)), making the keyword "void" optional.
	* gdb.c++/virtfunc.exp: Replace "const &" with "const ?&",
	making the whitespace optional.  Also replace "(void) with
	"((void|)), making the keyword "void" optional.
	* gdb.base/callfuncs.c (t_float_values): This function must
	_not_ be prototyped, and the following function (t_float_values2)
	must be prototyped (if the compiler supports it), so that GDB
	can be tested against both cases.  Usually one case involves
	promotion of float to double, while the other does not.
	* gdb.base/callfwmall.c: Ditto.
	* gdb.asm/asm-source.exp (bt ALL in foo2): Accept a backtrace that
	includes a stack frame for "start".

2001-11-05  Jim Blandy  <jimb@redhat.com>

	* gdb.stabs/weird.exp: Delete "p v_comb" test.  It assumes that
	pointers are 32 bits long, and that offsets of relocs are always
	stored in the data (REL-style), and not in the reloc entry itself
	(RELA-style).
	* gdb.stabs/weird.def (v_comb, v_comb_shared): Remove symbols and
	stabs.

2001-11-01  Michael Snyder  <msnyder@redhat.com>

	* gdb.c++/cplusfuncs.exp: Fix conflicts between operator names
	and regular expression operators by using quoting.

2001-10-31  Michael Snyder  <msnyder@redhat.com>

	* gdb.c++/overload.exp: Select overloadfnarg(void) or overloadfnarg(),
	depending on what the symbol table contains.
	* gdb.c++/derivation.exp: Accept both "foo(void)" and "foo()" in
	the output of the ptype command.  Similarly, accept both "const &"
	and "const&".

2001-10-31  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.base/miscexprs.c (main): Add usage of preprocessor
	symbol `STORAGE' to allow to choose the storage class of
	the local datastructures.
	* gdb.base/miscexprs.exp: Handle setting a `-DSTORAGE=...'
	compiler directive.

2001-10-30  Michael Snyder  <msnyder@redhat.com>

	* gdb.base/jump.exp: Allow it to run for all targets.

2001-10-29  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.base/call-ar-st.c (print_double_array): Match for loop
	with new double_array size.
	(main): Change storage class of all local variables to static.
	Reduce size of double_array to 9.
	* gdb.base/call-ar-st.exp:  Increase timeout value.
	Change expected output for double array to match new size in
	call-ar-st.c.

2001-10-29  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.base/ending-run.exp: Create identical output when passing
	`step to end of run' case.  Add regular expression branch satisfying
	Stormy16 target.

2001-10-28  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/interrupt.exp: Treat SIGILL similar to SIGSEGV such
	that we catch the expected failure under Linux/x86.

2001-10-29  Orjan Friberg  <orjanf@axis.com>

	* gdb.base/setvar.exp: Escape curly braces.
	* gdb.stabs/weird.exp: Ditto.

2001-10-27  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.mi/mi-hack-cli.exp: Remove excess newlines from test strings.
	* gdm.mi/mi0-hack-cli.exp: Likewise.

2001-10-25  Andrew Cagney  <ac131313@redhat.com>

	* gdb.stabs/weird.exp: Unify ``variable VAR printed properly''
	messages.

2001-10-21  Andrew Cagney  <ac131313@redhat.com>

	* lib/mi-support.exp (mi_gdb_start): Don't require MI_OUT when
	checking MI enabled.

2001-10-09  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.base/maint.exp: Treat $EXEEXT as optional in output.

2001-10-04  Frank Ch. Eigler  <fche@redhat.com>

	* lib/insight-support.exp (gdbtk_start): Don't exit dejagnu
	if gdb child process crashes, just signal an error.

2001-10-02  Jim Blandy  <jimb@redhat.com>

	* lib/gdb.exp (test_xfail_format): Simplify.

	* lib/gdb.exp (setup_xfail_format): Don't forget to put a `$' in
	front of the variable name `format'.  Simplify `if'.

2001-10-01  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.threads/pthreads.exp: Wait for output and delay
	before sending ^C.

2001-10-01  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.mi/mi-var-display.exp (continue to incr_a):  Recognize
	some incorrect output instead of timing out.
	* gdb.mi/mi-var-display.exp (continue to incr_a):  Likewise.

2001-09-28  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.base/volatile.exp (local_compiler_xfail_check): Change qux2
	check to allow additional `int'.

2001-09-27  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.base/completion.exp: Remove incorrect 'p "a' test.
	Add tests for 'p "break' (pass) and 'p "break.' (xfail).

2001-09-27  Michael Snyder  <msnyder@redhat.com>

	* lib/gdb.exp (test_debug_format): New proc.
	(setup_xfail_format): Use new proc test_debug_format.
	* gdb.base/constvars.exp (local_compiler_xfail_check): New
	proc; use new service proc test_debug_format.
	Replace all other "gcc_compiled" tests with this test.
	* gdb.base/volatile.exp (local_compiler_xfail_check): New
	proc; use new service proc test_debug_format.
	Replace all other "gcc_compiled" tests with this test.

2001-09-27  Michael Snyder  <msnyder@redhat.com>

	* gdb.base/cvexpr.exp: New file.
	* gdb.base/cvexpr.c: New file
	Test for expressions using const and volatile keywords.

2001-09-26  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.base/constvars.exp: Check for different orders of keywords
	and additional "int" strings in output.

2001-09-22  Andrew Cagney  <ac131313@redhat.com>

	* gdb.base/maint.exp: Add "maintenance set/show" to list of valid
	responses from "help maint".

2001-09-19  Frank Ch. Eigler  <fche@redhat.com>

	* lib/insight-support.exp (_gdbtk_xvfb_init): Set DISPLAY
	to localhost:NNN instead of :NNN, in case Xvfb is listening
	only on TCP.

2001-09-19  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.base/recurse.exp: When checking leaving the watchpoint
	scope, recognize when gdb is in function's epilogue and pass.

2001-09-18  Keith Seitz  <keiths@redhat.com>

	* lib/insight-support.exp (_gdbtk_export_target_info): Add
	support for running tests against sid targets.
	(gdbtk_done): Ditto.

2001-09-18  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.base/ending-run.c (main): Set stdout buffersize
	to the same reasonable value for any target.
	* gdb.base/ending-run.exp: Add a regular expression
	to make testsuite happy on Sanyo Stormy16 target.

2001-09-17  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.base/display.c (do_loops): Add float variable `f'.
	Increment f in loop.
	* gdb.base/display.exp: Increment timeout by 60 seconds.
	Change float display test to use variable `f'.

2001-09-17  Jim Blandy  <jimb@redhat.com>

	* gdb.base/restore.exp: Use temporary breakpoints, to avoid
	overflowing the limited breakpoint tables on some ROM monitors
	(like the ROM68K).

2001-09-15  Frank Ch. Eigler  <fche@redhat.com>

	* lib/insight-support.exp (_gdbtk_xvfb_init): Start Xvfb with
	the "-ac" (disable access control) flag.

2001-08-30  Jeff Holcomb  <jeffh@redhat.com>

	* gdb.base/remote.c: Use a small buffer for targets with 16-bit
	ints.

2001-08-30  Keith Seitz  <keiths@redhat.com>

	* lib/gdb.exp: Move all insight-related functionality into
	separate file.
	* lib/insight-support.exp: New file.

2001-08-29  Frank Ch. Eigler  <fche@redhat.com>

	* config/sid.exp (sid_start): Never set sid verbosity; disable
	expect_background {} that consumed its stdout; tolerate </dev/null.
	Attempt to set endianness override in "sid" protocol mode.  Cleanup.

2001-08-18  Andrew Cagney  <ac131313@redhat.com>

	* lib/mi-support.exp (mi_gdb_start): If a remote target, use the
	CLI jump command to start it.
	(mi_run_to_main): Fail immediatly when unexpected output.

2001-08-18  Andrew Cagney  <ac131313@redhat.com>

	* lib/mi-support.exp (mi_gdb_start): Move call to sid_start to
	beginning of function.  Fix PR gdb/191.

2001-08-16  Frank Ch. Eigler  <fche@redhat.com>

	* config/sid.exp (sid_start): Don't warn if we cannot figure out
	what to force sid endianness to.

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

	* lib/gdb.exp (gdbtk_start): Don't set environment
	variables for TCL_LIBRARY and friends. Insight will
	now figure these out for itself.

2001-08-02  Michael Snyder  <msnyder@redhat.com>

	* gdb.base/completion.exp: Remove the symbol "a64l" from
	the expect string; this is target-specific, and not related
	to what is being tested.

2001-08-02  Dave Brolley  <brolley@redhat.com>

	* config/sid.exp: Rename gdb-socket to cpu-gdb-socket.

2001-07-25  Michael Snyder  <msnyder@redhat.com>

	* gdb.base/consecutive.exp: New file.  Test stepping over
	breakpoints on consecutive instructions.
	* gdb.base/consecutive.c: New file.

	* gdb.base/call-rt-st.exp: Use double-backslash to quote
	curly braces in regular expressions.

2001-07-25  Michael Snyder  <msnyder@redhat.com>

	* gdb.base/ending-run.exp: Accept "Program exited normally" as
	legitimate output from stepping out of main.

2001-07-22  Keith Seitz  <keiths@redhat.com>

	* lib/gdb.exp (_gdbtk_xvfb_init): If GDB_DISPLAY is
	the empty string, do not run the tests.

2001-07-17  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* gdb.base/long_long.exp: Detect size of pointer.  Take into
	account 2-byte pointers when testing for p/a results.

2001-07-17  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* gdb.base/remote.c (RANDOM_DATA_SIZE): New define, defaults to 48K
	and defined to 1K for m68hc11.
	(random_data): Reduce table to 1K for embedded platforms (68hc11).
	* gdb.base/remote.exp (get_sizeof): New function from sizeof.exp.
	(sizeof_random_data): New variable to tell the size of the data table;
	don't test past this size; always run to main.

2001-07-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* gdb.base/return2.exp: return of long long and double fails for
	68HC11; don't execute these tests on that platform.
	* gdb.base/return.exp: Return of a double fails for 68hc11.

2001-07-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* call-ar-st.exp: Use gdb_skip_float_test to avoid executing
	tests that print a float.
	* call-rt-st.exp: Likewise.

2001-07-12  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/so-impl-ld.exp: Remove stray space that prevented
	running this test on Linux.

2001-06-24  Michael Chastain  <chastain@redhat.com>

	* gdb.base/arithmet.exp: Remove some tests to make all test names
	unique.

2001-07-03  Michael Snyder  <msnyder@redhat.com>

	* gdb.c++/classes.exp: Accept both "foo(void)" and "foo()" in
	the output of the ptype command.

2001-07-02  Michael Snyder  <msnyder@redhat.com>

	* gdb.base/completion.exp: Don't assume that break.c is the only
	source file that may contain functions named "marker".
	* gdb.base/corefile.exp: Quote the curly braces in regexp.

2001-06-28  Andrew Cagney  <ac131313@redhat.com>

	* gdb.disasm/Makefile.in (clean mostlyclean): Add h8300s to list
	of files to delete.

	From 2000-06-15 Kazu Hirata <kazu@hxi.com>:
	* gdb.disasm/h8300s.exp: New file.
	gdb.disasm/h8300s.s: Likewise.

2001-06-27  Andrew Cagney  <ac131313@redhat.com>

	* lib/mi-support.exp (mi_delete_breakpoints): Accept mi1 format
	empty breakpoint tables.

2001-06-25  Andrew Cagney  <ac131313@redhat.com>

	* lib/mi-support.exp: Update args=... part of stop-reason
	patterns. Accept either a list or a tuple.

2001-06-23  Andrew Cagney  <ac131313@redhat.com>

	* lib/mi-support.exp: Remove local emacs variable defining
	change-log-default-name.

2001-06-22  Michael Chastain  <chastain@redhat.com>

	* gdb.base/arithmet.exp: Use gdb_test instead of send_gdb/gdb_expect.
	This is operationally compatible with the previous version.

2001-06-13  Jim Blandy  <jimb@redhat.com>

	* lib/gdb.exp (gdb_test): Doc fix.

2001-06-10  Michael Chastain  <chastain@redhat.com>

	* gdb.base/exprs.exp: Remove a duplicate test.

2001-06-06  Jim Blandy  <jimb@redhat.com>

	* gdb.base/return2.exp (main): Use values to test float and double
	returns that are not NaN's, to avoid being confused by IEEE
	comparison rules.

2001-06-04  Michael Snyder  <msnyder@redhat.com>

	* gdb.threads/pthreads.exp (check_control_c): Return 0 for success,
	non-zero if control_c fails.  Terminate the test on failure,
	rather than wait for 12 more tests to time out.

2001-06-06  Jim Blandy  <jimb@redhat.com>

	* gdb.base/exprs.exp ("sizeof (long long) > sizeof (long) (true)"):
	Don't forget to match the GDB prompt.

	* gdb.trace/gdb_c_test.c, actions.c: Fix misspellings.

2001-06-04  Jim Blandy  <jimb@redhat.com>

	* gdb.base/help.exp: Update pattern to exclude `print-load-map'
	command.

2001-05-31  Kevin Buettner  <kevinb@redhat.com>

	* gdb.base/annota1.exp (info break): Match four or more spaces
	after "Address".

2001-05-31  Michael Chastain  <chastain@redhat.com>

	* gdb.c++/cplusfuncs.cc (dm_type_char_star): Remove superfluous cast.
	(dm_type_int_star): Likewise.
	(dm_type_long_star): Likewise.
	(dm_type_void_star): Likewise.

2001-05-29  Kevin Buettner  <kevinb@redhat.com>

	* gdb.base/completion.exp (INPUTRC): Set this environment variable
	to a known value in order to get consistent results regardless
	of the setting of INPUTRC or the presence or contents of .inputrc.

2001-05-24  Michael Snyder  <msnyder@redhat.com>

	* gdb.threads/linux-dp.exp: Remove assumptions about thread ordering.
	Don't require that the main thread and the manager thread are the
	first in the list.

	* gdb.threads/pthreads.exp (test_startup): Relax test for thread
	debugging.  If test fails, issue an "unsupported" not a "fail".

2001-05-24  Jim Blandy  <jimb@redhat.com>

	Don't assume that short is shorter than int.
	* gdb.base/exprs.exp ("print unsigned short == (~0)"): Don't
	assume that shorts are smaller than ints.  On a 16-bit machine,
	this isn't true.
	("print unsigned char == (~0)"): Add test that verifies that ~0,
	an int, is not equal to ~0 stored in an unsigned char.  This tests
	the same thing that the previous test meant to, but works on
	16-bit machines, too.
	("print unsigned char != (~0)"): Same test, complemented.

2001-05-24  Michael Snyder  <msnyder@redhat.com>

	* gdb.threads/pthreads.exp (all_threads_running): Add an explicit
	test for (full_coverage == 0).  This makes the test run faster,
	and prevents dejagnu getting out of step.

2001-05-23  Kevin Buettner  <kevinb@redhat.com>

	* gdb.base/finish.exp (finish_void): Revise pattern for
	stopping on the call statement to not permit stopping at
	the start of the instructions comprising the call sequence.

2001-05-19  Michael Chastain  <chastain@redhat.com>

	* gdb.base/callfuncs.exp: Make all test names unique.
	* gdb.base/commands.exp: Make all test names unique.
	* gdb.base/condbreak.exp: Make all test names unique.
	* gdb.base/dbx.exp: Make all test names unique.
	* gdb.base/default.exp: Make all test names unique.
	* gdb.base/define.exp: Make all test names unique.  Conform some FAIL
	and TIMEOUT messages to their corresponding PASS message.
	* gdb.base/ending-run.exp: Make all test names unique.
	* gdb.base/long_long.exp: Remove duplicate test.

2001-05-21  Kevin Buettner  <kevinb@redhat.com>

	* gdb.base/finish.exp (finish_void): Allow "finish" command to
	stop on the call statement as well as the statement after the
	call.

2001-05-21  Michael Snyder  <msnyder@redhat.com>

	* gdb.base/long_long.exp: Allow for targets with 4-byte short.

2001-05-10  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.base/completion.exp: Revamp test. Make it execute on all
	platforms.

2001-05-10  Elena Zannoni  <ezannoni@redhat.com>

	* config/gdbserver.exp (gdb_load): Handle the case
	in which the arguments to gdbserver are given in the
	baseboard configuration file.
	Also handle the case in which the server needs to do a
	load.

2001-05-07  Keith Seitz <keiths@cygnus.com>

	* lib/gdb.exp (gdbtk_initialize_display): New proc which will
	set up the display for testing.
	(gdbtk_start): Convert all paths to paths that tcl will like.
	Export target information to environment.
	(_gdbtk_xvfb_init): New proc to start Xvfb if available and
	necessary.
	(_gdbtk_xvfb_exit): New proc to kill Xvfb if necessary.
	(to_tcl_path): New proc to convert a given pathname into
	a path acceptible as an argument to a tcl command.
	(_gdbtk_export_target_info): New proc to export target info
	into the environment for gdbtk testing.
	(gdbtk_done): New proc to signal end-of-test.

2001-05-06  Jim Blandy  <jimb@redhat.com>

	* restore.c: Make the code of caller0 correspond to its comment.

2001-05-03  Michael Snyder  <msnyder@redhat.com>

	* config/sid.exp (gdb_target_sid): Check for error messages.
	On error or timeout, don't make expect exit (which will terminate
	all subsequent tests); instead just make gdb exit.
	(gdb_load): Check for error messages.  On error or timeout,
	return a negative value.

2001-04-24  Jim Blandy  <jimb@redhat.com>

	* gdb.c++/templates.exp: If we see the prompt for the overload
	list, but we haven't recognized any of the longer patterns,
	arrange for this test to fail, not hang.

	* gdb.c++/classes.exp (ptype class A): Tolerate whitespace
	variations.

2001-04-22  Michael Chastain  <chastain@redhat.com>

	* gdb.c++/local.exp: Use the 'runto' library function.
	* gdb.c++/namespace.exp: Likewise.
	* gdb.c++/overload.exp: Likewise.

2001-03-26  Kevin Buettner  <kevinb@redhat.com>

	* gdb.base/Makefile.in (EXECUTABLES): Add step-line.
	* gdb.base/step-line.exp: New file.  Test step/next in presence of
	#line directives.
	* gdb.base/step-line.c: New file.  Test program for the above.
	* gdb.base/step-line.inp: New file.  We pretend that this file has
	been transformed by some other tool into step-line.c.

2001-03-21  Jim Blandy  <jimb@redhat.com>

	* gdb.c++/userdef.exp: Check that GDB tolerates whitespace in
	unmangled operator names.

2001-03-20  Jim Blandy  <jimb@redhat.com>

	* gdb.threads/linux-dp.exp: Recognize an additional message
	generated by GDB when it doesn't understand how to debug threads
	on the target system.

2001-03-19  Andrew Cagney  <ac131313@redhat.com>

	* gdb.mi/mi-console.exp: Document ``Hello'' as a known bug.

2001-03-12  Michael Chastain  <chastain@redhat.com>

	* gdb.c++/derivation.exp: Use the 'runto' library function.

2001-03-12  Michael Chastain  <chastain@redhat.com>

	* gdb.c++/annota2.exp: Fix regular expression for "post-query".

2001-02-24  Michael Chastain  <chastain@redhat.com>

	* gdb.c++/ref-types.exp: Change handwritten code to library
	function 'runto'.

2001-03-16  Orjan Friberg  <orjanf@axis.com>

	* gdb.base/signals.exp: Set count to 0 explicitly.

2001-03-15  Mark Salter  <msalter@redhat.com>

	* config/monitor.exp (gdb_target_cmd): Add explicit error return.
	(gdb_target_monitor): Add check of gdb_target_cmd return value.
	(gdb_load): Add support for additional target_info: gdb_download_size
	and gdb_load_timeout.

Thu Mar  8 16:06:00 2001  David Taylor  <taylor@redhat.com>

	* gdb.base/annota1.exp: Move test of isnative to earlier in the
	file -- to prevent failing when the compile fails but we have no
	intention of running the tests anyway.

	* gdb.base/long_long.exp: Test target_info for no_long_long, skip
	tests if set.

	* gdb.base/maint.exp: Support 2 byte integers as well as 4 byte
	integers.

	* gdb.c++/ctti.exp: Skip tests if skip_cplus_tests returns true.
	* gdb.c++/namespace.exp: Ditto.

2001-03-07  Orjan Friberg  <orjanf@axis.com>

	* gdb.base/pointers.c: Don't assume doubles are >= 8 bytes.
	* gdb.base/pointers.exp: Relax pattern match of decimals.

2001-03-06  Kevin Buettner  <kevinb@redhat.com>

	* Makefile.in, config/abug.exp, config/cfdbug.exp,
	config/cpu32bug.exp, config/dve.exp, config/est.exp,
	config/gdbserver.exp, config/hmsirom.exp, config/hppro.exp,
	config/i960.exp, config/m32r.exp, config/mn10300-eval.exp,
	config/monitor.exp, config/proelf.exp, config/rom68k.exp,
	config/sh.exp, config/sid.exp, config/slite.exp,
	config/sparclet.exp, config/udi.exp, config/unknown.exp,
	config/vr4300.exp, config/vr5000.exp, config/vx.exp,
	config/vxworks.exp, config/vxworks29k.exp,
	gdb.asm/asm-source.exp, gdb.base/a2-run.exp,
	gdb.base/all-bin.exp, gdb.base/annota1.exp,
	gdb.base/arithmet.exp, gdb.base/assign.exp,
	gdb.base/async.exp, gdb.base/attach.exp,
	gdb.base/bitfields.exp, gdb.base/bitops.exp,
	gdb.base/break.exp, gdb.base/call-ar-st.exp,
	gdb.base/call-rt-st.exp, gdb.base/call-strs.exp,
	gdb.base/callfuncs.exp, gdb.base/callfwmall.exp,
	gdb.base/commands.exp, gdb.base/completion.exp,
	gdb.base/cond-expr.exp, gdb.base/condbreak.exp,
	gdb.base/constvars.exp, gdb.base/corefile.exp,
	gdb.base/dbx.exp, gdb.base/default.exp, gdb.base/define.exp,
	gdb.base/display.exp, gdb.base/ena-dis-br.exp,
	gdb.base/ending-run.exp, gdb.base/environ.exp,
	gdb.base/eval-skip.exp, gdb.base/exprs.exp,
	gdb.base/finish.exp, gdb.base/foll-exec.exp,
	gdb.base/foll-fork.exp, gdb.base/foll-vfork.exp,
	gdb.base/funcargs.exp, gdb.base/help.exp,
	gdb.base/interrupt.exp, gdb.base/jump.exp, gdb.base/list.exp,
	gdb.base/logical.exp, gdb.base/long_long.exp,
	gdb.base/maint.exp, gdb.base/mips_pro.exp,
	gdb.base/miscexprs.exp, gdb.base/nodebug.exp,
	gdb.base/opaque.exp, gdb.base/overlays.exp, gdb.base/page.exp,
	gdb.base/pointers.exp, gdb.base/printcmds.exp,
	gdb.base/ptype.exp, gdb.base/radix.exp, gdb.base/recurse.exp,
	gdb.base/regs.exp, gdb.base/relational.exp,
	gdb.base/remote.exp, gdb.base/reread.exp,
	gdb.base/restore.exp, gdb.base/return2.exp,
	gdb.base/scope.exp, gdb.base/sect-cmd.exp,
	gdb.base/selftest.exp, gdb.base/setshow.exp,
	gdb.base/setvar.exp, gdb.base/shlib-call.exp,
	gdb.base/sigall.exp, gdb.base/signals.exp,
	gdb.base/sizeof.exp, gdb.base/so-impl-ld.exp,
	gdb.base/so-indr-cl.exp, gdb.base/solib.exp,
	gdb.base/step-test.exp, gdb.base/structs.c,
	gdb.base/structs.exp, gdb.base/structs2.exp,
	gdb.base/term.exp, gdb.base/twice.exp, gdb.base/varargs.exp,
	gdb.base/volatile.exp, gdb.base/watchpoint.exp,
	gdb.base/whatis-exp.exp, gdb.base/whatis.exp,
	gdb.c++/ambiguous.exp, gdb.c++/annota2.exp,
	gdb.c++/anon-union.exp, gdb.c++/classes.exp, gdb.c++/ctti.exp,
	gdb.c++/derivation.exp, gdb.c++/inherit.exp,
	gdb.c++/local.exp, gdb.c++/member-ptr.exp, gdb.c++/method.exp,
	gdb.c++/misc.exp, gdb.c++/namespace.exp, gdb.c++/overload.exp,
	gdb.c++/ref-types.exp, gdb.c++/templates.exp,
	gdb.c++/userdef.exp, gdb.c++/virtfunc.exp,
	gdb.disasm/am33.exp, gdb.disasm/hppa.exp,
	gdb.disasm/mn10200.exp, gdb.disasm/mn10300.exp,
	gdb.fortran/types.exp, gdb.java/jmisc.exp,
	gdb.java/jv-exp.exp, gdb.java/jv-print.exp,
	gdb.stabs/weird.exp, gdb.threads/linux-dp.exp,
	gdb.trace/actions.exp, gdb.trace/backtrace.exp,
	gdb.trace/circ.exp, gdb.trace/collection.exp,
	gdb.trace/deltrace.exp, gdb.trace/infotrace.exp,
	gdb.trace/limits.exp, gdb.trace/packetlen.exp,
	gdb.trace/passc-dyn.exp, gdb.trace/passcount.exp,
	gdb.trace/report.exp, gdb.trace/save-trace.exp,
	gdb.trace/tfind.exp, gdb.trace/tracecmd.exp,
	gdb.trace/while-dyn.exp, gdb.trace/while-stepping.exp,
	lib/gdb.exp, lib/mi-support.exp: Update/correct copyright
	notices.

2001-02-27  Michael Snyder  <msnyder@cygnus.com>

	* gdb.base/varargs.c (find_max_double): Fix printf format string:
	first arg is int not float.

2001-02-22  Michael Snyder  <msnyder@cygnus.com>

	* gdb.base/reread.exp: Unsupported for non-native targets;
	doesn't work for remote debugging.

2001-02-19  Fernando Nasser  <fnasser@redhat.com>

	From  Drew Moseley  <dmoseley@redhat.com>
	* gdb.base/ending-run.exp: Properly handle the BSP state when
	stepping past the end of main.

2001-02-19  John Moore  <jmoore@redhat.com>

	* gdb.base/commands.exp (infrun_breakpoint_command_test):
	Converted HPUX fix for non-expected items following multiple
	step commands into general solution for all platforms.

2001-02-18  Michael Chastain  <chastain@redhat.com>

	* gdb.c++/classes.exp (do_tests): Change runto statements
	from "runto 'foo(void)'" to "runto 'foo'".  This makes the
	statements demangler agnostic.
	* gdb.c++/virtfunc.exp (do_tests): Likewise.
	(gdb_virtfunc_restart): Likewise.

2001-02-14  Michael Chastain  <chastain@redhat.com>

	* gdb.c++/inherit.exp (do_tests): Change runto statements
	from "runto 'foo(void)'" to "runto 'foo'".  This makes the
	statements demangler agnostic.

Sun Feb  4 17:32:21 2001  Andrew Cagney  <cagney@redhat.com>

	* gdb.threads/pthreads.exp: Unify pass/fail messages for
	``continue to bkpt at common_routine in thread 2'' and ``stopped
	before calling common_routine 15 times'' tests.

2001-02-11  Michael Chastain  <chastain@redhat.com>

	* gdb.c++/cplusfuncs.cc (dm_type_char_star): New function.
	Helps the test script figure out which demangler is in use.
	(dm_type_foo_ref): Ditto.
	(dm_type_int_star): Ditto.
	(dm_type_long_star): Ditto.
	(dm_type_unsigned_int): Ditto.
	(dm_type_void): Ditto.
	(dm_type_void_star): Ditto.
	* gdb.base/cplusfuncs.exp (probe_demangler): New function.
	Probe the gdb demangler and set variables to accommodate
	formatting differences.
	(info_func_regexp): New function.  Same as info_func, but
	matches against a regexp.
	(info_func): Match against a literal string.
	(print_addr_2): New function.  Match against a literal string,
	which can be different from the input to gdb.
	(print_addr): Simply call print_addr_2 with the same argument twice.
	(test_lookup_operator_functions): Use demangler formatting variables.
	Blow away the xfails and workarounds for gnats gdb bug gdb/18.  Sort
	the tests in the same order as the C++ class declaration.
	(test_paddr_operator_functions): Ditto.
	(test_paddr_overloaded_functions): Ditto.
	(test_paddr_hairy_functions): Use demangler formatting variables.
	Add reference to gdb/19 for related tests.
	(do_tests): Call probe_demangler.

2001-01-30  Kevin Buettner  <kevinb@redhat.com>

	* gdb.c++/templates.cc (printf): Remove unused function definition.

2001-01-26  Felix Lee  <flee@redhat.com>

	* sid.exp (sid_exit): Pass host, not target, to remote_close.

2001-01-25  matthew green  <mrg@redhat.com>

	* config/sid.exp (sid_start): Call `remote_push_conn' after firing
	up sid.
	(sid_exit): Call `remote_pop_conn' after GDB is gone.

2001-01-25  matthew green  <mrg@redhat.com>

	* config/sid.exp (sid_start): Use `remote_spawn' instead of `spawn.'
	Deprecate $sid_spawn_id.
	(sid_exit): Remove code necessary only for `spawn.'

2001-01-25  matthew green  <mrg@redhat.com>

	* config/sid.exp (sid_start): Handle sim,protocol of `sid.'

2001-01-28  Michael Chastain  <chastain@redhat.com>

	* gdb.c++/ovldbreak.exp (take_gdb_out_of_choice_menu): New proc
	to call when tests fail.  It takes gdb out of the overloaded
	function choice menu back to the main prompt, so that the test
	program stays synchronized.
	(set_bp_overloaded): New proc to collect all the common
	code for setting a breakpoint on an overloaded name.  Calls
	take_gdb_out_of_choice_menu when needed.
	(menu_overload1arg): New variable to collect the repeated
	instances of the expected menu for an overloaded name.  Change
	the regular expression to handle changes in g++ type encoding:
	"void" can be either "void" or "", and "unsigned int" can be
	either "unsigned int" or "unsigned".
	(continue_to_bp_overloaded): Change regular expressions to handle
	changes in g++ type encoding.
	(no proc): Call take_gdb_out_of_choice_menu when needed.
	Remove redundant calls to "info break".  Accept either "canceled"
	or "cancelled".  Change regular expressions in "info break"
	calls to handle changes in g++ type encoding.  Give all tests
	unique strings.

2001-01-17  Ben Elliston  <bje@redhat.com>

	* config/sid.exp: New file.

Fri Jan 12 18:29:01 2001  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdb.base/callfuncs.exp: Add space after ``Value returned is''.

2000-12-21  Michael Snyder  <msnyder@cygnus.com>

	* gdb.base/finish.exp: Accept '1' instead of \001 from char_func.
	Add a RE to accept a non-ascii char if one is ever presented.

2000-12-20  Fernando Nasser  <fnasser@redhat.com>

	* lib/mi-support.exp (mi_gdb_start): Test for MI_OUT, not UI_OUT.

2000-12-18  Michael Snyder  <msnyder@cygnus.com>

	* gdb.base/setvar.exp: Use double '\\' to quote curly braces
	in regexp.  One '\' does not suffice on Linux.

2000-12-09  Michael Chastain  <chastain@redhat.com>

	* gdb.base/break.exp (test_clear_command): Use a marker function
	rather than 'main' for the test function.  Also move this
	test to an execution point where the marker function names are
	guaranteed to be bound to functions.  (Executing tests after a
	'finish' from main runs into name conflicts with local names
	in __libc_start_main).

2000-12-07  Michael Snyder  <msnyder@cygnus.com>

	* gdb.base/finish.exp: New test for gdb's "finish" command.
	* gdb.base/return2.exp: New test for gdb's "return" command.
	* gdb.base/return2.c: New source file for above.

2000-12-05  Michael Snyder  <msnyder@cygnus.com>

	* gdb.base/constvars.exp: Add a "pass" message if "up" succeeds.
	* gdb.base/miscexprs.exp: Ditto.
	* gdb.base/pointers.exp:  Ditto.
	* gdb.c++/derivation.exp: Ditto.
	* gdb.c++/local.exp:      Ditto.
	* gdb.c++/namespace.exp:  Ditto.
	* gdb.c++/overload.exp:   Ditto.
	* gdb.c++/ref-types.exp:  Ditto.

2000-12-05  Michael Snyder  <msnyder@cygnus.com>

	* gdb.base/constvars.exp: Test result of "up" command.
	* gdb.base/miscexprs.exp: Ditto.
	* gdb.base/pointers.exp:  Ditto.
	* gdb.base/scope.exp:     Ditto.
	* gdb.c++/derivation.exp: Ditto.
	* gdb.c++/local.exp:      Ditto.
	* gdb.c++/namespace.exp:  Ditto.
	* gdb.c++/overload.exp:   Ditto.
	* gdb.c++/ref-types.exp:  Ditto.

2000-11-22  Michael Chastain  <chastain@redhat.com>

	* mips_pro.exp: Accept either "middle -> top -> main" or
	"middle -> main" in the backtrace, because gcc can optimize
	tail calls to jumps.  Remove setup_xfail for the hppa case.
	Add a comment with the original warning messages from PR 3016,
	which was filed in 1993, to preserve them for posterity.

2000-11-17  Nick Duffek  <nsd@redhat.com>

	* lib/gdb.exp (gdb_test): Override timeout with board info.

2000-11-17  Nick Duffek  <nsd@redhat.com>

	* gdb.base/display.exp: Don't kill running stub.  Add "again" to
	the second kill and detach messages.

2000-11-17  Nick Duffek  <nsd@redhat.com>

	* configure.in: Add AC_EXEEXT.
	* configure: Regenerate.
	* Makefile.in (just-check): Export EXEEXT.
	* lib/gdb.exp ($EXEEXT): Import from environment.
	* gdb.base/maint.exp: Expect $EXEEXT in executable name.  Don't
	expect "maint dump-me" on Cygwin.
	* gdb.base/reread.exp ($binfile, $binfile1, $binfile2): Append
	$EXEEXT.

2000-11-17  Nick Duffek  <nsd@redhat.com>

	* gdb.base/break.exp: Test backtrace and finish from called
	function on all platforms, not just HP-UX.

2000-11-03  Michael Snyder  <msnyder@cygnus.com>

	* config/monitor.exp (gdb_target_cmd): Abstracts some of the
	code from gdb_target_monitor, so it can be used independantly
	for gdbserver.  Also comment out an unnecessary PUTS.

2000-11-03  Michael Snyder  <msnyder@cygnus.com>

	* gdb.base/a2-run.exp: Use gdb_skip_stdio_test.
	* gdb.base/corefile.exp: Expect the message "Program is being
	debugged already" when we send the "corefile" command, since
	the preceeding gdb_load may have connected gdb to a remote target.
	* gdb.base/display.exp: Disable hardware watchpoints if new
	board info variable "no_hardware_watchpoints" is true.
	Replace single-letter commands with more readable ones.
	* gdb.base/recurse.exp (recurse_tests): Disable hardware watchpoints
	if new board info variable "no_hardware_watchpoints" is true.
	* gdb.base/restore.exp (restore_tests): Call gdb_skip_stdio_tests
	to see if stdio (printf) testing is possible.
	* gdb.base/watchpoint.exp: Disable hardware watchpoints if new
	board info variable "no_hardware_watchpoints" is true.  Use new
	proc "gdb_skip_stdio_tests" to see if printf tests are possible.

2000-11-13  Fernando Nasser  <fnasser@redhat.com>

	From Orjan Friberg  <orjanf@axis.com>:
	* gdb.base/printcmds.exp: Escape curly braces followed by a number
	in array print pattern match.

2000-11-09  Fernando Nasser  <fnasser@redhat.com>

	* gdb.c++/templates.exp (test_template_breakpoints): Change Britsh
	spelling "cancelled" to U.S. spelling "canceled" to match changes
	made to gdb.
	* gdb.c++/ovldbreak.exp: Ditto.

2000-11-06  Peter Schauer  <pes@regent.e-technik.tu-muenchen.de>

	* gdb.base/callfuncs.c (main):  Moved to end of file, call
	t_double_values to initialize the FPU before inferior calls are made.
	* gdb.base/callfuncs.exp:  Test for register preservation after calling
	inferior functions.  Add tests for continuining, finishing and
	returning from a stop in a call dummy.

2000-10-24  Michael Snyder  <msnyder@cygnus.com>

	* gdb.base/commands.exp: Break up long lines, and re-indent.

2000-10-19  Michael Snyder  <msnyder@cygnus.com>

	* config/gdbserver.exp:  Rewritten from the ground up, to make it
	compatible with the current dejagnu tree, and to make it work with
	the new "gdbserver" in libremote.

2000-10-16  Michael Snyder  <msnyder@cygnus.com>

	* gdb.base/sizeof.exp (check_sizeof): Skip if no printf support.
	* gdb.base/varargs.exp: Skip entire test if no printf support.
	* gdb.base/ending-run.exp (Step to return): Skip if no printf supt.
	* gdb.base/shlib-call.exp: Skip several tests if no printf support.

2000-10-13  Michael Snyder  <msnyder@cygnus.com>

	* lib/gdb.exp (gdb_skip_float_test): New proc.  Skip test if
	no floating point support.
	(gdb_skip_stdio_test): New proc.  Skip test if no stdio support.
	* gdb.base/call-ar-st.exp: Use above procs to skip tests.
	* gdb.base/call-rt-st.exp: Ditto.
	* gdb.base/call-strs.exp: Ditto.

2000-08-02  Jimmy Guo  <guo@hpcleara.cup.hp.com>

	* gdb.base/sizeof.c: include <stdio.h>.

	* gdb.c++/classes.exp: Use gdb_test instead of send_gdb to
	'finish', otherwise uncaptured gdb_prompt would potentially
	throw remaining test points out of sync.

2000-07-26  Scott Bambrough <scottb@netwinder.org>

	* gdb.base/recurse.exp: Run tests for all targets.
	* gdb.base/so-impl-ld.exp: Added wildcard to handle the
	gnu-oldld case on ARM.
	* gdb.base/watchpoint.exp (test_stepping): Clear xfail
	for ARM targets.

Mon Jul 24 07:46:02 CDT 2000  Clinton Popetz  <cpopetz@cygnus.com>

	* gdb.java/configure.in (AC_INIT): Use jmisc.exp.
	* gdb.java/configure: Rebuild.

Sun Jul 23 21:42:34 2000  Anthony Green  <green@redhat.com>

	* gdb.java/jv-exp.exp: New file.

Sun Jul 23 21:02:42 2000  Anthony Green  <green@redhat.com>

	* configure: Rebuilt.
	* configure.in (configdirs): Add gdb.java.
	* gdb.java/jmisc.java: New file.
	* gdb.java/jmisc.exp: New file.
	* gdb.java/Makefile.in: New file.
	* gdb.java/configure: Rebuilt.
	* gdb.java/configure.in: New file.
	* lib/java.exp: New file.

Wed Jul 12 18:14:29 2000  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdb.base/exprs.exp: Test casts to a pointer including over and
	underflow.

Thu Jul 13 11:52:53 2000  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdb.base/sizeof.exp, gdb.base/sizeof.c: New files.  Compare GDB
	and the compilers sizes.

2000-07-09  Nick Duffek  <nsd@redhat.com>

	* gdb.c++/misc.cc (class ClassParam, class_param): Define.
	(use_methods): New function.
	(main): Call use_methods().
	* gdb.c++/classes.exp (test_method_param_class): New procedure.
	(do_tests): Call test_method_param_class.

2000-07-09  Nick Duffek  <nsd@redhat.com>

	* gdb.c++/classes.exp (test_nonexistant_members): Fix name
	spelling.
	(test_enums): New procedure.  Move enum tests from end of script
	to here.  Set breakpoint on function name instead of line number.
	* gdb.c++/misc.cc (ClassWithEnum): Move past Foo definitions.
	(enums2): New marker function.
	(enums1): New function.
	(main): Call enums1().  Move enum tests to enums1().

Tue Jul  4 03:43:49 2000  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdb.asm/asm-source.exp: Use raw AS/LD instead of CC to
	compile/link program.  Update line numbers.
	* gdb.asm/d10v.inc: Define ``startup''.
	* gdb.asm/asmsrc1.s: Add definition of _start.

Fri Jun 23 17:45:52 2000  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdb.base/call-ar-st.exp: More rewrites of multi-line patterns.

2000-06-18  Elena Zannoni  <ezannoni@kwikemart.cygnus.com>

	* gdb.base/maint.exp: Add 'maint print architecture' item to output
	of 'help maint print' command.

Fri Jun 16 18:22:05 2000  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdb.base/call-ar-st.exp: Rewrite all multi-line patterns so that
	they use gdb_expect_list.

Wed Jun  7 13:02:40 2000  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdb.base/commands.exp: Use ``set remote
	memory-read-packet-size'' instead of ``set endian big'' to test
	long commands.

2000-06-03  Daniel Berlin  <dan@cgsoftware.com>

	* gdb.c++/templates.exp (do_tests): Make all of these work under
	g++, and stop skipping them.

	* gdb.c++/namespace.exp: Move from gdb.hp/gdb.aCC to here, make it
	work under g++.

	* gdb.c++/misc.cc: Fix ambiguous initialization with correct
	initialization.

2000-06-02  Michael Snyder  <msnyder@cygnus.com>

	* gdb.base/annota1.exp (run until main breakpoint): Loosen up
	the regular expression: accept an (almost) arbitrary sequence of
	"frames-invalid" and "breakpoints-invalid" messages both before
	and after the "starting" message.

2000-06-02  Michael Snyder  <msnyder@cygnus.com>

	* gdb.c++/local.exp: This test has never been known to work with g++.

2000-05-18  Michael Snyder  <msnyder@cygnus.com>

	* gdb.base/annota1.exp (annotate-signal-handler-caller):
	Relax the regular expression a little, make it pass on Solaris 8.

2000-05-12  Kevin Buettner  <kevinb@redhat.com>

	* gdb.base/step-test.exp: On IA-64 targets, when stepping out of
	a call, do not require that gdb stop on the line after the call.
	Instead, it is permissible for gdb to stop on the line of the
	call itself.

2000-05-12  Michael Snyder  <msnyder@.cygnus.com>

	* gdb.base/break.exp (bp on small function, optimized file):
	Add a second pass pattern.  The behavior differs here between stabs
	and dwarf for one-line functions.  Stabs preserves two line symbols
	(one before the prologue and one after) with the same line number,
	but dwarf regards these as duplicates and discards one of them.
	Therefore the address after the prologue (where the breakpoint is)
	has no exactly matching line symbol, and GDB reports the breakpoint
	as if it were in the middle of a line rather than at the beginning.

2000-05-08  Michael Snyder  <msnyder@cygnus.com>

	* gdb.base/interrupt.exp: Make "pass" message say "send"
	rather than "send_gdb" (for consistancy).

Mon May  1 15:37:58 2000  Andrew Cagney  <cagney@b1.cygnus.com>

	From 2000-04-28 Andreas Jaeger  <aj@suse.de>:
	* gdb.c++/templates.cc: Properly check for GCC version number.
	* lib/compiler.cc: Likewise

2000-04-28  Michael Snyder  <msnyder@cygnus.com>

	* gdb.base/break.exp: When compiled with -O2 optimization,
	gdb may not stop at the first line of main, due to code motion.

2000-04-26  Michael Snyder  <msnyder@cygnus.com>

	* gdb.base/call-ar-st.exp: Bail out if target is sparclet.
	This test depends on parsing the printf output from the target.
	Since the sparclet stub doesn't do stdio, this will never work.
	* gdb.base/call-rt-st.exp: ditto.
	* gdb.base/call-strs: ditto.

2000-04-24  Michael Snyder  <msnyder@cygnus.com>

	* gdb.base/miscexprs.exp: make sizeof long array test portable.

	* gdb.base/ending-run.exp: After connecting to a remote target,
	but before running, the target will appear to be in a random
	location.  Specify both a file and a line for breakpoints.
	Also, the function that calls main may be called 'init'
	rather than 'start'.

2000-04-17  Elena Zannoni  <ezannoni@kwikemart.cygnus.com>

	* gdb.base/help.exp: Update output for add-symbol-file command.

2000-04-10  Fernando Nasser  <fnasser@cygnus.com>

	From Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
	* gdb.base/structs2.c: Support platforms defaulting to a unsigned char.

2000-04-07  J.T. Conklin  <jtc@redback.com>

	* gdb.base/call-ar-st.exp: Relax patterns matching tab characters.

	* gdb.base/funcargs.exp: Relax patterns matching pointers to char.

Thu Mar 30 13:26:19 2000  Philippe De Muyter  <phdm@macqel.be>

	* gdb.base/call-ar-st.c (init_small_structs, main): Use floating-point
	values that can be represented exactly.
	* gdb.base/call-ar-st.exp (print print_small_structs): Fixed to match
	above change, and to not check against the directory part of the source
	file name.
	(step into print_long_arg_list): Likewise.
	(print print_small_structs from print_long_arg_list): Likewise.
	(print print_long_arg_list): Likewise.

2000-03-27  Elena Zannoni  <ezannoni@kwikemart.cygnus.com>

	* gdb.base/printcmds.c: Terminate char array ctable2 with 0.

Mon Mar 27 14:46:37 2000  Andrew Cagney  <cagney@b1.cygnus.com>

	* ChangeLog, gdb.base/commands.exp: Revert whitespace changes.

2000-03-25  Daniel Berlin  <dan@cgsoftware.com>

	* gdb.base/commands.exp (deprecated_command_test): Add test for
	deprecate with no arguments.

2000-03-24  Jonathan Larmour  <jlarmour@redhat.co.uk>

	* gdb.base/break.exp: Add new test for setting breakpoints on
	optimized code so we can test breakpoints work even when function
	prologues may be optimized away

2000-03-23  Fernando Nasser  <fnasser@totem.to.cygnus.com>

	From David Whedon <dwhedon@gordian.com>
	* gdb.base/commands.exp : Added command deprecator tests.

2000-03-22  Daniel Berlin   <dan@cgsoftware.com>

       * gdb.base/help.exp: Added test for new apropos command.

2000-03-21  Kevin Buettner <kevinb@redhat.com>

	* gdb.base/pointers.c (usevar): New function.
	(main): Make sure that global variables v_int_pointer2, rptr,
	and y are all referenced someplace in the program by calling
	usevar() on them.  [Some linkers delete symbols which are
	never referenced.  The space remains, but there's no way to
	get a (symbolic) handle on the variable from the debugger.]

2000-03-14  Elena Zannoni  <ezannoni@kwikemart.cygnus.com>

	* gdb.base/printcmds.c: Add typedeffed arrays.

	* gdb.base/printcmds.exp (test_print_typedef_arrays): New
	procedure to test arrays that are typedef'd.

2000-03-13  James Ingham  <jingham@leda.cygnus.com>

	* lib/gdb.exp: Fix the gdbtk_start routine to correctly find all
	the library directories.

Mon Feb 21 13:05:36 2000  Andrew Cagney  <cagney@b1.cygnus.com>

	* configure.in (configdirs): Add sub directory gdb.mi.
	* configure: Re-generate.

	* gdb.mi: New directory.

2000-02-25  Scott Bambrough <scottb@netwinder.org>

	* gdb.base/long_long.exp: Correct test suite failure when printing
	a long long value as a double on ARM platforms.

2000-02-16  Jim Blandy  <jimb@redhat.com>

	* gdb.base/break.exp ("breakpoint line number"): Make sure the
	default source file is set properly before running this test.

2000-02-14  Elena Zannoni  <ezannoni@kwikemart.cygnus.com>

	* lib/gdb.exp: Tell the testsuite that now gdbtk is in the
	gdbtk/library directory, not in gdbtcl2.

2000-02-04  Jim Blandy  <jimb@redhat.com>

	* gdb.c++/templates.exp: ("ptype T5<int>"): Remove extraneous
	backslash from regexp pattern.

	* gdb.c++/ovldbreak.exp (continue_to_bp_overloaded): New
	procedure.  Use it to run all the "continue to bp overloaded"
	tests.  Note that this changes the names of the tests slightly.
	If the breakpoint hit message includes a hex PC value, because
	GCC's Dwarf 2 line info doesn't help us distinguish the prologue
	from the real source code, still consider that a pass.

	* gdb.base/condbreak.exp ("run until breakpoint at marker2"):
	XFAIL here if the breakpoint message contains a hex address.  Note
	similar change on 1999-11-02.

	* gdb.base/step-test.exp: Comment Fernando's change of 2000-02-02.

	* gdb.base/ptype.exp: Establish a default source file before
	calling get_debug_format.

2000-02-03  Fernando Nasser  <fnasser@totem.to.cygnus.com>

	* gdb.base/watchpoint.exp: Remove duplication of test messages.

2000-02-02  Fernando Nasser  <fnasser@totem.to.cygnus.com>

	* gdb.base/step-test.exp: Fix the steps to enter a callee by means
	of successive stepi commands -- while in the prologue we should see
	the function entry bracket.

2000-02-02  Fernando Nasser  <fnasser@totem.to.cygnus.com>

	* gdb.base/ending-run.exp: Add ARM in thumb mode case, where we
	reach __change_mode() when stepping through the end of main().

2000-01-17  Fernando Nasser  <fnasser@totem.to.cygnus.com>

	* gdb.base/default.exp: Fix expected pattern.
	* gdb.base/help.exp: Same.

2000-01-10  Elena Zannoni  <ezannoni@kwikemart.cygnus.com>

	* gdb.base/so-indr-cl.exp: Don't execute the test if not on HPUX.
	Don't use xfail's because that affects only the following test.

	* gdb.base/so-impl-ld.exp: Don't execute the tests if not on hpux,
	solaris or linux.

	* gdb.base/selftest.exp: Update to reflect changes to main.c.

2000-01-07  Michael Snyder  <msnyder@cygnus.com>

	* gdb.base/display.exp: Some yacc parsers like to say
	"A syntax error" rather than "A parse error".  Accept both.

2000-01-06  Fernando Nasser  <fnasser@totem.to.cygnus.com>

	* gdb.base/default.exp: Remove OS dependent string from "target
	remote" test.
	* gdb.base/help.exp: Same for "help target remote" test.

2000-01-04  Elena Zannoni  <ezannoni@kwikemart.cygnus.com>

	From Jim Kingdon <kingdon@redhat.com>:

	* gdb.c++/annota2.exp: Fix "delete bps" test to wait for the
	prompt (cleanup rather than necessity, but still might keep output
	from spilling to next test).

2000-01-02  Fred Fish  <fnf@cygnus.com>

	* gdb.base/ptype.c (FALSE, TRUE): #undef these to avoid clash on
	AIX, which defines them in <sys/types.h>.

1999-12-16  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.base/default.exp: Match arm* etc instead of arm in "info
	float" test.

1999-12-13 Fernando Nasser  <fnasser@totem.to.cygnus.com>

	* gdb.base/watchpoint.exp: Add missing "(timeout)" to test message.

	* gdb.base/break.exp: Add missing anchor to reg exp on "finish from
	outermost frame disallowed".

1999-12-09  Fernando Nasser  <fnasser@totem.to.cygnus.com>

	* gdb.base/setvar.exp: New tests for setting the value of a struct
	with a constant list.

1999-12-08  Fernando Nasser  <fnasser@totem.to.cygnus.com>

	* gdb.base/setvar.exp: Remove pair os tests that expected gdb to
	require the user to type a cast before setting the value of a struct.

1999-12-06  Jim Blandy  <jimb@cygnus.com>

	* gdb.base/default.exp: Expect the new 'info float' command on
	all i386 platforms.

	* gdb.threads/linux-dp.exp: Expand our ability to recognize
	LinuxThreads libraries that don't support debugging.

Sat Dec  4 15:21:18 1999  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdb.base/remote.c: Fill the buffer with truely random data.
	Change the buffer type to ``unsigned char'' to simplify size
	arithmetic.

	* gdb.base/remote.exp: Reduce download numbers by one.  Typical
	stub only handles 400-1 byte packets.  Verify that the download
	worked.

1999-11-30  Fernando Nasser  <fnasser@totem.to.cygnus.com>

	* lib/gdb.exp (gdb_expect_list): FAIL only once on multiple pattern
	tests, using UNRESOLVED for the untested cases.  Also, does not wait
	for a timeout if the prompt was received before a recognizable pattern.

1999-11-29  Fernando Nasser  <fnasser@totem.to.cygnus.com>

	* lib/gdb.exp (gdb_expect_list): Fix spelling.

1999-11-29  Elena Zannoni  <ezannoni@kwikemart.cygnus.com>

	* gdb.base/watchpoint.exp: Add tests cases for the hit count of
	watchpoints.

1999-11-24  Jason Merrill  <jason@casey.cygnus.com>

	* gdb.base/condbreak.exp: Add missing '$gdb_prompt $'.

	* gdb.c++/local.exp: Be more flexible in recognizing local class
	name mangling.  Don't allow horribly truncated method names.
	* gdb.c++/derivation.exp: Expect protected inheritance.
	* gdb.c++/inherit.exp: Be more flexible in recognizing vbase pointers.
	* gdb.c++/virtfunc.exp: Likewise.
	* gdb.c++/classes.exp: Likewise.  Don't require the enclosing scope
	when printing a nested enum.

1999-11-22  Jim Blandy  <jimb@cygnus.com>

	* gdb.base/step-test.exp: Properly await GDB's response to setting
	a breakpoint on the call to large_struct_by_value.

	* gdb.base/ending-run.exp ("step to end of run 1"): Don't fail
	just because we have debug info for the `start' function.

1999-11-19  Jim Blandy  <jimb@zenia.red-bean.com>

	* gdb.threads/linux-dp.exp ("create philosopher"): Recognize the
	"Unknown signal" messages, which indicate (on LinuxThreads) that
	GDB doesn't know how to debug threads on this system.  This is
	better than hanging while philosopher 0 dumps chatter into gdb.log.

1999-11-18  Tom Tromey  <tromey@cygnus.com>

	* gdb.trace/deltrace.exp: Updated test to reflect new error text.

1999-11-18  Fred Fish  <fnf@cygnus.com>

	* gdb.base/coremaker2.c: Add sample program for generating
	cores that is more self contained than coremaker.c.  Eventually
	I'll add more code to this and tie it into the testsuite.

1999-11-12  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.base/dollar.exp: Remove, now in gdb.hp.

1999-11-10  Jimmy Guo  <guo@cup.hp.com>

	* gdb.exp (get_compiler_info): pick up compiler.c and compiler.cc
	from $srcdir/lib/.
	* lib/compiler.c, lib/compiler.cc: New files, moved from gdb.base/
	and gdb.c++/.

	* gdb.c++/derivation.exp: remove redundant get compiler info code.

	* gdb.base/commands.exp: add '$gdb_prompt $' anchor to
	'continue with watch' test point.

1999-11-08  Jim Blandy  <jimb@zenia.red-bean.com>

	Merged from p2linux-990323-branch:

	* lib/gdb.exp (gdb_continue_to_breakpoint): New function.

Mon Nov  8 23:07:09 1999  Andrew Cagney  <cagney@amy.cygnus.com>

	* gdb.base/remote.exp: Test ``set remote memory-write-packet-sized
	{limit,fixed}''.  Test ``set download-write-size''.

Sun Nov  7 17:37:01 1999  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdb.base/funcargs.exp: Rewrite stack traceback checks using
	gdb_expect_list.

Fri Nov  5 18:40:52 1999  Andrew Cagney  <cagney@b1.cygnus.com>

	* lib/gdb.exp (gdb_expect_list): Return a success/fail indication.

1999-11-03  Mark Salter  <msalter@cygnus.com>

	* gdb.base/break.exp: Fix "stub continue" pattern.

1999-11-03  Jim Blandy  <jimb@zwingli.cygnus.com>

	* gdb.base/shlib-call.exp ("next to shr1"): Fix test name.

1999-11-02  Jim Blandy  <jimb@zwingli.cygnus.com>

	* gdb.base/display.exp ("finish"): Add timeout clause.

	* gdb.base/condbreak.exp ("run until breakpoint at marker1"): Add
	plain prompt clause, so this doesn't have to time out in order to
	fail.

	* gdb.base/condbreak.exp, gdb.base/ena-dis-br.exp: XFAIL if the
	breakpoint hit messages include an address.

	* gdb.base/display.exp: Don't forget to escape parens in regular
	expressions.  Unix regexp notatation sucks.

1999-11-02  Elena Zannoni  <ezannoni@kwikemart.cygnus.com>

	* gdb.base/annota1.exp: Test for annotate-signalled: change output
	order for 'signalled' message.

1999-11-01  Stan Shebs  <shebs@andros.cygnus.com>

	From Jimmy Guo  <guo@cup.hp.com>:
	* gdb.base/annota1.exp: Add tests for annotate ignore count change.
	* gdb.base/annota1.c: Add code for tests to work with.

1999-10-26  Frank Ch. Eigler  <fche@cygnus.com>

	* gdb.base/remote.exp: New test for remote downloading settings.
	* gdb.base/remote.c: New file with large .data.

1999-10-18  Jim Blandy  <jimb@zwingli.cygnus.com>

	* gdb.threads/linux-dp.c, gdb.threads/linux-dp.exp: New test suite
	for LinuxThreads support, merged from the Code Fusion branch.

Mon Oct 11 13:57:21 1999  Andrew Cagney  <cagney@amy.cygnus.com>

	* lib/gdb.exp (gdb_run_cmd): Break complicated gdb_expect
	containing exp_continue into a while within an expect.  Don't
	attempt a start more than three times.  Check return value from
	gdb_load.

Wed Oct  6 12:05:58 1999  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdb.base/watchpoint.exp: Match fail ``finish from marker1'' with
	a pass case.

1999-10-01  Kevin Buettner <kevinb@cygnus.com>

	* gdb.base/break.c (main): Added a statement that we can step
	off of.
	* gdb.base/break.exp: Added tests for setting a breakpoint
	at an offset and stepping onto a breakpoint.

1999-10-01  Fred Fish  <fnf@cygnus.com>

	* gdb.base/help.exp (help add-symbol-file): Update to match current
	gdb output.

1999-09-18  Jim Blandy  <jimb@cris.red-bean.com>

	* gdb.base/break.exp: Code locations are in hex, don't forget!
	(For HP-UX.)

1999-09-17  Stan Shebs  <shebs@andros.cygnus.com>

	* condbreak.exp: Use break.c as test program.
	* condbreak.c: Remove, redundant with break.c.

1999-09-15  Stan Shebs  <shebs@andros.cygnus.com>

	* config/monitor.exp (gdb_target_monitor): Disable X- and
	Z-packets if the target needs it.

1999-09-13  James Ingham  <jingham@leda.cygnus.com>

	* gdb.c++/overload.exp: Added tests for listing overloaded
	functions with function pointers in the arg, explicitly calling
	out the version you want.

1999-09-09  Stan Shebs  <shebs@andros.cygnus.com>

	* long_long.exp: Add variations of test cases that work for
	targets with 16-bit ints and 32-bit doubles.

1999-09-08  Stan Shebs  <shebs@andros.cygnus.com>

	* break.c (main): Compare a possibly-uninitialized argc with an
	unlikely value that fits in 16 bits.

1999-09-07  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.base/restore.c, gdb.base/restore.exp: Use 0x7eeb instead of
	0xfeeb, don't want negative numbers if ints are 16 bits.

	* lib/gdb.exp (skip_cplus_tests): New proc.
	* gdb.c++/ambiguous.exp, gdb.c++/annota2.exp,
	gdb.c++/anon-union.exp, gdb.c++/classes.exp,
	gdb.c++/cplusfuncs.exp, gdb.c++/ctti.exp, gdb.c++/demangle.exp,
	gdb.c++/derivation.exp, gdb.c++/inherit.exp, gdb.c++/local.exp,
	gdb.c++/member-ptr.exp, gdb.c++/method.exp, gdb.c++/misc.exp,
	gdb.c++/overload.exp, gdb.c++/ovldbreak.exp,
	gdb.c++/ref-types.exp, gdb.c++/templates.exp, gdb.c++/userdef.exp,
	gdb.c++/virtfunc.exp: Use it to skip over C++ tests.

	* gdb.c++/cplusfuncs.exp: Use get_compiler_info consistently.

Fri Sep  3 15:37:12 1999  Kevin Buettner  <kevinb@cygnus.com>

	* gdb.base/corefile.exp (up): Allow a parameter to appear
	in the frame that we're going up to.

	From Jim Blandy <jimb@cygnus.com>:

	* gdb.base/default.exp (info float): Expect some output now.

	* gdb.base/callfuncs.exp (do_function_calls): We no longer expect
	returning floating-point values to fail on the x86.
	* gdb.base/callfwmall.exp (do_function_calls): Same.

	* gdb.base/list.exp (test_listsize): Correct expectations for
	listing line 1 with listsize 2.  Also, listing a single line
	works now, as does listing three lines.  [Kevin's note: There
	were a number of other cases fixed too where the expectations
	differed...]

1999-09-02  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.base/selftest.exp: Add case for when version prints as
	constant string instead of char pointer.

1999-08-25  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.base/ending-run.exp: Add Solaris case for what happens when
	stepping out of main.

	* gdb.c++/derivation.exp: XFAIL inf fn calls for all configs, if
	G++ used.

	* gdb.c++/local.exp: Expect ptype NestedInnerLocal to succeed
	always, expect ptype InnerLocal::NestedInnerLocal to fail always.

	* gdb.c++/ovldbreak.exp: Update match string in test that
	includes a warning of multiple breakpoints.

1999-08-24  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.base/display.exp: Improve precision of step-after-finish
	added yesterday.

	* gdb.base/signals.exp: Add extra wildcard to "handle all print"
	test.

	* gdb.c++/classes.exp: XFAIL HP-compiler-only tests for all
	configs when using G++, not just hppa*.

1999-08-24  Elena Zannoni  <ezannoni@kwikemart.cygnus.com>

	* gdb.base/async.c: New file.
	* gdb.base/async.exp: New file.

Tue Aug 24 03:24:53 1999  Jeffrey A Law  (law@cygnus.com)

	* gdb.base/break.exp: Tweak PA specific tests to properly handle
	PA64.

Mon Aug 23 10:25:20 1999  Jeffrey A Law  (law@cygnus.com)

	* gdb.base/display.exp: "finish" can leave us mid-line on many
	targets, deal with it.  Add a small constant to main, instead of
	1000 since main+1000 may not be a valid address in the target.

	* gdb.base/dollar.exp: Do not run for PA processors in wide mode
	on hpux11.

	* gdb.base/attach.exp: Handle another hpux11 error message variant
	when attaching to a process that does not exist.

1999-08-19  J.T. Conklin  <jtc@redback.com>

	* gdb.base/call-ar-exp.exp: Fix pattern matching whitespace
	characters in 'continue to 1241' test.

1999-08-17  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.base/call-ar-st.exp: Add a shorter match case for the
	stop in print_long_arg_list, define and use a whitespace
	variable in print_small_structs test, add an XFAIL for Solaris.
	* gdb.base/dbx.exp: XFAIL func commands until somebody is
	interested enough to fix.

1999-08-13  Keith Seitz  <keiths@cygnus.com>

	* gdb.base/dbx.exp (dbx_gdb_file_cmd): Rename to gdb_file_cmd.
	(dbx_gdb_load): Remove. Use gdb_load instead, since that
	proc knows about targets other than the natives.
	(test_assign): Use "gdb_run_cmd" to "run" the target.
	Check that we've actually hit the breakpoint at main.
	When we attempt to assign a value to a local variable, check
	that the variable is in the current scope, i.e., don't use
	a test with an empty result.

Tue Aug 10 15:25:16 1999  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdb.base/maint.exp: Add test of ``maintenance internal-error''
	command.

1999-08-09  Stan Shebs  <shebs@andros.cygnus.com>

	From Jimmy Guo <guo@cup.hp.com> and others at HP:
	gdb.hp: Move tests into subdirectories gdb.aCC, gdb.base-hp,
	gdb.compat, gdb.threads-hp.
	gdb.hp/configure, gdb.hp/configure.in: New files.
	gdb.hp/Makefile.in: Recurse into new subdirs.
	gdb.hp/gdb.defects: New directory, tests for HP bug reports.
	gdb.hp/gdb.objdbg: New directory, tests for debugging info
	in object files.
	gdb.hp/tools: New directory, aux tools for HP-specific tests.

1999-08-05  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.base/display.exp: Help expect by putting a newline in the
	funky printf, remove a bogus p/a test.

1999-08-05  Elena Zannoni  <ezannoni@kwikemart.cygnus.com>

	* gdb.base/display.exp: Make sure that when we say 'run', we are
	connected to the target. This is necessary when running not
	natively.

1999-08-03  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.base/step-test.exp: Removed some extraneous messages.

	* gdb.base/long_long.exp: Don't run memory examination tests
	on little-endian targets (they will need a different set of
	results to match).

1999-08-02  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.c++/virtfunc.exp: Expect to fail the virtual call tests
	until somebody decides to fix GDB.

	* gdb.base/long_long.c: Stop compiler complaint by specifying long
	constant as "ULL".
	* gdb.base/long_long.exp: Loosen x/c test, add partial result
	matches for a couple x/2 commands.

1999-07-30  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.c++/ref-types.cc, gdb.c++/ref-types.exp: Appease doschk
	by merging in ref-types2 tests.
	* gdb.c++/ref-types2.cc, gdb.c++/ref-types2.exp: Remove.

	From Jimmy Guo <guo@cup.hp.com> and others at HP:
	* gdb.c++/Makefile.in: Add standard actions.
	(EXECUTABLES): Rename from PROGS, update list.
	* gdb.c++/ambiguous.cc, gdb.c++/ambiguous.exp: Move to here
	from gdb.hp.
	* gdb.c++/anon-union.cc: Don't use anonymous struct, make
	foo and bar locals.
	* gdb.c++/anon-union.exp: Fix tests to match.
	* gdb.c++/classes.exp: Run if HP compiler used, add extra
	expect matches to handle output variations.
	* gdb.c++/cplusfuncs.cc: Make operator -> return foo *.
	* gdb.c++/cplusfuncs.exp: Update to match, allow word "class" in
	output, add HP alternatives for new and delete prints.
	* gdb.c++/ctti.exp, gdb.c++/cttiadd.cc, gdb.c++/cttiadd1.cc,
	gdb.c++/cttiadd2.cc, gdb.c++/cttiadd3.cc: Move here from gdb.hp.
	* gdb.c++/demangle.exp: Use $style when reporting failure.
	* gdb.c++/derivation.exp: Add some xfails if GCC-compiled.
	* gdb.c++/inherit.exp: Run if HP compiler used, add some
	match alternatives.
	* gdb.c++/local.exp: Add match alternatives or xfails for HP
	compilers.
	* gdb.c++/member-ptr.exp: Add xfails for hppa*-*-*.
	* gdb.c++/method.exp: Add match alternatives.
	* gdb.c++/misc.cc: Add bool types.
	* gdb.c++/misc.exp: Add tests for bool types.
	* gdb.c++/overload.exp: Add xfails.
	* gdb.c++/templates.cc: Remove bogus arglist init, init fvpchar.
	* gdb.c++/templates.exp: Run if HP compiler used, add some xfails,
	add some more template parameter tests (only for HP currently).
	* gdb.c++/userdef.exp: Add xfails for hppa*-*-*.
	* gdb.c++/virtfunc.cc: Add return type and value for main.
	* gdb.c++/virtfunc.exp: Run if HP compiler used, add some
	match alternatives.

1999-07-30  Elena Zannoni  <ezannoni@kwikemart.cygnus.com>

	* gdb.base/display.exp: Fix output of 'p/a &&j' test.

1999-07-29  Jim Blandy  <jimb@savonarola.red-bean.com>

	* gdb.base/signals.exp: Don't expect getting a backtrace from
	within a signal handler to fail on Linux.

1999-07-29  Stan Shebs  <shebs@andros.cygnus.com>

	From Jimmy Guo <guo@cup.hp.com> and others at HP:
	* lib/gdb.exp: Remove some gratuitious semicolons.
	(delete_breakpoints): Increase timeout.
	(gdb_expect): Add -notransfer option.
	(gdb_test): Use -notransfer option.
	(get_compiler_info): Add f77 case.
	(get_compiler): New proc, split out from gdb_preprocess, add f77
	case.
	(gdb_preprocess): Call get_compiler.

	* gdb.base/Makefile.in (EXECUTABLES): Update the list.
	* gdb.base/attach.exp, gdb.base/display.exp,
	gdb.base/ending-run.exp, gdb.base/gdbvars.exp,
	gdb.base/long_long.exp, gdb.base/printcmds.exp,
	gdb.base/structs.exp, gdb.base/structs2.exp: Remove or fill in
	third arg to gdb_test.
	* gdb.base/call-ar-st.exp: Add HP-UX xfail for >10-arg functions.
	* gdb.base/callfuncs.exp, gdb.base/callfwmall.exp: Remove some
	HP-UX xfails, add others.
	* gdb.base/completion.exp: Reflect name change of self-test.
	* gdb.base/condbreak.exp, gdb.base/corefile.exp,
	gdb.base/foll-exec.exp, gdb.base/interrupt.exp,
	gdb.base/ptype.exp, gdb.base/scope.exp, gdb.base/setvar.exp: Note
	HP failure number.
	* gdb.base/foll-vfork.exp: Loosen matches slightly, remove
	useless HP-UX 10.30 references.
	* gdb.base/maint.exp: Loosen matches.
	* gdb.base/pointers.c (main): Declare more_code.
	* gdb.base/pointers.exp: Match on output of a `next'.
	* gdb.base/structs.c: Add prototypes.
	* gdb.base/watchpoint.exp: Remove HP-UX 10.30 reference.
	* gdb.base/whatis.exp: Fail for both HP-UX 10.20 and 11.

1999-07-29  Elena Zannoni  <ezannoni@kwikemart.cygnus.com>

	* gdb.base/list.exp: Add tests for repeating 'list <linenum>'
	command.

1999-07-27  Elena Zannoni  <ezannoni@kwikemart.cygnus.com>

	* gdb.c++/annota2.exp: Fix delete breakpoint query testcase.
	Fix run to main failures. Watchpoint can be hardware watchpoint.

	* gdb.base/annota1.exp: Clean up some more, in case printf has
	debug info.  Deal with lack of signal hanlder info in stack.

	From Jim Kingdon  <kingdon@redhat.com>:
	* gdb.base/annota1.exp: If printf has debug info, deal with it.

1999-07-19  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.base/foll-exec.exp, gdb.base/foll-fork.exp,
	gdb.base/foll-vfork.exp: Don't run for crosses.

Tue Jul 13 23:37:18 1999  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdb.base/configure.in: Check for gdbvars.exp instead of
	a1-selftest.exp.
	* gdb.base/configure: Re-generate.

1999-07-12  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.base/selftest.exp: Rename from a1-selftest.exp, no point
	in trying to run first and name is too long.

	* gdb.base/pointers.c, gdb.base/pointers.exp: Add contents of
	pointers2.c and pointers2.exp, respectively.
	* gdb.base/pointers2.c, gdb.base/pointers2.exp: Remove, makes
	doschk happier.

1999-07-08  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.base/callfwmall.c, gdb.base/callfwmall.exp: Renamed from
	callfuncs2.c and callfuncs2.exp.

	* gdb.base/list.exp: Remove mistaken xfails.
	* gdb.base/list0.h: Add optional prototypes.

Wed Jul  7 00:27:35 1999  Andrew Cagney  <cagney@amy.cygnus.com>

	* gdb.base/setvar.exp: Increase the time-out on tests indirectly
	calling malloc.
	* nodebug.exp, printcmds.exp, ptype.exp, setvar.exp: Ditto.
	* ptype.exp: Move test for get_debug_format to before its first
	use.

1999-07-06  Elena Zannoni  <ezannoni@kwikemart.cygnus.com>

	* gdb.base/Makefile.in (EXECUTABLES): Remove annota2 executable.
	* gdb.base/annota2.cc, annota2.exp: Move from here.
	* gdb.c++/annota2.cc, annota2.exp: To here.
	* gdb.c++/Makefile.in (PROGS): Add annota2 executable.

Tue Jun 29 11:56:06 1999  Andrew Cagney  <cagney@b1.cygnus.com>

	* lib/gdb.exp (gdb_expect_list): Output one message per pattern in
	a consistent format.

1999-06-25  Stan Shebs  <shebs@andros.cygnus.com>

	From Jimmy Guo <guo@cup.hp.com> and others at HP:
	* lib/gdb.exp (get_compiler_info): Add detection for assorted
	HP compilers, also set the globals $true and $false.

	* gdb.base/annota1.c, bitfields.c, break.c, call-ar-st.c,
	call-rt-st.c, call-strs.c, callfuncs.c, callfuncs2.c, condbreak.c,
	coremaker.c, ending-run.c, exprs.c, funcargs.c, interrupt.c,
	jump.c, langs0.c, langs1.c, langs2.c, list0.c, list1.c,
	long_long.c, mips_pro.c, nodebug.c, opaque0.c, opaque1.c,
	printcmds.c, ptype.c, recurse.c, restore.c, return.c, run.c,
	scope0.c, scope1.c, setshow.c, setvar.c, shmain.c, shr1.c, shr2.c,
	sigall.c, signals.c, so-impl-ld.c, so-indr-cl.c, solib.c,
	solib1.c, solib2.c, step-test.c, twice.c, varargs.c, watchpoint.c,
	whatis.c} Add C++ compatible function definitions and return
	types, add includes for library functions.
	* gdb.base/ptype.c (my_false, my_true): Use instead of false/true.
	* gdb.base/step-test.c (myglob): Rename from glob.
	* gdb.base/attach.c, attach2.c, average.c, execd-prog.c,
	foll-exec.c, foll-fork.c, foll-vfork.c, sum.c, vforked-prog.c: New
	files, move here from gdb.hp.
	* gdb.base/annota1.exp, break.exp, call-ar-st.exp, call-rt-st.exp,
	commands.exp, condbreak.exp, define.exp, ena-dis-br.exp,
	ending-run.exp, jump.exp. list.exp, long_long.exp, so-impl-ld.exp:
	Adjust line numbers in regexps.

	* gdb.base/all-bin.exp, eval-skip.exp, exprs.exp, logical.exp,
	miscexprs.exp, pointers.exp, relational.exp: Use $true and $false
	instead of 0/1.

	* gdb.base/attach.exp, dbx.exp, foll-exec.exp, foll-fork.exp,
	foll-vfork.exp: New files, move here from gdb.hp.
	* gdb.base/page.exp: New file, test of pagination command.

	* gdb.base/watchpoint.c (recurser): New function, for watchpoint
	recursion test.
	* gdb.base/watchpoint.exp: Add more test cases for watchpoints.

	* gdb.base/so-impl-ld.exp, gdb.base/so-indr-cl.exp,
	gdb.base/solib.exp: Fix compiler invocation process.

	* gdb.base/callfuncs.exp, gdb.base/callfuncs2.exp: Don't xfail for
	HP-UX 11, turn off overload resolution explicitly.
	* gdb.base/commands.exp: Set argument list explicitly, add
	watchpoint test.
	* gdb.base/completion.exp: Enable if HP-UX, tweak tests to make
	them work.
	* gdb.base/constvars.exp, gdb.base/volatile.exp: Escape the
	expressions properly.
	* gdb.base/corefile.exp: Loosen the match slightly.
	* gdb.base/default.exp: Allow "Error accessing memory" message
	also.
	* gdb.base/display.exp: Skip over x/0 j if PA64.
	* gdb.base/funcargs.exp: Add xfails for HP-UX.
	* gdb.base/interrupt.exp: Ditto.
	* gdb.base/langs.exp: Add symbolic matches governed by compiler
	in use.
	* gdb.base/list.exp: Add xfails for HP-UX.
	* gdb.base/long_long.exp: Refine some of the numeric matches.
	* gdb.base/mips_pro.exp: Xfail on HP-UX.
	* gdb.base/miscexprs.exp: Add PA2.0 case for array size test.
	* gdb.base/nodebug.exp: Succeed on more varieties of output.
	* gdb.base/opaque.exp: Remove some HP-UX xfails.
	* gdb.base/ptype.exp: Succeed on more varieties of output.
	* gdb.base/scope.exp: Add xfails for HP-UX.
	* gdb.base/sect-cmd.exp: Add more cases.
	* gdb.base/setvar.exp: Add xfails for HP-UX.
	* gdb.base/shlib-call.exp: Loosen some matches slightly.
	* gdb.base/signals.exp: Match on void symbolically.
	* gdb.base/step-test.exp: Add case for PA64.
	* gdb.base/term.exp: Add exit and restart.
	* gdb.base/twice.exp: Clean up after self.
	* gdb.base/varargs.exp: Disable overload resolution explicitly.
	* gdb.base/whatis.exp: Allow more ways to pass tests.

	* gdb.base/smoke.exp, gdb.base/smoke.c, gdb.base/smoke.cc: Remove,
	no longer useful.

Fri Jun 25 19:27:28 1999  Andrew Cagney  <cagney@b1.cygnus.com>

	* lib/gdb.exp (proc gdb_expect_list): New procedure.  Matches a
	list of patterns.
	* gdb.base/call-ar-st.exp: Use gdb_expect_list in "print
	print_double_array(double_array)", "continuing to breakpoint
	1018", "print print_double_array(array_d)" and "continuing to
	1034" tests.

1999-06-24  Jason Molenda  (jsm@bugshack.cygnus.com)

	* Makefile.in: Add empty html and install-html targets.

1999-06-24  Stan Shebs  <shebs@andros.cygnus.com>

	* config/mt-*: Remove, these haven't been used since 1996.

1999-06-22  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.base/call-strs.c, gdb.base/ending-run.c,
	gdb.base/step-test.c: Include stdlib.h and string.h as needed.
	* gdb.c++/member-ptr.exp: Skip over these tests if using G++.

1999-06-18  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.c++/overload.exp: XFAIL everything if using G++, add a
	simpler match case for the ptype of the big class.

1999-06-16  Fernando Nasser  <fnasser@totem.to.cygnus.com>

	* gdb.exp: Fix test for gdb_prompt existence.

1999-06-16  Fernando Nasser  <fnasser@totem.to.cygnus.com>

	* gdb.exp (gdb_test): Add fail after calls to perror.

1999-06-16  Fernando Nasser  <fnasser@totem.to.cygnus.com>

	* gdb.exp (gdb_test): Accept variations of Undefined command messages.

1999-06-16  Fernando Nasser  <fnasser@totem.to.cygnus.com>

	* gdb.exp (gdb_test): Fix anchors on gdb_expect statement.

Fri Jun 11 12:56:50 1999  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdb.base/call-strs.c (link_malloc): New function.  Ensure that
	malloc() is linked in.

1999-06-08  Fernando Nasser  <fnasser@totem.to.cygnus.com>

	* gdb.base/ending-run.exp: Make sure we fail and do not timeout at
	step at end.

	* gdb.base/annota1.exp: Increase match_max to prevent timeout.

1999-06-08  Jim Blandy  <jimb@zwingli.cygnus.com>

	* gdb.java/jv-print.exp: New file.  (Our first Java test!)

Fri Jun  4 10:47:46 1999  Jeffrey A Law  (law@cygnus.com)

	* gdb.base/a1-selftest.exp: Remove bogus hppa xfail.
	* gdb.base/mips_pro.exp: Likewise.

1999-06-02  Keith Seitz  <keiths@cygnus.com>

	* gdb.c++/templates.cc: Change all "new" operators to throw
	an exception.
	* gdb.c++/cplusfuncs.cc: Likewise.

	* gdb.base/Makefile.in (EXECUTABLES): Add smoke1, annota1, and annota2.

Wed Jun  2 17:37:05 1999  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdb.base/condbreak.exp: Use rerun_to_main to start the program.
	* gdb.base/ending-run.exp: When stepping out of main, accept a
	step into an arbitrary assembler file.

1999-05-20  Elena Zannoni  <ezannoni@kwikemart.cygnus.com>

	* gdb.base/annota1.exp: Allow any number of "frames-invalid" and
	"breakpoint-invalid" to be printed.
	* gdb.base/annota2.exp: Revise line number for main breakpoint. Allow any
	number of "frames-invalid" and "breakpoint-invalid" to be printed.
	* gdb.base/annota2.cc: Initialize a.x to 0.

1999-05-17  Keith Seitz  <keiths@cygnus.com>

	* gdb.base/call-ar-st.exp: Skip "print print_double_array (double_array)"
	when "skip_float_tests" set.
	Ditto for "print print_double_array(array_d)", "print print_small_structs",
	"print print_ten_doubles", and "step into print_long_arg_list".
	Don't assume we can step into "print_long_arg_list": we could step into memcpy.
	* gdb.base/call-rt-st.exp: Don't run float-related tests when "skip_float_tests"
	is set: "print print_one_double(*d1)" and "print print_two_floats(*f3)".
	* gdb.base/funcargs.exp: Don't run "float_and_integral_args" when
	"skip_float_tests" is set.
	* gdb.base/varargs.exp: Skip "print find_max_double(5,1.0,17.0,2.0,3.0,4.0)"
	when "skip_float_tests" set.

1999-05-06  Keith Seitz  <keiths@cygnus.com>

	* gdb.base/annota2.cc: Include stdio.h.

Wed May  5 17:44:31 1999  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.base/crossload.exp: Remove, this has been disabled ever
	since BFD stopped including all targets, and cross-GDB gets
	plenty of testing anyway.
	* gdb.base/i486-elf.u, gdb.base/m68k-aout.u, gdb.base/m68k-elf.u,
	gdb.base/sparc-aout.u, gdb.base/i860-elf.u, gdb.base/m68k-aout2.u,
	gdb.base/mips-ecoff.u, gdb.base/sparc-elf.u: Remove.
	* gdb.base/README: Remove, was doc for this.
	* gdb.base/Makefile.in (CROSS_EXECUTABLES): Remove, no longer
	needed.

1999-05-04  Elena Zannoni  <ezannoni@kwikemart.cygnus.com>

	* gdb.base/call-ar-st.exp: Fix one regular expression in test
	output.

	* gdb.base/annota1.exp: New file. Annotation level 2 tests.
	* gdb.base/annota2.exp: New file. More annotation tests.
	* gdb.base/annota1.c: New file. Source file for annota1.exp.
	* gdb.base/annota2.cc: New file. Source file for annota2.exp.

1999-04-23  Angela Marie Thomas <angela@cygnus.com>

	* config/cfdbug.exp: New file.

1999-04-20  Jim Blandy  <jimb@zwingli.cygnus.com>

	* gdb.c++/demangle.exp (test_gnu_style_demangling): Add tests for
	Marcus Daniel's and Dale Hawkins's demangler crashes.

	* gdb.c++/demangle.exp (test_gnu_style_demangling,
	test_lucid_style_demangling, test_arm_style_demangling,
	test_hp_style_demangling): Try Tom Tromey's core-dumping
	identifier under each demangling style.

1999-04-07  Jim Blandy  <jimb@zwingli.cygnus.com>

	* gdb.c++/demangle.exp: Include the current demangling style
	in all test names.
	(current_demangling_style): New global variable.
	(set_demangling_style, test_demangling_core, test_demangling,
	test_demangling_exact): New functions.
	(test_gnu_style_demangling, test_lucid_style_demangling,
	test_arm_style_demangling, test_hp_style_demangling): Use those,
	instead of calling gdb_test and gdb_test_exact directly.
	(catch_demangling_errors): New function, which reports errors
	signalled by the demangling test functions in an orderly way.
	(do_tests): Use catch_demangling_errors.

1999-04-06  Jim Blandy  <jimb@zwingli.cygnus.com>

	* gdb.base/signals.exp (test_handle_all_print): Use () for
	grouping in expressions, not {}.

	* gdb.base/smoke.exp: Test value of x, not y.  The latter isn't
	initialized yet.

1999-04-01  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.c++/derivation.exp: Pass ptype tests if synthesized methods
	are listed.

1999-03-26  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.stabs/weird.exp: Test for CC being defined before
	looking at its value.

1999-03-25  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.base/call-ar-st.exp: Remove stray '#'.
	* gdb.base/miscexprs.exp: Allow "short" and "long" as well as
	"short int" and "long int".
	* gdb.c++/overload.cc: Cast the string added in the previous
	change, to mollify finicky HP compiler.
	* gdb.hp/reg-test.exp (testfile): Fix file name.
	* gdb.stabs/weird.exp: Don't try to run if HP compiler in use.

	* gdb.c++/misc.cc (main): Initialize obj_with_enum.
	* gdb.c++/classes.exp: Fix test of obj_with_enum values, allow
	alternate form of enum ptype.

1999-03-23  Stan Shebs  <shebs@andros.cygnus.com>

	* lib/gdb.exp (skip_hp_tests): Remove gcc_used argument.
	* gdb.hp/*.exp: Change all to run compiler probe only after
	passing skip_hp_tests, so as not to waste time on guaranteed
	failure.

	* gdb.c++/overload.cc: Pass string instead of char addr, always
	init ccpfoo.
	* gdb.c++/templates.cc: Fix syntax error.

Tue Mar 23 14:56:36 1999  Elena Zannoni  <ezannoni@kwikemart.cygnus.com>

	* gdb.base/commands.exp: Add test for correct position of '>'
	when issuing the 'commands' command after a 'while' or 'if'
	command.

1999-03-18  James Ingham  <jingham@cygnus.com>

	* gdb.c++/ovldbreak.exp: Use gdb_continue_to_end

	* gdb.c++/method.exp: It was testing an uninitialized int on the
	stack and assuming it was positive.

	* gdb.base/watchpoint.exp: Use gdb_continue_to_end.

	* gdb.base/step-test.exp: Catch a case where finish is broken and
	keep it from killing the rest of the tests.
	Use gdb_continue_to_end.

	* gdb.base/sigall.exp: use gdb_continue_to_end.

	* gdb.base/ena-dis-br.exp: use gdb_continue_to_end.

	* gdb.base/display.exp: use runto_main, not run.

	* gdb.base/default.exp: Check for the current error message in the
	r abbreviation test.
	Add strongarm to the targets that know info float.

	* gdb.base/condbreak.exp: Use the gdb_run command rather than just
	run which doesn't work with monitors.

	* gdb.base/call-ar-st.exp: fixed bogus regexp in continuing to 1034 test.

	* gdb.base/break.exp: use the gdb_continue_to_end proc.

	* lib/gdb.exp: I had added gdb_continue_to_end used to run to the end of a
	program.  Traps the case (in Cygmon) when the program never really
	exits.  Same as Mark's continue_to_exit, but I had put it in a lot
	more places, so I used my name.  Sorry Mark...

	* config/monitor.exp (gdb_target_monitor): added another
	target_info parameter: remotebinarydownload.  This will set the
	remotebinarydownload flag if this is causing some boards trouble.

1999-03-18  Mark Salter  <msalter@cygnus.com>

	* lib/gdb.exp (continue_to_exit): New function.

	* gdb.base/ena-dis-br.exp: Clean up for remote targets.
	* gdb.base/ending-run.exp: Ditto.
	* gdb.base/step-test.exp: Ditto.

1999-03-16  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.base/miscexprs.c: Clean up file, clear cbig.c[0] explicitly
	(suggested by Art Haas <ahaas@neosoft.com>).

1999-03-16  Jim Blandy  <jimb@zwingli.cygnus.com>

	* gdb.base/signals.exp: Filter out *-*-linux* before matching *-*-gnu*.

Fri Mar 12 18:06:21 1999  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.c++/ref-types.exp, ref-types2.exp: Allow alternate
	descriptions of types (short unsigned int vs unsigned short, etc).

1999-03-12  Jim Blandy  <jimb@zwingli.cygnus.com>

	* gdb.base/call-strs.exp: Don't assume that `step' will step over
	a call to strlen; sometimes we do have sources.

1999-03-08  Jim Blandy  <jimb@zwingli.cygnus.com>

	* gdb.base/call-ar-st.c (main): Terminate char_array with a null
	character, so GDB won't print garbage after its end.

	* gdb.base/call-ar-st.exp: Don't step into sum_array_print; set a
	breakpoint there instead.  Sometimes GCC emits memcpy to handle
	the large structures being passed by value, so we step into that
	instead of sum_array_print, which obscures what we're really testing.
	* gdb.base/step-test.exp: However, we do want a test that notices
	the bizarre steps into memcpy, so do that here.	 Add check for
	stepping into function calls that pass large structures by value.
	("Is that a noun clause, or are you just happy to see me?")
	Remove all references to specific line numbers.
	* gdb.base/step-test.c (struct rhomboidal, large_struct_by_value):
	New type and function.
	(main): Call large_struct_by_value, passing it a large struct by value.
	* lib/gdb.exp (gdb_get_line_number): New function.

	* gdb.base/step-test.exp: Rewrite `stepi' and `nexti' tests to be
	more portable.

1999-03-08  Jim Blandy  <jimb@zwingli.cygnus.com>

	* lib/gdb.exp: Doc fixes.

1999-03-05  Nick Clifton  <nickc@cygnus.com>

	* gdb.base/a2-run.exp: Add expected fails for strongarm-coff.

1999-03-04  Jim Blandy  <jimb@zwingli.cygnus.com>

	* gdb.base/display.exp: Don't exercise the "detach" and "kill"
	commands.  They're not germane to this test, and they don't work
	that way on remote targets.

1999-03-01  James Ingham  <jingham@cygnus.com>

	* Changelog entries merged over from gdb development branch.

       Tue Jan  5 12:33:47 1999  Keith Seitz  <keiths@cygnus.com>

	       * lib/gdb.exp (gdbtk_analyze_results): Generic function
	       for outputting results of test run.

	1998-12-07  Martin M. Hunt  <hunt@cygnus.com>

	       * lib/gdb.exp (gdbtk_start): Fix path for itcl library.

1999-02-25  Felix Lee  <flee@cygnus.com>

	* lib/gdb.exp (debug_format): initialize

1999-02-25  Jason Molenda  (jsm@bugshack.cygnus.com)

	* gdb.base/call-ar-st.c: Include string.h, not strings.h.
	* gdb.base/call-rt-st.c: Ditto.

1999-02-13  Jim Blandy  <jimb@zwingli.cygnus.com>

	* gdb.threads/pthreads.exp (horiz): New variable.
	(test_startup): Fix regexps that capture thread numbers.

1999-02-10  Jason Molenda  (jsm@bugshack.cygnus.com)

	* gdb.base/smoke.exp: Disambiguate two test case names (both
	called ``print'').

Fri Feb  5 12:42:56 1999  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.base/volatile.exp: Use gdb_test, add xfails for GCC
	compilation.

1999-02-04  Jason Molenda  (jsm@bugshack.cygnus.com)

	* gdb.base/miscexprs.exp: Change patterns to match GDB's
	actual output formatting.
	* gdb.base/smoke.exp: GDB removes leading 0's.
	* gdb.base/volatile.exp: Don't check type of remuneration;
	that variable is no longer defined in constvars.c.
	* gdb.base/step-test.c (main): Exit with explicit exit code.
	* gdb.base/step-test.exp: Remove two nexti checks--they are
	not portable.

1999-02-04  Jason Molenda  (jsm@bugshack.cygnus.com)

	* gdb.base/help.exp ("help delete display"): Fix test to match
	gdb's output.

	* gdb.base/long_long.c (known_types): Initialize values to zero.
	* gdb.base/long_long.exp: Step one more line
	so 'dec' is initialized in "get to known place".  GDB removes
	leading zeros.  Explicitly ask for hex formatting.  Use
	unique test case names.

Tue Feb  2 10:16:08 1999  Elena Zannoni  <ezannoni@kwikemart.cygnus.com>

	* lib/gdb.exp (gdb_preprocess): Remove 'puts' statement.

	* gdb.c++/method.exp: Add missing close brace.

1999-01-30  Jim Blandy  <jimb@zwingli.cygnus.com>

	* gdb.base/maint.exp: Use 'set height 0' to disable page
	prompting, not 'set height 400'.

	Fix a bunch of timeouts.
	* gdb.base/maint.exp ("maint print objfiles"): Break this up into
	four separate tests, so expect doesn't take forever to match a ton
	of text against a regexp with lots of .* forms.
	("maint print psymbols", "maint print symbols"): Make some of
	these greps more selective, so that expect doesn't try to wade
	through huge piles of output and time out.

	* gdb.base/maint.exp ("maint print msymbols"): Fix pattern.

	* gdb.base/maint.exp ("maint info breakpoints"): Split into two
	tests: one which doesn't expect shlib events to be reported, and
	another which does, but is XFAIL for all platforms other than
	HP/UX.

	* gdb.base/break.exp: Teach the test suite that the `catch
	fork', `catch vfork', and `catch exec' commands produce error
	messages on platforms that don't provide these features.

Mon Jan 25 18:35:56 1999  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.hp/gen-so-thresh.c, so-thresh.sh, so-thresh.exp,
	so-thresh.linkopts, so-thresh.mk: Move to gdb.hp from gdb.base
	(shortening names from solib_threshold.exp etc), won't run on
	anything but HP-UX for the foreseeable future.
	* gdb.hp/Makefile.in, gdb.base/Makefile.in (clean): Adjust to
	reflect move.

Thu Jan 21 15:46:49 1999  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.base/Makefile.in, gdb.c++/Makefile.in,
	gdb.trace/Makefile.in (clean): Remove all test executables.

Tue Jan 19 17:20:09 1999  David Taylor  <taylor@texas.cygnus.com>

	* gdb.base/shlib-call.exp: add test cases to verify that gdb
	successfully re-sets breakpoints in shared libraries.
	* gdb.base/shmain.c (main): return 0, don't fall off the end.

Fri Jan 15 14:04:57 1999  Elena Zannoni  <ezannoni@kwikemart.cygnus.com>

	* gdb.hp/xdb3.exp: do not execute unless on hppa-hpux platform
	and compiled w/o GCC.

	* gdb.hp/watch-cmd.exp: ditto.

	* gdb.hp/watch-hp.exp: ditto.

	* gdb.hp/xdb1.exp: ditto.

	* gdb.hp/xdb2.exp: ditto.

	* gdb.hp/dbx.exp: ditto.

Thu Jan 14 18:36:48 1999  Stan Shebs  <shebs@andros.cygnus.com>

	* constvars.c: Remove C++-isms.
	* constvars.exp: Use gdb_test everywhere, add xfails if compiled
	with GCC.

Mon Jan 11 10:08:03 1999  David Taylor  <taylor@texas.cygnus.com>

	The following changes are part of the HP merge.

	* gdb.base/break.exp: new tests to verify that catchpoints for
	fork, vfork, and exec don't trigger inappropriately.

	* gdb.base/opaque.exp: compile one file at a time, then link.

	* gdb.base/signals.exp: be more restrictive about which hppa
	systems receive a setup_xfail.  new tests.

	* gdb.base/solib_threshold.build: new file.
	* gdb.base/solib_threshold.exp: new file.
	* gdb.base/solib_threshold.link_opts: new file.
	* gdb.base/solib_threshold.mk: new file.
	* gdb.base/gen_solib_threshold.c: new file.

	* gdb.c++/classes.exp: if on HPUX and not using gcc, skip the
	tests.  New tests for enums inside classes.

	* gdb.c++/compiler.cc: indicate support of template debugging.

	* gdb.c++/demangle.exp: run hp style demangling tests.

	* gdb.c++/inherit.exp: if on HPUX and not using gcc, skip the
	tests.

	* gdb.c++/misc.cc: changes to support new tests.

	* gdb.c++/templates.cc: changes to support HP's compiler; changes
	to support new tests.

	* gdb.c++/virtfunc.exp: if we are on HPUX and we are not using
	gcc, then skip these tests.

Sun Jan 10 23:44:11 1999  David Taylor  <taylor@texas.cygnus.com>

	The following files are part of the HP merge; some had longer
	names at HP, but have been renamed to be no more than 14
	characters in length.

	* gdb.hp/ambiguous.cc: new file.
	* gdb.hp/ambiguous.exp: new file.
	* gdb.hp/attach.exp: new file.
	* gdb.hp/attach2.exp: new file.
	* gdb.hp/classes-hp.exp: new file.
	* gdb.hp/ctti.exp: new file.
	* gdb.hp/ctti-add.cc: new file.
	* gdb.hp/ctti-add1.cc: new file.
	* gdb.hp/ctti-add2.cc: new file.
	* gdb.hp/ctti-add3.cc: new file.
	* gdb.hp/dbx.exp: new file.
	* gdb.hp/exception.cc: new file.
	* gdb.hp/exception.exp: new file.
	* gdb.hp/foll-exec.c: new file.
	* gdb.hp/foll-exec.exp: new file.
	* gdb.hp/foll-fork.c: new file.
	* gdb.hp/foll-fork.exp: new file.
	* gdb.hp/foll-vfork.c: new file.
	* gdb.hp/foll-vfork.exp: new file.
	* gdb.hp/inherit-hp.exp: new file.
	* gdb.hp/more-steps.exp: new file.
	* gdb.hp/namespace.cc: new file.
	* gdb.hp/namespace.exp: new file.
	* gdb.hp/optimize.exp: new file.
	* gdb.hp/pxdb.c: new file.
	* gdb.hp/pxdb.exp: new file.
	* gdb.hp/quicksort.exp: new file.
	* gdb.hp/reg-test.exp: new file.
	* gdb.hp/reg-test.s: new file.
	* gdb.hp/sized-enum.c: new file.
	* gdb.hp/sized-enum.exp: new file.
	* gdb.hp/start-stop.exp: new file.
	* gdb.hp/templ-hp.cc: new file.
	* gdb.hp/templ-hp.exp: new file.
	* gdb.hp/thr-lib.c: new file.
	* gdb.hp/thr-lib.exp: new file.
	* gdb.hp/thr-lib.h: new file.
	* gdb.hp/thr-liblib.c: new file.
	* gdb.hp/virtfun-hp.c: new file.
	* gdb.hp/virtfun-hp.exp: new file.
	* gdb.hp/watch-cmd.exp: new file.
	* gdb.hp/watch-hp.exp: new file.
	* gdb.hp/xdb1.exp: new file.
	* gdb.hp/xdb2.exp: new file.
	* gdb.hp/xdb3.exp: new file.

Wed Jan  6 18:41:15 1999  David Taylor  <taylor@texas.cygnus.com>

	The following files are part of the HP merge; some had longer
	names at HP, but have been renamed to be no more than 14
	characters in length.

	* gdb.base/ss.h: new file.
	* gdb.base/call-ar-st.c: new file.
	* gdb.base/call-ar-st.exp: new file.
	* gdb.base/call-rt-st.c: new file.
	* gdb.base/call-rt-st-exp: new file.
	* gdb.base/call-strs.exp: new file.
	* gdb.base/ena-dis-br.exp: new file.
	* gdb.base/environ.exp: new file.
	* gdb.base/long_long.exp: new file.
	* gdb.base/sect-cmd.exp: new file.
	* gdb.base/shlib-cl2.exp: new file.
	* gdb.base/smoke.exp: new file.
	* gdb.base/so-impl-ld.c: new file.
	* gdb.base/so-impl-ld.exp: new file.
	* gdb.base/so-indr-cl.c: new file.
	* gdb.base/so-indr-cl.exp: new file.
	* gdb.base/varargs.exp: new file.
	* gdb.base/volatile.exp: new file.
	* gdb.base/whatis-exp.exp: new file.
	* gdb.base/display.exp: new file.
	* gdb.c++/derivation.exp: new file.
	* gdb.c++/local.exp: new file.
	* gdb.c++/member-ptr.exp: new file.
	* gdb.c++/overload.exp: new file.
	* gdb.c++/ovldbreak.exp: new file.
	* gdb.c++/ref-types.exp: new file.
	* gdb.c++/ref-types2.exp: new file.
	* gdb.c++/userdef.exp: new file.

Wed Jan  6 13:50:57 1999  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.base/default.exp: Reflect wording change in remote.c.

Tue Jan  5 19:14:51 1999  Michael Snyder  <msnyder@cygnus.com>

	* gdb.base/help.exp: Update to reflect current text.

Tue Jan  5 13:05:32 1999  David Taylor  <taylor@texas.cygnus.com>

	* gdb.c++/anon-union.cc: make foo and bar global, otherwise
	they're stack variables and contain garbage.
	* gdb.c++/anon-union.exp: new file.

	The following changes were made by David Taylor
	<taylor@cygnus.com>, Elena Zannoni <ezannoni@cygnus.com>, and
	Edith Epstein <eepstein@cygnus.com> as part of a project to merge
	in changes by HP.

	* gdb.base/bitops.exp: new file.
	* gdb.base/default.exp: change expected messages for catch and
	info catch tests to reflect HP merge changes.
	* gdb.base/enable-disable-break.exp
	* gdb.base/ending-run.c: new file.
	* gdb.base/long_long.c: new file.
	* gdb.base/maint.exp: new file.
	* gdb.base/pointers2.exp: new file.
	* gdb.base/shlib-call2.exp: new file.
	* gdb.base/solib.exp: new file.
	* gdb.base/step-test.c: new file.
	* gdb.c++/anon-union.cc: new file.
	* gdb.c++/local.cc: new file.
	* gdb.c++/member-pointer.cc: new file.
	* gdb.c++/method.cc: new file.
	* gdb.c++/ref-types.cc: new file.
	* gdb.c++/ref-types2.cc: new file.
	* gdb.c++/userdef.cc: new file.

	* gdb.base/scope.exp: compile one file at a time, then link.
	* gdb.base/langs.exp: ditto.
	* gdb.base/list.exp: ditto.

Mon Jan  4 10:06:43 1999  David Taylor  <taylor@texas.cygnus.com>

	The following changes were made by David Taylor
	<taylor@cygnus.com>, Elena Zannoni <ezannoni@cygnus.com>, and
	Edith Epstein <eepstein@cygnus.com> as part of a project to merge
	in changes by HP.

	* gdb.c++/inherit.exp: if on hppa*-*-hpux* and not using gcc,
	skip tests.  When compiling pass c++ flag to gdb_compile.
	* gdb.c++/

	* lib/gdb.exp (get_compiler_info): new, optional argument -- args;
	test for on hppa*-*-hpux*; use args to see if c++ was specified.
	(skip_hp_tests): new function.
	(gdb_preprocess): new function.

	* configure.in (hpdir): decide whether to configure gdb.hp.
	* configure: regenerated.

	* gdb.base/Makefile.in (MISCELLANEOUS): new macros -- extra things
	to delete on clean.
	(EXECUTABLES): update to reflect new additions.
	* gdb.base/commands.exp: update message expected.
	* gdb.base/default.exp: add copyright notice.
	* gdb.base/funcargs.exp (timeout): if hpux, increase timeout.
	* gdb.base/help.exp: update messages to reflect current text.
	* gdb.base/recurse.exp: add hpppa*-*-bsd* to 'list' of enabled
	targets for recurse tests.
	* gdb.base/watchpoint.exp: if on hpux and not gcc compiled, then
	skip this file.

	* gdb.c++/Makefile.in (PROGS): update to reflect new executables.
	* gdb.c++/cplusfuncs.exp: tell gdb_compile that it's a c++
	compilation.
	* gdb.c++/misc.exp: ditto.
	* gdb.c++/templates.exp: if we're on hpux and it's not gcc, don't
	run the tests.  tell gdb_compile that it's a c++ compilation.

	* gdb.threads/pthreads.exp: fix typo in message.

	* gdb.base/all-bin.exp: new file.
	* gdb.base/arithmet.exp: new file.
	* gdb.base/assign.exp: new file.
	* gdb.base/completion.exp: new file.
	* gdb.base/cond-expr.exp: new file.
	* gdb.base/condbreak.exp: new file.
	* gdb.base/define.exp: new file.
	* gdb.base/dollar.exp: new file.
	* gdb.base/environment.exp: new file.
	* gdb.base/eval-skip.exp: new file.
	* gdb.base/jump.exp: new file.
	* gdb.base/logical.exp: new file.
	* gdb.base/pointers.exp: new file.
	* gdb.base/relational.exp: new file.
	* gdb.base/section_command.exp: new file.
	* gdb.base/whatis-expr.exp: new file.

	* gdb.base/all-types.c: new file.
	* gdb.base/call-array-struct.c: new file.
	* gdb.base/call-return-struct.c: new file.
	* gdb.base/call-strings.c: new file.
	* gdb.base/callfuncs2.c: new file.
	* gdb.base/condbreak.c: new file.
	* gdb.base/constvars.c: new file.
	* gdb.base/display.c: new file.
	* gdb.base/int-type.c: new file.
	* gdb.base/jump.c: new file.
	* gdb.base/miscexprs.c: new file.
	* gdb.base/pointers.c: new file.
	* gdb.base/pointers2.c: new file.
	* gdb.base/shmain.c: new file.
	* gdb.base/shr1.c: new file.
	* gdb.base/shr2.c: new file.
	* gdb.base/solib.c: new file.
	* gdb.base/solib1.c: new file.
	* gdb.base/solib2.c: new file.
	* gdb.base/varargs.c: new file.
	* gdb.c++/derivation.cc: new file.
	* gdb.c++/overload.cc: new file.
	* gdb.c++/ovldbreak.cc: new file.
	* gdb.hp/attach.c: new file.
	* gdb.hp/attach2.c: new file.
	* gdb.hp/average.c: new file.
	* gdb.hp/compiler.c: new file.
	* gdb.hp/compiler.cc: new file.
	* gdb.hp/execd-program.c: new file.
	* gdb.hp/follow-exec.c: new file.
	* gdb.hp/follow-fork.c: new file.
	* gdb.hp/follow-vfork-and-exec.c: new file.
	* gdb.hp/misc-hp.cc: new file.
	* gdb.hp/more-steps.c: new file.
	* gdb.hp/optimize.c: new file.
	* gdb.hp/quicksort.c: new file.
	* gdb.hp/run-hp.c: new file.
	* gdb.hp/start-stop.c: new file.
	* gdb.hp/sum.c: new file.
	* gdb.hp/templates-hp.cc: new file.
	* gdb.hp/thread-local-in-lib.c: new file.
	* gdb.hp/thread-local-in-lib.h: new file.
	* gdb.hp/thread-local-in-lib.lib.c: new file.
	* gdb.hp/vforked-program.c: new file.
	* gdb.hp/virtfunc-hp.cc: new file.
	* gdb.hp/watchpoint-hp.c: new file.
	* gdb.hp/xdb.c: new file.
	* gdb.hp/xdb0.c: new file.
	* gdb.hp/xdb0.h: new file.
	* gdb.hp/xdb1.c: new file.

Mon Dec 21 14:08:38 1998  David Taylor  <taylor@texas.cygnus.com>

	The following change was made by Edith Epstein
	<eepstein@cygnus.com> as part of a project to merge in changes
	originally made by HP; HP did not create ChangeLog entries.

	* gdb.c++/demangle.exp: changed the expected output for some
	ARM-style mangling -- removed second reference to datatype.
	For example, maint demangle __dt__11T1__pt__2_cFv
		     T1<char>::~T1<char>(void)
	becomes,
		     maint demangle __dt__11T1__pt__2_cFv
		     T1<char>::~T1(void)

	(test_hp_style_demangling): new hp specific demangling test cases.

Mon Dec 14 15:07:03 1998  Jeffrey A Law  (law@cygnus.com)

	* gdb.trace/actions.exp: Ignore compiler warnings compiling actions.c
	* gdb.trace/backtrace.exp: Likewise.
	* gdb.trace/circ.exp: Likewise.
	* gdb.trace/collection.exp: Likewise.
	* gdb.trace/deltrace.exp: Likewise.
	* gdb.trace/infotrace.exp: Likewise.
	* gdb.trace/limits.exp: Likewise.
	* gdb.trace/packetlen.exp: Likewise.
	* gdb.trace/passc-dyn.exp: Likewise.
	* gdb.trace/passcount.exp: Likewise.
	* gdb.trace/report.exp: Likewise.
	* gdb.trace/save-trace.exp: Likewise.
	* gdb.trace/tfind.exp: Likewise.
	* gdb.trace/tracecmd.exp: Likewise.
	* gdb.trace/while-dyn.exp: Likewise.
	* gdb.trace/while-stepping.exp: Likewise.

1998-12-07  Jim Blandy  <jimb@zwingli.cygnus.com>

	* gdb.base/restore.exp, gdb.base/restore.c: New tests.

Wed Dec  2 20:03:53 1998  Stan Shebs  <shebs@andros.cygnus.com>

	From Brendan Kehoe:
	* gdb.c++/cplusfuncs.cc, misc.cc, virtfunc.cc: Add now-required
	int return types.

Sat Oct 24 18:04:22 1998  Felix Lee  <flee@cygnus.com>

	* config/slite.exp (gdb_load): use gdb_file_cmd, so we can do
	remote dos host testing right.

Mon Oct 19 01:31:59 1998  Felix Lee  <flee@cygnus.com>

	* gdb.base/corefile.exp: remove some xfails.

Thu Oct 15 10:04:38 1998  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdb.base/reread.exp: Sleep 1 - ensures that the two executables
	have different timestamps.

Thu Oct  1 20:56:14 1998  Andrew Cagney  <cagney@b1.cygnus.com>

	* lib/gdb.exp, gdb.base/default.exp, config/monitor.exp,
	gdb.base/default.exp: Replace "exec" with "executable".

Tue Sep 29 15:06:29 1998  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdb.base/default.exp: Change else if to elseif from previous
	delta.

Mon Sep 28 13:21:43 1998  Nick Clifton  <nickc@cygnus.com>

	* gdb.base/default.exp: Add brace missing from previous delta.

Mon Sep 21 14:39:27 1998  Nick Clifton  <nickc@cygnus.com>

	* gdb.base/default.exp: Support test for info float for all
	varieties of arm toolchain.

Fri Sep 18 14:07:44 1998  Michael Snyder  <msnyder@cygnus.com>

	* gdb.trace/*.exp: remove "remote_download" command.

Wed Sep 16 11:38:21 1998  Michael Snyder  <msnyder@cygnus.com>

	* gdb.trace/*.exp: remove -gdwarf from compile.

Wed Sep 16 01:23:11 1998  Felix Lee  <flee@cygnus.com>

	* gdb.trace/configure.in(AC_INIT): typo
	* gdb.trace/configure: regenerated

Mon Sep 14 20:00:04 1998  Michael Snyder  <msnyder@cygnus.com>

	* config/m68k-emc.exp: New file.
	* lib/<emc-support.exp trace-support.exp}: New files.
	* configure.in: add new test directory gdb.trace.
	* gdb.trace/{configure configure.in Makefile.in}: New files.
	* gdb.trace/{actions.c actions.exp gdb_c_test.c}: New files.
	* gdb.trace/{circ.c circ.exp limits.c limits.exp}: New files.
	* gdb.trace/{collection.c collection.exp tfind.exp }: New files.
	* gdb.trace/{backtrace.exp deltrace.exp infotrace.exp}: New files.
	* gdb.trace/{packetlen.exp passc-dyn.exp passcount.exp}: New files.
	* gdb.trace/{report.exp save-trace.exp tracecmd.exp}: New files.
	* gdb.trace/{while-dyn.exp while-stepping.exp}: New files.

Fri Sep 11 13:58:02 1998  Michael Snyder  <msnyder@cygnus.com>

	* gdb.c++/classes.exp: Change all regular expressions to match
	arbitrary combinations of newline/carriage-return, so that they
	will work equally well on Unix and Windows.
	* gdb.c++/inherit.exp: ditto.
	* gdb.c++/virtfunc.exp: ditto.

1998-08-11 Dawn Perchik  <dawn@cygnus.com>

	* gdb.base/setshow.exp: Fix error introduced by call to runto_main.

Fri Jul 24 15:51:34 1998  Jeffrey A Law  (law@cygnus.com)

	* gdb.disasm/am33.s: Add tests for autoincrement instructions.
	* gdb.disasm/am33.exp: Run time.  Update tests which use r8-r15
	to use a0-a3/d0-d3 as needed.

Thu Jul 16 18:20:46 1998  Jeffrey A Law  (law@cygnus.com)

	* gdb.disasm/am33.s: Add 4 operand mul and mulu tests.
	* gdb.disasm/am33.exp: Corresponding changes.

1998-07-11  Felix Lee  <flee@cygnus.com>

	* gdb.base/callfuncs.exp: add cmp10 test.
	* gdb.base/callfuncs.c (cmp10): new function.

Thurs Jul 9 11:08:31 1998  Dawn Perchik  <dawn@cygnus.com>

	* gdb.base/commands.exp: Break up infrun_breakpoint_command_test
	into two parts to get around a synchronization problem in expect.

Fri Jun 26 14:27:13 1998  Keith Seitz  <keiths@cygnus.com>

	* lib/gdb.exp (gdbtk_start): Add startup for gdbtk.

	* configure.in: Add options for gdbtk testsuite.

	* configure: Regenerate.

	* gdb.gdbtk: New directory to hold gdbtk tests.

Fri Jun 26 14:52:47 1998  Peter Schauer  <pes@regent.e-technik.tu-muenchen.de>

	* gdb.fortran/types.exp:  Escape brackets in expect patterns
	for test_float_literal_types_accepted tests.
	* gdb.base/scope.exp:  Remove extraneous newline in filelocal_bss
	before run test.

Fri Jun 26 11:12:17 1998  Jeffrey A Law  (law@cygnus.com)

	* am33.exp: Just compile, do not link the testcase.
	* am33.s: Add ".am33" pseudoop to force am33 mode.

1998-06-25  Felix Lee  <flee@cygnus.com>

	* gdb.base/setshow.exp: make sure $pc is sane.

	* gdb.stabs/weird.exp: split expect patterns properly.

Wed Jun 24 13:03:15 1998  Jeffrey A Law  (law@cygnus.com)

	* gdb.disasm/am33.s: New disassembler testfile for the am33.
	* gdb.disasm/am33.exp: Run it.

Tue Jun 23 11:45:01 1998  Michael Snyder  <msnyder@cygnus.com>

	* gdb.base/funcargs.exp: simplify expect strings to ease pattern
	match processing (and eliminate spurious timeouts when running).

Fri Jun 12 17:28:22 1998  Michael Snyder  <msnyder@cygnus.com>

	* gdb.base/signals.exp (test_handle_all_print): put back Mach
	exception test, but conditionalize it on target [mach | gnu].

Wed Jun 10 10:40:03 1998  Michael Snyder  <msnyder@cygnus.com>

	* gdb.base/overlays.exp: fixup compile line for linker script.

Thu Jun  4 21:54:15 1998  Felix Lee  <flee@zog.cygnus.com>

	* gdb.fortran/types.exp: don't guess at float size.

Thu May 21 02:28:37 1998  Felix Lee  <flee@zog.cygnus.com>

	* gdb.base/exprs.exp: delete test that depends on int size.

Sun May 17 17:10:22 1998  Bob Manson  <manson@charmed.cygnus.com>

	* config/sim.exp: Removed checks for target triplets.
	(gdb_target_sim): Use gdb,target_sim_options.

Sat May 16 23:43:35 1998  Mark Alexander  <marka@cygnus.com>

	* gdb.base/reread.exp: New file.
	* gdb.base/reread1.c: New file.
	* gdb.base/reread2.c: New file.

Sat May 16 23:22:09 1998  Mark Alexander  <marka@cygnus.com>

	* config/sim.exp: Use 'target sim -sparclite' when running
	SPARClite programs.

Sat May 16 18:48:08 1998  Doug Evans  <devans@canuck.cygnus.com>

	* gdb.base/structs2.exp: New file.
	* gdb.base/structs2.c: New file.

Wed May 13 13:36:14 1998  Doug Evans  <devans@canuck.cygnus.com>

	* gdb.asm/common.inc: New file.
	* gdb.asm/d10v.inc: New file.
	* asm-source.exp: Pass -I's to gas to find .inc files.
	Update line numbers in expected output.
	* asmsrc1.s: Rewrite.
	* asmsrc2.s: Rewrite.
	* configure.in: Create arch.inc symlink.
	* configure: Regenerate.
	* Makefile.in (distclean): Delete arch.inc.

Wed May  6 10:30:54 1998  John Metzler  <jmetzler@cygnus.com>

	*  callfuncs.c (t_enum_value1) : Cleanup return value warnings
	(t_enum_value2): ditto
	(t_enum_value3): ditto
	(main): ditto
Fri May  1 09:33:37 1998  Peter Schauer  <pes@regent.e-technik.tu-muenchen.de>

	* gdb.base/break.exp:  Remove xfail for `deleting all breakpoints
	when none' unexpected prompt case, fixed by breakpoint.c:delete_command
	change.
	Use gdb_test instead of send_gdb/gdb_expect sequences.

Thu Apr 23 12:56:19 1998  Jason Molenda  (crash@bugshack.cygnus.com)

	* gdb.c++/virtfunc.cc: Declare extern "C" printf to return int,
	not void.

Thu Apr 16 10:52:34 1998  John Metzler  <jmetzler@cygnus.com>

	* gdb.base/branches.c: Code with lots of loops and
	subroutines. Used to test gdbs ability to single step through PC
	changes, especially to test mips-tdep.c:mips_next_pc

Mon Apr 13 22:32:51 1998 Frank Ch. Eigler <fche@cygnus.com>

	* gdb.c++/virtfunc.cc: Make extern "C" printf declaration pass
	more rigorous EGCS C++ error checking.

Fri Apr 10 22:38:12 1998 Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.base/help.exp:  Clean up `help set args' and `help show args'
	tests.
	* gdb.base/interrupt.exp:  Add "i*86-*-solaris2*" xfail for calling
	function when asleep.
	* gdb.base/signals.exp:  Add "i*86-*-solaris2*" xfails. Add comment
	for i*86 Linux and SVR4 signal handling problems.
	Remove linux xfail for `next to handler in signals_tests_1', fixed
	by recent infrun.c change.
	Limit backtrace to 10 frames to avoid timeout problems with infinite
	stack backtraces.
	Adjust expect pattern in `handle all print' test to match Apr 28 1997
	target.[ch] change.

Tue Mar 31 00:40:32 1998  Bob Manson  <manson@charmed.cygnus.com>

	* lib/gdb.exp(gdb_test): Send multiline commands one at a time; wait
	for a newline from gdb before continuing.
	(default_gdb_exit): Just look for y or n.
	(gdb_test): Detect abnormal exit from GDB running on DOS; if
	it does, fail the rests of the tests in the file.

Tue Mar 24 22:44:52 1998  Bob Manson  <manson@charmed.cygnus.com>

	* config/cygmon.exp: New file.

Mon Mar 16 21:39:11 1998  Bob Manson  <manson@charmed.cygnus.com>

	* gdb.base/list.exp: Fix problem with "list default lines around
	main" test on remote targets.

	* gdb.base/scope.exp: Fix problem with filelocal_bss before
	run test on remote targets.

Thu Mar 12 16:23:00 1998  Doug Evans  <devans@canuck.cygnus.com>

	* gdb.asm: New directory.
	* configure.in: Configure it.
	* configure: Regenerate.
	* gdb.asm/{Makefile.in,configure.in,configure}: New files.
	* gdb.asm/{asm-source.exp,asmsrc1.s,asmsrc2.s}: New files.

Mon Feb 23 08:22:44 1998  Mark Alexander  <marka@cygnus.com>

	* config/mn10300-eval.exp: New file to support MN10300 eval board.

Wed Feb 18 16:43:46 1998  Michael Snyder  (msnyder@cygnus.com)

	* gdb.base/overlays (several files): Merge the two overlay
	managers into one.  Change variables (foox, barx, bazx, grbxx)
	back into ints but force them to load in their proper sections.

Thu Feb 12 13:49:30 1998  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdb.base/d10vovly.c (D10VTranslate): Map IMAP0 to low 128k of
	on-chip insn memory and IMAP1 to upper 128k.
	(D10VCopy): Handle memory regions crossing 16k boundaries.
	(D10VCopy): Transfer data in 32 bit chunks.

Tue Feb 10 17:23:22 1998  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdb.base/overlays.c (main): Exit normally when result is
	correct.

	* gdb.base/d10v.ld: Update LMAs to reflect current d10v address
	map.  Include space for printf in .text segment.

	* gdb.base/d10vovly.c (D10VTranslate): New function, handle
	updated d10v memory VMA/LMA map.
	(D10VCopy): Call D10VTranslate.

Fri Feb  6 14:13:12 1998  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdb.base/m32rovly.c: Force variable _novlys into .data section.

	* gdb.base/bar.c (barx, bar): Change variable to small array so
	that it won't be put into the .sdata - small data -
	section. Update reference.
	* gdb.base/baz.c (bazx, baz): Ditto.
	* gdb.base/foo.c (foox, foo): Ditto.
	* gdb.base/grbx.c (grbxx, grbx): Ditto.

	* gdb.base/overlays.exp: Expect variables barx, bazx, foox, grbxx
	to be arrays.

Thu Jan 29 14:48:19 1998  Michael Snyder  (msnyder@cygnus.com)

	* gdb.base/overlays.exp: fix up and get working again.
	Add tests for backtraces from an overlay function.

Fri Jan 23 07:52:45 1998  Fred Fish  <fnf@cygnus.com>

	* gdb.base/watchpoint.exp: Set "d10v*-*-*" clear_xfail for
	"calling function with watchpoint enabled".

Thu Jan 22 14:23:29 1998  Fred Fish  <fnf@cygnus.com>

	* gdb.base/break.exp (test_next_with_recursion): Remove
	gdb_suppress_tests for d10v-*-*.
	* lib/gdb.exp (gdb_suppress_tests): Disable this function
	pending review of whether it is useful or not.

Tue Jan 20 13:02:09 1998  Mark Alexander  <marka@cygnus.com>

	* gdb.base/funcargs.exp: Increase timeout for slow TX39 boards.

Mon Jan 19 08:53:04 1998  Mark Alexander  <marka@cygnus.com>

	* gdb.base/break.exp: Increase timeout for slow TX39 boards.
	* config/dve.exp: New file to support Densan boards.

Mon Dec 15 22:38:05 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdb.base/interrupt.exp: Document problem of simulators, signals,
	reads and BSD.

Wed Nov 26 22:29:18 1997  Bob Manson  <manson@charmed.cygnus.com>

	* config/monitor.exp: Be a bit less picky about the "Remote debugging"
	response.

	* gdb.c++/misc.exp: Call runto_main instead of doint it manually.

Tue Nov 25 12:46:36 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdb.base/mips_pro.exp: Add "mips64*-*-elf" xfail for backtrace
	test.

	* gdb.base/funcargs.exp: Query GDB for target_sizeof_int,
	target_sizeof_long and target_bigendian_p.
	(structs_by_value, structs_by_reference): Check values according
	to targets word size and endianess.

Mon Nov 24 16:37:06 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdb.base/langs.exp: For "continue to exit" ignore any trailing
	output.

Fri Oct 17 13:24:43 1997  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.base/default.exp, gdb.base/help.exp, gdb.base/setshow.exp:
	Update test of set args help to match source change.

Fri Sep 26 17:36:20 1997  Jason Molenda  (crash@pern.cygnus.com)

	* gdb.base/default.exp: Expect help system output to be in
	alphabetical order.
	* gdb.base/help.exp: Ditto.

Wed Sep 24 13:08:14 1997  Bob Manson  <manson@charmed.cygnus.com>

	* gdb.base/signals.exp: Change "i*86-pc-linux-gnu" to
	"i*86-pc-linux-gnu*".
	* gdb.base/interrupt.exp: Ditto.
	* gdb.base/corefile.exp: Ditto.

	* lib/gdb.exp(gdb_compile): If is_vxworks target feature is set,
	define vxworks when building the testcase.

	* gdb.base/ptype.exp: Fix testnames to be unique.
	* gdb.base/radix.exp: Ditto.
	* gdb.base/term.exp: Ditto.
	* gdb.base/whatis.exp: Ditto.
	* gdb.c++/classes.exp: Ditto.

Tue Sep 16 22:21:48 1997  Bob Manson  <manson@charmed.cygnus.com>

	* gdb.base/callfuncs.exp: Fix indentation.

	* lib/gdb.exp(gdb_expect): Set remote_suppress_flag if
	suppress_flag has been set.
	(gdb_step_for_stub): Check for gdb,use_breakpoint_for_stub
	target feature.

Mon Sep 15 15:43:17 1997  Bob Manson  <manson@charmed.cygnus.com>

	* gdb.stabs/weird.exp: Don't start gdb 'til after we've compiled
	the testcase.

	* gdb.c++/cplusfuncs.cc(main): Add extern "C" declaration for
	set_debug_traps() and breakpoint().
	* gdb.c++/misc.cc (main): Ditto.
	* gdb.c++/templates.cc (main): Ditto.
	* gdb.c++/virtfunc.cc (main): Ditto.

Fri Sep 12 16:56:38 1997  Bob Manson  <manson@charmed.cygnus.com>

	* lib/gdb.exp(gdb_step_for_stub): New function.
	(gdb_run_cmd): Look for gdb,do_reload_on_run target feature--if it
	exists, reload the executable and do a "continue" instead of
	doing a jump.
	(runto_main): Use gdb_step_for_stub.

	* gdb.base/break.exp: Use gdb_step_for_stub. Also, rename certain
	tests to have unique names.
	* gdb.base/callfuncs.exp: Ditto.
	* gdb.base/commands.exp: Ditto.
	* gdb.base/default.exp: Ditto.
	* gdb.base/help.exp: Ditto.
	* gdb.base/list.exp: Ditto.
	* gdb.base/opaque.exp: Ditto.
	* gdb.base/printcmds.exp: Ditto. Use a loop to emit multiple
	similar tests.

	* gdb.base/setshow.c: Add set_debug_traps/breakpoint calls.
	* gdb.c++/cplusfuncs.cc: Ditto.
	* gdb.c++/virtfunc.cc: Ditto.

	* config/monitor.exp: Keep track of the last file we saw, rather
	than trying to get the info from gdb.

	* gdb.fortran/types.exp: Move comment to previous line.

Tue Sep  2 19:55:34 1997  Bob Manson  <manson@charmed.cygnus.com>

	* config/sparclet.exp: Detect gratuitous change to sparclet gdb
	target mode.

Mon Jul 28 12:14:47 1997  Stan Shebs  <shebs@andros.cygnus.com>

	From Bob Manson:
	* config/monitor.exp (gdb_target_monitor): Look for "Connected to"
	string from GDB when it connects.

	* lib/gdb.exp: Look for $TOOL_EXECUTABLE.

Thu Jul  3 15:35:12 1997  Bob Manson  <manson@charmed.cygnus.com>

	* lib/gdb.exp(get_debug_format): Don't cause the testsuite to fail
	if we can't get a debug format from GDB (we may be testing an
	older GDB). Use a 10 second timeout when checking for the format.

	* gdb.stabs/weird.exp: Fix quoting.

	* config/sparclet.exp: Renamed sparclet-loader.c to stub-loader.c.

Mon Jun 30 18:31:43 1997  Bob Manson  <manson@charmed.cygnus.com>

	* config/arm-ice.exp: New file.

Sun Jun 29 16:43:30 1997  Bob Manson  <manson@charmed.cygnus.com>

	* gdb.base/overlays.exp: Preliminary fixes; temporarily disabled
	until it has been modified to work with the new testsuite.

	* gdb.*/*.exp: Instead of causing 1 unresolved test when the
	testcase won't compile, cause all of the testcases in the file to
	fail instead.

	* lib/gdb.exp(gdb_suppress_entire_file): New procedure.
	(gdb_clear_suppressed): New procedure.
	(gdb_stop_suppressing_tests): Only clear suppress_flag if
	it contains a positive value.

Sat Jun 28 13:31:11 1997  Bob Manson  <manson@charmed.cygnus.com>

	* lib/gdb.exp(default_gdb_start): Use gdb_opts host feature.

	* gdb.c++/virtfunc.exp: Remove setting of libs variable.

Fri Jun 27 07:44:25 1997  Fred Fish  <fnf@cygnus.com>

	* lib/gdb.exp (setup_xfail_format): New function.
	(get_debug_format): New function to get debug format.
	(debug_format): New global variable to hold last value set
	by get_debug_format.
	* gdb.base/list.exp: Call get_debug_format and expect some
	tests to fail for DWARF 1 and COFF formats.
	* gdb.c++/ptype.exp: Ditto.
	* gdb.c++/classes.exp: Ditto.
	* gdb.c++/cplusfuncs.exp: Ditto.
	* gdb.c++/inherit.exp: Ditto.
	* gdb.c++/templates.exp: Ditto.
	* gdb.c++/virtfunc.exp: Ditto.

Wed Jun 25 09:08:51 1997  Bob Manson  <manson@charmed.cygnus.com>

	* lib/gdb.exp(default_gdb_exit): Don't give an error if the remote
	host doesn't have a currently-open connection.

	* config/sparclet.exp: Cleanups and fixes to make it generic for
	any gdb stub target. Handle cases where gdb doesn't respond when
	interrupted in a sane fashion.

	* config/m32r-stub.exp: Load sparclet.exp instead of trying to do the
	same thing in a totally different way.

	* config/monitor.exp: Pass in timeouts to gdb_expect instead of
	setting "timeout".
	(gdb_start): We set the global gdb_prompt variable in
	default_gdb_init now.

Sun Jun 22 09:11:02 1997  Fred Fish  <fnf@cygnus.com>

	* gdb.base/printcmds.exp: Fix "check for floating addition"
	regexp to accept results within approx +/- .01 of exact value.
	* lib/gdb.exp (gdb_test): Remove unused expect_out global decl.

Wed Jun 18 11:11:39 1997  Bob Manson  <manson@charmed.cygnus.com>

	* lib/gdb.exp(gdb_init): Pass our arguments to default_gdb_init
	properly.
	(gdb_expect): Add optional timeout parameter, and add timeout
	value to various calls.
	(gdb_suppress_tests): Only give one warning message per group.

Tue Jun 17 13:10:10 1997  Bob Manson  <manson@charmed.cygnus.com>

	* lib/gdb.exp(gdb_expect): Declare errorInfo and errorCode as
	global variables. Handle getting a value for $timeout more
	gracefully.

Sat Jun 14 09:23:26 1997  Bob Manson  <manson@charmed.cygnus.com>

	* lib/gdb.exp: Close connection to remote host if gdb doesn't
	initialize.
	(default_gdb_init): New procedure; allow gdb_init to be overridden
	by a target configuration file.
	(gdb_expect): Pass the timeout to remote_expect.

	* config/monitor.exp(gdb_load): Fix typo in regexp.

Thu Jun 12 20:57:12 1997  Bob Manson  <manson@charmed.cygnus.com>

	* gdb.base/funcargs.exp: Remove spurious suppress tests call.

Tue Jun  3 15:20:20 1997  Bob Manson  <manson@charmed.cygnus.com>

	* config/monitor.exp(gdb_target_monitor): Call gdb_file_cmd
	here. Call gdb_target_exec before rebooting the target, to make
	sure the connection to the target is closed.
	(gdb_load): Pass the name of the executable to gdb_target_monitor.
	Don't call gdb_file_cmd here; let gdb_target_monitor do it.
	Also detect "Timeout reading from remote" error.

	* config/gdbserver.exp: Pass the executable being loaded to
	gdb_target_monitor. Don't call gdb_file_cmd here; let
	gdb_target_monitor do it.

	* gdb.disasm/hppa.exp: Don't use exec_output.

Fri May 23 13:28:29 1997  Bob Manson  <manson@charmed.cygnus.com>

	* gdb.base/list.exp: If we're debugging a non-native target,
	try to set the pc register to point to the start of the
	program before doing the first list command.

	* gdb.c++/virtfunc.exp(gdb_virtfunc_restart): Make sure we run
	test_calls after restarting.

	* lib/gdb.exp(gdb_run_cmd): Send jump command again after
	reloading.

	* gdb.base/watchpoint.exp: Fix typo.

	* gdb.base/setshow.exp: Check for use_gdb_stub.

	* gdb.base/break.exp: Fix continue until exit test for the gdb
	stub case.
	* gdb.base/langs.exp: Ditto.

	* config/monitor.exp(gdb_load): Handle gdb_sect_offset and
	gdb_load_offset. If we weren't given a file to load, figure out
	what the current file is and use it.

	* config/i386-bozo.exp: New file.

Thu May 22 18:51:32 1997  Bob Manson  <manson@charmed.cygnus.com>

	* lib/gdb.exp(gdb_expect): Look for gdb,timeout target
	feature.

	* config/proelf.exp: New entry.

Wed May 21 21:23:16 1997  Bob Manson  <manson@charmed.cygnus.com>

	* lib/gdb.exp: Remove spurious .* patterns at the beginning
	of regexps.

	* gdb.base/watchpoint.exp: Don't run the test_stepping
	tests if gdb can't call functions on the target.

	* gdb.base/setshow.exp: Don't run the set prompt tests if
	the board has gdb_prompt set.

Tue May 20 08:58:49 1997  Jeffrey A Law  (law@cygnus.com)

	* gdb.base/a2-run.exp: Change "gdb,noargs" to just "noargs".
	* gdb.base/commands.exp: Likewise.
	* gdb.base/setshow.exp: Likewise.

Mon May 19 15:37:50 1997  Bob Manson  <manson@charmed.cygnus.com>

	* config/monitor.exp(gdb_start): Look for gdb_prompt target
	feature.

	* config/i960.exp: New file.

Thu May  1 18:01:50 1997  Bob Manson  <manson@charmed.cygnus.com>

	* gdb.base/funcargs.exp: Check for gdb,short_int target
	feature instead of looking for explicit target triplets.

Mon Apr 28 17:27:40 1997  Michael Snyder  <msnyder@cygnus.com>

	* gdb.base/printcmds.exp: add a couple more tests a la
	"p 123DEADBEEF", to check parse_number.
	* top.c: change "to enable to enable" to "to enable" in a couple
	of help strings.

Thu Apr 24 14:38:18 1997  Jeffrey A Law  (law@cygnus.com)

	* gdb.base/callfuncs.exp: Mark some tests as expected to fail
	on the mn10300.

Mon Apr 21 15:05:42 1997  Fred Fish  <fnf@cygnus.com>

	* gdb.base/a2-run.exp: Add arm-*-coff setup_xfails for cases
	where the test executable is run with explicit args.
	* gdb.base/default.exp: Handle arm-*-coff case for "info float".

Mon Apr 21 13:38:58 1997  Fred Fish  <fnf@cygnus.com>

	* gdb.base/run.c: Use FAKEARGV to build test executable that
	does not require a command line arg, since most simulators
	don't currently support passing such an arg into the simulated
	program.
	* gdb.base/commands.exp: Change tests to insert the proper
	value as the arg to the first recursive factorial call.  Change
	compilation line to define FAKEARGV at compile time.

Wed Apr  9 11:12:36 1997  Jeffrey A Law  (law@cygnus.com)

	* gdb.base/recurse.exp: Enable these tests for the mn10300.
	* gdb.base/watchpoint.exp: Don't expect a failure for an "calling
	function with watchpoint enabled" test.

Tue Apr  8 19:33:20 1997  Bob Manson  <manson@charmed.cygnus.com>

	* gdb.base/watchpoint.exp(test_watchpoint_triggered_in_syscall):
	Don't call gdb_test when the command doesn't return to a gdb prompt.

	* lib/gdb.exp(gdb_stop_suppressing_tests): Don't print gratuitous
	"Tests restarted" messages.

Tue Apr  8 16:38:46 1997  Jeffrey A Law  (law@cygnus.com)

	* gdb.disasm/mn10300.exp: Fix buglets in "other" tests.

Thu Apr  3 15:21:26 1997  Michael Snyder  <msnyder@cygnus.com>

	* gdb.base/help.exp: update help msg for INFO ADDR; add help test
	for INFO SYMBOL; add help tests for OVERLAY commands.
	* gdb.base/default.exp: add tests for INFO SYMBOL command;
	add tests for OVERLAY commands
	* gdb.base/overlays.c overlays.exp foo.c bar.c baz.c grbx.c ovlymgr.h
	d10v.ld m32r.ld d10vovly.c m32rovly.c: add test case for overlays.
	* gdb.base/sigall.c: add usestubs code frag
	* gdb.base/watchpoint.exp: turn on complex watchpoint test for M32R.

Thu Apr  3 09:38:53 1997  Bob Manson  <manson@charmed.cygnus.com>

	* lib/gdb.exp(gdb_suppress_tests): Add explanation for subsequent
	failures.
	(gdb_stop_suppressing_tests): Note that tests have restarted.

Wed Apr  2 19:04:20 1997  Bob Manson  <manson@charmed.cygnus.com>

	* config/h8300.exp: New file.

Sun Mar 30 13:38:25 1997  Bob Manson  <manson@charmed.cygnus.com>

	* gdb.base/setshow.exp: Check for the existence of a
	feature, not its value.

Sat Mar 29 11:19:46 1997  Bob Manson  <manson@charmed.cygnus.com>

	* gdb.c++/virtfunc.exp: Restart gdb in a sane fashion.

	* gdb.base/scope.exp: It's now init0(), not init().

	* gdb.base/scope0.c: For now, change init() to be init0().

	* config/monitor.exp: Use gdb_serial in preference to serial
	or netport.

	* lib/gdb.exp: Set GDB to [transform gdb] if we're using a remote host
	and it's not already set.

Fri Mar 28 19:54:18 1997  Bob Manson  <manson@charmed.cygnus.com>

	* gdb.base/setshow.exp: Only test the run command if the target
	isn't using a stub and if it supports argument passing.

Sat Mar 22 19:50:25 1997  Bob Manson  <manson@charmed.cygnus.com>

	* config/udi.exp(gdb_start): Make sure UDICONF is set
	properly before starting gdb.

Mon Mar 24 14:40:33 1997  Jeffrey A Law  (law@cygnus.com)

	* gdb.disasm/mn10300.s: New test file for mn10300 disassembler.
	* gdb.disasm/mn10300.exp: Run mn10300 disassembler tests.
	* gdb.disasm/Makefile.in: Remove "mn10300" when cleaning.

Tue Mar 11 11:42:58 1997  Bob Manson  <manson@charmed.cygnus.com>

	* config/vx.exp: Use remote_ld, not vxworks_ld. Don't use
	specialized code to reboot the board, use remote_reboot instead.

	* config/vxworks29k.exp: Use vx.exp, not vx-gdb.exp.

	* lib/gdb.exp: Add GDB_TESTCASE_OPTIONS.

	* config/monitor.exp: Make sure we disconnect from the target.
	Also, try a reboot/reload cycle instead of failing if the
	load fails.

Fri Mar  7 13:48:30 1997  Bob Manson  <manson@charmed.cygnus.com>

	* gdb.base/default.exp: Don't set match_max.
	* gdb.base/help.exp: Ditto.
	* gdb.base/list.exp: Ditto.
	* gdb.base/signals.exp: Ditto.

	* config/monitor.exp(gdb_load): If gdb,use_standard_load is
	set, use remote_ld to download the testcase instead of
	the GDB loader.

Wed Mar  5 00:00:43 1997  Bob Manson  <manson@charmed.cygnus.com>

	* config/vr5000.exp: New file.

	* config/monitor.exp(gdb_target_monitor): Add pattern for
	"Ending remote" to detect errors in connecting.

	* gdb.base/setshow.exp: Add .* within auto language test.

	* lib/gdb.exp(gdb_run_cmd): Add check for gdb_init_command
	target feature.

	* config/monitor.exp(gdb_load): Check for a failure when loading,
	and reboot the board if necessary.

	* gdb.base/setvar.exp(test_set): Handle multiple prints within
	a set of tests. Remove print.* from the patterns being checked.

Mon Mar  3 11:57:43 1997  Bob Manson  <manson@charmed.cygnus.com>

	* gdb.base/a1-selftest.exp: Use send_gdb consistently. Don't
	refer to gdb_spawn_id.

	* config/m32r-stub.exp: Remove references to gdb_spawn_id, no
	longer used.
	* config/sparclet.exp: Ditto.
	* config/sparclet-old.exp: Ditto.
	* config/slite.exp: Ditto.
	* config/sim.exp: Ditto.
	* gdb.base/funcargs.exp: Ditto.

	* lib/gdb.exp:Remove references to gdb_spawn_id.
	(gdb_expect): Move to remote.exp.

Fri Feb 28 20:47:39 1997  Bob Manson  <manson@charmed.cygnus.com>

	* config/monitor.exp: Detect the "Couldn't establish connection"
	message from GDB.

Tue Feb 25 14:08:55 1997  Bob Manson  <manson@charmed.cygnus.com>

	* gdb.base/bitfields.exp: Use runto instead of explicit
	gdb_run_cmd/gdb_expect sequences.

	* gdb.base/break.exp(text_next_with_recursion): Add match for
	gdb_expect call.

	* config/monitor.exp(gdb_target_monitor): Calling exit loses big.
	We also need to handle the "A program is being debugged already"
	prompt from gdb. Use gdb_test to set the baud rate.

	* lib/gdb.exp(gdb_init): Increase the default expect buffer size
	to 20000. Really. I mean it.

Mon Feb 24 13:23:26 1997  Bob Manson  <manson@charmed.cygnus.com>

	* lib/gdb.exp(gdb_test): Generate a FAIL message when send_gdb
	fails. If suppress_flag is set, skip perror message about not
	being able to send to GDB.
	(send_gdb): If suppress_flag is set, don't try to send commands to
	GDB.
	(gdb_expect): If suppress_flag is set, always fail immediately.
	(gdb_suppress_tests, gdb_stop_suppressing_tests): New functions.
	(gdb_init): Call gdb_stop_suppressing_tests.
	(default_gdb_exit): Ditto.
	(default_gdb_start): Ditto.

	* gdb.base/bitfields.exp: Call gdb_suppress_tests and
	gdb_stop_suppressing_tests as appropriate.
	* gdb.base/break.exp: Ditto.
	* gdb.base/callfuncs.exp: Ditto.
	* gdb.base/commands.exp: Ditto.
	* gdb.base/exprs.exp: Ditto.
	* gdb.base/funcargs.exp: Ditto.
	* gdb.base/list.exp: Ditto.
	* gdb.base/recurse.exp: Ditto.
	* gdb.base/scope.exp:  Ditto.
	* gdb.base/structs.exp: Ditto.
	* gdb.c++/inherit.exp: Ditto.

Sun Feb 23 19:56:02 1997  Bob Manson  <manson@charmed.cygnus.com>

	* config/vr4300.exp: New file.

	* gdb.*/*.exp: Call gdb_expect instead of expect.

	* lib/gdb.exp(gdb_expect): New function.

Thu Feb 20 13:57:01 1997  Bob Manson  <manson@charmed.cygnus.com>

	* lib/gdb.exp(gdb_init): New function.

	* gdb.base/setvar.exp(test_set): Don't bother printing a PASS/FAIL
	for each individual variable set.

	* gdb.base/exprs.exp(test_expr): Make sure each test gets a unique
	name.

	* gdb.base/help.exp: Fix the syntax of a few gdb_test calls.

	* gdb.base/scope.exp: Use gdb_test.

	* gdb.base/ptype.exp: Don't call "gdb_exit; gdb_start" if we're
	aborting; the testsuite driver will do that for us (see
	gdb_finish). Also, use gdb_test in a few more places.

Thu Feb 20 13:32:24 1997  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.base/help.exp: Fix syntax of "help info all-registers" test.

Thu Feb 20 10:34:21 1997  Jeffrey A Law  (law@cygnus.com)

	* gdb.disasm/mn10200.s: Add "nop" after "main" so that "main"
	and "add_tests" are not at the same address.

Fri Feb 14 18:47:23 1997  Bob Manson  <manson@charmed.cygnus.com>

	* gdb.base/ptype.exp: Use gdb_test.

Thu Feb 13 16:09:36 1997  Jeffrey A Law  (law@cygnus.com)

	* gdb.disasm/mn10200.s (misc_tests): Fix targets for "jsr" insns.
	* gdb.disasm/mn10200.exp (misc_tests): Remove bogus line accidentally
	left in.  No longer expect them to fail.

	* gdb.stabs/*.mt; Deleted, no longer used.
	* gdb.stabs/configure.in: Remove references to target makefile
	frags.
	* gdb.stabs/configure: Rebuilt.

	* gdb.disasm/*.mt: Deleted, no longer used.
	* gdb.disasm/configure.in: Remove references to target makefile
	frags.  Use "sh3.s" as the unique filename for this directory.
	* gdb.disasm/configure: Rebuilt.

	* gdb.disasm/mn10200.s: New test file for mn10200 disassembler.
	* gdb.disasm/mn10200.exp: Run mn10200 disassembler tests.
	* gdb.disasm/Makefile.in: Remove "mn10200" when cleaning.

Tue Feb 11 16:57:58 1997  Bob Manson  <manson@charmed.cygnus.com>

	* config/udi.exp: Use mondfe,name instead of remote_host.

Tue Feb 11 11:22:36 1997  Jeffrey A Law  (law@cygnus.com)

	* gdb.base/watchpoint.exp: Don't expect a failure when calling
	a function with a watchpoint enabled on the mn10200.

	* gdb.stabs/weird.exp: Don't quit if "weird.s" doesn't exist
	before trying to create it!

Mon Feb 10 16:40:47 1997  Bob Manson  <manson@charmed.cygnus.com>

	* config/vx.exp: Use hostname instead of netport.

	* config/vxworks.exp: New file.

	* gdb.base/a2-run.exp: Change vxworks cases to use gdb_spawn_id.

	* config/monitor.exp(gdb_target_monitor): Look for a prompt from
	gdb before assuming everything worked. Send a ^C if a timeout
	occurs.

	* lib/gdb.exp(gdb_test): Check the result of send_gdb. Use
	$gdb_spawn_id directly.
	(gdb_run_cmd): Try _start as well as start. Use the target feature
	gdb,start_symbol as the symbol to start from when jumping.

Mon Feb 10 11:26:59 1997  Jeffrey A Law  (law@cygnus.com)

	* gdb.base/exprs.exp: Delete bogus/incorrect (and probably
	redundant) test.

	* gdb.base/recurse.exp: Relax final value test for 'b' so that
	it doesn't lose for 16bit integer systems.

Fri Feb  7 09:31:21 1997  Jeffrey A Law  (law@cygnus.com)

	* gdb.fortran/types.exp: If the target doesn't support "double"
	data types, then expect "real" types to only be 4 bytes.

	* gdb.c++/virtfunc.exp: Expect failure for virtual function
	call tests if the target doesn't support inferior function calls.

	* gdb.base/printcmds.exp: Allow minor deviation in FP values
	in printf tests.

Thu Feb  6 12:46:14 1997  Jeffrey A Law  (law@cygnus.com)

	* gdb.base/help.exp: Disable "help set", "help show", and
	"help support".  Simplify regexp for "help stack".

	* gdb.base/default.exp: Set match_max to 5000 and the timeout
	to 60 seconds.  Temporarily set match_max to 15000 around the
	"info copying" test.

	* gdb.base/nodebug.exp: Don't try to do an inferior function
	call if the target doesn't support them.
	* gdb.base/printcmds.exp: Likewise.
	* gdb.base/setvar.exp: Likewise.
	* gdb.base/structs.exp: Likewise.
	* gdb.c++/templates.exp: Likewise.
	* gdb.base/ptype.exp: Likewise.  Remove UDI specific stuff.

	* gdb.base/recurse.exp: Enable for the mn10200.

	* configure.in: Do configure gdb.stabs directory for *-*-elf
	targets.
	* configure: Rebuilt.

	* gdb.base/break.exp: Check for gdb,noresults before testing
	exit status and/or results from the target.
	* gdb.base/watchpoint.exp, gdb.base/langs.exp: Likewise.
	* lib/gdb.exp: Remove old (now bogus) initialization of
	noinferior, noargs, noresults and nosignals.

Tue Feb  4 21:52:17 1997  Bob Manson  <manson@charmed.cygnus.com>

	* config/sh.exp: New file.

	* config/slite.exp: Try to connect multiple times to the board
	before rebooting. Only send a "monitor run" if need_monitor_run
	is set.

	* gdb.base/break.exp: Don't do the "stub continue" test if
	the target has gdb_stub set.

	* gdb.base/callfuncs.exp: Increase the timeout.

	* gdb.base/interrupt.exp: Don't even try to compile the testcase
	if the target has gdb,noinferiorio set.

	* gdb.base/list.exp: Increase match_max to 10000 characters.

	* gdb.base/sigall.exp: Check for gdb,nosignals on the target.

	* gdb.base/watchpoint.exp: Check for gdb,noinferiorio on the
	target.

	* lib/gdb.exp(gdb_run_cmd): Fix for targets that use stubs.

Mon Feb  3 12:09:37 1997  Bob Manson  <manson@charmed.cygnus.com>

	* gdb.base/a1-selftest.exp: Make sure we call gdb_exit before
	trying to delete the copy of gdb. Catch the file delete so we
	don't die if the delete fails; also, the file should be copied to
	the host, not to the build.

Sun Feb  2 00:55:14 1997  Bob Manson  <manson@charmed.cygnus.com>

	* lib/gdb.exp(gdb_test): Surround the result pattern with
	parenthesis in case it contains multiple regexps separated
	with |.

	* gdb.base/watchpoint.exp: Use gdb_test.
	* gdb.base/default.exp: Ditto.

Sat Feb  1 23:51:01 1997  Bob Manson  <manson@charmed.cygnus.com>

	* gdb.*/*.exp: Replace $prompt with $gdb_prompt.

	* gdb.base/scope.exp: Use gdb_test.
	* gdb.c++/classes.exp: Ditto.
	* gdb.c++/inherit.exp: Ditto.

Fri Jan 31 13:09:12 1997  Bob Manson  <manson@charmed.cygnus.com>

	* gdb.base/crossload.exp: Don't use execute_anywhere, use
	remote_exec instead.
	* gdb.base/corefile.exp: Don't be ridiculous.
	* gdb.base/*.c: Add missing stub invocations.

Thu Jan 30 16:49:25 1997  Bob Manson  <manson@charmed.cygnus.com>

	* config/slite.exp: Miscellaneous fixes.

	* lib/gdb.exp: Fix runto.

	* gdb.base/signals.exp: Check for a gdb,nosignals feature of
	the target.

	* gdb.base/watchpoint.exp: Fix regexp.

	* lib/gdb.exp(default_gdb_exit): Add a catch to the
	close and wait commands, as the descriptor may now be
	invalid. Always call "remote_close host".

Tue Jan 28 14:42:31 1997  Bob Manson  <manson@charmed.cygnus.com>

	   Major rewrite for testsuite revision.

	* lib/gdb.exp: Remove references to global CC, CXX, B_OPTIONS,
	TARGET_INCLUDES, LDFLAGS and target_alias. Use gdb_spawn_id
	instead of relying on spawn_id to always contain a valid
	spawn id.
	(get_compiler_info): New procedure to build the ${binfile}.ci
	file, instead of replicating this in N different places.
	(gdb_compile): New procedure.

	gdb.*/*.exp: Use gdb_compile and get_compiler_info (with
	appropriate arguments) instead of compile. Use gdb_test in a lot
	more places.  Use send_gdb instead of send. Always run gdb_start
	at the start of a testcase, as this is no longer done magically.

	config/*-gdb.exp: Rename without the -gdb suffix.

	config/mips.exp: Use remote_close instead of exit_remote_shell.
	config/monitor.exp: Use target_info instead of looking at
	baud, timeout, etc.
	config/sim.exp: Use gdb_spawn_id instead of relying on spawn_id.

Sat Dec 14 00:43:57 1996  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.c++/templates.exp (test_ptype_of_templates),
	gdb.c++/inherit.exp (test_ptype_si, test_print_anon_union):
	Update expect patterns for destructors and assignment operators
	to match corresponding c-typeprint.c changes.
	* gdb.c++/templates.exp (test_template_breakpoints):  Revert change
	to destructor breakpoint test, GDB should be able to set the
	destructor breakpoint without specifying arguments.

Tue Dec  3 20:17:52 1996  Fred Fish  <fnf@cygnus.com>

	* gdb.threads/pthreads.exp: Change result for failure to compile due
	to lack of pthreads runtime support from an error to simply an
	unsupported test, per dejagnu standards.

Sun Dec  1 00:18:59 1996  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* lib/gdb.exp (gdb_test):  Simplify expect pattern for the case
	where GDB exits to reduce pattern match time.
	(skip_chill_tests):  Skip chill tests for mips*-sgi-irix6*.

	* gdb.base/nodebug.exp:  Add mips*-sgi-irix6* xfails.

Tue Nov 26 18:29:23 1996  Michael Snyder  <msnyder@cygnus.com>

	* gdb.base/callfuncs.exp: Turn on function call tests for h8300.
	* gdb.base/default.exp:   ditto.
	* gdb.base/nodebug.exp:   ditto.
	* gdb.base/printcmds.exp: ditto.
	* gdb.base/ptype.exp:     ditto.
	* gdb.base/setvar.exp:    ditto.
	* gdb.base/structs.exp:   ditto.
	* gdb.base/setshow.c:     Guard against uninitialized values of argc.

Tue Nov 26 17:23:28 1996  Ian Lance Taylor  <ian@cygnus.com>

	* configure, */configure: Rebuild with autoconf 2.12.

Sat Nov 23 13:32:15 1996  Fred Fish  <fnf@cygnus.com>

	* gdb.base/a1-selftest.exp: Change x86 linux setup_xfails to
	use new i*86-pc-linux*-gnu quads.
	* gdb.base/corefile.exp: Ditto.
	* gdb.base/signals.exp: Ditto.
	* gdb.base/sigall.exp: Ditto.
	* gdb.base/interrupt.exp: Ditto.

	* gdb.base/signals.exp (signal_tests_1): Remove setup_xfail
	"i*86-*-linux" for "signal SIGUSR1".  Now works, at least with
	RedHat 4.0.

	* gdb.threads/pthreads.c (_MIT_POSIX_THREADS): Define if target is
	linux.  This allows the test case to at least compile on latest
	linux, but still not run due to missing the threads runtime library.

Fri Nov 22 10:13:29 1996  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.base/a1-selftest.exp (do_steps_and_nexts):  Reinitialize source
	directory to search gdb directory. Accept and step over conditional
	stack alignment code. Consume $prompt in failure cases.
	Reset timeout to $oldtimeout instead of some arbitrary value.
	* gdb.base/nodebug.exp:  Limit backtrace to 10 frames to avoid
	timeout problems with infinite stack backtraces.
	* gdb.base/ptype.exp (ptype struct link, union tu_link):
	Accept function parameters for linkfunc member.

Thu Nov 21 09:17:19 1996  Fred Fish  <fnf@cygnus.com>

	* lib/gdb.exp (CFLAGS): Remove, unreferenced.
	(CXXFLAGS): Remove, unreferenced.
	(B_OPTIONS): Add for -B options and add code to initialize with
	previous -B options and also add -B option to pick up cross compiled
	runtime.
	(TARGET_INCLUDES): Add for -I options and add code to initialize when
	doing cross compiles.
	(target_alias): Declare global.
	(xgcc): Set variable to full path of gcc in build tree.  Use findfile
	to verify that gcc exists in build tree, and if so set CC to that
	gcc and to use B_OPTIONS and TARGET_INCLUDES.

Tue Nov 12 16:20:13 1996  Fred Fish  <fnf@cygnus.com>

	* gdb.c++/inherit.exp (test_print_anon_union): Reenable
	ptype test for anonymous union.  Fixup testcase to match
	current gcc debug output.

Mon Nov 11 14:12:06 1996  Jeffrey A Law  (law@cygnus.com)

	* gdb.base/funcargs.c: Use cast rather than "UL" suffix to
	force argument to an unsigned long type.

Mon Nov 11 10:27:55 1996  Fred Fish  <fnf@cygnus.com>

	* gdb.c++/inherit.exp (test_ptype_si): Fix tagless struct ptype
	tests and anonymous union print/ptype tests.
	* gdb.base/list.exp (test_forward-search): Increase timeout by
	5 minutes for the "search extremely long line" case.
	* lib/gdb.exp (gdb_test): Document that the third arg to gdb_test is
	completely optional and that the pass/fail messages use the command as
	the message if that third arg is a null string.
	(gdb_test_exact):  Arrange that a null string pattern means match a
	null string output rather than any output, which might include random
	errors.
	* gdb.base/mips_pro.exp: Add "mips*-sgi-irix4*" xfail for
	backtrace test.
	* gdb.c++/demangle.exp: Add a "*-*-*" xfail for test that was
	always failing and failure is now exposed by gdb.exp changes.

Sat Nov  9 11:13:24 1996  Fred Fish  <fnf@cygnus.com>

	* gdb.c++/inherit.exp (test_ptype_vi): Log some passes that
	weren't being noted.

Sat Nov  9 01:05:10 1996  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.base/corefile.exp:  Consume $prompt in mmap fail cases.
	* gdb.stabs/weird.exp:  Remove v_comb xfails.

Tue Nov  5 10:44:23 1996  Michael Snyder  <msnyder@cygnus.com>

	* gdb.base/[bitfields.exp crossload.exp funcargs.exp interrupt.exp
		    list.exp scope.exp watchpoint.exp]
	  Make all timeout error msgs explicitly say "(timeout)".

Mon Nov  4 12:03:06 1996  Michael Snyder  <msnyder@cygnus.com>

	* config/monitor.exp: Increase download timeout to 1000 seconds.

Mon Nov  4 12:02:26 1996  Michael Snyder  <msnyder@cygnus.com>

	* config/m32r.exp: Increase timeout to 120 seconds.

Sun Nov  3 14:37:05 1996  Fred Fish  <fnf@cygnus.com>

	* gdb.c++/classes.exp: Modify to handle current gcc C++ member ordering
	and accept older ordering as obsolescent gcc or gdb.
	* gdb.c++/templates.exp: Ditto.
	* gdb.c++/virtfunc.exp: Ditto.

Fri Nov  1 11:56:09 1996  Fred Fish  <fnf@cygnus.com>

	* gdb.base/coremaker.c: Add code to mmap some data so we
	can check that it ends up in the core file.
	* gdb.base/corefile.exp: Add test to read mmapped data
	from core file.

Wed Oct 30 18:19:16 1996  Michael Snyder  <msnyder@cygnus.com>

	* config/m32r.exp: New file.

Mon Oct 21 14:40:50 1996  Stu Grossman  (grossman@critters.cygnus.com)

	* testsuite/gdb.base/nodebug.exp:  Whack out -g options by hand so
	that cflags can contains -gstabs, and work correctly for other tests.

Mon Oct 21 14:00:37 1996  Michael Snyder  <msnyder@cygnus.com>

	* gdb.base/setshow.exp: New file, tests show and set.
	* gdb.base/setshow.c:   New file, tests show and set.
	* gdb.base/help.exp: Add test for help set|show annotate.
	* gdb.base/default.exp: Add test for set|show annotate.

Wed Oct 16 19:03:54 1996  Stu Grossman  (grossman@critters.cygnus.com)

	* testsuite/gdb.base/break.exp:  Make backtrace from factorial
	errors unique.
	* testsuite/gdb.base/nodebug.exp:  Whack out all -g options
	explicitly.

Tue Oct 15 16:45:02 1996  Stu Grossman  (grossman@critters.cygnus.com)

	* config/sim-gdb.exp (gdb_target_sim):  Remove setting of height
	and width commands.  This is done elsewhere.
	* (gdb_start):  Don't call gdb_start_sim here.  That's already
	done in gdb_load.  This fixes lots of failures in default.exp.

Sun Oct 13 10:40:23 1996  Fred Fish  <fnf@cygnus.com>

	From Peter Schauer <Peter.Schauer@Regent.E-Technik.TU-Muenchen.DE>:
	* gdb.base/mips_pro.exp: Fix misplaced gdb_exit/gdb_start/gdb_load.
	* lib/gdb.exp (gdb_test): Treat failures due to program exiting
	in the same we we treat other failures (since it may be an expected
	condition), rather than as an error.
	* gdb.base/signals.exp (test_handle_all_print): Revert back to
	old test format.

Fri Oct 11 17:05:22 1996  Fred Fish  <fnf@cygnus.com>

	* Makefile.in (clean mostlyclean): Also remove chill *.grt files.
	(distclean maintainer-clean realclean): No need to remove files
	twice.  Nuke the duplicates.
	* gdb.base/Makefile.in (EXECUTABLES): Add "structs".
	* gdb.threads/Makefile.in (distclean maintainer-clean realclean):
	Remove config.h along with other config files.

Mon Sep 30 20:16:22 1996  Fred Fish  <fnf@cygnus.com>

	* gdb.base/interrupt.exp: Add i*86-*-linux* setup_xfail for
	"p func1 ()" and note that rests of tests are skipped.
	* gdb.base/corefile.exp: Add i*86-*-linux* and m68*-*-hpux*
	setup_xfails for "print func2::coremaker_local".
	Add i*86-*-linux* setup_xfail for "backtrace in corefile.exp".
	* gdb.base/mips_pro.exp: Restart gdb in this test so it isn't
	affected by the previous run test.
	* gdb.chill/misc.exp: Add m68*-*-hpux* setup_xfails for
	"print array () ubyte (foo)" and "print/x array () byte (\$i)"
	* gdb.chill/pr-8742.exp: Add m68*-*-hpux* setup_xfails for
	"pass int powerset tuple" and "pass modeless int powerset tuple".
	* gdb.chill/tests2.exp: Add m68*-*-hpux* setup xfails for
	"real write 4" and "real write 8".
	* gdb.shill/tuples.exp: Add i*86-*-linux* and m68*-*-hpux*
	setup_xfails for "print vs1 after tuple assign 2",
	"print \$i after tuple assign 2", and
	"print vs2 after tuple assign 2".
	* lib/gdb.exp (gdb_test): When a gdb aborts, print a more
	meaningful error message and return -1 so the caller can
	suppress further tests and avoid a cascade of errors.

Fri Sep 27 10:34:51 1996  Fred Fish  <fnf@cygnus.com>

	* gdb.base/a1-selftest.exp: Tweak tests to account for new
	format for printing version.
	* gdb.base/default.exp: Ditto.
	* gdb.base/interrupt.exp: Fix problem with cascade of
	errors if child process dies while calling a function.

Fri Sep 13 21:43:48 1996  Fred Fish  <fnf@cygnus.com>

	* Makefile.in (VPATH): Add
	* Makefile.in (Makefile, config.status): Fix rules so things get
	remade when necessary.

Fri Sep 13 18:16:10 1996  Fred Fish  <fnf@cygnus.com>

	* Makefile.in (just-check): Add path to sibling expect dir
	to environment variable specified by RPATH_ENVVAR.

Fri Sep 13 12:05:34 1996  Fred Fish  <fnf@cygnus.com>

	* Makefile.in (RPATH_ENVVAR): New var, set to @RPATH_ENVVAR@.
	(just-check): Add shared library paths for libstdc++, tk,
	tcl, bfd, and opcodes to the environment variable specified
	in RPATH_ENVVAR.
	* configure.in: Add support to recognize --enable-shared flag
	and generate correct value for RPATH_ENVVAR.
	* configure: Regenerated with autoconf.

Mon Sep  2 06:36:02 1996  Fred Fish  <fnf@cygnus.com>

	* gdb.base/break.exp: Expand "Delete all breakpoints" xfail to
	include all osf versions.
	* gdb.threads/pthreads.exp: Expand "run to main" xfail to include
	all osf versions.  Add -D_MIT_POSIX_THREADS to compilation command
	when target is linux.  When failing to build pthreads test
	executable, give more meaningful message.
	* gdb.threads/pthreads.c: Hpux also uses old definition of second
	arg for pthread_create.

Mon Aug 19 09:58:59 1996  Fred Fish  <fnf@cygnus.com>

	* gdb.threads/pthreads.c (PTHREAD_CREATE_ARG2,
	PTHREAD_CREATE_NULL_ARG2): Accomodate old pthreads implementations.
	* gdb.threads/pthreads.exp: Try linking with both -lpthread (Solaris)
	and -lpthreads (everybody else).
	(test_startup): Fail gracefully if threads are not supported.
	* gdb.base/nodebug.exp: Add setup_xfail hppa*-*-hpux* for
	"p/c array_index("abcdef",2)" when not gcc compiled.
	* gdb.base/corefile.exp: Add setup_xfail hppa*-*-hpux* for
	"print func2::coremaker_local" when not gcc compiled.
	* gdb.base/opaque.exp: Remove setup_xfail hppa*-*-hpux* for
	"ptype on opaque struct tagname (statically)",
	"ptype on opaque struct tagname (dynamically) 1", and
	"ptype on opaque struct tagname (dynamically) 2"
	for not compiled with gcc.
	* gdb.base/mips_pro.exp: Only do setup_xfail hppa*-*-* for
	backtrace when compiled with gcc.
	* lib/gdb.exp (runto_main): Return result of "runto main" rather
	than always return success.

Sat Aug 17 13:28:00 1996  Fred Fish  <fnf@cygnus.com>

	* gdb.c++/virtfunc.exp: Remove setup_xfail for "mips-*-irix5*".

Tue Aug 13 10:26:10 1996  Jeffrey A Law  (law@cygnus.com)

	* gdb.base/structs.exp: Undo last change.

Mon Aug 12 15:29:08 1996  Fred Fish  <fnf@cygnus.com>

	* gdb.base/a1-selftest.exp (do_steps_and_nexts): New routine to
	encapsulate all the steps/nexts done during self test, starting
	at main, and makes them less sensitive to optimization issues.
	Add "hppa*-*-hpux*" to setup_xfail for "backtrace through
	signal handler" test.
	* gdb.threads/pthreads.exp: Only run this for native configs.
	* gdb.base/structs.exp (do_function_calls): Add hppa*-*-hpux9*"
	setup_xfails for "p fun5()", "p fun6()", "p fun7()", and "p fun8"
	tests.
	gdb.c++/virtfunc.exp (do_tests): Add "mips-*-irix5*" setup_xfail
	for "runto test_calls(void)" test.

Sun Aug 11 13:11:24 1996  Fred Fish  <fnf@cygnus.com>

	* gdb.base/term.exp: Set 7-bit strings, address off, width to 0,
	and don't expect address info in breakpoint confirmations.

Wed Aug  7 20:47:43 1996  Fred Fish  <fnf@cygnus.com>

	* gdb.base/list.exp (test_forward_search): Increase timeout
	temporarily by 60 seconds for searching extremely long line,
	and then reset to old value when done.  Increase expect input
	buffer to 10000.

Wed Aug  7 15:34:22 1996  Fred Fish  <fnf@cygnus.com>

	* gdb.base/list.exp (test_forward_search): Fix to handle very
	long source line without overflowing expect's input buffer.

Wed Aug  7 12:03:25 1996  Tom Tromey  <tromey@creche.cygnus.com>

	* config/slite-gdb.exp (gdb_start): Use "full_buffer", not
	"buffer_full".

	* config/nind-gdb.exp (gdb_start): Use "full_buffer", not
	"buffer_full".

	* config/mips-gdb.exp (gdb_start): Use "full_buffer", not
	"buffer_full".

	* lib/gdb.exp (gdb_test): Correct pattern is "full_buffer", not
	"buffer_full".

Wed Aug  7 11:05:47 1996  Fred Fish  <fnf@cygnus.com>

	* configure.in (configdirs): Add gdb.threads.
	* configure: Regenerated with autoconf.
	* gdb.threads/{config.in, pthreads.c, pthreads.exp}: New.
	* gdb.threads/{Makefile.in, configure.in}: Complete rewrites.
	* gdb.threads/configure: New, generated with autoconf.

Tue Aug  6 10:23:04 1996  Tom Tromey  <tromey@rtl.cygnus.com>

	* lib/gdb.exp (gdb_test_exact): Turn \n in pattern into \r\n.

Mon Aug  5 18:11:53 1996  Fred Fish  <fnf@cygnus.com>

	* gdb.base/signals.exp (test_handle_all_print): Test separately for
	each signal's status in the output of "handle all print".
	* lib/gdb.exp (gdb_test): Document that the pattern must NOT include
	the \r\n sequence that immediately precedes the gdb prompt.
	* gdb.base/a1-selftest.exp: Save original timeout and restore
	after test.

Sun Aug  4 10:20:50 1996  Jeffrey A Law  (law@cygnus.com)

	* gdb.disasm/hppa.s: Export fmemLRbug_tests_4 as a ST_CODE
	symbol.

Fri Aug  2 17:37:26 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>

	* config/vx-gdb.exp (gdb_start): Fix syntax of `$shell_id < 0'.

Thu Jun 27 20:41:40 1996  Fred Fish  <fnf@cygnus.com>

	* gdb.base/signals.exp (test_handle_all_print): Temporarily increase
	timeout by 60 seconds.

Thu Jun 27 18:13:57 1996  Fred Fish  <fnf@cygnus.com>

	* config/unix-gdb.exp: Increase default timeout from 30 to 60 sec.
	* config/netware.exp (gdb_run_cmd): Restore old timeout before doing
	error return.

Thu Jun 27 10:54:58 1996  Fred Fish  <fnf@cygnus.com>

	* lib/gdb.exp (default_gdb_start): When reporting a timeout during
	gdb initialization, also report how long dejagnu waited.  Restore
	old timeout before doing error return.  Temporarily increase timeout
	by 3 minutes to allow for slow startups over heavy NFS use.

Tue Jun 25 19:59:17 1996  Fred Fish  <fnf@cygnus.com>

	* lib/gdb.exp: Report timeout value for verbosity level 2.
	* config/gdbserver.exp: Ditto.
	* config/hppro.exp: Ditto.
	* config/mips-gdb.exp: Ditto.
	* config/monitor.exp: Ditto.
	* config/netware.exp: Ditto.
	* config/sim-gdb.exp: Ditto.
	* config/slite-gdb.exp: Ditto.
	* config/udi-gdb.exp: Ditto.
	* config/unix-gdb.exp: Ditto.
	* config/vx-gdb.exp: Ditto.
	* gdb.base/a1-selftest.exp: Ditto.
	* gdb.base/a2-run.exp: Ditto.
	* gdb.base/break.exp: Ditto.
	* gdb.base/corefile.exp: Ditto.
	* gdb.base/list.exp: Ditto.
	* gdb.base/recurse.exp: Ditto.
	* gdb.base/scope.exp: Ditto.
	* gdb.base/signals.exp: Ditto.

Tue Jun 25 23:16:58 1996  Jason Molenda  (crash@godzilla.cygnus.co.jp)

	* gdb.threads/Makefile.in (docdir): Removed.

Tue Jun 25 17:02:39 1996  Jason Molenda  (crash@godzilla.cygnus.co.jp)

	* configure.in (AC_PREREQ): autoconf 2.5 or higher.
	* gdb.{base,c++,chill,disasm,stabs}/Makefile.in (VPATH): set to
	@srcdir@.
	* gdb.{base,c++,chill,disasm,stabs}/configure.in (AC_PREREQ):
	autoconf 2.5 or higher.
	* gdb.{base,c++,chill,disasm,stabs}/configure: Rebuilt.

Thu Jun 13 11:16:10 1996  Tom Tromey  <tromey@thepub.cygnus.com>

	* configure: Regenerated.
	* aclocal.m4 (CY_AC_PATH_TCLH, CY_AC_PATH_TKH): Use odd names to
	avoid name clashes with SunOS headers.

Wed Jun  5 16:43:27 1996  Jeffrey A Law  (law@cygnus.com)

	* gdb.c++/virtfunc.exp: Search $objdir/../../libstdc++ for libstdc++.

Thu May 30 11:35:11 1996  Jeffrey A Law  (law@cygnus.com)

	* gdb.base/callfuncs.exp: Finish last change -- make sure the
	prototype information ends up in the compiler info file.

Thu May 23 12:48:41 1996  Fred Fish  <fnf@cygnus.com>

	* gdb.base/callfuncs.exp: Remove the compiler info file prior to
	attempting to regenerate it.  Eliminate use of a temporary file
	and just generate the info file directly.  Source it immediately,
	for consistency of use.
	* gdb.base/corefile.exp: Ditto
	* gdb.base/exprs.exp: Ditto.
	* gdb.base/funcargs.exp: Ditto.
	* gdb.base/langs.exp: Ditto.
	* gdb.base/list.exp: Ditto.
	* gdb.base/mips_pro.exp: Ditto.
	* gdb.base/nodebug.exp: Ditto.
	* gdb.base/opaque.exp: Ditto.
	* gdb.base/ptype.exp: Ditto.
	* gdb.base/scope.exp: Ditto.
	* gdb.base/setvar.exp: Ditto.
	* gdb.base/signals.exp: Ditto.
	* gdb.base/whatis.exp: Ditto.
	* gdb.c++/templates.exp: Ditto.
	* gdb.c++/virtfunc.exp: Ditto.
	* gdb.c++/virtfunc.exp: Use contents of gcc_compiled to decide
	whether or not to add -lstdc++ to the compile command line args.

Sat May 18 02:43:58 1996  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.base/recurse.exp:  Remove setup_xfail for "sparc*-*-sunos4*",
	it got fixed by the recent lookup_minimal_symbol_by_pc change.
	Increase timeout, a lot of single stepping might be needed if the
	target has no hardware watchpoints.

Wed May 15 08:47:42 1996  Jeffrey A Law  (law@cygnus.com)

	* gdb.base/break.exp: Ignore compiler warnings when compiling
	break.c.
	* gdb.base/callfuncs.exp: Don't run these tests on the h8300.
	* gdb.base/default.exp: Add h8300 xfails.  Handle messages
	from remote-sim.
	* gdb.base/exprs.exp: Add h8300 xfails.
	* gdb.base/funcargs.exp: Likewise.
	* gdb.base/nodebug.exp: Likewise.
	* gdb.base/printcmds.exp: Likewise.
	* gdb.base/ptype.exp: Likewise.
	* gdb.base/setvar.exp: Handle sizeof (int) != 4 for h8300.  Add
	h8300 xfails.
	* gdb.base/return.exp: Handle float/double precision problems
	on the h8300.
	* gdb.base/funcargs.c: Explicitly make last constant argument to
	call_after_alloca_subr an unsigned long type.
	* gdb.base/return.c: Include stdio.h.

Tue May  7 22:01:12 1996  Rob Savoye  <rob@chinadoll.cygnus.com>

	* config/abug.exp: New file for the older Motorola Bug monitor
	that runs on the mvme13x series VME boards.
	* config/monitor.exp: Use the new config array for target settings
	if they exist.

Fri May  3 16:02:55 1996  Stan Shebs  <shebs@andros.cygnus.com>

	* sim-gdb.exp: Make the SH simulator allocate less space when
	it is targeted.

Thu May  2 12:31:56 1996  Jeffrey A Law  (law@cygnus.com)

	* gdb.base/mips_pro.exp: Expect failure for hppa*-*-* in backtrace
	test.

Wed Mar 20 08:48:03 1996  Fred Fish  <fnf@cygnus.com>

	* gdb.base/list.exp (test_list_function): Remove setup_xfail for
	"rs6000-*-*" for "list function in include file" when gcc compiled.
	* gdb.base/printcmds.exp: Remove setup_xfail for "rs6000-*-aix*"
	for "p ctable1[120]".
	* gdb.base/scope.exp: Remove setup_xfail for "rs6000-*-*" for
	"print 'scope0.c'::filelocal_bss before run" when gcc compiled.
	Remove setup_xfail for "rs6000-*-*" for
	"print 'scope0.c'::filelocal before run".
	* gdb.base/{langs.exp, lists.exp, opaque.exp, scope.exp},
	gdb.stabs/weird.exp: Remove use of compiler options "-c -o ..."
	since some compilers don't allow both options to be given
	on the same command line.  Create object file and move it.

Tue Mar 19 23:49:31 1996  Fred Fish  <fnf@cygnus.com>

	* gdb.base/corefile.exp: Always regenerate the core file, since
	we always regenerate the coremaker program.  Detect special case
	where registers cannot be read from core file.

Tue Mar 19 16:52:49 1996  Fred Fish  <fnf@cygnus.com>

	From Peter Schauer <Peter.Schauer@Regent.E-Technik.TU-Muenchen.DE>
	* gdb.base/funcargs.c: Patch for SPARCworks alloca compatibility
	* gdb.c++/templates.exp: Only match on basename of file since
	some formats like xcoff don't encode directory information.
	* gdb.stabs/weird.exp: Use the right sed script for powerpc
	and rs6000 AIX xcoff targets.
	* configure.in: Add stabsdirs to configdirs for powerpc-*-aix*.
	* configure: Regenerate.
	* gdb.base/Makefile.in (clean): Remove generated file twice-tmp.c
	here, rather than in distclean.

Sun Mar 17 13:35:31 1996  Fred Fish  <fnf@cygnus.com>

	* gdb.base/mips_pro.exp: Create mips_pro.ci to get gcc_compiled
	defined, and use it to compile the test case with -O2.  The
	native compilation still uses no optimization.
	* gdb.base/mips_pro.c: Remove inline assembly code since
	it is compiled PIC by default, which results in assembler
	warnings that make the testsuite think the compilation
	was unsuccessful.

Sat Mar 16 15:02:24 1996  Fred Fish  <fnf@cygnus.com>

	* gdb.c++/misc.exp: Add note to message for
	"print s.a for foo struct" that this is a known gcc 2.7.2
	and earlier bug.

Fri Mar 15 17:49:57 1996  Fred Fish  (fnf@cygnus.com)

	* gdb.base/break.exp: Fix pattern for matching "Delete all
	breakpoints (y or n) ".  Add "mips-dec-ultrix*" to
	setup_xfail for deleting all breakpoints test.  Fix various
	timeout messages to include "(timeout)".
	* gdb.base/callfuncs.exp: Add "i*86-*-sysv4*" to setup_xfail
	for "p t_float_values2(3.14159,float_val2)".
	* gdb.base/funcargs.exp: Remove "mips-sgi-irix4*" setup_xfail
	for "continue to call2g" when gcc compiled.
	* gdb.base/langs.exp: Remove "i*86-*-sysv4*" setup_xfail for
	"up to foo in langs.exp", "show language at foo in langs.exp",
	"show language at cppsub_ in langs.exp", "up to fsub in langs.exp",
	and "show language at fsub in langs.exp".
	* gdb.base/list.exp: Remove "*-*-sysv4*" setup_xfail for
	"list line 1 in include file", "list message for lines past EOF",
	"list function in include file", "list list0.h:foo", and
	"list filename:function; nonexistant function".
	* gdb.base/ptype.exp: Change "i*86-*-sysv4*" setup_xfail for
	"whatis unnamed typedef'd enum (compiler bug in IBM's xlc)"
	and "ptype t_char_array" to be for native cc only.

Fri Mar 15 16:17:22 1996  Fred Fish  <fnf@cygnus.com>

	* gdb.base/corefile.exp: Remove "alpha-dec-osf2*" native compiled
	setup_xfail for "print coremaker_bss", "print coremaker_ro",
	"print func2::coremaker_local", and "backtrace in corefile.exp".

Wed Mar 13 14:54:11 1996  Fred Fish  <fnf@cygnus.com>

	* gdb.base/signals.exp: Remove "alpha-*-osf2*" setup_xfail for
	"bt in signals.exp".  This problem only appears when running
	the testsuite, and then only intermittently.

Tue Mar 12 15:00:16 1996  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.base/return.exp (return_tests): Differentiate between
	two tests of continuing.

Tue Mar  5 14:33:33 1996  Stan Shebs  <shebs@andros.cygnus.com>

	* */Makefile.in (maintainer-clean): Remove config.log.
	* gdb.base/Makefile.in (EXECUTABLES): Replace twice with twice-tmp.
	* gdb.c++/Makefile.in (PROGS): Add inherit.
	(clean): Remove *.ci.

Tue Feb 20 16:36:10 1996  Fred Fish  <fnf@cygnus.com>

	* gdb.c++/misc.cc: Add test code from Mike Stump.
	* gdb.c++/misc.exp: Add test to print s.a, for Mike Stump.

Sun Feb 18 11:39:12 1996  Fred Fish  <fnf@cygnus.com>

	* gdb.base/signals.exp: Change setup_xfail for "alpha-*-osf2"
	to "alpha-*-osf2*" and add comment.
	* gdb.base/a1-selftest.exp (test_with_self): Remove "alpha-dec-osf2*"
	setup_xfail for "step over execarg initialization" and
	"step over corearg initialization".
	* gdb.base/callfuncs.exp (do_function_calls): Restore setup_xfail
	for "hppa*-*-*", "sparc-*-*", "mips*-*-*", and "alpha-dec-osf2*".
	* gdb.base/corefile.exp: Add "alpha-dec-osf2*" setup_xfail when not
	gcc compiled for "print coremaker_bss", "print coremaker_ro",
	"print func2::coremaker_local", and "backtrace in corefile.exp".
	* gdb.base/signals.exp: Build and source signals.ci.
	Change "alpha-dec-osf2*" setup_xfail for "bt in signals.exp"
	to be for gcc only.
	* lib/gdb.exp: Move verbose statements outside conditionals.

Sat Feb 17 02:22:14 1996  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.base/sigall.exp:  Remove setup_xfail for irix4.  Fixed by
	Feb 3 procfs.c change.

Fri Feb 16 13:25:31 1996  Fred Fish  <fnf@cygnus.com>

	* config/unix-gdb.exp: Remove extraneous newlines from end of file.

Thu Feb 15 08:12:55 1996  Fred Fish  <fnf@cygnus.com>

	* config/unix-gdb.exp: Default timeout in UNIX case to 30 seconds, up
	from dejagnu's apparent default of 10 seconds, which gives random
	results when running the tests over NFS on moderately loaded systems.
	* lib/gdb.exp (gdb_run_cmd): Add "(timeout)" in timeout case.

Mon Feb 12 16:50:28 1996  Fred Fish  <fnf@cygnus.com>

	* gdb.base/callfuncs.exp: Remove setup_xfail for PR 5318.  Now fixed.
	* gdb.base/a2-run.exp: Replace $binfile with $testfile in test
	result reports.

Fri Feb  9 15:56:51 1996  Fred Fish  <fnf@cygnus.com>

	* configure.in (CY_AC_PATH_TCLH): Remove.
	* configure: Regenerate.

Fri Feb  9 08:21:31 1996  Fred Fish  <fnf@cygnus.com>

	* gdb.c++/Makefile.in (clean): Add missing '{'.

Fri Feb  2 10:19:40 1996  Jeffrey A Law  (law@cygnus.com)

	* lib/gdb.exp: Provide a default value for noinferior.

	* lib/gdb.exp: Fix typos (LDLAGS -> LDFLAGS).
	Load libgloss.exp.

Thu Feb  1 20:20:14 1996  Jeffrey A Law  (law@cygnus.com)

	* gdb.disasm/hppa.exp: Compile directly into an executable, use
	the executable, not the .o to run the tests from.

Wed Jan 31 14:21:09 1996  Jeffrey A Law  (law@cygnus.com)

	* gdb.base/break.exp: Don't test for program exit or exit status
	if $noresults if nonzero.
	* gdb.base/langs.exp: Likewise.
	* gdb.base/watchpoint.exp: Likewise.

	* gdb.base/default.exp: Remove extraneous call to load gdb.exp.
	* gdb.chill/pr-8405.exp: Move skip_chill_tests check to just before
	trying to compile the testcase.

Wed Jan 24 23:42:39 1996  Doug Evans  <dje@charmed.cygnus.com>

	* gdb.base/interrupt.exp (p func1): xfail sparc64-*-solaris2.
	* gdb.base/signals.exp (continue to handler): Likewise.

Tue Jan 23 16:28:22 1996  Per Bothner  <bothner@kalessin.cygnus.com>

	* gdb.c++/classes.exp:  Now = returns false/true, not 1/0.

	* gdb.fortran/exprs.exp:  .LT. and .GT. now return .TRUE. or .FALSE..

Tue Jan 23 15:41:57 1996  Jeffrey A Law  (law@cygnus.com)

	* gdb.base/corefile.exp: Recognize "not found" as failure
	when trying to determine if a core file was generated.
	If no core file was generate the first time, try again without
	the ulimit -c to work around braindamaged shells.

Mon Jan 15 09:33:00 1996  Fred Fish  <fnf@cygnus.com>

	* gdb.stabs/configure.in (alpha-*-*,mips-*-*): Replace
	[] tests with "test" and enclose string in quotes.
	* gdb.stabs/configure: Rebuild

Thu Jan 11 09:43:14 1996  Tom Tromey  <tromey@creche.cygnus.com>

	Changes in sync with expect:
	* aclocal.m4 (CY_AC_PATH_TCLH): Handle Tcl 7.5 and greater.
	(CY_AC_PATH_TCLLIB): Handle Tcl 7.5 and greater.
	(CY_AC_PATH_TKH): Handle Tk 4.1 and greater.
	(CY_AC_PATH_TKLIB): Handle Tk 4.1 and greater.  Properly quote
	argument to AC_REQUIRE.
	* configure: Regenerated.

Thu Jan  4 08:17:22 1996  Fred Fish  <fnf@cygnus.com>

	* gdb.base/corefile.exp: When generating a core, discard any
	error messages about ulimit not found and the "core dumped"
	message from the shell that runs the coredumper.

Wed Jan  3 01:30:41 1996  Jeffrey A Law  (law@cygnus.com)

	* lib/gdb.exp (skip_chill_tests): Skip them on the PA too.

	* gdb.stabs/weird.exp: Use ${target_triplet} to determine
	which sed script to run.  Expect failure for v_comb test
	on PA targets too.

Sat Dec 30 16:09:04 1995  Fred Fish  <fnf@rtl.cygnus.com>

	* gdb.base/corefile.exp: Remove "i*86-*-linux" xfail for
	"print func2::coremaker_local" and for "backtrace in corefile.exp"

Sat Dec 30 12:59:12 1995  Fred Fish  <fnf@cygnus.com>

	* lib/gdb.exp: Fix typo and rewrite skip_chill_tests.
	* gdb.stabs/weird.exp: Setup "sparc-sun-sunos4*" and
	"sparc-sun-solaris*" xfails for "p v_comb".
	* lib/gdb.exp (default_gdb_start): Fix typo.
	* gdb.base/corefile.exp: Allow "Core was generated by ..."
	messages to not include the full program name that caused
	the core dump since some systems (such as solaris) apparently
	truncate this path to about 80 characters.
	When generating a core file first try increasing the core file
	size limit to unlimited since some systems may default it to
	zero, and it is harmless to try it.  Move the test for failing
	to generate a core file to where it will actually get executed.
	* gdb.c++/templates.exp (test_ptype_of_templates): Accept
	new gdb result from g++ debug info improvements and make old
	pattern obsolescent.  Also account for size_t differences
	(may be int or long).
	* gdb.base/a1-selftest.exp (test_with_self): Check for case where
	initialization before function call is placed in the delay slot
	and thus appears to be skipped over by commands such as "next".

Fri Dec 29 16:09:20 1995  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.base/a1-selftest.exp (test_with_self): Run without windows.

Wed Dec  6 10:45:42 1995  Jeffrey A. Law  <law@sethra.cygnus.com>

	* gdb.base/*.exp: Make ${srcfile} only be the basename of the
	input source file; fix code to compile test to deal with this
	convention.
	* gdb.c++/*.exp: Likewise.

Mon Nov 27 11:40:16 1995  Fred Fish  <fnf@cygnus.com>

	* gdb.base/signals.exp: Setup "alpha-*-osf2*" xfail for
	"bt in signals.exp".

Sat Nov 25 20:52:15 1995  Fred Fish  <fnf@phydeaux.cygnus.com>

	* gdb.base/a1-selftest.exp: Add alpha-dec-osf2 setup_xfail for
	"step over execarg initialization" and
	"step over corearg initialization".

Sat Nov 25 18:20:14 1995  Fred Fish  <fnf@cygnus.com>

	* gdb.base/ptype.c (main): Declare malloc as a "char *" for systems
	with sizeof(pointer) > sizeof(int).  Avoid "void *" or include files.

Sat Nov 25 11:03:42 1995  Fred Fish  <fnf@cygnus.com>

	From Rob Savoye  (rob@poseidon.cygnus.com)
	* Makefile.in, configure.in, gdb.base/{Makefile.in, configure.in},
	gdb.c++/{Makefile.in, configure.in}, gdb.chill/{Makefile.in,
	configure.in}, gdb.disasm/{Makefile.in, configure.in},
	gdb.stabs/{Makefile.in, configure.in}, gdb.threads/{Makefile.in,
	configure.in}: Major reworking for autoconfig.
	* aclocal.m4, configure, gdb.base/configure, gdb.c++/configure,
	gdb.disasm/configure, gdb.stabs/configure, gdb.stabs/default.mt :
	New files.
	* config/unix-gdb.exp:  Make GDB global.
	* gdb.base/{a1-selftest.exp, a2-run.exp,bitfields.exp, break.exp,
	callfuncs.exp, commands.exp, corefile.exp, crossload.exp, exprs.exp,
	funcargs.exp, interrupt.exp, langs.exp, list.exp, mips_pro.exp,
	nodebug.exp, opaque.exp, printcmds.exp, ptype.exp, recurse.exp,
	regs.exp, return.exp, scope.exp, setvar.exp, sigall.exp, signals.exp,
	term.exp, twice.exp, watchpoint.exp, whatis.exp},
	gdb.c++/{classes.exp, callfuncs.exp, inherit.exp, misc.exp,
	templates.exp, virtfunc.exp}, gdb.chill/{callch.exp, chillvars.exp,
	misc.exp, pr-4975.exp, pr-5016.exp, pr-5020.exp, pr-5022.exp,
	pr-5646.exp, pr-5984.exp, pr-6292.exp, pr-6632.exp, pr-8134.exp,
	pr-8136.exp, result.exp, string.exp, tuples.exp},
	gdb.disasm/{hppa.exp, sh3.exp}, gdb.stabs/weird.exp: Change continues
	to returns as necessary, arrange for test to compile own testcase
	executable.
	* lib/gdb.exp: Changes for testsuite to compile own test cases.

Tue Nov 21 16:15:45 1995  Fred Fish  <fnf@cygnus.com>

	* gdb.c++/classes.exp (test_pointers_to_class_members): Add
	clear_xfail at end of test which might not call either pass or fail.
	* gdb.base/a1-selftest.exp: Add i*86-*-linuxaout xfail for
	"backtrace through signal handler".

Sat Nov 18 04:09:31 1995  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.base/sigall.exp:  Work around OSF/1-3.x kernel bug when
	continuing from a job control stop signal.
	* gdb.stabs/alpha.mt:  Use $(CFLAGS) when building weird.o.

Wed Nov 15 00:28:03 1995  Jeffrey A Law  (law@cygnus.com)

	* gdb.base/callfuncs.exp: Remove bogus hppa xfails.
	* gdb.base/corefile.exp: Likewise.
	* gdb.base/funcargs.exp: Likewise.

Tue Nov 14 15:18:10 1995  Stu Grossman  (grossman@cygnus.com)

	* config/hmsirom.exp:  Setup for talking to hmsi ROM monitor.
	* config/monitor.exp:  Add support for setting baud rate.

Sat Nov  4 15:35:52 1995  Fred Fish  <fnf@cygnus.com>

	* gdb.base/a1-selftest.exp: Remove i*86-*-sysv4* and
	i*86-*-linux* xfails for "backtrace through signal handler".
	* gdb.base/corefile.exp: Add i*86-*-sysv4* xfail for
	"print func2::coremaker_local".
	* gdb.base/break.exp: Add i*86-*-sysv4*, sparc-sun-sunos4,
	alpha-dec-osf2* xfail for
	"delete all breakpoints when none".

Wed Nov  1 15:57:16 1995  Fred Fish  <fnf@cygnus.com>

	* gdb.base/break.exp: Change test that deletes all breakpoints
	when no user breakpoints are installed.  A post 4.15 change
	causes gdb to no longer prompt in this case.

Tue Oct 31 15:13:43 1995  Fred Fish  <fnf@cygnus.com>

	* gdb.base/return.exp (return_tests):  Change xfail for test
	"correct value returned double test" to stop xfailing at
	Solaris 2.5.  Apparently the bug has been fixed.

Sun Oct 29 12:18:16 1995  Fred Fish  <fnf@cygnus.com>

	* gdb.stabs/ecoff.sed: Remove comment lines except for first one.
	IRIX 4.0 /bin/sed chokes on them, though they work fine elsewhere.

Tue Oct 24 11:12:12 1995  Jeffrey A Law  (law@cygnus.com)

	* gdb.disasm/hppa.exp: Test lci and syncdma instructions.
	* gdb.disasm/hppa.s: Corresponding changes.

Wed Oct 18 11:27:47 1995  Jeffrey A Law  (law@cygnus.com)

	* gdb.base/configure.in (hppa*-*-hpux*): No longer needs target
	makefile fragment.
	* config/mt-hpux: Deleted.

Tue Oct 17 23:02:12 1995  Jeffrey A Law  (law@cygnus.com)

	* Many files: When warning about suppressed tests due to a
	nonexistant test binary, avoid incrementing the warning count.

Tue Oct 10 11:00:41 1995  Fred Fish  <fnf@cygnus.com>

	* Makefile.in (TARGET_FLAGS_TO_PASS):  Remove BISON.

Sun Oct  8 04:23:14 1995  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.base/return.exp:  Change xfail from "sparc-*-solaris2.*" to
	"sparc-*-solaris2*".

Sat Sep 23 01:22:23 1995  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.base/coremaker.c:  Produce a full core dump for AIX targets.
	Add global and local variables and initialize them.
	* gdb.base/corefile.exp:  Test correct mapping of corefile sections
	by printing variables. Remove rs6000 and powerpc xfails, BFD now
	extracts the file name and terminating signal from the core file.
	* TODO:  Remove note about tests for correct mapping of corefile.
	* gdb.base/ptype.c (main):  Use boolean2 to inhibit AIX 4.1 xlc
	from optimizing it away.
	* gdb.stabs/weird.exp:  Remove rs6000 xfail, xcoffread.c now
	handles common blocks.

Thu Sep 21 01:28:10 1995  Jeff Law  (law@snake.cs.utah.edu)

	* gdb.disasm/sh3.s (fmac): Update for new assembler syntax
	* gdb.disasm/sh3.exp (fmac): Corresponding changes.

Wed Sep 20 13:15:05 1995  Ian Lance Taylor  <ian@cygnus.com>

	* Makefile.in (maintainer-clean): New target, synonym for
	realclean.
	* gdb.base/Makefile.in (maintainer-clean): Likewise.
	* gdb.c++/Makefile.in (maintainer-clean): Likewise.
	* gdb.chill/Makefile.in (maintainer-clean): Likewise.
	* gdb.disasm/Makefile.in (maintainer-clean): Likewise.
	* gdb.stabs/Makefile.in (maintainer-clean): Likewise.
	* gdb.threads/Makefile.in (maintainer-clean): Likewise.

Sun Sep 10 13:14:01 1995  Fred Fish  <fnf@cygnus.com>

	* gdb.base/scope.exp (text_at_main):  Add "hppa*-*-hpux*"
	xfails when not gcc compiled for "print foo::funclocal".
	(test_at_foo):  Add "hppa*-*-hpux*" xfails when not gcc compiled for:
	"print foo::funclocal at foo",
	"print 'scope1.c'::foo::funclocal at foo",
	"print foo::funclocal_bss at foo",
	"print 'scope1.c'::foo::funclocal_bss at foo",
	"print foo::funclocal_ro at foo",
	"print 'scope1.c'::foo::funclocal_ro at foo",
	"print bar::funclocal at foo" and
	"print 'scope1.c'::bar::funclocal at foo".
	(test_at_bar):  Add "hppa*-*-hpux*" xfails when not
	gcc compiled for "print foo::funclocal at bar".
	Expand all messages to ensure that they identify that
	the test is at bar().
	* gdb.base/opaque.exp: Add "hppa*-*-hpux*" xfails when not
	gcc compiled for:
	"ptype on opaque struct pointer (statically)",
	"ptype on opaque struct tagname (statically)",
	"ptype on opaque struct pointer (dynamically) 1",
	"ptype on opaque struct tagname (dynamically) 1",
	"ptype on opaque struct pointer (dynamically) 2" and
	"ptype on opaque struct tagname (dynamically) 2
	* gdb.base/nodebug.exp: Add "hppa*-*-hpux*" xfails when not
	gcc compiled for:
	"p datalocal"
	"whatis datalocal",
	"ptype datalocal",
	"p bsslocal",
	"whatis bsslocal", and
	"ptype bsslocal".
	* gdb.base/langs.exp: Add "hppa*-*-hpux*" xfails for
	"backtrace in langs.exp" and "up to langs0__2do in langs.exp"
	when not gcc compiled.
	* gdb.base/funcargs.exp (float_and_integral_args):  Add
	"hppa*-*-hpux*" xfail for "run to call2a" when not gcc
	compiled.
	(discard_and_shuffle):  Add "hppa*-*-hpux*" xfail for
	"backtrace from call6a" when not gcc compiled.
	(shuffle_round_robin): Add "hppa*-*-hpux*" xfail for
	"backtrace from call7a" when not gcc compiled.
	* gdb.base/callfuncs.exp (do_function_calls):
	Add "hppa*-*-hpux*" xfail when not gcc compiled for
	"p t_char_array_values(char_array_val2,char_array_val1)",
	"p t_char_array_values(char_array_val1,char_array_val2)",
	"p t_char_array_values("carray 1","carray 2")",
	"p t_char_array_values("carray 1",char_array_val2)",
	"p t_char_array_values(char_array_val1,"carray 2")",
	"p sum_args(1,{2})",
	"p sum_args(2,{2,3})",
	"p sum_args(3,{2,3,4})",
	"p sum_args(4,{2,3,4,5})"
	* gdb.base/corefile.exp: Add "hppa*-*-hpux*" xfail for
	"backtrace in corefile.exp" when not gcc compiled.

Sat Sep  9 01:35:39 1995  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.base/signals.exp:  Rewrite `handle all print' test as
	a procedure. Accept blanks or TABs as whitespace, increase
	timeout and expect input buffer size for the large output
	from the command. Remove "i*86-*-bsdi2.0" xfail.

Sat Sep  2 06:41:26 1995  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.base/setvar.exp:  Add new testcases for truncation when
	assigning invalid values to bitfields.

Sat Sep  2 00:17:31 1995  Fred Fish  <fnf@cygnus.com>

	* gdb.base/callfuncs.exp (do_function_calls):  Remove
	mips-sgi-irix* xfail for
	"call inferior func with struct - returns char *"
	and fix test so that an optional (unsigned char *) cast is
	accepted in the result.

Fri Sep  1 13:42:01 1995  Fred Fish  <fnf@cygnus.com>

	* gdb.base/funcargs.exp (float_and_integral_args):  Remove
	sparc-sun-solaris2* xfail for "print f1 after run to call2a".
	* gdb.c++/Makefile.in (SUFFIXES): Add .SUFFIXES and ".cc" suffix.
	* gdb.base/signals.exp: Remove duplicate "handle all print" test
	that accidentally got checked in.

Sun Aug 27 23:35:35 1995  Fred Fish  <fnf@cygnus.com>

	* gdb.base/callfuncs.exp (do_function_calls):  Add alpha-dec-osf2*
	clear_xfail for "p t_float_values2(3.14159,float_val2)" for gcc
	compiled test.
	* gdb.base/opaque.exp (setup_xfail_on_opaque_pointer):
	Add mips-sgi-irix5* xfail for not gcc compiled.
	* gdb.base/Makefile.in (nodebug.o):  Also create nodebug.ci.
	* gdb.base/nodebug.exp: Add mips-sgi-irix5 xfail when not gcc compiled for
	"p top", "whatis top", "p middle", and "whatis middle".
	* gdb.base/whatis.exp: Add mips-sgi-irix* xfail for
	"whatis signed char" for not gcc compiled.
	* gdb.base/setvar.exp: Add mips-sgi-irix4* xfail (works on irix5) for
	"set variable signed char=-1 (-1)" and
	"set variable signed char=0xFF (0xFF)" for not gcc compiled.
	* gdb.base/funcargs.exp (float_and_integral_args):
	Add mips-sgi-irix5* xfail for "run to call2a" for not gcc compiled.
	Add mips-sgi-irix* xfail when not gcc compiled for
	"continue to call2b".
	Add mips-sgi-irix4* xfail (works with irix5) when gcc compiled for
	"continue to call2g".
	(discard_and_shuffle): Add mips-sgi-irix5* xfail whn not gcc compiled for
	"backtrace from call6a"
	(shuffle_round_robin): Add mips-sgi-irix* xfail when not gcc compiled for
	"backtrace from call7k".
	Add mips-sgi-irix5* xfail when not gcc compiled for
	"backtrace from call7a".
	(localvars_after_alloca):  Fix gdb_test cmds for
	"print * after runto ...".
	Remove rs6000-*-* xfails for
	"print i after runto localvars_after_alloca" and
	"print l after runto localvars_after_alloca"
	for all compilers.
	* gdb.base/exprs.exp: Add mips-sgi-irix4* xfails (works with irix5),
	when not compiled with gcc, for:
	"print signed char == (minus)",
	"print signed char != (minus)",
	"print signed char < (minus)",
	"print signed char > (minus)".
	* gdb.base/callfuncs.exp (do_function_calls):
	Add mips-sgi-irix* xfail, when compiled with native compiler, for
	"call inferior func with struct - returns char *".
	* gdb.base/return.exp (return_tests): Change xfail for
	"correct value returned double test" to include Solaris 2.4.
	* gdb.base/funcargs.exp (float_and_integral_args):
	Add sparc-sun-solaris2* xfail for "print f1 after run to call2a".

Sat Aug 26 00:26:11 1995  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.base/setvar.c, gdb.base/setvar.exp:  Add new tests for
	enumeration bitfields if compiling with GNU C.
	* lib/gdb.exp:  Consume `(y or n) ' in `Reinitialize source path
	to empty' prompt.

Tue Aug 22 00:30:37 1995  Jeff Law  (law@snake.cs.utah.edu)

	* gdb.base/scope.exp: xfail 'scope0.c'::filelocal_bss before run
	test for PRO targets.

	* gdb.base/funcargs.exp: Avoid ever setting more than 8
	breakpoints in the inferior at any given time by making
	two groups of breakpoints for call2*, call6* and call7*
	tests.

Sun Aug 20 06:58:25 1995  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.base/funcargs.exp:  Fix typos introduced by Aug 15 change.
	* gdb.base/callfuncs.c (main):  Use struct_val1 to inhibit xlc
	from optimizing it away.
	* gdb.base/callfuncs.exp:  Remove rs6000-*-* xfails for
	"call inferior func with struct".

Wed Aug 16 11:57:15 1995  Stan Shebs  <shebs@andros.cygnus.com>

	* configure.in: Only configure gdb.chill for particular targets.

Tue Aug 15 09:42:44 1995  Fred Fish  <fnf@cygnus.com>

	* gdb.base/Makefile.in:  Add action to .c.o transformation
	rule that generates a .ci file for each .o file and remove
	explicit .c.o rules except for callfuncs.o.
	* gdb.c++/Makefile.in:  Add .cc.o transformation rule that
	generates a .ci file for each .o file and remove explicit
	.cc.o rules.
	(clean): Remove *.tmp *.ci files.
	(EXECUTABLES): Remove templ-info.exp.
	* gdb.base/compiler.c: New file.
	* gdb.c++/compiler.cc: New file
	* gdb.base/scope.exp: Source gdb.base/scope.ci.
	Change rs6000-*-* xfail for
	"print 'scope0.c'::filelocal_ro" and
	"print 'scope1.c'::filelocal" and
	"print 'scope1.c'::filelocal_bss" and
	"print 'scope1.c'::filelocal_ro" and
	"print 'scope1.c'::foo::funclocal" and
	"print 'scope1.c'::foo::funclocal_ro" and
	"print 'scope1.c'::bar::funclocal" and
	"print 'scope0.c'::filelocal_ro" and
	"print 'scope1.c'::filelocal at foo" and
	"print 'scope1.c'::filelocal_bss at foo" and
	"print 'scope1.c'::filelocal_ro at foo" and
	"print 'scope1.c'::foo::funclocal at foo" and
	"print 'scope1.c'::foo::funclocal_bss at foo" and
	"print 'scope1.c'::foo::funclocal_ro at foo" and
	"print 'scope1.c'::bar::funclocal at foo" and
	"print 'scope0.c'::filelocal_ro" and
	"print 'scope1.c'::filelocal" and
	"print 'scope1.c'::filelocal_bss" and
	"print 'scope1.c'::filelocal_ro" and
	"print 'scope1.c'::foo::funclocal" and
	"print 'scope1.c'::foo::funclocal_bss" and
	"print 'scope1.c'::foo::funclocal_ro" and
	"print 'scope1.c'::bar::funclocal" and
	"print 'scope1.c'::bar::funclocal_bss"
	to only be xfail'd when not compiled with gcc.
	Add rs6000-*-* xfail for
	"print 'scope0.c'::filelocal_bss before run"
	when compiled with gcc.
	(test_at_main): Add rs6000-*-* xfail for
	"print filelocal_ro in test_at_main"
	when compiled with gcc.
	* gdb.base/ptype.exp: Source gdb.base/ptype.ci.
	Add rs6000-*-aix* xfail for
	"whatis unnamed typedef'd enum (compiler bug in IBM's xlc)" and
	"ptype t_char_array",  not compiled with gcc.
	* gdb.base/list.exp (test_list_function):  Add rs6000-*-*
	xfail for "list foo (in include file)" when gcc	compiled.
	* gdb.base/funcargs.exp: Source gdb.base/funcargs.ci
	(integral_args): Add rs6000-*-* xfail for
	"run to call0a" if not compiled with gcc.
	(unsigned_integral_args): Add rs6000-*-* xfail for
	"run to call1a" if not compiled with gcc.
	(float_and_integral_args):  Add rs6000-*-* xfail for
	"run to call2a" if not compiled with gcc and for
	"continue to call2b" for any compiler.
	Add rs6000-*-* xfail to
	"print f1 after run to call2a" for gcc compiled.
	(discard_and_shuffle): Add rs6000-*-* xfail for
	"run to call6a".
	(shuffle_round_robin): Add rs6000-*-* xfail for
	"backtrace from call7a" if not compiled with gcc.
	Add rs6000-*-* xfail for
	"backtrace from call7b" if compiled with gcc.
	(call_after_alloca): Add rs6000-*-* xfail for
	"print c in call_after_alloca" and
	"print s in call_after_alloca" and
	"backtrace from call_after_alloca_subr"
	if not compiled with gcc.
	(localvars_in_indirect_call): Add rs6000-*-* xfail for
	"print c in localvars_in_indirect_call" and
	"print c in localvars_in_indirect_call" and
	"backtrace in indirectly called function" and
	"stepping into indirectly called function"
	if not compiled with gcc.
	(localvars_after_alloca): Add rs6000-*-* xfail for
	"print c after runto localvars_after_alloca" and
	"print s after runto localvars_after_alloca" and
	"print i after runto localvars_after_alloca" and
	"print l after runto localvars_after_alloca"
	for all compilers.
	* gdb.base/whatis.exp: Source gdb.base/whatis.ci rather
	than whatis-info.exp.
	* gdb.base/opaque.exp: Source gdb.base/opaque0.ci rather
	than opaque-info.exp.
	Setup rs6000-*-* xfail for
	"ptype on opaque struct pointer (statically)" and
	"ptype on opaque struct pointer (dynamically)" when
	not compiled with gcc.
	* gdb.base/callfuncs.exp: Source gdb.base/callfuncs.ci
	rather than callf-info.exp.
	(do_function_calls):  Add clear_xfail for rs6000-*-* for
	"p t_float_values2(3.14159,float_val2)".  Seems to work
	fine there, both with xlc and gcc.  Need to find out what
	it is doing right and fix other platforms.
	* gdb.base/callfuncs.exp: Add rs6000-*-* xfail for
	"call inferior func with struct - returns int",
	"call inferior func with struct - returns long",
	"call inferior func with struct - returns float",
	"call inferior func with struct - returns double",
	"call inferior func with struct - returns char *",
	but only if not gcc compiled (presumes xlc compiled).
	Change rs6000-*-* xfails for
	"call inferior func with struct - returns char" and
	" call inferior func with struct -  returns short" to only
	xfail if not using gcc.
	(clean mostlyclean):  Remove *.ci and *.tmp files.
	* gdb.c++/templates.exp: Source gdb.c++/templates.ci rather
	than templ-info.exp.
	* gdb.base/langs.exp:  Source gdb.base/langs.ci.
	Add rs6000-*-* xfail for "up to foo in langs.exp"
	"up to cppsub_ in langs.exp" and "up to fsub in langs.exp"
	when not gcc compiled.

Sat Aug 12 15:05:36 1995  Jeffrey A. Law  <law@rtl.cygnus.com>

	* gdb.base/callfuncs.exp: Add xfails for the powerpc.
	* gdb.base/corefile.exp: Likewise.
	* gdb.base/list.exp: Likewise.
	* gdb.base/scope.exp: Likewise.
	* gdb.base/siganls.exp: Likewise.

	* gdb.base/nodebug.exp: Add xfails for the powerpc.  Handle aix4
	compiler output.
	* gdb.base/whatis.exp: Likewise.

Fri Aug 11 13:36:20 1995  Jeff Law  (law@snake.cs.utah.edu)

	* gdb.disasm/sh3.exp (all_fp_misc_tests): No longer expect a
	failure (opcode table has been fixed to match reality).

Mon Aug 14 09:01:59 1995  Fred Fish  <fnf@cygnus.com>

	* gdb.base/callfuncs.exp: Add rs6000-*-* xfails for
	"call inferior func with struct - returns char",
	"call inferior func with struct - returns short"

	* gdb.base/scope.exp: Remove rs6000-*-* xfails for
	"print 'scope0.c'::filelocal at main",
	"print 'scope0.c'::filelocal_bss in test_at_main",
	"print 'scope0.c'::filelocal at foo",
	"print 'scope0.c'::filelocal_bss in test_at_foo",
	"print 'scope0.c'::filelocal at bar",
	"print 'scope0.c'::filelocal_bss in test_at_bar"

	* gdb.base/list.exp: Remove rs6000-*-* xfail for "list function
	in source file 1".  This bug seems to have been fixed with both
	gcc and native cc (was native assembler bug?).

Wed Aug  9 08:04:12 1995  Fred Fish  (fnf@cygnus.com)

	* gdb.base/a1-selftest.exp: Change "i*86-*-sysv4" xfail for
	"backtrace through signal handler" to "i*86-*-sysv4*".
	* gdb.base/signals.exp: Add xfail for "'next' behaved as
	continue" case.  Add "known SVR4 bug" to fail message.
	Add "i*86-*-bsdi2.0" xfail for "handle all print".
	Add "i*86-*-bsdi2.0" xfail for "backtrace in signals_tests_1".
	* gdb.base/ptype.exp: Add "i*86-*-sysv4*" xfail for
	"whatis unnamed typedef'd enum..." and "ptype t_char_array".
	* gdb.base/langs.exp: Add "i*86-*-sysv4*" xfail for
	"up to foo in langs.exp", "show language at foo in
	langs.exp", "up to cppsub_ in langs.exp", "show
	language at cppsub_ in langs.exp", "up to fsub in
	langs.exp", and "show language at fsub in langs.exp".
	* gdb.base/corefile.exp: Add "i*86-*-sysv4*" to xfail for
	"bactrace in corefile.exp".
	* gdb.base/callfuncs.exp: Change xfail to "i*86-*-*" for
	"call inferior function with struct - returns float" and
	"call inferior function with struct - returns double".

Mon Aug  7 02:43:28 1995  Jeff Law  (law@snake.cs.utah.edu)

	* gdb.disasm/sh3.s: Source for sh3 disassembler tests.
	* gdb.disasm/sh3.exp: Run the sh3 disassembler tests.
	* gdb.disasm/configure.in (sh-*-*): Use sh3.mt makefile fragment.
	* gdb.disasm/sh3.mt: Makefile fragment for sh3 ests.

Mon Aug  7 08:09:37 1995  Fred Fish  <fnf@cygnus.com>

	* Makefile.in (CHILL_FOR_TARGET): Use previously defined
	(or overriden) "CHILL" macro rather then bare "gcc".
	Also look for ../../gcc/xgcc since that is what we will
	actually need, not "Makefile".  Remove following assignment
	of CHILL to CHILL_FOR_TARGET because that results in
	recursive definition.

Sun Aug  6 16:52:29 1995  Fred Fish  <fnf@cygnus.com>

	* gdb.base/corefile.exp:  Change xfail for backtrace in
	corefile.exp from linuxaout to all linux.
	* gdb.base/sigall.exp (test_one_sig):  Specifically deal with
	cases where we miss the breakpoint at the signal handler
	for some reason.  Setup xfail for linuxoldld/linuxaout and
	getting SIGIO.  Setup xfail for linuxoldld/linuxaout for
	hitting SIGURG breakpoint.
	* gdb.base/signals.exp:  Setup xfail for "next" acting like
	continue to add linuxoldld.  Setup xfail for all linux for
	"next to handler in signals_tests_1", "backtrace in
	signals_tests_1", "continue to func1", "pass SIGUSR1",
	and continue to handler".

Thu Aug  3 10:45:37 1995  Fred Fish  <fnf@cygnus.com>

	* Update all FSF addresses except those in COPYING* files.

Sun Jul 30 17:50:35 1995  Fred Fish  <fnf@cygnus.com>

	* gdb.base/a2-run.exp: Change messages to be more explicit about
	the status of args, and quote binfile in results.

Sun Jul 30 10:24:20 1995  Fred Fish  <fnf@cygnus.com>

	* gdb.base/callfuncs.exp: Add tests for passing structs to
	inferior functions and return various types.
	* gdb.base/callfuncs.c: Add functions to receive a struct
	and return a member of the struct, in various types.

Sat Jul 29 14:22:33 1995  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.base/Makefile.in (clean):  Remove callf-info.exp.

Fri Jul 28 13:36:11 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>

	* config/vxworks29k.exp: New file, sources vxworks.exp.

Fri Jul 28 00:28:36 1995  Jeffrey A. Law  <law@rtl.cygnus.com>

	* config/gdbremote.exp: New file.  Testing framework using
	gdbserver.

Thu Jul 27 12:17:14 1995  Fred Fish  (fnf@cygnus.com)

	* gdb.base/interrupt.exp: Setup "i*86-*-linux" xfail for
	"call function when asleep" and "send end of file".
	* gdb.base/corefile.exp: Add "i*86-*-linuxaout" to xfail list
	for "backtrace in corefile.exp".
	* gdb.base/a1-selftest.exp: Add "i*86-*-linux*" to xfail list
	for "backtrace through signal handler".
	* gdb.base/corefile.exp: Make sure we actually generate a core file
	before trying the core tests.  Some systems allow the user to suppress
	generation of core files and default to that (linux for example).
	* gdb.base/signals.exp: Change xfail for "next" acting like "continue"
	from "i*86-*-linux" to "i*86-*-linuxaout".  Works with ELF beta.

Tue Jul 25 17:30:10 1995  Jeffrey A. Law  <law@rtl.cygnus.com>

	* gdb.threads: New directory with some crude multi-threaded
	gdb tests (step.exp and step2.exp).
	* config/mt-lynx (STEP_EXECUTABLE): Define.
	(THREADFLAGS): Define.

Tue Jul 25 01:03:52 1995  Jeff Law  (law@snake.cs.utah.edu)

	* gdb.base/sigall.exp: Avoid losing in SIGPRIO test on lynx.

	* gdb.base/signals.exp: Disable whole file for lynx until
	further notice.

	* gdb.base/signals.exp: xfail test where "next" acts like
	"continue" for lynx.

	* gdb.base/interrupt.exp: xfail test for calling function while
	inferior is asleep for lynx.

	* gdb.base/watchpoint.exp: Handle more cases of gdb echoing more
	than one cr-lf	after each command.

Sun Jul 23 23:33:18 1995  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* configure.in:  Reinstate setting of stabsdirs variable, fix
	typo in setting up configdirs for native builds.

	* gdb.base/return.exp:  Fix typo in return double test.
	* gdb.base/return.c (tmp2, tmp3):  Made global to inhibit the
	compiler from optimizing them away.

Fri Jul 21 11:39:34 1995  Jeff Law  (law@snake.cs.utah.edu)

	* gdb.base/gdbvars.exp: Expect zero or more additional cr-lf
	sequences to be echo'd by gdb when using gdb_test.
	* gdb.chill/chexp.exp: Likewise.
	* gdb.fortran/exprs.exp: Likewise

Thu Jul 20 13:28:36 1995  Jeffrey A. Law  <law@rtl.cygnus.com>

	* gdb.base/a1-selftest.exp: Reset the timeout value to 30 seconds
	after the inferior gdb has started.

	* gdb.base/a2-run.exp: Handle gdb echoing more than one cr-lf
	after each command.
	* gdb.base/funcargs.exp: Likewise.
	* gdb.base/gdbvars.exp: Likewise.
	* gdb.base/interrupt.exp: Likewise.
	* gdb.base/list.exp: Likewise.
	* gdb.base/watchpoint.exp: Likewise.
	* gdb.c++/demangle.exp: Likewise.
	* gdb.c++/inherit.exp: Likewise.
	* gdb.chill/chexp.exp: Likewise.
	* gdb.fortran/exprs.exp: Likewise.

	* gdb.base/watchpoint.exp: Disable watchpoint triggered in syscall
	test if we can't handle IO to/from the inferior.

	* gdb.c++/misc.exp: Always check for a program already being
	started after sending a "run" command to gdb.

	* gdb.base/twice.exp: Start with a fresh gdb.

	* gdb.chill/chexp.exp: Remove skip_chill_tests check; these tests
	only depend on gdb's expression code, not the chill runtime.

	* gdb.base/return.c: Put return values into variables so we
	can have gdb print them rather than depending on the program
	to print them.
	* gdb.base/return.exp: Corresponding changes.

	* lib/gdb.exp: Provide default value for noinferiorio.
	* gdb.base/interrupt.exp: Skip tests if we can't handle IO to/from
	the inferior.

	* gdb.base/break.exp: Always check for a program already being
	started after sending a "run" command to gdb.
	(text_next_with_recursion): Don't check the output from the
	program's printf statement.  Instead just make sure the program
	exited.

	* gdb.base/commands.exp: Protect tests which need arguments with
	$noargs conditionals.

Wed Jul 19 22:42:43 1995  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.base/printcmds.exp:  Adjust expect patterns for addresses
	of structure member arrays to match gdb/valops.c:value_addr change.

Mon Jul 17 10:12:27 1995  Jeff Law  (law@snake.cs.utah.edu)

	* gdb.base/a1-selftest.exp: Fix unmatched quotes in many timeout
	cases.

Wed Jul 12 10:20:08 1995  Fred Fish  (fnf@cygnus.com)

	* configure.in (configdirs):  Remove gdb.chill from default list
	of subdirs and then add it back in only if doing a native build.
	The current chill compiler does not yet work in any cross build.
	* Revert all signal changes from Jul 6.
	* gdb.base/{sigall.c signals.c}:  Define away signal() and alarm()
	for sh-hms targets, allowing these tests to link, with no other
	changes.  Testing is suppressed by setting "nosignals" in site.exp.

Thu Jul  6 20:58:30 1995  Fred Fish  (fnf@cygnus.com)

	* configure.in (signaldirs): Define and add to configdirs for all
	targets except some specific ones that are known to not support signals.
	Also clean up formatting.
	* gdb.base/Makefile.in (EXECUTABLES):  Remove sigall and signals.
	(signals, sigall):  Remove rules to build.
	* gdb.base/{sigall.c, sigall.exp, signals.c, signals.exp}:
	Moved to new gdb.signals directory.
	* gdb.signals: New test directory.
	* gdb.signals/{Makefile.in, configure.in, sigall.c, sigall.exp,
	signals.c signals.exp}:  New or moved files.

Sun Jun 25 12:55:18 1995  Jeff Law  (law@snake.cs.utah.edu)

	* gdb.base/interrupt.exp: Don't choke if $nointerrupts doesn't exist.

Wed Jun 21 16:35:55 1995  Fred Fish  <fnf@cygnus.com>

	* gdb.base/return.exp:  Xfail `return double' test failure
	on at least Solaris 2.3 and handle future/past versions on
	a case by case basis as appropriate.  Also update message
	to include i*86 failures.

Wed May 24 07:10:10 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* Makefile.in: Change variable CFLAGS to TESTSUITE_CFLAGS.

	* lib/gdb.exp: Fix comment which erroneously identified
	gdb_file_cmd as gdb_load (the 19 May change was in fact to
	gdb_file_cmd not gdb_load).
	* config/unix-gdb.exp (gdb_load): Add "upvar timeout timeout".

	* gdb.base/setvar.exp: Make test names consistent between pass and
	fail cases.  Use gdb_test more.

Fri May 19 07:22:58 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* lib/gdb.exp (gdb_load): Add "upvar timeout timeout".

Mon May 15 23:50:51 1995  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.base/help.exp:  Fix expected help string for `show commands'.

Thu May 11 07:55:11 1995  Jim Kingdon  <kingdon@deneb.cygnus.com>

	* gdb.stabs/xcoff.sed: Change N_LSYM to C_DECL not C_LSYM.

	* gdb.stabs/weird.exp: Remove xfail for xcoff bitching about lack
	of a text section.

Thu May 11 15:02:24 1995  Stu Grossman  (grossman@andros.cygnus.com)

	* config/monitor.exp (gdb_target_monitor):  Fix loop interator so
	that loop eventually terminates.  Fix Connection refused logic so
	that testsuite will expire nicely.

Wed May 10 17:57:35 1995  Stu Grossman  (grossman@andros.cygnus.com)

	* config/cpu32bug.exp, config/est.exp, config/hppro.exp,
	config/rom68k.exp:  New tcl glue for the appropriate monitors.
	These all just end up calling monitor.exp.
	* config/monitor.exp (gdb_target_monitor):  Handle `Connection
	refused' by retrying.  Cleanup some timeout issues.
	* (gdb_load):  Reduce timeout.  Cleanup some timeout issues.
	* lib/gdb.exp (gdb_test gdb_test_exact):  Upvar timeout so that
	callers don't have to set/restore global timeout variable.

	* The following set of changes centralizes management of the global
	timeout	variable.  This way, it can be set in one target dependent
	place instead of dozens of places scattered throughout the test suite.
	If you need to lengthen a timeout, then you should either set timeout
	in one of the config/{target}.exp files, or multiply it by a factor.
	Setting it to an absolute value is always going to lose for some
	targets.
	* gdb.base/a1-selftest.exp (test_with_self):  Only use local timeout.
	* gdb.base/callfuncs.exp (do_function_calls):  Don't set timeout.
	* gdb.base/funcargs.exp:  Don't set timeout.
	* gdb.base/list.exp (test_forward_search):  Only use local timeout.
	* gdb.base/printcmds.exp (test_print_string_constants
	test_print_array_constants):  Don't set timeout.
	* gdb.base/ptype.exp:  Don't set timeout.
	* gdb.base/recurse.exp:  Don't set timeout.
	* gdb.base/return.exp:  Don't set timeout.
	* gdb.base/watchpoint.exp:  Don't set timeout.
	* gdb.c++/classes.exp (do_tests):  Don't set timeout.
	* gdb.c++/virtfunc.exp (test_virtual_calls):  Don't set timeout.

Wed May 10 16:03:23 1995  Torbjorn Granlund  <tege@adder.cygnus.com>

	* Makefile.in: Make clean targets work also when SUBDIRS is empty.

Mon May  1 07:32:48 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* lib/gdb.exp: Disable chill tests for irix5.

Wed Apr 26 07:36:03 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.base/scope.exp: Make test names unique.  Use gdb_test.  Make
	each test pass or fail.

Sun Apr 23 21:32:32 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.base/opaque.exp: Remove xfails for aix; print a warning if
	xlc not gcc.

Fri Apr 21 15:44:02 1995  Stu Grossman  (grossman@rtl.cygnus.com)

	* cpu32bug.exp est.exp rom68k.exp:  Delete.  Unify into monitor.exp.

Wed Apr 19 17:41:21 1995  Stu Grossman  (grossman@cygnus.com)

	* config/est.exp:  Fix copyright and comments.  Remove dead code.
	Use targetname, serialport and baud variables instead of fixed
	constants.
	* config/rom68k.exp:  Fix copyright and comments.  Remove dead code.
	* config/cpu32bug.exp:  New file to support cpu32bug monitors.

Wed Apr 19 13:47:16 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.base/watchpoint.exp: Don't run
	test_watchpoint_triggered_in_syscall for sunos.

Mon Apr 17 12:48:52 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.base/{break.c,run.c}: Don't include vxWorks.h or stdioLib.h;
	they don't seem to exist.  Do include stdio.h.

Fri Apr 14 09:40:22 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.base/a1-selftest.exp: Add alpha xfail.

Mon Apr 10 13:07:50 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.base/watchpoint.c (main): Prompt before calling read().
	* gdb.base/watchpoint.exp (test_watchpoint_triggered_in_syscall):
	Revise accordingly.  Remove cruft about sending "123" several
	times, until it gets noticed.  Clean up the "print buf[0]" stuff
	so that it passes or fails, and waits for prompts in the usual way.

Sun Apr  9 09:02:36 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.base/recurse.exp: Fix comment.

	* TODO: Remove item about printing variables in nodebug.exp.  Add
	item about enabling tests which are only run on some targets.

	* gdb.base/watchpoint.exp: Various cleanups (make each test pass or
	fail, make test names unique, use new gdb_test convention
	regarding pattern, use gdb_test more, etc.).

	* gdb.base/bitfields.exp: Various cleanups (make each test pass or
	fail, make test names unique, etc.).

Sat Apr  8 02:47:45 1995  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.base/nodebug.c:  Change return type of top and middle to
	short.
	* gdb.base/nodebug.exp:  Remove xfails for ecoff systems, they
	are fixed by the recent mdebugread.c changes. Allow `short ()'
	as type for top and middle.

Thu Apr  6 08:54:18 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.base/break.exp: Remove commented out if $usestubs {}.  As
	nearly as I can tell, the whole thing was an accident in Stu's
	change of 24 Mar 1995 (logged in ../ChangeLog), in which he meant
	to replace a send/expect pair with gdb_test, but ended up only
	adding the gdb_test.  My change of 24 Mar 1995 and Kung's change
	of 30 Mar 1995 took care of it, but left this vestigial comment
	which I am now nuking.

Mon Apr  3 09:00:27 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.base/break.exp: Look for different line number for
	breakpoint at main depending on usestubs.

Sun Apr  2 08:15:45 1995  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.base/list.exp:  Adjust some alternate expect patterns to
	match recent list0.c change. Add alternate expect pattern for
	output from `list default lines around main' for optimizing
	compilers.

Sat Apr  1 07:23:22 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* lib/gdb.exp: If nosignals is not set, set it to 0.

Fri Mar 31 16:13:48 1995  Kung Hsu  <kung@mexican.cygnus.com>

	* config/slite-gdb.exp: Responds to load symbol table prompt.
	* gdb.base/break.exp: Adjust line number, fix rerun.
	* gdb.base/langs0.c: Add #ifdef usestubs.

Thu Mar 30 15:36:55 1995  Kung Hsu  <kung@mexican.cygnus.com>

	* gdb.base/list.exp: Adjust line contents after adding new lines in
	list0.c. Also fix a syntax error.

	* lib/gdb.exp (gdb_run_cmd): Special handling for targets use stubs.
	* gdb.base/break.exp: ditto.
	* gdb.base/list.exp: ditto.
	* gdb.base/bitfields.c: Add #ifdef usestubs in main().
	* gdb.base/run.c: ditto.
	* gdb.base/list0.c: ditto.
	* gdb.base/funcargs.c: ditto.

Wed Mar 29 17:09:29 1995  Stu Grossman  (grossman@cygnus.com)

	* testsuite/config/rom68k.exp (gdb_target_rom68k):  Use
	$targetname, $serialport and $baud instead of hardwired variables.
	* testsuite/gdb.base/{sigall.exp signals.exp}:  Skip these if the
	target doesn't support signals.

Wed Mar 29 12:29:34 1995  Kung Hsu  <kung@mexican.cygnus.com>

	* lib/gdb.exp (runto_main): Fix regular expression bug, add return 1.

Tue Mar 28 08:46:45 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.base/recurse.exp: Make test names unique.  Change \\(+ to \\(.
	Don't rely on the value of an auto variable before it has been
	initialized.  Use gdb_test more.

Mon Mar 27 08:00:34 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* lib/gdb.exp (default_gdb_version): A version number must start
	with a digit, but other than that contains all characters up to
	the first whitespace character.

Sun Mar 26 13:19:32 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.base/commands.exp (breakpoint_command_test): New tests.

Sat Mar 25 15:38:06 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.c++/*.exp: Warn if executable does not exist.  The original
	reason for skipping the warning was that configure.in sometimes
	intentionally skipped building the executables but the tcl code
	had no way of knowing.  That (a) was always bogus with respect to
	error handling, (b) is no longer true (right now there is no way
	to skip C++ tests).

	* gdb.c++/demangle.exp: Remove unused binfile and srcfile variables.

Sat Mar 25 01:16:10 1995  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.base/list.exp:  Add expect patterns for output from
	SunPRO compiled executables.
	* gdb.base/whatis.exp:  Allow leading `signed' for all v_signed_*
	types.

Fri Mar 24 06:11:05 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.base/break.exp (test_next_with_recursion): Accept any line
	number (we are already testing that the correct source line text
	gets printed).

	* gdb.base/break.exp: Make one test if $usestubs.  I'm not sure
	that is what is intended, but something needed to be done to get
	sunos4 native working again.

	* gdb.c++/misc.cc (main): Fix typo (#iffef -> #ifdef).

	* gdb.base/a1-selftest.exp (test_with_self): Remove comment which
	apparently went with a (very) old xfail.

Fri Mar 24 13:41:09 1995  Kung Hsu  <kung@mexican.cygnus.com>

	* gdb.base/callfuncs.exp: call runto_main instead of runto main.
	runto_main is a proc in gdb.exp that will do 'step' for target use
	stubs.
	* gdb.base/exprs.exp: ditto.
	* gdb.base/interrupt.exp: ditto.
	* gdb.base/opaque.exp: ditto.
	* gdb.base/printcmds.exp: ditto.
	* gdb.base/ptype.exp: ditto.
	* gdb.base/scope.exp: ditto.
	* gdb.base/setvar.exp: ditto.
	* gdb.base/signals.exp: ditto.
	* gdb.base/twice.exp: ditto.
	* gdb.c++/classes.exp: ditto.
	* gdb.c++/inherit.exp: ditto.
	* gdb.c++/templates.exp: ditto.
	* gdb.base/break.exp: no run and hit main for stubs. Change line
	numbers for breakpoints and info breakpoint.
	* gdb.base/break.c: Add #ifdef usestubs for set_debug_traps() and
	breakpoint().
	* gdb.base/callfuncs.c: ditto.
	* gdb.base/exprs: ditto.
	* gdb.base/interrupt.c: ditto.
	* gdb.base/opaque0.c: ditto.
	* gdb.base/printcmds.c: ditto.
	* gdb.base/ptype.c: ditto.
	* gdb.base/scope0.c: ditto.
	* gdb.base/setvar.c: ditto.
	* gdb.base/signals.c: ditto.
	* gdb.base/twice.c: ditto.
	* gdb.c++/misc.cc: ditto.
	* gdb.c++/templates.cc: ditto.

Fri Mar 24 06:11:05 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* config/vx-gdb.exp, lib/gdb.exp: Regexp cleanups (\[(\] -> \\(, etc.).

	* gdb.base/a1-selftest.exp: Don't check for # followed by a digit
	somewhere between `read' and `main.c'.  I'm pretty sure the
	pattern ".*#\[0-9\].*" was slowing down pattern matching a lot,
	and it isn't particularly useful.

	* gdb.base/scope.exp: Make test names unique.  \[(\] -> \\(.

Thu Mar 23 14:58:35 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.base/commands.exp (infrun_breakpoint_command_test): New test.

Wed Mar 22 18:36:05 1995  Kung Hsu  <kung@mexican.cygnus.com>

	* config/mt-slite: add LIBS and -nostdlib.
	* config/slite-gdb.exp: add this new file to support sparclite target.

Tue Mar 21 21:41:04 1995  Doug Evans  <dje@canuck.cygnus.com>

	* config/vx-gdb.exp (gdb_load): Update test of vxworks_ld return code.

	* gdb.base/a2-run.exp: Change argument to istarget from
	"*-*-vxworks" to "*-*-vxworks*".
	* gdb.base/{break.exp,default.exp,scope.exp}: Likewise.

Tue Mar 21 17:08:47 1995  Kung Hsu  <kung@mexican.cygnus.com>

	* lib/gdb.exp: add proc runto_main, for targets that use stubs, this
	will not runto main but do a 'step' to step out of breakpoint().
	* config/mt-slite: add -Dusestubs.

Tue Mar 21 12:14:12 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.base/printcmds.exp (test_artificial_arrays): Send ^V@
	instead of just @.

	* gdb.base/signals.exp: Add test for "handle all print".
	* TODO: Remove "handle all print".  Also remove item about
	checking copyright date (I don't like the idea of a spurious FAIL
	based on when we run the tests).

	* gdb.base/recurse.exp: Enable test for SunOS4.  xfail one test
	for SunOS4 (reason for failure not investigated).  Remove
	redundant test for $binfile.

	* gdb.base/nodebug.c (array_index): Call malloc.

	* gdb.base/{corefile.exp,default.exp}: Make names of "up" tests unique.

Mon Mar 20 10:08:17 1995  Jeff Law  (law@snake.cs.utah.edu)

	* gdb.base/recurse.exp: Update gdb_test invocation to use new
	conventions and slightly simplify the matching regexp.

Fri Mar 17 05:43:28 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.base/break.exp: Update gdb_test invocation to use new
	convention.

	* lib/gdb.exp: If noargs is not set, set it to 0.

	* gdb.base/nodebug.exp: Comment out redundant test.  Make name of
	tests unique.

	* lib/gdb.exp: Skip CHILL for AIX and Solaris.

Thu Mar 16 16:27:07 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.base/nodebug.exp: It is OK if GDB thinks top and middle have
	one argument of type "<non-float parameter>".

Wed Mar 15 15:54:56 1995  Stu Grossman  (grossman@cygnus.com)

	* config/rom68k.exp:  New file to support Motorola IDP board.
	* gdb.base/a2-run.exp:  Skip this file if noargs is set.
	* gdb.base/break.c:  Change things around so that this program
	doesn't depend upon args.  This is necessary to make remote
	targets work (in general, they can't take args).
	* gdb.base/break.exp:  Don't try to send args to program.  Don't
	expect output.  Also, replace lots of code with gdb_test.

Wed Mar 15 04:11:14 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.base/printcmds.exp (test_character_literals_accepted): Test
	printing of '\'' (which is what the comment says we are testing,
	even though we were not), not '''.
	(test_integer_literals_rejected): Test that printing ''' is an error.

	* gdb.fortran/exprs.exp, gdb.fortran/types.exp,
	gdb.chill/chexp.exp, gdb.base/printcmds.exp,
	gdb.c++/cplusfuncs.exp, gdb.chill/callch.exp, gdb.chill/misc.exp,
	gdb.chill/pr-6292.exp, gdb.chill/string.exp, gdb.chill/tuples.exp:
	Use gdb_test not test_print_accept.
	* lib/gdb.exp: Remove test_print_accept.

	* gdb.base/signals.exp (signal_tests_1): Make pass message
	consistent with fail message.

	* gdb.base/whatis.exp: Remove xfails for printing char vs.
	unsigned char; the bug (PR 1821) is fixed.

	* gdb.base/scope.exp: Remove xfails for PRs 1843 and 1868.

	* gdb.base/scope.exp (test_at_localscopes): Call pass for
	successful tests--makes xfailing them work right.

Tue Mar 14 07:39:19 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* lib/gdb.exp (gdb_test): Between $pattern and $prompt, expect
	only \r\n, not .*.  The test can pass .* as the last thing in
	$pattern if that is what it wants.  In addition to providing this
	flexibility, this change should speed up pattern matching in cases
	where the pattern already ended with .* (there were a number of
	them).  This change also helps catch bad patterns--in the old
	scheme the typo "char \*" instead of "char \\*" would pass.  Now
	it is caught.
	* Many .exp files: Update callers.

	* gdb.base/funcargs.exp: Replace \[(\]+ with \\(.  The latter is
	clearer and does not spuriously match multiple ('s.  Likewise for
	) and *.

	* gdb.base/nodebug.exp: Test ability to call a function and pass
	it a string (even with no debugging info).

	* gdb.base/printcmds.exp (test_integer_literals_rejected): Change
	"p '\'", which is the same as "p ''" once tcl gets done with
	quoting, to "p '\\'", which I suspect is what is intended (one
	backslash gets sent to GDB).

	* gdb.base/printcmds.exp (test_artificial_arrays): New tests.

Fri Mar 10 13:31:46 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.base/a1-selftest.exp: Remove xfail for solaris.  The bug (PR
	1817) was fixed literally years ago.

Fri Mar 10 02:49:40 1995  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.base/funcargs.exp (call_after_alloca):  Remove `next'
	test, it causes stepping out of call_after_alloca_subr with
	optimizing compilers.
	(localvars_in_indirect_call):  Consume GDB prompt if `finish'
	fails.

	* gdb.c++/templates.exp:  Source templ-info.exp only if
	the templates executable exists.

	* gdb.c++/misc.cc (class Contains_static_instance,
	class Contains_nested_static_instance),
	gdb.c++/classes.exp (test_static_members):  Test printing of
	a class that contains a static instance of the class.

Thu Mar  9 11:43:55 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.base/langs2.c (cppsub_): Don't prototype.
	* gdb.base/langs2.cxx (cppsub_): Fix prototype (cosmetic value
	only, I believe).

Wed Mar  8 10:29:33 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* lib/gdb.exp (skip_chill_tests): New procedure.

	* gdb.base/signals.exp (signal_tests_1): xfail for irix.

Mon Mar  6 10:44:06 1995  Jeff Law  (law@snake.cs.utah.edu)

	* gdb.disasm/hppa.exp: Delete redundant ".*" at the beginning of
	each expect pattern.  Cuts runtime from 12 to about 4 seconds.

Thu Mar  2 05:31:34 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.base/langs.exp: Don't insist that foo__Fi be demangled.

	* gdb.disasm/hppa.exp (all_fpu_comparison_tests): Only
	disassemble 8, not 16, instructions for part 4.

	* config/vx-gdb.exp (gdb_start): Use \030, not \CX.  tcl doesn't
	support the latter anymore.

	* gdb.base/Makefile.in: Try compiling callfuncs.c, if that fails try
	-DNO_PROTOTYPES.
	* gdb.base/callfuncs.c: Control use of prototypes based on
	NO_PROTOTYPES, not __STDC__.
	* gdb.base/callfuncs.exp (do_function_calls): xfail one of the
	t_float_values2 tests if prototypes in use.

	* gdb.base/callfuncs.c (t_float_values, t_float_values2,
	t_double_values):  When checking differences against DELTA, check
	that difference is within the range (-DELTA,DELTA), not just
	(-infinity,DELTA).

Tue Feb 28 16:28:54 1995  Kung Hsu  <kung@mexican.cygnus.com>

	* config/mips-gdb.exp (gdb_load): In every test case, we need to do
	'file' command firts, then 'target', then 'load', this is due to gdb
	target set up.
	* config/mips-gdb.exp: Fix a couple regular exp bugs.

Thu Feb 23 17:44:55 1995  Jeff Law  (law@snake.cs.utah.edu)

	* gdb.disasm/hppa.s (fmemLRbug_tests): Add tests for the indexing
	FP load/store variants.
	* gdb.disasm/hppa.exp (fmemLRbug_tests): Test new variants.

Wed Feb 22 18:29:08 1995  Jim Kingdon  <kingdon@rtl.cygnus.com>

	* gdb.base/term.exp: Do not give a warning if not native, it is
	not an abnormal condition.

Tue Feb 21 13:08:47 1995  Jim Kingdon  <kingdon@cygnus.com>

	* gdb.base/ptype.exp: Accept char[0] as well as char[] for "ptype
	t_char_array".

Sun Feb 19 13:10:06 1995  Jim Kingdon  <kingdon@rtl.cygnus.com>

	* lib/gdb.exp (default_gdb_version): Pass GDBFLAGS to gdb when we
	are getting the version number.

	* gdb.base/{a1-selftest.exp,corefile.exp}: Do not give a warning
	if not native, it is not an abnormal condition.

Thu Feb 16 15:56:56 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* lib/gdb.exp: Just use "file exists", rather than undocumented
	dejagnu procedure "findfile".

Thu Feb 16 10:30:24 1995  J.T. Conklin  <jtc@rtl.cygnus.com>

	* config/mt-vxworks (CFLAGS): Set to -g -Dvxworks.
	  (LDFLAGS): Set to -Xlinker -Ur.

	* Makefile.in, gdb.{base,c++,chill}/Makefile.in (GDB, GDBFLAGS):
	  Removed, these values are set by lib/gdb.exp.

	* lib/gdb.exp: If GDBFLAGS is unset, set it to -nx.

Wed Feb 15 14:23:28 1995  J.T. Conklin  <jtc@rtl.cygnus.com>

	* config/vx-gdb.exp (spawn_vxgdb): Use default_gdb_start instead
	  of replicating gdb startup code.

	* config/mt-vxworks (LDFLAGS): Set to -r.
	  (CFLAGS_FOR_TARGET): Removed.

	* config/vx-gdb.exp: always set prompt; gdb.exp sets it to
	  (gdb) and gdb for vxworks uses (vxgdb).

	* Makefile.in, gdb.{base,c++,chill}/Makefile.in (GDB): If a gdb
	  executable is not in the tree and host != target, use sed and
	  program_transform_name to determine the gdb name used by the
	  target.

	* configure.in, gdb.{base,c++,chill}/configure.in: changed so
	  *-*-vxworks* matches vxworks and *-*-netware* matches NetWare.

Sun Feb 12 08:11:58 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.base/{callfuncs.exp,callfuncs.c}: Add tests for passing
	floats, chars, and shorts where there are ANSI-style function
	definitions.

	* gdb.base/langs.exp, gdb.base/langs*: New test.
	* gdb.base/Makefile.in: Build it.
	* TODO: Remove item about checking that C names don't get C++
	demangling applied; this test tests it.

Thu Feb  9 12:43:56 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.stabs/weird.exp: Remove "Haven't examined" comment which
	went with the const70 xfail.  The xfail went away a year ago.

	* gdb.base/signals.exp: Rename a bunch of tests to give unique names.

	* gdb.base/corefile.exp: Give backtrace test unique name.  xfail
	for hp300.

	* gdb.base/interrupt.exp: Also xfail hpux (for hp300).

	* gdb.base/a1-selftest.exp: Don't run on hp300.

Sat Feb  4 15:04:32 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* Makefile.in (site.exp): Set host_alias and target_alias as well
	as host_triplet and target_triplet.

Wed Feb  1 08:03:48 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.base/a1-selftest.exp: Invoke stty before starting inferior.

	* gdb.base/nodebug.exp: Add xfails for ultrix and irix5 (same
	places as other ecoff systems).

	* gdb.base/a1-selftest.exp (test_with_self): Don't invoke stty on
	ultrix.

Mon Jan 30 11:44:52 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.base/nodebug.c (inner): Use variables so AIX linker doesn't
	remove them.
	* gdb.base/nodebug.exp: Accept "function" in addition to "text
	variable and "variable" in addition to "data variable".
	* gdb.base/nodebug.exp: xfail datalocal and bsslocal tests for AIX.

	* gdb.base/list.exp (test_forward_search): Set listsize to 4 not
	2.
	* gdb.base/list1.c (long_line): Add additional statement at start
	of function.
	* gdb.base/list.exp (test_forward_search): Update line number to
	reflect new statement.

Sun Jan 29 13:34:25 1995  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.base/signals.exp:  Reinitialize searched source directories
	after gdb_start call.

Sat Jan 28 01:34:44 1995  Jeff Law  (law@snake.cs.utah.edu)

	* gdb.disasm/Makefile.in (clean): Delete "errs" file.
	* gdb.stabs/Makefile.in: Likewise.

	* gdb.disasm/hppa.exp (all_fpu_comparison_tests): Revert last
	change.  Instead split the tests into smaller pieces.
	* gdb.disasm/hppa.s: Corresponding changes.

Fri Jan 27 09:24:51 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.base/a1-selftest.exp (test_with_self), gdb.base/interrupt.exp:
	Quote ^C when passing it to stty.  For some shells ^ is a pipe.

	* gdb.base/funcargs.exp: Modify many tests so that every test
	either passes or fails.  Make some test names unique.

Thu Jan 26 19:20:34 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.base/a1-selftest.exp (test_with_self), gdb.base/interrupt.exp:
	Call stty to set interrupt character.

	* gdb.disasm/hppa.mt (hppa), gdb.stabs/hppa.mt (weird.o): Check
	for HP assembler versus GNU assembler based on actual behavior of
	$(CC), rather than assuming that $(AS) is always the GNU assembler.

	* TODO: Suggest a few more stepping tests.

Wed Jan 25 14:52:41 1995  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.base/default.exp: xfail no-stack backtraces for h8300,
	restart GDB for h8300 after a continue.
	(return): Add pattern to match a29k-udi behavior.
	* gdb.base/nodebug.exp: Remove obsolete comment.
	* gdb.base/regs.exp: New file, testing of register displays.
	* gdb.base/return.exp: Fix typo in reference to $objdir.
	* gdb.base/whatis.exp: Always start with a fresh GDB.

Wed Jan 25 11:12:07 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.disasm/hppa.exp (all_fpu_comparison_tests): Set timeout
	higher, these tests generate a lot of output.

Tue Jan 24 07:58:44 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* lib/gdb.exp (gdb_test): Remove catch from around the send.  The
	code following the catch silently ignored some errors; without the
	catch they should be thrown like any other tcl error.  Also, the
	catch used "" instead of {} which meant all the callers who wanted
	to include one of the characters "[]$ had to quote it an extra time.
	* gdb.base/{callfuncs.exp,commands.exp,gdbvars.exp,printcmds.exp,
	ptype.exp,signals.exp,watchpoint.exp}, gdb.c++/{cplusfuncs.exp,
	demangle.exp}, gdb.chill/chexp.exp, gdb.fortran/exprs.exp:
	Remove extra quoting.

Mon Jan 23 21:57:54 1995  Jeff Law  (law@snake.cs.utah.edu)

	* gdb.base/commands.exp: Make test names unique; every test either
	passes or fails.  Update some comments.

	* gdb.disasm/hppa.exp (do_system_control_tests): Update.

Sat Jan 21 15:34:52 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	The following fixes a FAIL caused by the fact that the alpha stabs
	configuration didn't use the ".if alpha" code in weird.def.
	* gdb.stabs/weird.def (v_comb): Use type attribute to specify 32
	bit pointer, so the 32 bit version works even on the alpha.
	* gdb.stabs/{alpha.mt,ecoff.mt,aout.sed,hppa.sed,xcoff.sed,weird.def}:
	Remove the stuff which allowed us to have separate versions for
	alpha and everything else.

	* gdb.c++/cplusfuncs.exp (test_lookup_operator_functions): Fix
	regexp which "info func operator\[\](" is supposed to match.  Fix
	string to send to GDB.  Note that GDB still doesn't work right.  Add a
	new test for "info func .perator\[\](" which GDB does handle correctly.

	* gdb.base/nodebug.exp: xfail most of the new tests for ecoff systems.

Fri Jan 20 12:14:23 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.c++/classes.exp, gdb.c++/cplusfuncs.exp,
	gdb.c++/inherit.exp, gdb.c++/templates.exp, gdb.c++/virtfunc.exp,
	gdb.fortran/exprs.exp, gdb.fortran/types.exp, gdb.chill/chexp.exp,
	gdb.base/printcmds.exp: Remove passcount, failcount, etc., stuff;
	it makes the tests harder to understand and confuses test-o-matic.
	The preferred style is that each test provides a PASS or a FAIL,
	and has a unique message (e.g. "continue #54" not just "continue")
	which is the same for the pass and the fail.
	* gdb.fortran/exprs.exp, gdb.fortran/types.exp,
	gdb.chill/chexp.exp: Move test_print_accept and test_print_reject
	to lib/gdb.exp.
	* gdb.base/printcmds.exp: Use test_print_accept.  Remove
	prt_accept which was basically the same thing.  Likewise for
	test_print_reject and prt_reject.
	* lib/gdb.exp (test_print_reject): Add some more error message
	patterns to match from the former printcmds.exp (prt_reject).
	* gdb.c++/classes.exp, gdb.base/scope.exp: Remove spurious xfails.
	One defect of the passcount stuff is that some of it failed to
	report XPASS where appropriate.
	* gdb.c++/cplusfuncs.exp (print_addr_of): No longer accept extra
	stuff before and after arg in expected pattern.
	(test_paddr_operator_functions): Re-do test without print_addr_of;
	this is the only test which seems to want extra stuff there.

Tue Jan 17 10:47:53 1995  Jim Kingdon  <kingdon@lioth.cygnus.com>

	* gdb.base/nodebug.exp: Update new tests to reflect improved
	wording of gdb output.

	* gdb.base/nodebug.exp: Add tests to check that "print", "whatis"
	and "ptype" work on variables in files compiled without -g.
	Replaces commented out "maint print msymbol" tests.

Mon Jan 16 12:13:28 1995  Jim Kingdon  <kingdon@lioth.cygnus.com>

	* gdb.base/setvar.c (dummy): Call malloc.

	* gdb.stabs/aout.sed: Enclose comments within a sed command to avoid
	losing with the irix4 sed.

	* gdb.base/sigall.exp (test_one_sig): Add xfail for "get signal
	ALRM" on irix4.

Sun Jan 15 21:58:26 1995  Jim Kingdon  <kingdon@lioth.cygnus.com>

	* TODO: Remove items about corefile.exp testing new exec-file and
	backtrace; both are now done.  Add items about printing enums.

Sat Jan 14 11:25:28 1995  Jim Kingdon  <kingdon@lioth.cygnus.com>

	* gdb.base/sigall.exp (test_one_sig): Attempt to recover if
	"get signal $thissig" test fails.

	* gdb.base/setvar.exp: Check for and reject crazy expected type hacks.

Thu Jan 12 01:14:53 1995  Jim Kingdon  <kingdon@lioth.cygnus.com>

	* gdb.base/sigall.c (gen_*): Pass argument to handle_* to avoid
	compiler warning with dec alpha compiler.

	* gdb.base/commands.exp (if_while_breakpoint_command_test): Remove
	extra \n from gdb_test call (this explains why the prompt test
	that I removed yesterday was there).
	(user_defined_command_test): Remove extra \n and prompt test.

	* gdb.base/sigall.c: If SIGABRT == SIGLOST, just act as if SIGLOST
	doesn't exist.  Likewise if SIGIO == SIGPOLL, pretend SIGPOLL
	doesn't exist.
	* gdb.base/sigall.exp: Remove special handling for SIGIO and SIGPOLL.
	Also remove alpha workaround, which turns out to be because
	SIGABRT == SIGLOST.

	* gdb.base/sigall.exp: Add workaround for alpha weirdness.

	* gdb.base/help.exp: Don't test "help show".

Wed Jan 11 14:37:04 1995  Jim Kingdon  <kingdon@lioth.cygnus.com>

	* gdb.base/commands.exp: Call gdb_exit and gdb_start so that
	"set print address" is on.
	* gdb.base/commands.exp (if_while_breakpoint_command_test): Don't
	pass prompt to gdb_test; gdb_test already looks for the prompt.

	* gdb.base/help.exp: Replace most of docstring for "define" with ".*".

	* gdb.base/a1-selftest.exp: Don't test "maint dump-me".  That test
	was a vestige of the manual TESTSTRATEGY, and the purpose of it
	was to make sure that gdb can read a core file.  But (a) the "read
	the corefile" part didn't make it to a1-selftest.exp, we just
	delete the corefile after creating it, and (b) we test reading
	corefiles in corefile.exp anyway.  Also, this test left around a
	xgdb process on Solaris.

	* gdb.base/corefile.exp: Also test backtrace.

Wed Jan 11 00:14:40 1995  Jeff Law  (law@snake.cs.utah.edu)

	* gdb.base/commands.exp: Test a simple user defined command with
	arguments and if/while statements; verify the full user command is
	printed by "show user".

	* gdb.base/commands.exp: Test if/while commands as part of a
	breakpoint command list; verify they appear in breakpoint
	information.

Wed Jan 11 00:47:58 1995  Jim Kingdon  <kingdon@lioth.cygnus.com>

	* gdb.base/sigall.c (gen_FPE): Generate SIGFPE with kill() rather
	than by dividing by zero.

Tue Jan 10 21:38:05 1995  Jeff Law  (law@snake.cs.utah.edu)

	* gdb.base/watchpoint.exp: hppa*-*-*bsd* no longer has problems
	performing an inferior call with watchpoints enabled.
	* gdb.base/watchpoint.c (main): Delete second unnecessary read
	call.

Tue Jan 10 18:42:07 1995  Jim Kingdon  <kingdon@lioth.cygnus.com>

	* gdb.stabs/weird.exp: Allow spaces followed by backspaces in echo
	of "file" command.

	* gdb.c++/classes.exp (test_ptype_class_objects, ptype class Foo):
	Add additional pattern for when "int operator int(void);" appears
	in a different order.

Mon Jan  9 16:22:46 1995  Jim Kingdon  <kingdon@lioth.cygnus.com>

	* gdb.base/signals.exp: Call gdb_exit and gdb_start.

	* gdb.base/help.exp: Replace most of docstrings for "info signals"
	and "signal" with ".*".

Wed Jan  4 11:35:19 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* TODO: Add note about "handle all nostop".

	* gdb.base/{sigall.c, sigall.exp}: New test.
	* gdb.base/Makefile.in: Add it.

Thu Jan  5 17:34:03 1995  Stan Shebs  <shebs@andros.cygnus.com>

	* lib/gdb.exp, gdb.base/corefile.exp: Supply -nw as argument
	when invoking GDB, suppresses any windowing interface.

Mon Jan  2 17:40:21 1995  Stan Shebs  <shebs@andros.cygnus.com>

	* config/sim-gdb: New file, simulator testing support.

Wed Dec 28 12:21:50 1994  Jeff Law  (law@snake.cs.utah.edu)

	* gdb.base/interrupt.exp: Test calling func1 twice.

Wed Dec 21 12:51:37 1994  Jim Kingdon  <kingdon@deneb.cygnus.com>

	* gdb.base/list.exp (test_forward_search): Set timeout higher
	when we'll be getting lots of output from gdb.

	* gdb.base/a1-selftest.exp: Move code that was inside expect -re
	"init_malloc" to after the expect statement.  Run it if that
	regexp is taken, but also for two others which happen if source
	cannot be found.

Tue Dec 20 12:35:21 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.base/printcmds.exp: New test, for printing register before
	program is running.

Mon Dec 19 00:32:55 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.base/list.exp:  Correct some alternate expect patterns
	to reflect changes in list1.c.

Sat Dec 17 14:20:03 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* TODO: Add item regarding large frames.

	* gdb.base/{funcargs.exp, funcargs.c} (call_after_alloca): New test.

	* TODO: Remove item about enabling return.exp; it
	is enabled.  Suggest a few more "return" tests.

Sat Dec 17 02:33:37 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.c++/misc.cc, gdb.c++/inherit.exp:  Add testcases for
	anonymous unions.

Tue Dec 13 11:26:00 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.chill/Makefile.in: Put all rule before rules for pr-4975.o
	and pr-5646.o, so "make" is the same as "make all", not "make
	pr-4975.o".

Wed Dec  7 19:02:02 1994  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.base/list.exp: Adjust expectations to reflect changes in
	list1.c.
	(test_forward_search): New test proc.
	* gdb.base/list1.c (long_line): New function, has long source line.

Thu Dec  1 23:14:49 1994  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.base/a1-selftest.exp: Change initial stepping to know about
	additional line of code that was added.

Wed Nov 30 19:43:14 1994  Jeff Law  (law@snake.cs.utah.edu)

	* gdb.disasm/hppa.s: Break the large branching tests into smaller
	tests so as not to overflow expect's input buffers.
	* gdb.disasm/hppa.exp: Corresponding changes.

Fri Nov 25 13:37:10 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	Beginnings of template debugging tests.
	* gdb.c++/templ-info.cc:  New file to test for template
	debugging capability of the compiler.
	* gdb.c++/Makefile.in:  Add rule to build templ-info.exp from
	templ-info.cc.
	* gdb.c++/templates.cc:  Add explicit template instantiations
	to enable compiling with -fno-implicit-templates. Add destructor
	and 'value' method to T5 class for template tests.
	* gdb.c++/templates.exp:  Add testcases for printing of template
	types, setting breakpoints on template methods and calling a
	template method.

Sat Nov  5 00:20:17 1994  Jeff Law  (law@snake.cs.utah.edu)

	* gdb.disasm/hppa.exp (branch_tests): Allow any symbol as the
	branch target since some assemblers (gas-2.5)  may emit a
	relocation for the branch instead of resolving it in the
	assembler.

Sat Oct 29 02:40:40 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.base/a1-selftest.exp:  Remove RS/6000 xfail for backtrace
	through signal handler.

Fri Oct 21 11:10:16 1994  J.T. Conklin  (jtc@phishhead.cygnus.com)

	* configure.in (*-*-netware): Use config/mt-netware.

	* config/mt-netware: New file.
	* config/mt-i386-netware: Removed, separate configs for different
	  netware architectures are no longer needed now that we have
	  --with-headers.

Sat Oct 15 03:43:00 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.base/exprs.exp:  Remove xfail for alpha, it is fixed
	by the recent changes to use ANSI C arithmetic conversions.

Sun Oct  9 07:44:06 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.base/corefile.exp: Add (xfail'd) test for reinit_frame_cache
	bug involving using inferior_pid to figure out whether to select a
	frame.

Wed Sep 28 23:12:02 1994  Jeff Law  (law@snake.cs.utah.edu)

	* gdb.disasm/hppa.exp: Change arg[0..3] to r[26..23] to
	match the current disassembler output.

Fri Sep 16 11:42:41 1994  Stan Shebs  (shebs@andros.cygnus.com)

	* gdb.fortran/exprs.exp: Expect VOID instead of void.
	* gdb.fortran/types.exp: Escape the expected '*'s in Fortran
	types, expect "int" as type of integer values (for now).

Wed Sep  7 23:33:51 1994  Jeff Law  (law@snake.cs.utah.edu)

	* gdb.base/commands.exp: New tests for if/while commands.

Tue Sep  6 13:16:11 1994  Per Bothner  (bothner@kalessin.cygnus.com)

	* lib/gdb.exp (runto):  Replace sub-pattern for hex value
	by .*, since hex values have different syntax in Chill mode.

Tue Sep  6 02:15:51 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.c++/demangle.exp (test_arm_style_demangling):  Remove
	linefeed from expect pattern for repeated types with indices > 9.

Mon Aug 29 14:20:44 1994  Stan Shebs  (shebs@andros.cygnus.com)

	First part of Fortran test suite.
	* gdb.fortran: New directory.
	* gdb.fortran/exprs.exp, gdb.fortran/types.exp: New files.

Sat Aug 27 23:32:43 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.base/default.exp:  Update expect pattern for load command
	without arguments.

Wed Aug 24 13:15:02 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)

	* configure.in: Change i386 to i[345]86.
	* gdb.base/configure.in: Likewise.
	* gdb.c++/configure.in: Likewise.
	* gdb.chill/configure.in: Likewise.

Tue Aug 23 19:14:06 1994  Stan Shebs  (shebs@andros.cygnus.com)

	* lib/gdb.exp (gdb_run_cmd): Move comment out from between expect
	patterns, since that is not a valid context for comments.

Fri Aug 19 15:07:30 1994  Kung Hsu  (kung@mexican.cygnus.com)

	* gdb.c++/demangle.exp (test_arm_style_demangling): Add tests for
	repeated types and repeated types with indices > 9.

Tue Aug 16 15:57:52 1994  Stan Shebs  (shebs@andros.cygnus.com)

	* gdb.base/printcmds.exp: Remove all the a29k XFAILs tagged with
	2417; old bug has been fixed.

Fri Aug 12 19:35:41 1994  Jeff Law  (law@snake.cs.utah.edu)

	* gdb.base/interrupt.exp: When trying to wake up the inferior,
	send the newline ourselves instead of assuming gdb_test will do
	so when passed an empty input string.

	* gdb.stabs/hppa.mt: Use $(AS), not $(CC) to assemble the
	stabs testcode.

Fri Aug  5 17:01:07 1994  J.T. Conklin  (jtc@phishhead.cygnus.com)

	* lib/gdb.exp (gdb_test): Don't send anything if the first
	  argument is an empty string.  This makes cases where we want to
	  match output that is already in expect's buffers (for example,
	  matching a breakpoint after gdb_run_cmd has been called) work
	  reliably.

Tue Aug  2 10:24:08 1994  J.T. Conklin  (jtc@phishhead.cygnus.com)

	* config/netware.exp: New file.

Thu Jul 28 12:54:07 1994  J.T. Conklin  (jtc@phishhead.cygnus.com)

	* config/mt-slite (LDFLAGS): If using the newlib in the tree, set
	  the -B and -L prefixes so we can find the debugging stub.

	* Makefile.in (CC_FOR_TARGET, CXX_FOR_TARGET): Use newlib if it is
	  there and we are using the gcc from the tree.

	* gdb.base/types.c: Removed.

	* gdb.base/configure.in: Look for makefile fragments in ../config.
	  Recognize i386-*-netware.
	* gdb.c++/configure.in: Likewise.

Mon Jul 25 23:48:50 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.base/corefile.exp:  Change `else if' to `elseif', which is
	the correct TCL syntax.

Mon Jul 25 15:35:56 1994  J.T. Conklin  (jtc@phishhead.cygnus.com)

	* gdb.base/opaque.exp: use runto instead of messing around with
	  breakpoints.  Simplify by using gdb_test.

	* gdb.base/bitfields.exp: restart between tests on netware targets
	  because breakpoints aren't relocated after target death.  Run
	  processes to completion.

	* gdb.base/{opaque,watchpoint}.exp: Use gdb_run_cmd.

Sun Jul 24 09:55:51 1994  Fred Fish  (fnf@cygnus.com)

	* Makefile.in:  Remove extra tabs that confuse some versions
	of "make".  Use the newly built gdb to test with by default,
	rather than the first one in the tester's search path.

Sat Jul 23 15:05:47 1994  Stan Shebs  (shebs@andros.cygnus.com)

	* gdb.base/whatis.exp (v_signed_short_array): Fix a typo.

	* gdb.base/help.exp: Update expected add-symbol-file, ignore, and
	condition help.

Tue Jul 19 10:26:32 1994  J.T. Conklin  (jtc@phishhead.cygnus.com)

	* lib/gdb.exp (runto): Rewrite in terms of gdb_run_cmd.

	* lib/gdb.exp (gdb_run_cmd): New function, used to start program
	  running.
	* gdb.base/bitfields.exp: Use gdb_run_cmd to start program.
	* gdb.base/funcargs.exp: Likewise.

	* gdb.base/bitfields.exp: Simplify by using gdb_test.
	* gdb.base/funcargs.exp: Likewise.

	* lib/gdb.exp (gdb_test): if match times out, don't call fail if
	  message is "".

Mon Jul 18 12:18:07 1994  J.T. Conklin  (jtc@phishhead.cygnus.com)

	* gdb.base/{a2-run,callfuncs,funcargs,interrupt,mips_pro,nodebug,
	  return,signals,twice}.exp: Handle non-existant binaries
	  consistantly.

	* gdb.base/corefile.exp: Execute coremaker to generate core dump.
	* gdb.base/Makefile.in: Don't try to generate a core dump, we
	  might testing a cross development system.

Thu Jul 14 18:13:56 1994  J.T. Conklin  (jtc@phishhead.cygnus.com)

	* Makefile.in (RUNTEST_FOR_TARGET): Fix relative pathname, the
	  runtest script is relative to ${srcdir}, not ${rootdir}.

Thu Jul 14 14:56:59 1994  Stan Shebs  (shebs@andros.cygnus.com)

	* gdb.base/signals.exp: Allow for optionality of breakpoint
	address.

Thu Jul 14 11:21:27 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.base/{ptype.exp,ptype.c}: Add t_char_array test.

Tue Jul 12 12:22:32 1994  J.T. Conklin  (jtc@phishhead.cygnus.com)

	* gdb.c++/cplusfuncs.cc: Include <stddef.h>, not <sys/types.h>,
	  for size_t definition.
	* gdb.c++/templates.cc: Likewise

	* config/mt-i386-netware: New file.

	* gdb.base/interrupt.c: Do not test if errno == EINTR if it's not
	  defined.

	* gdb.base/Makefile.in: Added support for systems that name core
	  files by appending "core" to the program name.
	* gdb.base/a1-selftest.exp: Likewise.

Mon Jul 11 23:59:18 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.base/return.exp:  Add comment and message for `return double'
	test failure on Sparc Solaris.

Mon Jul  4 12:10:48 1994  Stan Shebs  (shebs@andros.cygnus.com)

	* lib/gdb.exp (runto): Allow for optionality of breakpoint address.

Wed Jun 29 00:26:17 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.c++/misc.cc:  Instantiate classes to inhibit the compiler
	from optimizing them away.
	* gdb.c++/classes.exp, gdb.c++/inherit.exp:  Update ptype expect
	patterns to include default constructors and assignment operators,
	to match gcc versions beyond 2.5.8. Accept any cplus demangling
	character in the output of the virtual base pointer.

Fri Jun 24 08:15:42 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.c++/cplusfuncs.exp:  Use string_to_regexp and a regular
	expression match in print_addr_of to avoid unintented matches.
	* gdb.c++/virtfunc.exp:  Accept alternate ptype output of g++
	versions up to 2.5.8.

Mon Jun 20 23:54:37 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.base/list.exp:  Tweak alternate pattern for listing of an
	included file to run under newer versions of expect.
	* gdb.c++/demangle.exp:  Add spaces to the expect patterns between
	consecutive >'s in templates to accomodate recent cplus-dem.c change.
	Remove xfail for the virtual table of BDDHookV.

Sat Jun 18 12:51:34 1994  Stan Shebs  (shebs@andros.cygnus.com)

	* lib/gdb.exp (string_to_regexp): Set a default result.
	(default_gdb_start): Fix misleading message.

Wed Jun 15 12:10:10 1994  Stan Shebs  (shebs@andros.cygnus.com)

	* config/mt-a29k-udi, config/mt-i960-nindy, config/mt-sparc-aout:
	Remove all CC, etc definitions.
	* config/mt-hpux: New file.
	* config/mt-mips-ecoff (CFLAGS_FOR_TARGET): Remove:
	(CFLAGS, LDFLAGS): Define.
	* config/mt-slite (CFLAGS_FOR_TARGET): Change to LDFLAGS.

	* Makefile.in (site.exp): Don't insert host_os, etc.
	(just-check): Just use RUNTEST with RUNTESTFLAGS only.
	(distclean): Check existence of subdir.
	* gdb.base/configure.in (hppa*-*-hpux*): Recognize.
	* gdb.base/Makefile.in: General cleanup and simplification.
	Use CC, CFLAGS, and LDFLAGS instead of ..._FOR_TARGET versions
	to build executables.	Use default rule to build .o files.
	(EXPECT, RUNTEST, CC): Fix relative pathname.
	(site.exp): Don't insert host_os, etc.
	* gdb.base/signals.c (main): Don't call signal unless SIGALRM
	and/or SIGUSR1 defined.
	* gdb.base/watchpoint.c: Don't include stdio.h a second time.
	* gdb.c++/Makefile.in: General cleanup and simplification.
	Use CC, CFLAGS, and LDFLAGS instead of ..._FOR_TARGET versions
	(CFLAGS): Remove.
	(EXPECT, RUNTEST_FOR_TARGET, CXX): Fix relative pathname.

Fri Jun 10 10:55:09 1994  Jeff Law  (law@snake.cs.utah.edu)

	* gdb.base/recurse.exp: Misc changes to get tests running again
	after Kung's changes to the watchpoint code.
	* gdb.base/watchpoint.exp: Likewise.

Thu Jun  9 15:16:55 1994  Per Bothner  (bothner@kalessin.cygnus.com)

	* lib/gdb.exp (string_to_regexp):  Convert {\} also.

Wed Jun  8 12:12:17 1994  Stan Shebs  (shebs@andros.cygnus.com)

	* config/udi-gdb.exp, config/unix-gdb.exp: Call default_gdb_start.
	* lib/gdb.exp (default_gdb_start): Define.
	* gdb.base/bitfields.exp, gdb.base/break.exp, gdb.base/exprs.exp,
	gdb.base/funcargs.exp, gdb.base/opaque.exp,
	gdb.base/printcmds.exp, gdb.base/ptype.exp, gdb.base/recurse.exp,
	gdb.base/scope.exp, gdb.base/setvar.exp, gdb.base/watchpoint.exp,
	gdb.c++/classes.exp, gdb.c++/misc.exp, gdb.c++/virtfunc.exp:
	Don't call gdb_target_udi in between tests.

Tue Jun  7 08:30:15 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.c++/demangle.exp: Use gdb_test_exact, rather than demangle
	(which was basically just a local version of the same thing).  In
	addition to avoiding duplication, gdb_test_exact is faster.
	* lib/gdb.exp (gdb_test_exact): Fix typo.

	* lib/gdb.exp (delete_breakpoints): If there were no breakpoints,
	don't give an error.

	* gdb.base/term.exp: Call delete_breakpoints before starting.

	* gdb.base/Makefile.in (EXECUTABLES): Remove t10.
	(t10): Add comment.

Mon Jun  6 18:26:50 1994  Stan Shebs  (shebs@andros.cygnus.com)

	Reorganization of the GDB Test Suite.

	* gdb.base: New directory, contains all the basic tests.
	* gdb.c++: New directory, tests specific to C++.
	* gdb.chill: New directory, tests specific to Chill.
	* gdb.t00, gdb.t01, gdb.t02, gdb.t03, gdb.t04, gdb.t05, gdb.t06,
	gdb.t07, gdb.t08, gdb.t09, gdb.t10, gdb.t11, gdb.t12, gdb.t13,
	gdb.t15, gdb.t16, gdb.t17, gdb.t20, gdb.t21, gdb.t22, gdb.t23,
	gdb.t24, gdb.t30, gdb.t31: Removed directories, contents moved
	into appropriate new directories (t00-t17 to base, t20-t23 to c++,
	t30-31 to chill).
	* */gdbme.*: Rename to match appropriate expect scripts.
	* gdb.base/bitfields.c, gdb.base/break.c, gdb.base/callfuncs.c,
	gdb.base/coremaker.c, gdb.base/exprs.c, gdb.base/funcargs.c,
	gdb.base/interrupt.c, gdb.base/list0.c, gdb.base/list0.h,
	gdb.base/list1.c, gdb.base/mips_pro.c, gdb.base/nodebug.c,
	gdb.base/opaque-info.c, gdb.base/opaque0.c, gdb.base/opaque1.c,
	gdb.base/printcmds.c, gdb.base/ptype.c, gdb.base/recurse.c,
	gdb.base/return.c, gdb.base/run.c, gdb.base/scope0.c,
	gdb.base/scope1.c, gdb.base/setvar.c, gdb.base/signals.c,
	gdb.base/types.c, gdb.base/twice.c, gdb.base/watchpoint.c,
	gdb.base/whatis-info.c, gdb.base/whatis.c: New names of C files.
	* gdb.c++/cplusfuncs.cc, gdb.c++/templates.cc, gdb.c++/misc.cc,
	gdb.c++/virtfunc.cc: New names of C++ files.
	* gdb.chill/chillvars.ch: New name of Chill file.
	* gdb.base/configure.in, gdb.c++/configure.in,
	gdb.chill/configure.in: Merge in contents of gdb.t*/configure.in.
	* gdb.base/Makefile.in, gdb.c++/Makefile.in,
	gdb.chill/Makefile.in: Merge in contents of gdb.t*/Makefile.in.
	* configure.in (configdirs): Update to reflect directory changes.
	(target_abbrev): No longer define for any configuration.
	* Makefile.in: Cosmetic improvements to header comments.

Fri Jun  3 18:56:06 1994  Per Bothner  (bothner@kalessin.cygnus.com)

	Various changes to gdb.t31:

	* Makefile.in (gdbme.o):  Compile with -fspecial_UC.
	* gdbme.ch:  Make all key-words and predefineds be upper-case.
	* chillvars.exp:  Expect key-words and predefinds in upper-case.

	* chillvars.exp:  Use gdb_test_exact many places.
	Change expected output for arrays (which now includes index labels).

	* pr-5020.exp, gdme.ch (module PR_5020):
	New test, for PR-5020.

Thu Jun  2 16:02:41 1994  Per Bothner  (bothner@kalessin.cygnus.com)

	* lib/gdb.exp (string_to_regexp, gdb_test_exact):  New procedures.
	* Makefile.in (CHILL_LIB):  Remove bogus redundant definitions.

Sun May 29 22:31:42 1994  Per Bothner  (bothner@kalessin.cygnus.com)

	* Makefile.in:  Fix bit-rot in definitions of CHILL,
	CHILL_FOR_TARGET and Chill_LIB.
	* gdb.t31/gdbme.ch:  Fix syntax of nested array tuples.
	* gdb.t31/Makefile.in:  Add definitions for CHILLFLAGS,
	CHILL, and CHILL_LIB.

Sat May 21 10:05:08 1994  Bill Cox  (bill@rtl.cygnus.com)

	* Revert the previous changes.  Please see Rob's directory
	  /lisa/test/rob/progressive/gdb/testsuite for these fixes.

Thu May 19 12:51:00 1994  Bill Cox  (bill@rtl.cygnus.com)

	* Makefile.in, configure.in, config/mips-gdb.exp,
	  config/mt-a29k-udi, config/mt-i386-aout, config/mt-i960-nindy,
	  config/mt-sparc-aout, config/udi-gdb.exp, config/unix-gdb.exp,
	  config/unknown.exp, gdb.t00/default.exp, gdb.t00/help.exp,,
	  gdb.t00/teststrategy.exp, gdb.t01/Makefile.in, gdb.t02/Makefile.in,
	  gdb.t02/whatis.exp, gdb.t03/Makefile.in, gdb.t03/gdbme.c,
	  gdb.t04/Makefile.in, gdb.t05/Makefile.in, gdb.t06/Makefile.in,
	  gdb.t06/break.exp, gdb.t06/signals.c, gdb.t06/signals.exp,
	  gdb.t08/Makefile.in, gdb.t08/opaque.exp, gdb.t09/Makefile.in,
	  gdb.t10/Makefile.in, gdb.t11/Makefile.in, gdb.t12/Makefile.in,
	  gdb.t13/Makefile.in, gdb.t15/Makefile.in, gdb.t15/funcargs.exp,
	  gdb.t15/gdbme.c, gdb.t15/return.exp, gdb.t16/Makefile.in,
	  gdb.t17/Makefile.in, gdb.t17/callfuncs.exp, gdb.t17/gdbme.c,
	  gdb.t20/Makefile.in, gdb.t21/Makefile.in, gdb.t21/cplusfuncs.exp,
	  gdb.t22/Makefile.in, gdb.t22/virtfunc.exp, gdb.t23/Makefile.in,
	  gdb.t24/demangle.exp, lib/gdb.exp:  Check in Rob's testing
	  changes from 94Q1.

Wed May 18 17:04:03 1994  Bill Cox  (bill@rtl.cygnus.com),

	* config/mt-lynx, config/mt-m68k, config/mt-mips-ecoff,
	  config/mt-slite, config/mt-unix, config/mt-vxworks: Add
	  Rob's new testing fragments.

Tue May 17 15:04:14 1994  Bill Cox  (bill@rtl.cygnus.com)

	* config/mips-gdb.exp, config/udi-gdb.exp, config/vx-gdb.exp,
	  lib/gdb.exp: Replace error proc calls with perror.

Mon May 16 19:00:50 1994  Stan Shebs  (shebs@andros.cygnus.com)

	* gdb.t00/teststrategy.exp: Reorder so that AIX gdb can print the
	version also, match on casted version strings, and match on
	gdb startup case where the line numbers might be messed up.

Fri May 13 18:00:27 1994  Bill Cox  (bill@rtl.cygnus.com)

	* config/mt-i960-vx (LDFLAGS): Add '-r' option for test links.
	  (CFLAGS): Delete it from here.

Tue May  3 16:08:09 1994  Kung Hsu  (kung@mexican.cygnus.com)

	* gdb.t22/virtfunc.exp: Fix g++ ptype expected outputs.

Fri Apr 29 14:26:35 1994  Stan Shebs  (shebs@andros.cygnus.com)

	* Makefile.in (RUNTEST): Default to just "runtest".

Tue Apr 26 22:21:40 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)

	* gdb.t17/callfuncs.exp: More comments about t_func_values tests.
	* gdb.t17/gdbme.c (t_func_values): Add comments about how and why
	the code has been restructured.

Thu Apr 21 12:48:07 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t00/default.exp (set write): Allow any number of \r and/or
	\n, not just one of each.

	* gdb.t07/gdbme.c (main): Don't take address of an array; SunOS4
	/bin/cc gives a warning if you do.

Thu Apr 21 11:54:04 1994  Kung Hsu  (kung@mexican.cygnus.com)

	* gdb.t24/demangle.exp: change expect pattern of
	__t10ListS_link1ZUiRCUiPT0

Wed Apr 13 15:05:00 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)

	* gdb.t07/{recurse.exp, recurse.c}: New tests for watchpoints
	on local variables in recursive functions.

	* gdb.t07/Makefile.in: Build the new test.

Tue Apr 12 20:45:25 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)

	* gdb.t17/gdbme.c (t_func_values): Do not compare function pointers
	directly.  Instead compare the return values from actual calls.

Mon Apr 11 10:31:00 1994  Bill Cox  (bill@rtl.cygnus.com)

	* Makefile.in (check): Set TCL_LIBRARY for runtest.

Mon Apr 11 09:15:30 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)

	* From Peter Schauer with minor modifications.
	* gdb.t15/return.exp (return_tests): Handle targets where "return"
	stops in mid-line in the caller.  Add xfail for returning a float
	value on X86 targets.

Tue Apr  5 15:16:33 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)

	* gdb.disasm/hppa.exp (fcmp_tests): Break up into two halves
	to avoid expect lossage.
	(fmem_LRbug_tests): Likewise.
	* gdb.disasm/hppa.s: Corresponding changes.

	* gdb.disasm/hppa.exp: Rework escape sequences and end-of-line
	conditions to work with latest dejagnu/expect.

	* gdb.t15/funcargs.exp (finish from indirect call): No longer
	expected to fail on the PA.
	(backtrace in call with trampolines): Explicitly require main
	to be frame #1 (no trampolines should show up in backtrace).

	* gdb.t00/default.exp: Use "exp_continue" rather than obsolete
	"continue -expect".
	* gdb.t06/break.exp: Likewise.
	* gdb.t07/watchpoint.exp: Likewise.
	* gdb.t13/bitfields.exp: Likewise.
	* gdb.t15/{funcargs,return}.exp: Likewise.
	* gdb.stabs/weird.exp: Likewise.
	* config/{mips,udi}-gdb.exp: Likewise.

	* hppa.sed: Enclose comments within a sed command to avoid
	losing with the old OSF1 sed.

Wed Mar 30 00:31:49 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.t02/whatis.exp, gdb.t08/opaque.exp:  Add XFAILs for
	sequent dynix.
	* gdb.t06/signals.exp:  Add clear_xfail for sequent dynix.
	* gdb.t15/funcargs.exp:  Conditionally step again to really
	finish from marker_call_with_trampolines. Handle the case where
	the first step from within call_with_trampolines already steps
	us back to main.
	* gdb.t15/gdbme.c:  Add comment to closing brace of
	call_with_trampolines for funcargs.exp.

Tue Mar 29 23:55:27 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)

	* gdb.t07/watchpoint.exp (test_watchpoint_triggered_in_syscall):
	Fix typo(s).

Sun Mar 27 16:53:14 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)

	* gdb.t07/gdbme.c: More code for watchpoint testing.

	* gdb.t07/watchpoint.exp: Accept both "Watchpoint" and
	"Hardware watchpoint" throughout file.
	(test_watchpoint_triggered_in_syscall): New test.
	(test_complex_watchpoint): New test.

Fri Mar 25 17:05:31 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)

	* gdbme.c (call_with_trampolines): New function to try and step
	into.  Tests trampoline problems on the PA.

	* funcargs.exp (localvars_in_indirect_call): No longer expect
	stepping into indirect call to fail on PAs.
	(test_stepping_over_trampolines): New test.

Wed Mar 23 07:43:33 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* TODO: Add suggestions for static member function tests, and
	completion tests.

Wed Mar 16 08:28:28 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* TODO: Add suggestions for "p/a" tests.

	* lib/gdb.exp: Set prompt to (gdb) if it isn't already set.
	(default_gdb_exit): Replace all the hair with sending "quit" to
	the process with a simple close.

Tue Mar 15 08:45:50 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* TODO: Add suggestions for shared library tests.

Sun Mar 13 10:45:22 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* TODO: Add suggestions for x/s tests.

Fri Mar 11 08:22:00 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t00/help.exp: Replace most of docstrings for "tbreak",
	"enable once", and "enable breakpoints once" with ".*".

Thu Mar 10 08:34:27 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* TODO: Add suggestions about structure passing tests.

Mon Mar  7 13:45:54 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.t03/gdbme.c:  gcc version 1 puts out the wrong stabs for
	the primary1 test, use work around if __GNUC__ < 2.
	* gdb.t06/signals.c:  Add comments for signals.exp pattern matching.
	* gdb.t06/signals.exp:  Add XFAILs for i386 bsd and vax ultrix.
	Test for bad output rather than waiting for timeout.  Issue
	second continue only if first continue failed.

Wed Mar  2 10:08:01 1994  Jim Kingdon  (kingdon@deneb.cygnus.com)

	* gdb.t21/cplusfuncs.exp (test_paddr_operator_functions): Do
	operator[] test with gdb_test because the old code didn't seem to
	be getting the quoting right with the new dejagnu.

Thu Feb 24 19:49:25 1994  Rob Savoye  (rob@poseidon.cygnus.com)

	* lib/gdb.exp: Set GDB to a fresh gdb if there is one, else use
	one from the path.
	* Makefile.in: Use a fresh expect if there is one, use runtest
	from the src tree if there is one.

Thu Feb 24 18:49:37 1994  Jim Kingdon  (kingdon@deneb.cygnus.com)

	* gdb.t06/break.exp (test_next_with_recursion): Remove xfail for
	next over recursive call.  Revise the tests from that point on
	(which had been skipped) to match GDB's actual (correct) output.

	* gdb.t07/watchpoint.exp (test_stepping): Remove xfail for bug
	with next over a breakpoint whose condition is false.

	* gdb.t00/help.exp: Comment out "help set print" tests just like
	(and for same reason as) "help set" test.

Mon Feb 14 09:58:23 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)

	* gdb.disasm/hppa.s (fmemLRbug_tests): New tests.
	* gdb.disasm/hppa.exp (fmemLRbug_tests): Run them.

Sun Feb  6 15:36:13 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t06/break.exp (test_next_with_recursion): Remove no longer
	necessary gdb_target_udi.

	* gdb.t03/ptype.exp: For UDI, skip tests which call malloc.

	* gdb.t02/whatis.exp, gdb.t03/ptype.exp: Remove xfails for PRs
	1838 and 2417; they are fixed.

	* gdb.t02/whatis.exp (v_char_array, v_signed_char_array),
	gdb.t03/ptype.exp (ptype structure, ptype union):
	Remove xfails; the test is looser than when the xfails were added.

	* gdb.t00/{help.exp,default.exp}: Don't test "target remote" on UDI.
	* gdb.t00/help.exp: Don't expect remote to be in "help target" output.

	* gdb.t01/run.exp: Only run shell test if isnative.

	* config/udi-gdb.exp (gdb_load): Use "file", not "load" command,
	since "run" automatically loads if necessary.  Call gdb_target_udi
	after the "file" since "file" kills any execution target.

	* config/udi-gdb.exp (gdb_start): Don't send "set args main" to
	GDB.  GDB doesn't work that way (not anymore at least) on UDI.
	* gdb.t01/run.exp, gdb.t06/break.exp: Don't pass extra first
	argument for UDI.

Fri Feb  4 12:19:32 1994  Jim Kingdon  (kingdon@deneb.cygnus.com)

	* gdb.t17/interrupt.c: If we get EINTR, don't print an error message.

	* gdb.t17/callfuncs.exp: Add xfails for rs6000.

Sat Feb  5 09:11:56 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t24/demangle.exp: Re-write demangle to just call gdb_test,
	properly quoting regexps.  This makes the second argument to
	demangle a fixed string, which matches the callers, instead of a
	shell-style pattern which is what the previous implementation
	used.  Update some of the callers.

Sat Feb  5 10:19:09 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)

	* gdb.disasm/hppa.s (comib_tests): Add missing instruction.
	(comib_nullified_tests): Fix typo.
	* gdb.disasm/hppa.exp (all comb tests): Fix thinkos in expect
	strings.  No longer expected to fail.

	* gdb.disasm/hppa.s (addib_tests): Fix typo.
	* gdb.disasm/hppa.exp (all addb tests): Fix thinkos in expect
	strings.  No longer expected to fail.

	* gdb.disasm/hppa.exp (fmpy_addsub_tests): Fix typo in expect
	string.  No longer expected to fail.

Fri Feb  4 23:45:11 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)

	* gdb.disasm/hppa.exp (fcmp_tests): Fix thinko in expect string.
	No longer expected to fail.

	* gdb.disasm/hppa.exp (xmpyu_tests): Fix buglet in expect
	string.  No longer expected to fail.

Fri Feb  4 10:35:42 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t24/demangle.exp: Remove a bunch more tests which differ
	only in the names (I probably got most of them).  I was even
	generous with some which differed in underscores in names, and
	probably missed a few, and I *still* was able to remove almost a
	third of the file with almost no impact on testsuite coverage.

Thu Feb  3 12:04:49 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t00/default.exp: Match udi_attach error message as well as
	the one from child_attach.

	* gdb.t00/default.exp: Use "." instead of "?" to match a question mark.

	* gdb.stabs/weird.exp: Remove xfail for const70; just fixed in GDB.

	* gdb.stabs/weird.def (bad_neg0type): Size of this type is 16, not 8.
	* gdb.stabs/weird.exp: Remove xfail for "p bad_neg0"; this fixes it.

	* Move test with enums and partial symbols back to
	gdb.t03/{ptype.exp,gdbme.c} from gdb.stabs/{weird.def,weird.exp}.
	Reverts the change of 26 May 93.  Per today's change to
	stabs.texinfo, the behavior that weird.exp was expecting was
	unreasonable; what is important is that the compiler+gdb get
	things right, which happens with a recent gcc.  Also fix the test
	to deal with native compilers which put out the stab gdb can't
	deal with.

Mon Jan 31 15:40:11 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t24/demangle.exp: Remove a bunch of tests which differ only
	in the names.  The main thing these accomplish is to slow things down.
	Many more such duplicates surely remain.

	* gdb.t00/help.exp: Comment out "help support" test just like
	(and for same reason as) "help set" test.

Mon Jan 31 06:43:45 1994  Fred Fish  (fnf@cygnus.com)

	* gdb.t06/break.exp:  Remove setup_xfails for
	sparc-sun-solaris2.*, these tests now pass with latest gcc and gdb.
	* gdb.t20/inherit.exp (test_ptype_si):  Update warning message
	about known bug in gcc to include up through 2.5.8.
	* gdb.t20/inherit.exp (test_ptype_vi):  Accept "_vb." as well as
	well as "_vb$".
	* gdb.t21/cplusfuncs.exp (test_lookup_operator_functions):
	Remove setup_xfails for sparc-sun-solaris2.*, these tests now pass
	with latest gcc and gdb.
	* gdb.t22/virtfunc.exp (test_ptype_of_classes):  Accept "_vb." as
	well as "_vb$".

Sat Jan 29 23:31:26 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)

	* configure.in (hppa*-*-*): Also configure and build stabs-only
	tests.

Thu Jan 27 08:21:16 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)

	* gdb.t10/hppa.mt: A makefile fragment for the PA.
	* gdb.t10/configure.in (hppa*-*-*): Use it.

Tue Jan 25 12:58:26 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.t09/corefile:  Increase timeout when spawning gdb explicitly.

Wed Jan 19 12:40:25 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.t06/signals.exp:  Handle blocked SIGTRAP on sun3 for bash
	versions prior to 1.13.5.

Tue Jan 18 20:10:50 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t00/default.exp (show prompt): In FAIL case, only match if
	the prompt is at the start of a line.

Mon Jan 17 20:07:51 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)

	* gdb.disasm/hppa.s: Add new tests for sfu and copr instructions.
	Enable "diag" instruction.  Delete copr from fpu_misc_tests, it's
	in the copr tests now.
	* gdb.disasm/hppa.exp: Run new sfu and copr tests.  Do not expect
	copr in the fpu_misc tests anymore.  fpu_misc tests are no longer
	expected to fail.

Fri Jan 14 14:24:21 1994  Rob Savoye  (rob@darkstar.cygnus.com)

	* gdb.t00/teststrategy.exp, gdb.t07/watchpoint.exp,
	gdb.t31/chillvars.exp, lib/gdb.exp:
	Tweak to run under either version of expect.
	* lib/gdb.exp (default_gdb_exit): Remove "catch" statement.
	* gdb.t00/teststrategy.exp: Use isnative and verbose procedures.
	* gdb.t11/list.exp: Remove extraneous whitespace.

Sat Jan 15 09:57:22 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t16/printcmds.exp (test_print_strings): Accept
	"(unsigned char *) " before the string.

	* TODO: Add notes about printing of fancy types and GDB expressions.

Thu Jan 13 17:16:09 1994  Stan Shebs  (shebs@andros.cygnus.com)

	* Makefile.in: Pass LDFLAGS and LIBS to sub-makes.
	* gdb.t06/configure.in: Don't try to compile signals test program
	if doing mips-idt-ecoff.

Thu Jan 13 08:25:55 1994  Rob Savoye  (rob@darkstar.cygnus.com)

	* Most .exp files: Tweak to run under either version of expect.

Tue Jan 11 15:21:13 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t12/scope.exp: Add xfails for rs6000.  Remove 1806 from existing
	xfails; I'm not sure why they are failing, but not because of PR 1806.

Mon Jan 10 22:14:20 1994  Rob Savoye  (rob@darkstar.cygnus.com)

	* config/unix-gdb.exp: Remove gdb_unload cause it's already
	defined in lib/gdb.exp.

Fri Jan  7 12:42:45 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.t07/watchpoint.exp:  Clear xfail for calling function with
	watchpoint enabled on mips, CALL_DUMMY_BREAKPOINT_OFFSET got defined.
	* gdb.t20/gdbme.cc, gdb.t21/gdbme.cc:  Conversion operator functions
	have to be typeless.

Tue Jan  4 09:32:22 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* TODO: Add suggestion for copyright year test.

Mon Jan  3 11:35:26 1994  Stan Shebs  (shebs@andros.cygnus.com)

	* configure.in (*-*-lynxos*): Add stabs tests.

Wed Dec  1 21:54:05 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)

	* gdb.stabs/hppa.sed: Only lables should ever start in column zero,
	so insert a tab before any assembler directive in column zero.

	* gdb.disasm/hppa.exp (all_fpu_memory_tests): Test FP quadword
	stores.
	* gdb.disasm/hppa.s (fpu_memory_indexing_tests): Add FP quadword
	stores.
	(fpu_short_memory_tests): Likewise.

Mon Nov 22 13:23:22 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.stabs/ecoff.mt:  Delete alpha specific if block, fix typo.
	* gdb.stabs/ecoff.sed:  Escape inserted blanks with backslashes, embed
	.stabs directives in comments.

Fri Nov 19 14:09:02 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* TODO: New file, describing tests we could write.
	* gdb.t09/corefile.exp: Move description of tests to write to TODO.

Tue Nov 16 21:07:44 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t06/signals.exp: Add kludge to force re-sync.

	* gdb.t00/teststrategy.exp: If we accidently send the "maint dump-me"
	to xgdb instead of gdb, get out of gdb.

Tue Nov 16 10:21:57 1993  Rob Savoye  (rob@cygnus.com)

	* lib/gdb.exp: Make GDB and GDBFLAGS global so the scoping work
	for info.

Sat Nov 13 23:17:48 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)

	* gdb.stabs/hppa.mt: A makefile fragment for the PA.
	* gdb.stabs/configure.in (hppa*-*-*): Use it.
	* gdb.stabs/hppa.sed: New sed script for the PA.

Sat Nov 13 22:50:29 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.stabs: Re-write weird.def and configuration to use sed
	instead of cpp.  sed is portable and POSIX; cpp is neither.

Fri Nov 12 15:26:36 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t06/signals.exp: Remove one sun3 XFAIL which has been fixed.

Mon Nov  8 16:55:28 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t20/gdbme.cc: Add comment about pmi being optimized out.

Thu Nov  4 23:07:59 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.stabs/weird.exp, gdb.t22/virtfunc.exp: Accept "_vb." as well as
	"_vb$".
	* gdb.t00/teststrategy.exp: Add xfail for RS/6000.
	* gdb.t03/ptype.exp: Add comments and messages about FAILs with xlc.

Wed Nov  3 13:53:34 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* lib/gdb.exp: Comment out code which depends on non-existent
	`transform' procedure.

Wed Nov  3 11:23:11 1993  Rob Savoye  (rob@darkstar.cygnus.com)

	* lib/gdb.exp (default_gdb_exit): Remove `catch "close"'.
	* lib/gdb.exp: Transform tool name.
	* gdb.t*/*.exp: Change error to perror so it works with DejaGnu
	1.1's new error handling system.

Mon Nov  1 10:36:29 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* Makefile.in, gdb.t2*/Makefile.in: Add -O to CXXFLAGS.

Fri Oct 29 17:58:14 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t00/default.exp: Avoid tests with a lot of .* in them.
	They made pattern matching so slow that timeouts happened on
	heavily loaded systems.  Now any output from "show print" which
	gets us back to the GDB prompt is a PASS.

Mon Oct 25 14:36:50 1993  Stu Grossman  (grossman at cygnus.com)

	* gdb.disasm/hppa.mt:  Use $(srcdir) in hppa.o make rule.

Mon Oct 25 13:35:29 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t06/signals.exp: Skip whole file with xfail for HPPA.

	* gdb.t24/demangle.exp: Remove "3220" from the one remaining xfail.
	It is not from PR 3220.

Sun Oct 24 18:49:58 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t00/{help.exp,default.exp}: Loosen up a few more tests which
	just started failing because they depended on the order the
	subcommands are presented, or exact docstring text.  This kind of
	test is a pain and has minimal benefit.

Thu Oct 21 08:26:48 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t09/corefile.exp: At end of test, use "core" command with
	no arguments.

Wed Oct 20 08:56:02 1993  Stu Grossman  (grossman at cygnus.com)

	* gdb.t{01 02 03 04 05 06 07 08 09 10 11 12 13 15 16
	17}/Makefile.in:  Make it possible to run the testsuite with Sun
	make and CC = cross gcc by adding explicit build rules for .o
	files.

Tue Oct 19 14:57:38 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t15/funcargs.exp: Don't put comments on same line as
	setup_xfail (@#$*%& tcl braindamage!).

Mon Oct 18 21:50:08 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.disasm/hppa.exp: Use $objdir/$subdir/$binfile not just $binfile.

Fri Oct 15 15:39:54 1993  Kung Hsu  (kung@cirdan.cygnus.com)

	* gdb.t20/classes.exp: 'const xxx &' becomes 'xxx const &'.
	* gdb.t20/inherit.exp: remove three dumplicate entries.

Fri Oct 15 13:45:25 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.t06/break.exp: For "next over recursive call", fail on any
	incorrect output, not just on "factorial (value=2)".

Fri Oct 15 11:52:56 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.t12/scope.exp:  Remove xfails, filename::var syntax should be
	working now. Add an xfail if accesing a bss variable causes
	a memory error if the target is not yet run.

Thu Oct 14 19:16:56 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t24/demangle.exp: Clean up spacing (2 strings), inclusion of
	constructor name (2 string), name of _GLOBAL_ demangling (2 strings),
	name of __st* demangling (2 strings).  Did Kung really get the
	more than 95 others right without testing them?

Thu Oct 14 16:27:08 1993  Kung Hsu  (kung@cirdan.cygnus.com)

	* gdb.t24/demangle.exp: clean up XFAILS, more than 100

Thu Oct 14 11:40:30 1993  Jeffrey Law  (law@cs.uah.edu)

	* configure.in (configdirs): Add gdb.disasm
	* gdb.disasm: New directory for GDB disassembler tests.
	* gdb.disasm/hppa.{exp,s,mt}: Disassembly tests for the HPPA.

Thu Oct 14 11:40:30 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t00/help.exp: Don't test "help set".

	* gdb.t20/inherit.exp, gdb.t22/virtfunc.exp: Remove all xfails
	from within expect statements.  None of these happen anymore and
	they cause regressions to be silently unnoticed.

	* gdb.t20/inherit.exp, gdb.t22/virtfunc.exp: Add notes (in failure
	messages) about known failures with gcc cygnus-2.4.5-930417.

	* gdb.t02/Makefile.in, gdb.t08/Makefile.in: Make all depend on
	comp-info.exp so it gets built if it doesn't exist.

	* gdb.t13/{Makefile.in,bitfields.exp}: Remove comp-info.exp stuff;
	it is no longer used.
	* gdb.t13/comp-info.c: Removed.

Wed Oct 13 22:54:06 1993  Jim Kingdon  (kingdon@deneb.cygnus.com)

	* gdb.t06/signals.exp: Add xfail for sun3.

Thu Oct  7 12:01:03 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t17/interrupt.exp: Add xfail for Irix (currently not really
	relevant because ^C doesn't get sent but failure can be reproduced
	interactively).

Tue Oct  5 10:43:11 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.stabs/alpha.mt:  New configuration file for alpha.
	* gdb.stabs/configure.in:  Use it.
	* gdb.stabs/ecoff.mt, weird-ecoff.sed:  Change sed script to enable
	sharing with alpha.mt, redefine long to word via preprocessor.
	* gdb.stabs/weird.def:  Conditionally adapt storage layout of v_comb
	for alpha.
	* gdb.stabs/weird.exp:  Handle compilation of weird.s by alpha
	native cc.
	* gdb.t00/teststrategy.exp:  Change expect string so that we
	consume the `(xgdb)' from the command echo and from the gdb prompt.
	* gdb.t05/expr.exp:  xfail "print unsigned int == (~0)" on the alpha.
	gdb currently compares all values as long, so this failure probably
	applies to any configuration where LONGEST is bigger than a target int.
	* gdb.t08/comp-info.c:  New file to determine if gdbme is compiled
	with gcc.
	* gdb.t08/Makefile.in, opaque.exp:  Use it. Alpha native cc is unable
	to handle opaque pointers, gcc is.
	* gdb.t21/gdbme.cc, gdb.t23/gdbme.cc:  operator new takes a size_t
	as first argument. Include <sys/types.h> and change all operator
	new definitions to use size_t.
	* gdb.t21/cplusfuncs.exp:  Handle changes in output for operator new
	now that we use size_t.

Wed Sep 29 00:55:49 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.t03/ptype.exp, gdb.t15/printcmds.exp:  When constructing
	a long or float array cast all array members to the same type.
	* gdb.t04/setvar.exp:  Handle the decimal output of an unsigned long
	with 64 bit longs.
	* gdb.t07/watchpoint.exp:  Add finish and until variations encountered
	on alpha.
	* gdb.t08/opaque.exp, gdb.t17/interrupt.exp:  Add xfails for alpha.

Tue Sep 28 17:26:47 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t24 (demangle.exp): Constructors of templates have names like
	vector<int>::vector(int) not vector<int>::vector<int>(int).  See
	section 14.6 of the ARM.

	* gdb.t24 (demangle.exp): Remove a whole bunch of tests of the form
	"_vt$MoveCmd"; these differ only in name from "_vt$foo", so they
	accomplish little and slow down the testsuite.

	* gdb.t24 (demangle.exp): Accept "XXX const" as well as "const XXX".
	Accept spaces various places.

Tue Sep 21 17:28:45 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t07/watchpoint.exp: On sparc, clear xfail for calling function
	with watchpoint enabled.

	* Makefile.in: Remove definition of CC and remove the second
	definition of CXX (the "CXX = gcc" one remains).  These definitions
	were causing backquotes to be expanded within backquotes, which
	doesn't work.

Sat Sep 18 09:43:21 1993  Jim Kingdon  (kingdon@poseidon.cygnus.com)

	* gdb.t17/callfuncs.exp: Add "return 0" to end.

Fri Sep 17 04:41:17 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.stabs/ecoff.mt:  Remove STABSCC hack.
	* gdb.stabs/weird.exp:  Handle the case where weird.o is compiled
	by mips cc and contains no stabs entries.

Thu Sep 16 17:22:12 1993  Rob Savoye  (rob@darkstar.cygnus.com)

	* config/vx-gdb.exp: Use fake device to load files rather than
	NFS.
	* lib/gdb.exp: New proc to do "file" command.
	* config/unix-gdb.exp: Use new "file" proc.

Thu Sep 16 13:45:44 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)

	* config/mips-gdb.exp (gdb_load): Increase timeout to 2400.
	Rework board rebooting slightly.
	(gdb_exit): Don't exit from the remote shell; there isn't one.
	* gdb.stabs/weird.exp: If a program is being debugged already,
	kill it.
	* gdb.t04/setvar.exp: Stop and restart gdb.
	* gdb.t05/expr.exp: Likewise.
	* gdb.t07/watchpoint.exp: If target is mips-idt-*, stop and
	restart gdb and reload the program.
	* gdb.t08/opaque.exp: Likewise.
	* gdb.t12/scope.exp: Likewise.
	* gdb.t13/bitfields.exp: Likewise.
	* gdb.t15/funcargs.exp: Likewise.
	* gdb.t20/classes.exp: Likewise.
	* gdb.t03/ptype.exp: Increase timeout.
	* gdb.t16/printcmds.exp (test_print_string_constants,
	test_print_array_constants): Likewise.
	* gdb.t17/callfuncs.exp (do_function_calls): Likewise.
	* gdb.t20/classes.exp (do_tests): Likewise.
	* gdb.t22/virtfunc.exp (test_virtual_calls): Likewise.

Wed Sep 15 14:24:36 1993  Ian Lance Taylor  (ian@cygnus.com)

	* gdb.stabs: Renamed *wierd* to *weird*.

Wed Sep 15 10:36:50 1993  Jim Kingdon  (kingdon@cirdan.cygnus.com)

	* gdb.t13/bitfields.exp: Test for bad output rather than waiting
	for timeout.  Add "known gcc 2.4.5 bug" to failure message.

Tue Sep 14 17:16:44 1993  Jim Kingdon  (kingdon@cirdan.cygnus.com)

	* gdb.stabs/wierd.exp (print_wierd_var): Test size, not type name.
	(do_tests): Remove xfail for whatis on one_var and two_var.

Wed Sep  8 23:14:23 1993  Rob Savoye  (rob@darkstar.cygnus.com)

	* Makefile.in: Made cross building work better by adding
	{RUNTEST,CC}_FOR_TARGET and using TARGET_FLAGS_TO_PASS.

Tue Sep  7 14:11:52 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t15/{return.c,return.exp,Makefile.in}:
	New test, currently commented out.

Tue Aug 31 16:51:29 1993  Rob Savoye  (rob@darkstar.cygnus.com)

	* config/udi-gdb.exp: gdb_exit now kills any isstip processes
	still running and removes the leftover named socket so GDb can do
	clean restarts.

Mon Aug 30 17:55:16 1993  Rob Savoye  (rob@darkstar.cygnus.com)

	* gdb.t01/run.exp: Add match for VxWorks, cause I/O comes out the
	console, not GDB.
	* config/mt-*: Added default values for RUNTEST and RUNTESTFLAGS so
	cross testing works better with "make check"
	* config/unix-gdb: Use default procedures for exit and version.
	* config/vx-gdb.exp: Cleaned up and massaged back to working order
	with the newest VxWorks.

Thu Aug 26 17:50:28 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t20/classes.exp: For "ptype class Base1", continue to accept
	old form.

	* gdb.t22/virtfunc.exp: If it prints `struct' (not `class') with a
	name (e.g. devo gdb with gcc 2.4.5), it is still a pass.

	* gdb.t10/crossload.exp: Skip whole file (for now, until we fix it).

	* config/unix-gdb.exp: Remove this version of gdb_exit
	* lib/gdb.exp: Merge in all the crap from config/unix-gdb.exp.
	Rob says he'll look at it when he gets back to testing boards.

Thu Aug 26 07:20:00 1993  Fred Fish  (fnf@deneb.cygnus.com)

	* gdb.t22/virtfunc.exp:  Accept missing struct/class names as
	an expected fail for certain ptype commands.

	* gdb.t20/classes.exp:  Update expected results of "ptype class
	Base1" to account for the constructor that now appears in the type.

Wed Aug 25 16:48:05 1993  Fred Fish  (fnf@deneb.cygnus.com)

	* configure.in (configdirs):  Restore gdb.t04, which mysteriously
	disappeared from list.
	* config/{udi-gdb.exp, gdb-unix.exp}:  Replace calls to obsolete
	"alldone" proc with call to cleanup and exit.
	* {gdb.t01/run.exp, gdb.t01/term.exp, gdb.t02/whatis.exp,
	gdb.t03/ptype.exp, gdb.t04/setvar.exp, gdb.t05/expr.exp,
	gdb.t06/break.exp, gdb.t07/watchpoint.exp, gdb.t08/opaque.exp,
	gdb.t09/corefile.exp, gdb.t10/crossload.exp, gdb.t11/list.exp,
	gdb.t12/scope.exp, gdb.t13/bitfields.exp}:  Replace calls to
	"alldone" proc with simple returns that suppress remaining
	tests.  The alldone proc went away many months ago.

Tue Aug 24 11:04:06 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t10/nodebug.exp: Comment out "maint print msymbols" tests.

	* gdb.t12/gdbme0.c (localscopes, autovars): Modify to foil gcc -O.

Thu Aug 19 22:08:41 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.t15/funcargs.exp:  Allow arguments for main in backtraces
	as vax gdb will display them.

Thu Aug 19 18:18:59 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t20/gdbme.cc: Do some calculation with v.x, to confound
	optimizers.

	* scope.exp: Change "bad value for localval" messages so each one
	is unique.

	* config/unix-gdb.exp (gdb_exit): Move info on this vs.
	lib/gdb.exp (gdb_exit) from ChangeLog to comments.

	* gdb.t06/signals.exp: Skip the whole file with xfail for delta68.

Tue Aug 17 00:05:28 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t00/teststrategy.exp: Deal with it if cmdsize = 1 line
	doesn't exist (due to optimization).

Mon Aug 16 21:05:49 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.stabs/wierd.exp: Deal with it if echo of "file" command
	contains \r because the filename is long.

	* gdb.t06/signals.exp: Revise comments regarding "'next' behaved as
	'continue'" bug, and change xfail back to i*86-univel-sysv4*.

Mon Aug 16 03:05:17 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.t00/help.exp, gdb.t02/whatis.exp, gdb.t07/watchpoint.exp,
	gdb.t08/opaque.exp, gdb.t17/interrupt.exp:  Update for vax running
	Ultrix.
	* gdb.t02/whatis.exp:  Use procedure to setup xfails on long versus
	int tests.
	* gdb.t08/opaque.exp:  Use procedure to setup xfails for opaque tests.

Thu Aug 12 15:24:28 1993  Fred Fish  (fnf@deneb.cygnus.com)

	* Makefile.in (distclean):  Remove *.log *.plog *.sum *.psum site.*.

	* gdb.t17/interrupt.exp:  Fix 'missing Continuing' case so pattern
	to match does not match the passing case but still matches the
	failing case.

Thu Aug 12 16:58:59 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* Makefile.in (distclean): Remove *.plog *.sum *.psum site.*.

Wed Aug 11 19:47:27 1993  John Gilmore  (gnu@rtl.cygnus.com)

	* lib/gdb.exp (gdb_exit):  Move the best version of gdb_exit
	to here.  Fix 'Quit anyway.*?' bug (? is a regexp metacharacter).
	* config/{mips-gdb.exp, nind-gdb.exp, udi-gdb.exp, vx-gdb.exp}:
	Remove various versions of gdb_exit.
	* config/vx-gdb.exp:  Remove quit_vxgdb, change a caller to call
	gdb_exit.
	* config/unix-gdb.exp:  gdb_exit remains here, and should override
	the generic version, since it's doing a lot of wierd stuff that
	the other versions aren't.  FIXME, fold it in, or abandon this
	version.

Wed Aug 11 12:09:32 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t24/demangle.exp: Add tests for PR 3220.

Tue Aug 10 15:49:35 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t24/demangle.exp: Add lucid test for __vtbl__3foo__vt_cc_main_.

Tue Aug 10 15:45:25 1993  Fred Fish  (fnf@deneb.cygnus.com)

	* gdb.t07/watchpoint.exp:  Clear xfail with "i*86-*-*", not just
	"i386-*-*".  Works for i486 as well.

	* gdb.t06/signals.exp:  Rework code that recognizes known SVR4
	bug, and expand domain of xfail to all SVR4 systems, since the
	actual problem is likely to be in generic SVR4 /proc support.

Tue Aug 10 15:49:35 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* config/unix-gdb.exp (gdb_load): Add eof to expect statement.

Tue Aug 10 09:56:56 1993  Fred Fish  (fnf@deneb.cygnus.com)

	* gdb.t17/interrupt.exp:  Set up xfail for *-*-sysv4*, in chain of
	xfails for other systems.  Match a missing 'Continuing.' as an
	explicit fail for i*86-*-sysv4*, so it doesn't hose other tests.

	* gdb.t20 {classes.exp, inherit.exp, misc.exp}, gdb.t21/cplusfuncs.exp,
	gdb.t22/virtfunc.exp, gdb.t23/templates.exp, gdb.t31/chillvars.exp:
	Only issue warning for missing executables if -all option is used.

	* gdb.stabs/wierd.exp:  Only issue warning for missing wierd.o
	file if -all option is used.  It's like an unpredictable XFAIL.

Mon Aug  9 10:13:34 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t15/funcargs.exp: Add comments that hppa xfails are only
	for dynamically linked binaries.

	* gdb.t10/crossload.exp: Add `set gnutarget auto' at end of tests.

Sun Aug  8 14:21:29 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t20/inherit.exp: Change message for "print tagless struct"
	to state that this is a known bug in old versions of g++.

Fri Aug  6 21:40:30 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.t17/interrupt.exp:  Add xfail for 386 bsd. Accept echoed newline
	while waiting for `Continuing'.

Fri Aug  6 13:38:08 1993  Fred Fish  (fnf@deneb.cygnus.com)

	* gdb.t10/nodebug.exp:  Expect to find local/global minimal symbols
	in text, data, and bss.
	* gdb.t10/nodebug.c:  Add local and global test variables for
	initialized and uninitialized data.

Thu Aug  5 12:18:40 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* config/unix-gdb.exp (gdb_exit): Add "wait".

Thu Aug  5 18:14:06 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.t06/signals.exp:  xfail the continue from the handler for all
	targets.

	* gdb.t07/watchpoint.exp:  clear_xfail for i386 when calling a
	function with watchpoints enabled, the i386 call dummy starts with
	a call.

	* gdb.t00/teststrategy.exp, gdb.t09/Makefile.in:  Handle the way
	386 bsd names its corefiles.

Wed Aug  4 08:53:41 1993  Fred Fish  (fnf@cygnus.com)

	* gdb.t10/Makefile.in (nodebug.o):  Don't use "-c -o", many
	compilers don't grok it.
	* gdb.t16/gdbme.c (ctable1):  Initialize unsigned char array
	with small octal ints rather than character constants, which
	are signed and might not fit if first promoted to int.

Tue Aug  3 18:28:25 1993  Fred Fish  (fnf@cygnus.com)

	* gdb.t09/Makefile.in (clean):  Remove corefile.

Mon Aug  2 12:47:44 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t07/watchpoint.exp: Add missing `$prompt $'.

Mon Aug  2 12:30:14 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)
			  and Jim Kingdon (kingdon@cygnus.com)

	* gdb.t06/signals.exp: Change xfail from "*-*-*" to be only for
	NO_SINGLE_STEP machines.  Fix comment about its cause.  Uncomment
	the `continue' test right after it (also xfailed if NO_SINGLE_STEP).

Fri Jul 30 19:46:55 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t17/interrupt.exp: Add xfail for hppa.

Fri Jul 30 12:54:11 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.t02/whatis.exp, gdb.t03/ptype.exp, gdb.t08/opaque.exp,
	gdb.t09/corefile.exp:  Cleanup xfails for fixed mips bugs.
	* gdb.t13/bitfields.exp, gdbme.c:  Examine a variable in the inferior
	to determine signed-ness of bitfields and use the result to setup
	the xfail.
	* gdb.t15/gdbme.c:  Add comments to the two indirect call0a lines.
	* gdb.t15/funcargs.exp:  Use them to step until the second indirect
	call line is reached if necessary.

Thu Jul 29 20:33:08 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.stabs/wierd.exp: New test, for nameless baseclasses.

Mon Jul 26 00:15:02 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t06/break.exp: Also test `clear' command.

Wed Jul 21 18:03:38 1993  Jim Kingdon  (kingdon@deneb.cygnus.com)

	* gdb.t00/teststrategy.exp: Remove extra quote.

	* gdb.t07/watchpoint.exp: Change xfail for calling function with
	watchpoint enabled to be for all non-68k machines.

	* gdb.t15/{mips_pro.{c,exp},Makefile.in}: New test.

Mon Jul 19 23:59:26 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.stabs/configure.in: If configured -with-gnu-as for mips-*-*
	targets use aout.mt instead of ecoff.mt as gas understands
	standard aout format.

Mon Jul 19 18:14:06 1993  Jim Kingdon  (kingdon@deneb.cygnus.com)

	* lib/gdb.exp (runto): Don't insist that function we are running to
	was compiled with -g.

	* gdb.t10/{nodebug.{c,exp},Makefile.in}: New test.

	* gdb.t17/interrupt.exp: Before sending ^C, give the inferior time
	to get back into the read system call.
	Accept leading newline in case where we woke it up.

Sun Jul 18 08:40:45 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.stabs/{ecoff.mt,wierd-ecoff.S,wierd-ecoff.sed}:  New files
	to make the stabs test work on ecoff systems using gcc and -with-stabs.
	* gdb.stabs/{Makefile.in,configure.in,aout.mt,xcoff.mt}:  Modify to
	enable ecoff configuration.

Thu Jul 15 11:54:58 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t15/funcargs.exp (localvars_in_indirect_call): New test.

Wed Jul 14 09:36:42 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t16/printcmds.exp: Add another printf test.

Wed Jul 14 15:37:13 1993  Ian Lance Taylor  (ian@cygnus.com)

	* configure.in: If configured -with-stabs on any target, add
	stabsdirs to configdirs.

Wed Jul 14 09:36:42 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t16/printcmds.exp: Change printf "%f\n" to printf "%f is
	fun" so pattern does not match the command itself.

Mon Jul 12 11:22:06 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t15/{gdbme.c,funcargs.exp}: Test for alloca-influenced frames.

Sun Jul 11 12:03:24 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t17/interrupt.exp: Test for more things.

Fri Jul  9 14:11:17 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t07/watchpoint.exp: In until test, deal with the way the DEC
	compiler arranges the code and line numbers.

	* gdb.t17/interrupt.exp: Don't send \n after ^C.

Fri Jul  9 09:47:02 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.t00/help.exp:  Increase expect input buffer size.

Thu Jul  8 14:26:50 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t06/signals.exp: Remove sparc xfail; bug fixed.

	* gdb.t07/watchpoint.exp: Add xfail for hppa.

	* gdb.t17/{gdbme.c,callfuncs.exp}: Add sum10 function, to test pa bug.

	* gdb.t06/signals.exp: At "p func1 ()" test, check for breakpoint
	[0-9]*, not just [0-9].

Wed Jul  7 17:52:28 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t20/{gdbme.cc,classes.exp}: Add xfail for gdb/2972.

	* gdb.t2*: Set CXXFLAGS, not CFLAGS, since that's what we use.

Tue Jul  6 13:54:49 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t00/help.exp: Replace most of docstring for "continue" with .*.

Mon Jul  5 22:03:45 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t06/signals.c: Add xfails for sun3.

	* gdb.t07/watchpoint.exp: Comment out xfail for fixed bug 1836.

	* gdb.t07/{gdbme.c,watchpoint.exp}: Add test for 2597.  Also add
	test_stepping tests.

Fri Jul  2 09:08:10 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t{06,17}/Makefile.in (clean): Remove all executables.

	* gdb.t17/{interrupt.{c,exp},Makefile.in}: New test for solaris bug.

	* gdb.t06/twice.exp, Makefile.in: Just use an include of twice.c
	rather than actually putting it through cpp twice.

	* gdb.t06/signals.exp: Add xfails for unixware and rs6000.

Fri Jul  2 10:48:03 1993  Ian Lance Taylor  (ian@cygnus.com)

	* config/mips-gdb.exp (gdb_exit): Removed close statement which is
	no longer needed.

Fri Jul  2 09:08:10 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t06/signals.exp: Add test for sparc bug with do_save_insn.

	* gdb.t20/{classes,inherit}.exp: If a class which doesn't use any
	C++ features prints as "struct", make it a pass, not an xfail.

Thu Jul  1 22:03:33 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t22/virtfunc.exp: Remove a bunch of xfails.
	Don't require VA to print as "class" rather than "struct".

Thu Jul  1 18:27:40 1993  Jim Kingdon  (kingdon@cygnus.com)

	* gdb.t06/twice.exp: Don't care about the file name GDB prints.

Wed Jun 30 18:01:00 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t{02,13}/comp-info.c, gdb.t06/twice.exp: Add "return 0" to end.

Tue Jun 29 13:15:42 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.t12/scope.exp:  Remove xfail for parameter printing in wrong
	order.

Tue Jun 29 09:22:29 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t16/printcmds.exp: Add printf tests.

	* gdb.t06/{twice.{c,exp},Makefile.in}: New test.

	* gdb.t10/Makefile.in (clean): Remove $(EXECUTABLES) too.

Mon Jun 28 11:25:59 1993  Fred Fish  (fnf@cygnus.com)

	* gdb.t20/classes.exp:  Add clear_xfail's before printing summary
	pass counts, to counteract any existing or future setup_xfails.

Mon Jun 28 09:15:17 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.stabs/wierd{.def,-aout.S,-xcoff.S}: Use new macros
	{BEGIN,END}_COMMON for common block instead of STAB.
	* gdb.stabs/wierd.exp: Add xfail for rs6000.

	* gdb.stabs/wierd.def: Make value of N_GSYM's 0.
	intp_var should be N_GSYM not N_LSYM.
	wierd-aout.S: Use a label for the value of the N_SO.
	wierd.def: Remove all backslashes.
	wierd-{aout,xcoff}.S: Put a few tests with backslashes here.

Mon Jun 28 07:21:51 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.t20/gdbme.cc (main): Move variable initialization for AIX to
	get the expected next to inheritance3.

Sun Jun 27 12:29:53 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.t00/teststrategy.exp: Remove expected failure for mips-*-*
	now that gcc-2.4 gets it right.

Fri Jun 25 12:00:46 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.stabs/wierd{.def,.exp,-aout.S,-xcoff.S}: Add common block test.

	* gdb.t{02,13}/{Makefile.in,gdbme.c,comp-info.c}: New way of
	generating comp-info.exp which works for cross-compilation.

Thu Jun 24 16:55:05 1993  Fred Fish  (fnf@cygnus.com)

	* gdb.t11/list.exp:  For SVR4 xfails, match "*-*-sysv4*", not
	"*-*-sysv4.*".

Tue Jun 22 21:17:26 1993  Fred Fish  (fnf@cygnus.com)

	* gdb.t01/run.exp:  Start with a fresh gdb.
	* gdb.t11/list.exp:  For SVR4 xfails, match on all versions of
	SVR4.x.

Mon Jun 21 15:23:22 1993  Fred Fish  (fnf@cygnus.com)

	* {gdb.t01, gdb.t02, gdb.t03, gdb.t04, gdb.t05, gdb.t06, gdb.t07,
	gdb.t08, gdb.t09, gdb.t10, gdb.t11, gdb.t12, gdb.t13, gdb.t15,
	gdb.t16, gdb.t17, gdb.t20, gdb.t21, gdb.t22, gdb.t23, gdb.t30}/
	Makefile.in (distclean, realclean):  Remove gdbme.c from list of
	things to remove.

Sat Jun 19 07:49:10 1993  Fred Fish  (fnf@cygnus.com)

	* gdb.t24/demangle.exp (test_gnu_style_demangling):  Add some new
	test cases from bug reports.

Fri Jun 18 10:38:49 1993  Fred Fish  (fnf@cygnus.com)

	* gdb.t06/break.exp:  Add xfails for sparc-sun-solaris2.*.
	* gdb.t12/scope.exp:  Add clear_xfails at appropriate places to
	  avoid spurious xfails.
	* gdb.t20/classes.exp:  Add xfails for longstanding C++ problems.
	* gdb.t21/cplusfuncs.exp:  Add xfails for sparc-sun-solaris2.*.
	* gdb.t22/virtfunc.exp:  Add xfails for longstanding C++ problems.

Wed Jun 16 10:11:57 1993  Fred Fish  (fnf@cygnus.com)

	* gdb.t00/teststrategy.exp:  Rework to provide more useful
	description of each test, fix problem with systems that define
	ALIGN_STACK_ON_STARTUP code, other misc cleanups.
	* gdb.t06/break.exp (test_next_with_recursion):  Fix expected
	results for "next over recursive call" so timeouts aren't taken
	by error.

Mon Jun 14 09:09:04 1993  Jim Kingdon  (kingdon@cygnus.com)

	* gdb.t12/scope.exp: Test printing of variables before run.

	* gdb.t12/{gdbme0.c,scope.exp}: Test for bug where parameters are
	printed in wrong order due to sorting.

Sat Jun 12 15:03:58 1993  Fred Fish  (fnf@cygnus.com)

	* gdb.t00/teststrategy.exp:  Fix expected results for printing
	user entered string constant.  Is array of char, prints with no
	address.

	* gdb.t00/{default.exp, help.exp}:  Account for changes to radix
	commands.
	* gdb.t16/gdbme.c:  Add and use struct containing arrays of char.
	* gdb.t16/printcmds.exp:  Fix all lines that match "unsigned char *".
	* gdb.t16/printcmds.exp (test_print_char_arrays):  Test printing
	of struct of char arrays.
	* gdb.t00/radix.exp:  New tests for radix commands.

Fri Jun 11 13:12:27 1993  Jim Kingdon  (kingdon@cygnus.com)

	* gdb.t16/printcmd.exp: Print a variable before running program
	(with xfail for AIX).

Thu Jun 10 11:04:04 1993  Jim Kingdon  (kingdon@cygnus.com)

	* gdb.t06/{signals.exp,signals.c,Makefile.in}: New test.

	* gdb.t16/printcmd.exp: Don't print variables before running program.

	* gdb.t06/break.exp: Don't require envp argument to main.

	* gdb.t0{2,3,4,5}/gdbme.c [_AIX]: Use signed keyword.

	* gdb.t02/whatis.exp, gdb.t11/list.exp:
	Add xfails for rs6000.

	* gdb.t02/whatis.exp: Change other tests not to re-test something
	we already tested.

	* gdb.t{03,15,16}/gdbme.c: Reference all variables and make sure
	each type used has a variable of that type.

Tue Jun  8 16:45:20 1993  Jim Kingdon  (kingdon@rtl.cygnus.com)

	* gdb.t20/{inherit.exp,gdbme.cc}: Test tagless structure.

Fri Jun  4 11:07:19 1993  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)

	* configure.in: change srctrigger to be a file, not a directory

Fri Jun  4 08:23:57 1993  Ian Lance Taylor  (ian@cygnus.com)

	* configure.in (mips-idt-ecoff*): Added trailing '*'.

	* gdb.t11/list.exp: Fixed a couple of typos.

Tue Jun  1 21:28:06 1993  Fred Fish  (fnf@cygnus.com)

	* gdb.t00 (teststrategy.exp):  Remove notice about PR 1823.  Bug
	is fixed and PR is closed.
	* gdb.t16 (gdbme.c):  Add simple test string variable.
	* gdb.t16 (printcmds.exp):  Add tests with simple test string
	variable, primarily for boundaries on "set print elements".

Mon May 31 11:36:08 1993  Jim Kingdon  (kingdon@cygnus.com)

	* gdb.stabs/wierd.exp: Remove xfail for printing big integer.
	Make leading 0's optional and don't expect a tab in the middle
	of the number.

	* gdb.t00/teststrategy.exp: Remove xgdb before trying the copy.

	* gdb.stabs/wierd.def: Type attributes must be preceded by number=.
	* gdb.stabs/wierd.exp: Remove xfails for type attributes.  Also
	don't end command passed to gdb_test with newline.

	* gdb.t13/{Makefile.in,gdbme.c,bitfields.exp}: If we #defined the
	signed keyword away, don't expect signed bitfields to be signed.

	* gdb.t13/bitfields.exp (bitfield containment): Accept the fields
	printing with only as many 1's as are in the field as well as printing
	with 32 1's (see comment).

Sat May 29 17:57:01 1993  Fred Fish  (fnf@cygnus.com)

	* gdb.t00/default.exp:  Start with a fresh gdb.
	* configure.in (configdirs):  Remove gdb.t31 until the chill
	compiler works again.  It no longer is able to find chillrt0
	since it isn't in libchill.a anymore.
	* gdb.stabs/wierd.exp:  Rewrite to properly handling a missing
	wierd.o, make more modular.
	* gdb.stabs/wierd.def (bad_neg0type, bad_neg0const):  Remove
	spurious newlines that caused problems.

Wed May 26 09:57:19 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* Move test with enums and partial symbols from gdb.t03/ptype.exp
	to gdb.stabs/wierd.exp since GCC has worked around the bug.
	gdb.stabs/wierd.{exp,def}: Many new tests.

	* gdb.t00/default.exp: update info line for new message.

	* gdb.t02/{whatis.exp,gdbme.c}:
	Test that "char *" doesn't print as "caddr_t".

Tue May 25 13:28:27 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t00/help.exp: Use .* in place of some help messages which
	just changed.
	gdb.t00/default.exp: Update "info frame" test for new message.
	* gdb.stabs/wierd.exp: Check for eof, directly or via gdb_test.
	Remove some xfails

Mon May 24 00:24:47 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t03/{gdbme.c,ptype.exp}:
	Add tests for typedef'd struct and union without tags.
	Also check "whatis" on a variable of a typedef'd enum without a tag.

	* gdb.t00/teststrategy.exp: For p "foo", remove sun4 XFAIL (see
	PRMS 1823; the bug still exists but isn't reproduced by this test
	anymore), and remove rs6000 XFAIL (the bug is fixed).

	* gdb.t03/ptype.exp: Comment out a lot of tests which are basically
	duplicated from whatis.exp.  For those that are left, accept
	"long", "long int", or "int" for long variables (whatis.exp already
	has an XFAIL for "int", so no need to fail it here).

	* gdb.t02/whatis.exp, gdb.t10/crossload.exp:
	Deal with GCC's names for types now that GDB uses the compiler's names.

	* gdb.t02/{Makefile.in,gdbme.c,whatis.exp}:  If not GCC, do some
	setup_xfail's for sunos4.  If we #defined the signed keyword away,
	don't expect GDB to know that char it is signed.

	* gdb.t00/teststrategy.exp: Update for symbolic signal names.

Sun May 23 08:44:55 1993  Fred Fish  (fnf@cygnus.com)

	* configure.in (configdirs):  Add gdb.t24 for C++ tests that
	should work on any system, regardless of debugging format.
	* gdb.t21/demangle.exp:  Move to gdb.t24.
	* gdb.t24/demangle.exp:  Move from gdb.t21.
	* gdb.t24/{Makefile.in, configure.in}:  New files.

Thu May 20 19:39:03 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* configure.in: Do gdb.stabs and C++ tests only for stabs.
	* gdb.stabs: New directory.

Tue May 18 21:12:09 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* config/{mips,nind,udi,unix,vx}-gdb.exp: Look for "Quit anyway.*?"
	not just "Quit anyway?".

Tue May 18 17:13:20 1993  Fred Fish  (fnf@cygnus.com)

	* gdb.t21/demangle.exp:  Add a couple of new patterns.  Ensure
	that all setup_xfails are immediately followed by clear_xfails.

Tue May 11 09:10:47 1993  Fred Fish  (fnf@cygnus.com)

	* config/unix-gdb.exp, gdb.t00/echo.exp, gdb.t00/help.exp,
	gdb.t00/teststrategy.exp, gdb.t00/gdbvars.exp, gdb.t01/run.exp,
	gdb.t01/term.exp, gdb.t02/whatis.exp, gdb.t03/ptype.exp,
	gdb.t04/setvar.exp, gdb.t05/expr.exp, gdb.t06/break.exp,
	gdb.t07/watchpoint.exp, gdb.t08/opaque.exp, gdb.t09/corefile.exp,
	gdb.t10/crossload.exp, gdb.t11/list.exp, gdb.t12/scope.exp,
	gdb.t13/bitfields.exp, gdb.t15/funcargs.exp, gdb.t16/printcmds.exp,
	gdb.t17/callfuncs.exp, gdb.t20/misc.exp, gdb.t20/inherit.exp,
	gdb.t20/classes.exp, gdb.t21/demangle.exp, gdb.t21/cplusfuncs.exp,
	gdb.t22/virtfunc.exp, gdb.t23/templates.exp, gdb.t30/chexp.exp,
	gdb.t31/chillvars.exp, lib/gdb.exp:
	Change place to report bugs from bug-dejagnu@prep.ai.mit.edu to
	bug-gdb@prep.ai.mit.edu.

Fri May  7 09:15:35 1993  Fred Fish  (fnf@cygnus.com)

	* gdb.t17/callfuncs.exp (do_function_calls):  Call t_double_values
	with 0.0, not integer 0.

Fri Apr 30 13:17:24 1993  Jim Kingdon  (kingdon@cygnus.com)

	* gdb.t06/break.exp: Update for "Kill the program" message change.

Fri Apr 30 09:42:57 1993  Fred Fish  (fnf@cygnus.com)

	* Makefile.in (GDBFLAGS):  Set to -nx.
	* Makefile.in (site.exp):  Use GDBFLAGS.

Wed Apr 28 13:19:07 1993  K. Richard Pixley  (rich@rtl.cygnus.com)

	* */Makefile.in (CFLAGS): add CFLAGS = -g to all subdirectory
	  Makefiles.
	  (check): depend on just-check.
	  (just-check): added so that tests can be run without a noop
	  build pass.

Fri Apr 23 18:13:28 1993  K. Richard Pixley  (rich@rtl.cygnus.com)

	Switch to using configure's configdirs.
	* Makefile.in (Makefile): add configure.in dependency.
	  (SUBDIRS): removed redundant assignment.
	* configure.in: switch subdirs assignment to configdirs.
	* gdb.t*/configure.in: new files.

Thu Apr 22 08:27:53 1993  Ian Lance Taylor  (ian@cygnus.com)

	* gdb.t07/watchpoint.exp: Removed a29k expected failure which now
	works.

Tue Apr 20 13:38:40 1993  Fred Fish  (fnf@cygnus.com)

	* gdb.{t20,t21,t22,t23}/Makefile.in:  Use $(srcdir) to avoid $<
	in explicit rules.  Apparently this is not supported by some makes.

Mon Apr 19 01:54:53 1993  John Gilmore  (gnu@cygnus.com)

	* gdb.t31/Makefile.in:  Use $(srcdir) when avoiding $<, sigh.

Fri Apr 16 09:33:46 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* config/unix-gdb.exp:  Add back missing return 0 which mysteriously
	disappeared.

Thu Apr 15 02:28:24 1993  John Gilmore  (gnu@cacophony.cygnus.com)

	* gdb.t31/Makefile.in:  Avoid $< in explicit rule.

Wed Apr 14 16:38:47 1993  Fred Fish  (fnf@cygnus.com)

	* gdb.t07/watchpoint.exp:  Remove setup_xfail for i486
	watchpoint problem that is now fixed.
	* gdb.t30/chexp.exp:  Remove setup_xfail for printing
	uninitialized convenience variables.
	* gdb.t31/chillvars.exp:  Fix expected patterns for printing
	structures.

Wed Apr 14 12:55:58 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.t00/help.exp: Compensate for bug in mips-*-ultrix* OS
	which causes expect to get out of sync with gdb on long output
	from help set.
	* gdb.t09/corefile.exp: Make expected pattern for core file
	failing signal and frame output format less sun specific.

Tue Apr 13 23:18:07 1993  Per Bothner  (bothner@cygnus.com)

	* gdb.t31/chillvars.exp:  Add and remove initial dummy
	breakpoint, so that symbol table is forced in.
	(Needed at least on Sunos4, though it seems not SVR4.)
	* gdb.t31/chillvars.exp:  Update for changed output format.

Sun Apr 11 17:21:45 1993  Rob Savoye  (rob at darkstar.cygnus.com)

	* config/unix-gdb.exp: Gracefully exits if $GDB is a bogus path.

Wed Apr  7 21:28:21 1993  Rob Savoye  (rob@cygnus.com)

	* Makefile.in: Added --srcdir when invoking runtest, removed the
	need for a local config file. (optional now)

Wed Apr  7 14:13:41 1993  Fred Fish  (fnf@cygnus.com)

	* gdb.t21/demangle.exp:  Only count real fails (not xfails) for
	failure count used to force early termination.  Add some more
	expected failures for gnu style demangling.

Thu Apr  1 09:50:30 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* Makefile.in (CXXFLAGS): Remove -O. It caused the debug info for the
	pmi variable from gdb.t20/gdbme to get optimized away.
	* gdb.t00/teststrategy.exp: Added expected failure for mips-*-*.
	Check for written corefile upon timeout _and_ eof.

Tue Mar 30 09:58:16 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* config/unix-gdb.exp:  Add missing return 0.

Tue Mar 30 08:34:25 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.t16/printcmds.exp:  Remove misplaced xfail that caused an early
	test termination.

Mon Mar 29 17:37:25 1993  Fred Fish  (fnf@cygnus.com)

	* configure.in (subdirs):  Put back gdb.t17 which mysteriously
	disappeared.

Thu Mar 25 21:05:16 1993  Fred Fish  (fnf@cygnus.com)

	* gdb.t10/crossload.exp:  Disable the i860-elf test until such
	time as i860 support works.

	* gdb.t15/funcargs.exp:  Fix expected outputs to include
	"backtrace 100\r" rather than just "backtrace\r", to match last
	change.

Thu Mar 25 12:14:28 1993  Ian Lance Taylor  (ian@cygnus.com)

	* config/udi-gdb.exp (gdb_exit): Remove close command.
	(gdb_target_udi): New procedure to set the UDI target.
	(gdb_start): Don't remove *_soc files.  Use gdb_target_udi.
	* gdb.t00/default.exp: Added expected failures for a29k-*-udi.
	Added waits for prompts after several question responses.  Added
	some more responses used by a29k-amd-udi-gdb.
	* gdb.t01/run.exp, gdb.t06/break.exp: Added a29k-*-udi support:
	pass different arguments, restart UDI connection after program
	completion.
	* gdb.t02/whatis.exp, gdb.t03/ptype.exp, gdb.t07/watchpoint.exp,
	gdb.t08/opaque.exp, gdb.t11/list.exp, gdb.t12/scope.exp,
	gdb.t15/funcargs.exp, gdb.t16/printcmds.exp, gdb.t20/misc.exp,
	gdb.t21/cplusfuncs.exp: Added expected failures for a29k-*-*.
	* gdb.t04/setvar.exp, gdb.t05/expr.exp, gdb.t07/watchpoint.exp,
	gdb.t08/opaque.exp, gdb.t12/scope.exp, gdb.t13/bitfields.exp,
	gdb.t15/funcargs.exp, gdb.t16/printcmds.exp,
	gdb.t17/callfuncs.exp, gdb.t20/classes.exp, gdb.t20/inherit.exp,
	gdb.t20/misc.exp, gdb.t22/virtfuncs.exp: Restart UDI connection
	after program completion.
	* gdb.t10/crossload.exp: Does not work for a29k-*-*, since BFD is
	compiled with a SELECT_VECS setting.
	* gdb.t15/funcargs.exp: Use argument to backtrace to prevent
	infinite recursion.

	* gdb.t20/classes.exp, gdb.t20/inherit.exp, gdb.t22/virtfuncs.exp:
	Added checks for COFF results, and made them expected failures for
	all targets.  It would be better to make them expected failures
	for COFF targets only.

Wed Mar 24 14:43:38 1993  david d `zoo' zuhn  (zoo at poseidon.cygnus.com)

	* Makefile.in: add null dvi target, don't bother to recurse
	through test directories for info and install-info; rename
	$(datadir) to be dejagnu instead of deja-gnu

Wed Mar 24 09:48:03 1993  Fred Fish  (fnf@cygnus.com)

	* gdb.t31/gdbme.ch:  Re-enable code that previously caused
	compiler to coredump.
	* gdb.t31/chillvars.exp:  Re-enable tests that depend on that
	code.

Tue Mar 23 08:53:42 1993  Fred Fish  (fnf@cygnus.com)

	* gdb.t31/gdbme.ch:  Comment out code that causes chill compiler
	coredump.
	* gdb.t31/chillvars.exp:  Comment out tests that depend on that
	code.

Sun Mar 21 17:56:47 1993  Rob Savoye  (rob at darkstar.cygnus.com)

	* gdb.t03/ptype.exp: tests for return code from gdb_test.
	* gdb.t00/teststrategy.exp: Uses which proc rather than spawning
	which in a shell. Deletes xgdb when done.
	* config/unix-gdb.exp: Won't try to spawn $GDB unless it exists.
	Tests the return from the "set height" or "set width" commands.
	Added a few return codes where needed.

Wed Mar 17 11:31:01 1993  Fred Fish  (fnf@cygnus.com)

	* Makefile.in (SUBDIRS):  Add gdb.t17.
	* configure.in (subdirs):  Add gdb.t17.
	* gdb.t17/{Makefile.in, callfuncs.exp, gdbme.c}:  New test
	files to test gdb's calling of functions in the inferior with
	the correct arguments and gdb's ability to retrieve any
	result returned.

Tue Mar 16 15:37:11 1993  Fred Fish  (fnf@cygnus.com)

	* config/unix-gdb.exp (gdb_exit):  Remove close commands that
	may be called after gdb goes away.  Previous versions of expect
	needed these to avoid file descriptor leaks, but they cause
	errors with the current revision of expect.
	* gdb.t00/gdbvars.exp:  Use -re on expected output after
	setting sevenbit-strings.
	* gdb.t04/setvar.exp, gdb.t13/bitfields.exp:  Make commands
	to set sevenbit-strings consistent across tests.
	gdb.t30/chexp.exp, gdb.t31/chillvars.exp:  Make commands to
	set sevenbit-strings consistent across tests.

Fri Mar 12 08:47:20 1993  Fred Fish  (fnf@cygnus.com)

	* gdb.t21/demangle.exp (proc demangle):  Adjust quotes in an
	expected output to match current "expect" expectations.

Wed Mar 10 18:01:49 1993  Fred Fish  (fnf@cygnus.com)

	* gdb.t00/default.exp:  Change expected output for default "source"
	command, to match new gdb behavior which requires a filename to
	source.

Tue Mar  9 11:00:56 1993  Fred Fish  (fnf@cygnus.com)

	* gdb.t07/watchpoint.exp (test_simple_watchpoint):  Set up
	expected fail for i486-*-* that misses the marker2 function.
	* gdb.t10/crossload.exp (bfddefault):  Allow successful
	recognition of a format to pass even if no symbols are found.
	Explicitly catch failures where the format is not recognized
	or is ambiguous, and add the reason to the fail message.
	* gdb.t10/crossload.exp (bfdexplicit):  Catch failure where
	the cause is and invalid target and add reason to failure message.
	* gdb.t10/crossload.exp:  Fix bfd target names for elf32-m68k,
	elf32-i386, elf32-sparc, and elf32-i860.
	* gdb.t12/scope.exp (test_at_main, test_at_foo, test_at_bar):
	Set up expected failure for 'filename'::variable scope resolution,
	which is now apparently broken on all targets.
	* gdb.t20/classes.exp, gdb.t20/inherit.exp, gdb.t20/misc.exp,
	gdb.t21/cplusfuncs.exp, gdb.t22/virtfunc.exp,
	gdb.t23/templates.exp:   Change failure for missing binfile into
	just a warning.
	gdb.t21/demangle.exp:  Change all cfront references to 'arm'
	references.

Mon Mar  8 19:20:28 1993  Fred Fish  (fnf@cygnus.com)

	* gdb.t00/default.exp:  Add expected output for default "source"
	command, to match new gdb behavior.
	* gdb.t09/corefile.exp:  Use GDBFLAGS when spawning GDB.

Sun Mar  7 15:14:09 1993  Rob Savoye  (rob@cygnus.com)

	* config/*-gdb.exp: returns an error, rather than exiting on
	internal errors.

Tue Mar  2 18:09:32 1993  Fred Fish  (fnf@cygnus.com)

	* gdb.t03/gdbme.c:  Add pointer to struct variable.
	* gdb.t03/ptype.exp:  Test equivalence of '.' and '->' for
	referencing struct members.

Thu Feb 25 10:39:06 1993  Ian Lance Taylor  (ian@cygnus.com)

	* configure.in (mips-idt-ecoff): New target.
	* config/mips-gdb.exp: New file for remote board using MIPS remote
	debugging protocol.

	* Redid configuration scheme.  Removed gdb.t*/configure.in.
	Renamed gdb.t*/in-gdbme* to gdb.t*/gdbme*.  Changed to use CC, CXX
	instead of CC_FOR_TARGET, CXX_FOR_TARGET.  Added mostlyclean and
	distclean targets.  Built executables via .o files.  Adjusted
	tests to account for source files in $(srcdir) rather than
	$(objdir).
	* lib/gdb.exp (runto): Don't expect () after the function name,
	because it may have arguments.

Wed Feb 24 08:05:38 1993  Ian Lance Taylor  (ian@cygnus.com)

	* gdb.t00/default.exp, gdb.t01/run.exp, gdb.t02/whatis.exp,
	gdb.t03/ptype.exp, gdb.t06/break.exp, gdb.t12/scope.exp: Added
	expected failures for mips-idt-* and mips-sgi-*.
	* gdb.t00/default.exp (attach): Kill process if requested.
	* gdb.t00/help.exp (help target core, help target): Accept a gdb
	that does not read core files.
	* gdb.t01/run.exp: Removed checks for exit status code.
	* gdb.t03/in-gdbme.c: Make explicit call to malloc to ensure that
	it is linked in.
	* gdb.t03/ptype.exp: Increase timeout when calling malloc.
	* gdb.t04/setvar.exp, gdb.t05/expr.exp: Use runto function where
	appropriate, rather than doing it by hand.
	* gdb.t07/watchpoint.exp: If mips-idt-*, reload file after first
	execution.
	* gdb.t10/crossload.exp: Kill existing program if needed.
	* gdb.t15/funcargs.exp: Use delete_breakpoints function where
	appropriate, rather than doing it by hand.  Always increase
	timeout for this test, not just for VxWorks.

Wed Feb 24 08:03:38 1993  Fred Fish  (fnf@cygnus.com)

	* gdb.t31/chillvars.exp (test_structs):  New proc to test printing
	of Chill STRUCT types and STRUCT values.
	* gdb.t31/chillvars.exp (test_strings):  Expect "CHAR" now, rather
	than "char".
	* gdb.t31/in-gdbme.ch (simple_struct, nested_struct, struct1,
	struct2):  New struct definitions and initializations to test
	simple Chill STRUCT types.

Tue Feb 23 11:55:06 1993  Fred Fish  (fnf@cygnus.com)

	* gdb.t00/teststrategy.exp:  Track reversion in gdb to not print
	the null byte at the end of strings.
	* gdb.t00/default.exp:  Make show version insensitive to copyright
	date.
	* gdb.t16/in-gdbme.c (ctable1, ctable2):  Make explicitly unsigned
	to avoid dependencies on target char signedness.
	* gdb.t16/printcmds.exp:  Update expected results for explicitly
	unsigned char.
	* gdb.t16/printcmds.exp:  Remove setup_xfails for i960 that should
	now work.
	* gdb.t21/demangle.exp:  Add many more patterns for template
	demangling, most of them being expected failures.
	* gdb.t21/demangle.exp (proc demangle):  Quote the demangled
	string we are matching for, to match on the whole string.
	* gdb.t21/demangle.exp:  Add many new test strings to demangle,
	and fix a whole bunch that had incorrect expected output but were
	passing anyway because of the bug in "proc demangle".
	* gdb.t31/chillvars.exp:  Remove setup_xfail for printing string
	type.
	* gdb.t31/in-gdbme.ch:  Uncomment string4, now compiles.

Mon Feb 22 07:54:03 1993  Mike Werner  (mtw@poseidon.cygnus.com)

	* gdb/testsuite: made modifications to testcases, etc., to allow
	them to work properly  given the reorganization of deja-gnu and the
	relocation of the testcases from deja-gnu to a "tool" subdirectory.

Sun Feb 21 10:55:55 1993  Mike Werner  (mtw@poseidon.cygnus.com)

	* gdb/testsuite: Initial creation of gdb/testsuite.
	Migrated dejagnu testcases and support files for testing nm to
	gdb/testsuite from deja-gnu.  These files were moved "as is"
	with no modifications.  This migration is part of a major overhaul
	of dejagnu.  The modifications to these testcases, etc., which
	will allow them to work with the new version of dejagnu will be
	made in a future update.

 For additional changes see gdb.mi/ChangeLog-1999-2003.

;; Local Variables:
;; mode: change-log
;; left-margin: 8
;; fill-column: 74
;; version-control: never
;; End:

    Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
    2003, 2004, 2005 Free Software Foundation, Inc.
  Copying and distribution of this file, with or without modification,
  are permitted provided the copyright notice and this notice are preserved.
