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.

Mon Feb  8 13:18:22 2010  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

Mon Feb  8 12:54:54 2010  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.

Mon Jan  7 12:22:18 2002  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.
