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

	* gdb.python/py-mi.exp: Add test for printer whose children
	are a list.
	* gdb.python/py-prettyprint.c (struct children_as_list): New.
	(main): New variable children_as_list.
	* gdb.python/py-prettyprint.py (class pp_children_as_list):
	New.
	(register_pretty_printers): Register new printer.

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

	* gdb.base/attach-twice.exp: Remove excessive ps exec.

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

	* gdb.base/valgrind-infcall.exp (continue #$continue_count): Use
	global variable loop, not a 'break'.  Add loop count limit to 100.
	Add new fail case for terminated vgdb.

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

	Do not false FAIL with old GCCs.
	* gdb.base/watchpoint.exp (self-delete local watch) <$no_hw>: XFAIL for
	GCC < 4.5 in $no_hw mode.

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

	* gdb.base/list.exp (test_only_end): New function.
	Call it.

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

	* gdb.base/valgrind-infcall.exp: Expect leading `.' on ppc64's
	symbols. Abort if vgdb remote connection is closed.

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

	* gdb.base/info-fun.exp: Fix failures on m68k, ppc64, s390x.

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

	* gdb.base/pc-fp.exp: Adjust testcase to match different outputs from
	s390x, PowerPC 64 and m68k-linux.

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

	* gdb.base/annota1.exp: Accept no frames-invalid notification
	when starting up the program.
	* gdb.python/py-value.exp (test_value_numeric_ops): Pointers may
	show a symbolic value as well.
	* gdb.server/server-exec-info.exp: Skip test when skipping
	gdbserver test and/or when skipping shared library tests.
	* gdb.threads/linux-dp.exp: Unset "seen" when done with it to
	avoid name conflicts with other tests.

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

	* gdb.dwarf2/dw2-icc-opaque.S: Remove .align directives.
	Fix wrong output on big-endian systems.
	* gdb.dwarf2/dw2-icc-opaque.exp: Expect @mode32 attribute on
	4-byte pointer types on 64-bit s390x.

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

	* gdb.base/watchpoint.c (func2): Initialize local_a.  Add
	marker comment at the beginning (after intialization).
	* gdb.base/watchpoint.exp (test_complex_watchpoint): Set func2
	breakpoint on marker comment instead of function begin.
	(test_wide_location_1): Do not expect HW watchpoints on 32-bit
	PowerPC.
	(test_wide_location_2): Do not expect HW watchpoints on 32-bit
	or 64-bit PowerPC.
	(do_tests): Consistently set can-use-hw-watchpoints to 0 if
	gdb,no_hardware_watchpoints flag is set.
	(initialize): Remove now redundant can-use-hw-watchpoints change.

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

	* gdb.base/catch-load.exp: Fix argument to gdb_load_shlibs.
	* gdb.base/ctxobj.exp: Call gdb_load_shlibs.
	* gdb.base/print-file-var.exp: Likewise.
	* gdb.server/solib-list.exp: Skip on remote targets.

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

	* gdb.base/watchpoint.exp (test_wide_location_1): Expect software
	watchpoints on ARM.  When expecting software watchpoints, tolerate
	(remote) targets that report unsupported hardware watchpoint only
	at continue time.
	(test_wide_location_2): Likewise.

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

	* gdb.base/valgrind-infcall.exp: Relax the UNSUPPORTED check for more
	valgrind versions.

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

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

2012-07-30  Keith Seitz  <keiths@redhat.com>

	* gdb.linespec/ls-errs.exp: Check some quote-enclosed
	linespecs.

2012-07-30  Doug Evans  <dje@google.com>

	* gdb.dwarf2/fission-reread.S: Use .data instead of .bss.
	* gdb.dwarf2/pr13961.S: Ditto.

	* gdb.dwarf2/dw4-sig-types.exp: Fix typo.

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

	Fix testsuite regression after --use-deprecated-index-sections removal.
	* gdb.base/annota1.exp (run until main breakpoint): Update the expect
	string.
	* gdb.base/async-shell.exp (gdbindex_warning_re): Likewise.

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

	Fix testsuite regression after --use-deprecated-index-sections removal.
	* lib/mi-support.exp (gdbindex_warning_re): Update the expect string.

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

	* gdb.base/store.exp (check_set): Import gdb_prompt.
	(continue to wack_${t}): Make it to conditional gdb_test_multiple.
	(${prefix}; next ${t}): Hide its name, handle it conditionally now.

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

	PR 11914
	* gdb.python/py-prettyprint.c (eval_func, eval_sub): New.
	(main): Call eval_sub.
	* gdb.python/py-prettyprint.exp:
	(python execfile ('py-prettyprint.py')): Move it earlier.
	New breakpoint for eval-break.
	(continue to breakpoint: eval-break, info locals): New test.
	(python execfile ('py-prettyprint.py')): Move it from here.
	* gdb.python/py-prettyprint.py (class pp_eval_type): New.
	(register_pretty_printers): Register pp_eval_type.

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

	Fix a testcase regression by me.
	* gdb.dwarf2/fission-reread.S: Fix two DW_FORM_data8 to be
	DW_FORM_data4.

2012-07-13  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Doug Evans  <dje@google.com>

	* gdb.dwarf2/dw2-minsym-in-cu.S: New file.
	* gdb.dwarf2/dw2-minsym-in-cu.exp: New file.

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

	Fix gdbserver run regression.
	* gdb.trace/disconnected-tracing.exp (executabel): Fix typo.

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

	* lib/gdb.exp (standard_testfile): Don't declare objdir.
	(clean_restart): Likewise.
	(core_find): Use standard_output_file.

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

	* gdb.dwarf2/dup-psym.exp: Use prepare_for_testing_full.
	* gdb.dwarf2/dw2-anonymous-func.exp: Use
	prepare_for_testing_full.
	* gdb.dwarf2/dw2-basic.exp: Use prepare_for_testing_full.
	* gdb.dwarf2/dw2-compressed.exp: Use prepare_for_testing_full.
	* gdb.dwarf2/dw2-const.exp: Use prepare_for_testing_full.
	* gdb.dwarf2/dw2-cu-size.exp: Use prepare_for_testing_full.
	* gdb.dwarf2/dw2-intercu.exp: Use prepare_for_testing_full.
	* gdb.dwarf2/dw2-intermix.exp: Use prepare_for_testing_full.
	* gdb.dwarf2/dw2-linkage-name-trust.exp: Use
	prepare_for_testing_full.
	* gdb.dwarf2/dw2-producer.exp: Use prepare_for_testing_full.
	* gdb.dwarf2/dw2-ref-missing-frame.exp: Use
	prepare_for_testing_full.
	* gdb.dwarf2/dw2-restore.exp: Use prepare_for_testing_full.
	* gdb.dwarf2/dw2-strp.exp: Use prepare_for_testing_full.
	* gdb.dwarf2/mac-fileno.exp: Use prepare_for_testing_full.

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

	* lib/gdb.exp (build_executable_from_specs): New proc, from
	build_executable.
	(build_executable): Use it.
	(prepare_for_testing_full): New proc.

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

	* gdb.reverse/break-precsave.exp: Use standard_output_file.
	* gdb.reverse/consecutive-precsave.exp: Use standard_output_file.
	* gdb.reverse/finish-precsave.exp: Use standard_output_file.
	* gdb.reverse/i386-precsave.exp: Use standard_output_file.
	* gdb.reverse/machinestate-precsave.exp: Use standard_output_file.
	* gdb.reverse/sigall-precsave.exp: Use standard_output_file.
	* gdb.reverse/solib-precsave.exp: Use standard_output_file.
	* gdb.reverse/step-precsave.exp: Use standard_output_file.
	* gdb.reverse/until-precsave.exp: Use standard_output_file.
	* gdb.reverse/watch-precsave.exp: Use standard_output_file.

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

	* gdb.mi/dw2-ref-missing-frame.exp: Use standard_testfile,
	standard_output_file.
	* gdb.mi/gdb2549.exp: Use standard_testfile.
	* gdb.mi/gdb669.exp: Use standard_testfile.
	* gdb.mi/gdb701.exp: Use standard_testfile.
	* gdb.mi/gdb792.exp: Use standard_testfile.
	* gdb.mi/mi-async.exp: Use standard_testfile.
	* gdb.mi/mi-basics.exp: Use standard_testfile.
	* gdb.mi/mi-break.exp: Use standard_testfile.
	* gdb.mi/mi-cli.exp: Use standard_testfile.
	* gdb.mi/mi-console.exp: Use standard_testfile.
	* gdb.mi/mi-disassemble.exp: Use standard_testfile.
	* gdb.mi/mi-eval.exp: Use standard_testfile.
	* gdb.mi/mi-file-transfer.exp: Use standard_testfile.
	* gdb.mi/mi-file.exp: Use standard_testfile.
	* gdb.mi/mi-inheritance-syntax-error.exp: Use standard_testfile.
	* gdb.mi/mi-logging.exp: Use standard_testfile.
	* gdb.mi/mi-nonstop-exit.exp: Use standard_testfile.
	* gdb.mi/mi-nonstop.exp: Use standard_testfile.
	* gdb.mi/mi-ns-stale-regcache.exp: Use standard_testfile.
	* gdb.mi/mi-nsintrall.exp: Use standard_testfile.
	* gdb.mi/mi-nsmoribund.exp: Use standard_testfile.
	* gdb.mi/mi-nsthrexec.exp: Use standard_testfile.
	* gdb.mi/mi-pending.exp: Use standard_testfile,
	standard_output_file.
	* gdb.mi/mi-pthreads.exp: Use standard_testfile.
	* gdb.mi/mi-read-memory.exp: Use standard_testfile.
	* gdb.mi/mi-regs.exp: Use standard_testfile.
	* gdb.mi/mi-return.exp: Use standard_testfile.
	* gdb.mi/mi-reverse.exp: Use standard_testfile.
	* gdb.mi/mi-simplerun.exp: Use standard_testfile.
	* gdb.mi/mi-solib.exp: Use standard_testfile,
	standard_output_file.
	* gdb.mi/mi-stack.exp: Use standard_testfile.
	* gdb.mi/mi-stepi.exp: Use standard_testfile.
	* gdb.mi/mi-stepn.exp: Use standard_testfile.
	* gdb.mi/mi-syn-frame.exp: Use standard_testfile.
	* gdb.mi/mi-until.exp: Use standard_testfile.
	* gdb.mi/mi-var-block.exp: Use standard_testfile.
	* gdb.mi/mi-var-child-f.exp: Use standard_testfile.
	* gdb.mi/mi-var-child.exp: Use standard_testfile.
	* gdb.mi/mi-var-cmd.exp: Use standard_testfile.
	* gdb.mi/mi-var-cp.exp: Use standard_testfile.
	* gdb.mi/mi-var-display.exp: Use standard_testfile.
	* gdb.mi/mi-var-invalidate.exp: Use standard_testfile,
	standard_output_file.
	* gdb.mi/mi-var-rtti.exp: Use standard_testfile.
	* gdb.mi/mi-watch-nonstop.exp: Use standard_testfile.
	* gdb.mi/mi-watch.exp: Use standard_testfile.
	* gdb.mi/mi2-amd64-entry-value.exp: Use standard_testfile.
	* gdb.mi/mi2-basics.exp: Use standard_testfile.
	* gdb.mi/mi2-break.exp: Use standard_testfile.
	* gdb.mi/mi2-cli.exp: Use standard_testfile.
	* gdb.mi/mi2-console.exp: Use standard_testfile.
	* gdb.mi/mi2-disassemble.exp: Use standard_testfile.
	* gdb.mi/mi2-eval.exp: Use standard_testfile.
	* gdb.mi/mi2-file.exp: Use standard_testfile.
	* gdb.mi/mi2-pthreads.exp: Use standard_testfile.
	* gdb.mi/mi2-read-memory.exp: Use standard_testfile.
	* gdb.mi/mi2-regs.exp: Use standard_testfile.
	* gdb.mi/mi2-return.exp: Use standard_testfile.
	* gdb.mi/mi2-simplerun.exp: Use standard_testfile.
	* gdb.mi/mi2-stack.exp: Use standard_testfile.
	* gdb.mi/mi2-stepi.exp: Use standard_testfile.
	* gdb.mi/mi2-syn-frame.exp: Use standard_testfile.
	* gdb.mi/mi2-until.exp: Use standard_testfile.
	* gdb.mi/mi2-var-block.exp: Use standard_testfile.
	* gdb.mi/mi2-var-child.exp: Use standard_testfile.
	* gdb.mi/mi2-var-cmd.exp: Use standard_testfile.
	* gdb.mi/mi2-var-display.exp: Use standard_testfile.
	* gdb.mi/mi2-watch.exp: Use standard_testfile.

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

	* gdb.cp/abstract-origin.exp: Use standard_testfile.
	* gdb.cp/ambiguous.exp: Use standard_testfile,
	prepare_for_testing.
	* gdb.cp/annota2.exp: Use standard_testfile, prepare_for_testing.
	* gdb.cp/annota3.exp: Use standard_testfile, prepare_for_testing.
	* gdb.cp/anon-ns.exp: Use standard_testfile.
	* gdb.cp/anon-struct.exp: Use standard_testfile.
	* gdb.cp/anon-union.exp: Use standard_testfile,
	prepare_for_testing.
	* gdb.cp/arg-reference.exp: Use standard_testfile,
	prepare_for_testing.
	* gdb.cp/bool.exp: Use standard_testfile, prepare_for_testing.
	* gdb.cp/breakpoint.exp: Use standard_testfile,
	prepare_for_testing.
	* gdb.cp/bs15503.exp: Use standard_testfile, prepare_for_testing.
	* gdb.cp/call-c.exp: Use standard_testfile, clean_restart,
	standard_output_file.
	* gdb.cp/casts.exp: Use standard_testfile, prepare_for_testing.
	* gdb.cp/class2.exp: Use standard_testfile, prepare_for_testing.
	* gdb.cp/classes.exp: Use standard_testfile, prepare_for_testing.
	(test_static_members): Update.
	* gdb.cp/cmpd-minsyms.exp: Use standard_testfile.
	* gdb.cp/converts.exp: Use standard_testfile.
	* gdb.cp/cp-relocate.exp: Use standard_testfile.
	* gdb.cp/cpcompletion.exp: Use standard_testfile,
	prepare_for_testing.
	* gdb.cp/cpexprs.exp: Use standard_testfile, prepare_for_testing.
	* gdb.cp/cplabel.exp: Use standard_testfile.
	* gdb.cp/cplusfuncs.exp: Use standard_testfile,
	prepare_for_testing.
	* gdb.cp/ctti.exp: Use standard_testfile, prepare_for_testing.
	* gdb.cp/derivation.exp: Use standard_testfile,
	prepare_for_testing.
	* gdb.cp/destrprint.exp: Use standard_testfile.
	* gdb.cp/dispcxx.exp: Use standard_testfile.
	* gdb.cp/exception.exp: Use standard_testfile,
	prepare_for_testing.
	* gdb.cp/expand-psymtabs-cxx.exp: Use standard_testfile.
	* gdb.cp/extern-c.exp: Use standard_testfile,
	prepare_for_testing.
	* gdb.cp/formatted-ref.exp: Use standard_testfile,
	prepare_for_testing.
	* gdb.cp/fpointer.exp: Use standard_testfile.
	* gdb.cp/gdb1355.exp: Use standard_testfile, prepare_for_testing.
	* gdb.cp/gdb2384.exp: Use standard_testfile, clean_restart,
	standard_output_file.
	* gdb.cp/gdb2495.exp: Use standard_testfile, prepare_for_testing.
	* gdb.cp/hang.exp: Use standard_testfile, prepare_for_testing.
	* gdb.cp/infcall-dlopen.exp: Use standard_testfile,
	standard_output_file.
	* gdb.cp/inherit.exp: Use standard_testfile, prepare_for_testing.
	(do_tests): Update.
	* gdb.cp/koenig.exp: Use standard_testfile.
	* gdb.cp/local.exp: Use standard_testfile, prepare_for_testing.
	* gdb.cp/m-data.exp: Use standard_testfile, prepare_for_testing.
	* gdb.cp/m-static.exp: Use standard_testfile,
	prepare_for_testing.
	* gdb.cp/mb-ctor.exp: Use standard_testfile, prepare_for_testing.
	* gdb.cp/mb-inline.exp: Use standard_testfile,
	prepare_for_testing.
	* gdb.cp/mb-templates.exp: Use standard_testfile,
	prepare_for_testing.
	* gdb.cp/member-ptr.exp: Use standard_testfile,
	prepare_for_testing.
	* gdb.cp/meth-typedefs.exp: Use standard_testfile.
	* gdb.cp/method.exp: Use standard_testfile, prepare_for_testing.
	* gdb.cp/method2.exp: Use standard_testfile.
	* gdb.cp/minsym-fallback.exp: Use standard_testfile,
	standard_output_file.
	* gdb.cp/misc.exp: Use standard_testfile, prepare_for_testing.
	(do_tests): Update.
	* gdb.cp/namespace-enum.exp: Use standard_testfile,
	prepare_for_testing.
	* gdb.cp/namespace-nested-import.exp: Use standard_testfile,
	prepare_for_testing.
	* gdb.cp/namespace.exp: Use standard_testfile,
	prepare_for_testing.
	* gdb.cp/nextoverthrow.exp: Use standard_testfile.
	* gdb.cp/no-dmgl-verbose.exp: Use standard_testfile.
	* gdb.cp/nsdecl.exp: Use standard_testfile, prepare_for_testing.
	* gdb.cp/nsimport.exp: Use standard_testfile,
	prepare_for_testing.
	* gdb.cp/nsnested.exp: Use standard_testfile.
	* gdb.cp/nsnoimports.exp: Use standard_testfile.
	* gdb.cp/nsrecurs.exp: Use standard_testfile,
	prepare_for_testing.
	* gdb.cp/nsstress.exp: Use standard_testfile,
	prepare_for_testing.
	* gdb.cp/nsusing.exp: Use standard_testfile, prepare_for_testing.
	* gdb.cp/operator.exp: Use standard_testfile.
	* gdb.cp/oranking.exp: Use standard_testfile.
	* gdb.cp/overload-const.exp: Use standard_testfile.
	* gdb.cp/overload.exp: Use standard_testfile,
	prepare_for_testing.
	* gdb.cp/ovldbreak.exp: Use standard_testfile.
	* gdb.cp/ovsrch.exp: Use standard_testfile.
	* gdb.cp/paren-type.exp: Use standard_testfile.
	* gdb.cp/pass-by-ref.exp: Use standard_testfile,
	prepare_for_testing.
	* gdb.cp/pr-1023.exp: Use standard_testfile, prepare_for_testing.
	* gdb.cp/pr-1210.exp: Use standard_testfile, prepare_for_testing.
	* gdb.cp/pr-574.exp: Use standard_testfile, prepare_for_testing.
	* gdb.cp/pr10687.exp: Use standard_testfile, clean_restart.
	* gdb.cp/pr10728.exp: Use standard_testfile,
	standard_output_file.
	* gdb.cp/pr12028.exp: Use standard_testfile.
	* gdb.cp/pr9067.exp: Use standard_testfile, prepare_for_testing.
	* gdb.cp/pr9167.exp: Use standard_testfile.
	* gdb.cp/pr9631.exp: Use standard_testfile, prepare_for_testing.
	* gdb.cp/printmethod.exp: Use standard_testfile,
	prepare_for_testing.
	* gdb.cp/psmang.exp: Use standard_testfile, clean_restart.
	* gdb.cp/psymtab-parameter.exp: Use standard_testfile.
	* gdb.cp/ptype-cv-cp.exp: Use standard_testfile.
	* gdb.cp/re-set-overloaded.exp: Use standard_testfile,
	standard_output_file.
	* gdb.cp/readnow-language.exp: Use standard_testfile.
	* gdb.cp/ref-params.exp: Use standard_testfile, build_executable.
	(gdb_start_again): Use clean_restart.
	* gdb.cp/ref-types.exp: Use standard_testfile,
	prepare_for_testing.
	* gdb.cp/rtti.exp: Use standard_testfile, prepare_for_testing.
	* gdb.cp/shadow.exp: Use standard_testfile, prepare_for_testing.
	* gdb.cp/smartp.exp: Use standard_testfile.
	* gdb.cp/static-method.exp: Use standard_testfile.
	* gdb.cp/static-print-quit.exp: Use standard_testfile.
	* gdb.cp/temargs.exp: Use standard_testfile.
	* gdb.cp/templates.exp: Use standard_testfile,
	prepare_for_testing.
	(do_tests): Update.
	* gdb.cp/try_catch.exp: Use standard_testfile,
	prepare_for_testing.
	* gdb.cp/typedef-operator.exp: Use standard_testfile.
	* gdb.cp/userdef.exp: Use standard_testfile, prepare_for_testing.
	* gdb.cp/virtbase.exp: Use standard_testfile,
	prepare_for_testing.
	* gdb.cp/virtfunc.exp: Use standard_testfile,
	prepare_for_testing.
	(do_tests): Update.
	* gdb.cp/virtfunc2.exp: Use standard_testfile,
	prepare_for_testing.

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

	* lib/gdb.exp (standard_testfile): Unset output variables from
	earlier invocations.

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

	* gdb.mi/gdb2549.exp: Remove -DFAKEARGV from compilation flags.
	* gdb.mi/mi-async.exp, gdb.mi/mi-basics.exp: Likewise.
	* gdb.mi/mi-break.exp, gdb.mi/mi-cli.exp: Likewise.
	* gdb.mi/mi-console.exp, gdb.mi/mi-disassemble.exp: Likewise.
	* gdb.mi/mi-eval.exp, gdb.mi/mi-file.exp: Likewise.
	* gdb.mi/mi-read-memory.exp, gdb.mi/mi-regs.exp: Likewise.
	* gdb.mi/mi-return.exp, gdb.mi/mi-reverse.exp: Likewise.
	* gdb.mi/mi-simplerun.exp, gdb.mi/mi-stack.exp: Likewise.
	* gdb.mi/mi-stepi.exp, gdb.mi/mi-syn-frame.exp: Likewise.
	* gdb.mi/mi-until.exp, gdb.mi/mi-var-block.exp: Likewise.
	* gdb.mi/mi-var-child.exp, gdb.mi/mi-var-cmd.exp: Likewise.
	* gdb.mi/mi-var-display.exp: Likewise.
	* gdb.mi/mi-var-invalidate.exp: Likewise.
	* gdb.mi/mi-watch.exp, gdb.mi/mi2-basics.exp: Likewise.
	* gdb.mi/mi2-break.exp, gdb.mi/mi2-cli.exp: Likewise.
	* gdb.mi/mi2-console.exp: Likewise.
	* gdb.mi/mi2-disassemble.exp: Likewise.
	* gdb.mi/mi2-eval.exp, gdb.mi/mi2-file.exp: Likewise.
	* gdb.mi/mi2-read-memory.exp: Likewise.
	* gdb.mi/mi2-regs.exp, gdb.mi/mi2-return.exp: Likewise.
	* gdb.mi/mi2-simplerun.exp: Likewise.
	* gdb.mi/mi2-stack.exp, gdb.mi/mi2-stepi.exp: Likewise.
	* gdb.mi/mi2-syn-frame.exp: Likewise.
	* gdb.mi/mi2-until.exp, gdb.mi/mi2-var-block.exp: Likewise.
	* gdb.mi/mi2-var-child.exp, gdb.mi/mi2-var-cmd.exp: Likewise.
	* gdb.mi/mi2-var-display.exp, gdb.mi/mi2-watch.exp: Likewise.

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

	* gdb.base/whatis.exp: Add error checks for improper 'void' uses.
	* gdb.base/callfuncs.exp: Add cast-based test.
	* gdb.base/callfuncs.c (voidfunc): New function.

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

	* gdb.dwarf2/dw4-sig-type-unused.S: Fix typo.

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

	Fix XFAIL compatibility with old i386 systems.
	* gdb.base/stale-infcall.exp (test system longjmp tracking support):
	Check also 'Cannot insert breakpoint 0'.

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

	PR 14321
	* gdb.base/find.exp
	(find int64_search_buf, +64/8*100, int64_search_buf): New test.

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

	* gdb.base/whatis.exp: Add test.

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

	* gdb.base/whatis.exp: Add regression test.

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

	* gdb.base/whatis.exp: Add tests.

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

	PR 12649
	* gdb.base/dprintf.exp (Set dprintf style to agent): Add missing
	gdb_test_multiple $gdb_prompt terminator.

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

	* gdb.mi/mi-reverse.exp: Use supports_reverse and
	supports_process_record.

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

	* gdb.ada/packed_tagged/comp_bug.adb: Convert to unix text line
	endings.
	* gdb.mi/mi-reverse.exp: Convert to unix text line endings.

2012-07-03  Stan Shebs  <stan@codesourcery.com>

	* gdb.base/info-os.c (main): Retry resource acquisition until an
	available one is found.
	* gdb.base/info-os.exp: Collect resource keys from the program
	and use them in matching.

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

	* gdb.threads/gcore-thread.exp: Remove variable libthread_db_seen.
	Wrap the test into loop for corefile and core0file.

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

	* gdb.dwarf2/fission-reread.S: Remove .section attributes.
	Change CU pointer size to 4 bytes, adjust .8byte to .4byte.  Remove
	.note.GNU-stack.

	* gdb.dwarf2/fission-reread.S: Change # comments to /* */ comments.

2012-07-02  Sergio Durigan Junior  <sergiodj@redhat.com>

	* gdb.base/help.exp (help b, help br, help bre, help brea, help
	break): Include help message for the new `-probe' and `-probe-stap'
	options.

2012-07-02  Stan Shebs  <stan@codesourcery.com>

	* gdb.base/dprintf.exp: Add agent style tests.

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

	* gdb.base/stale-infcall.c (infcall): New label test-next.
	(main): New labels test-pass and test-fail.
	* gdb.base/stale-infcall.exp: Continue to test-next.  Put breakpoint
	$test_fail_bpnum to test-fail.
	(test system longjmp tracking support): New test.
	Delete $test_fail_bpnum.
	* lib/gdb.exp (gdb_continue_to_breakpoint): Accept also Temporary
	breakpoint.

2012-06-30  Doug Evans  <dje@google.com>

	* gdb.dwarf2/fission-reread.S: New file.
	* gdb.dwarf2/fission-reread.exp: New file.

2012-06-28  Stan Shebs  <stan@codesourcery.com>

	* gdb.mi/mi-logging.exp: New file.

2012-06-28  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Pedro Alves  <palves@redhat.com>

	* gdb.threads/siginfo-threads.exp: New file.
	* gdb.threads/siginfo-threads.c: New file.
	* gdb.threads/sigstep-threads.exp: New file.
	* gdb.threads/sigstep-threads.c: New file.

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

	* gdb.go/package.exp: Partially revert earlier patch; use
	gdb_compile again.  Use standard_output_file.

2012-06-27  Doug Evans  <dje@google.com>

	* gdb.dwarf2/fission-base.c: New file.
	* gdb.dwarf2/fission-base.S: New file.
	* gdb.dwarf2/fission-base.exp: New file.

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

	* gdb.dwarf2/callframecfa.exp: Replace $testname by $testfile.

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

	* gdb.base/macscp1.c (macscp_expr): Add breakpoint comment.
	* gdb.base/macscp.exp (maybe_kfail): Add test for macro scope.

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

	* gdb.dwarf2/pr10770.exp: Use standard_testfile.
	* gdb.dwarf2/dw2-var-zero-addr.exp: Use standard_testfile.
	* gdb.dwarf2/dw2-param-error.exp: Use standard_testfile.
	* gdb.dwarf2/dw2-op-call.exp: Use standard_testfile.
	* gdb.dwarf2/dw2-inline-param.exp: Use standard_testfile,
	prepare_for_testing.
	* gdb.dwarf2/dw2-inline-break.exp: Use standard_testfile.
	* gdb.dwarf2/dw2-ifort-parameter.exp: Use standard_testfile.
	* gdb.dwarf2/dw2-cp-infcall-ref-static.exp: Use
	standard_testfile.
	* gdb.dwarf2/dw2-case-insensitive.exp: Use standard_testfile.
	* gdb.dwarf2/dw4-sig-types.exp: Use standard_testfile.
	* gdb.dwarf2/dw2-objfile-overlap.exp: Use standard_testfile.
	* gdb.dwarf2/callframecfa.exp: Use standard_testfile,
	prepare_for_testing.
	* gdb.dwarf2/dup-psym.exp: Use standard_testfile.
	* gdb.dwarf2/dw2-ada-ffffffff.exp: Use standard_testfile.
	* gdb.dwarf2/dw2-anonymous-func.exp: Use standard_testfile.
	* gdb.dwarf2/dw2-bad-parameter-type.exp: Use standard_testfile.
	* gdb.dwarf2/dw2-basic.exp: Use standard_testfile.
	* gdb.dwarf2/dw2-compressed.exp: Use standard_testfile.
	* gdb.dwarf2/dw2-const.exp: Use standard_testfile.
	* gdb.dwarf2/dw2-cu-size.exp: Use standard_testfile.
	* gdb.dwarf2/dw2-double-set-die-type.exp: Use standard_testfile.
	* gdb.dwarf2/dw2-empty-namespace.exp: Use standard_testfile.
	* gdb.dwarf2/dw2-empty-pc-range.exp: Use standard_testfile.
	* gdb.dwarf2/dw2-filename.exp: Use standard_testfile.
	* gdb.dwarf2/dw2-icc-opaque.exp: Use standard_testfile.
	* gdb.dwarf2/dw2-inheritance.exp: Use standard_testfile.
	* gdb.dwarf2/dw2-intercu.exp: Use standard_testfile.
	* gdb.dwarf2/dw2-intermix.exp: Use standard_testfile.
	* gdb.dwarf2/dw2-linkage-name-trust.exp: Use standard_testfile.
	* gdb.dwarf2/dw2-modula2-self-type.exp: Use standard_testfile.
	* gdb.dwarf2/dw2-namespaceless-anonymous.exp: Use standard_testfile.
	* gdb.dwarf2/dw2-op-stack-value.exp: Use standard_testfile.
	* gdb.dwarf2/dw2-producer.exp: Use standard_testfile.
	* gdb.dwarf2/dw2-ranges.exp: Use standard_testfile,
	standard_output_file.
	* gdb.dwarf2/dw2-ref-missing-frame.exp: Use standard_testfile,
	standard_output_file.
	* gdb.dwarf2/dw2-restore.exp: Use standard_testfile.
	* gdb.dwarf2/dw2-simple-locdesc.exp: Use standard_testfile.
	* gdb.dwarf2/dw2-skip-prologue.exp: Use standard_testfile.
	* gdb.dwarf2/dw2-stack-boundary.exp: Use standard_testfile.
	* gdb.dwarf2/dw2-strp.exp: Use standard_testfile.
	* gdb.dwarf2/dw4-sig-type-unused.exp: Use standard_testfile.
	* gdb.dwarf2/implptr-64bit.exp: Use standard_testfile.
	* gdb.dwarf2/implptr-optimized-out.exp: Use standard_testfile.
	* gdb.dwarf2/implptr.exp: Use standard_testfile.
	* gdb.dwarf2/mac-fileno.exp: Use standard_testfile.
	* gdb.dwarf2/member-ptr-forwardref.exp: Use standard_testfile.
	* gdb.dwarf2/pieces.exp: Use standard_testfile.
	* gdb.dwarf2/pr11465.exp: Use standard_testfile.
	* gdb.dwarf2/pr13961.exp: Use standard_testfile.
	* gdb.dwarf2/valop.exp: Use standard_testfile,
	prepare_for_testing.

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

	* gdb.python/python.exp: Fix regexps in pagination tests.

2012-06-26  Siva Chandra Reddy  <sivachandra@google.com>

	* gdb.python/py-symtab.exp: Add tests to test the new attribute
	'last' of gdb.Symtab_and_line.
	* gdb.python/py-symbol.c: Move break point comment to enable
	testing of gdb.Symtab_and_line.last.

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

	* gdb.threads/step.c: Remove.
	* gdb.threads/step.exp: Remove.
	* gdb.threads/step2.exp: Remove.

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

	* gdb.threads/watchpoint-fork.exp (test): Use
	standard_output_file.  Don't declare objdir.
	* gdb.threads/attach-into-signal.exp: Use standard_testfile,
	standard_output_file.
	* gdb.threads/attach-stopped.exp: Use standard_testfile.
	* gdb.threads/bp_in_thread.exp: Use standard_testfile,
	clean_restart.  Remove incdir.
	* gdb.threads/corethreads.exp: Use standard_testfile.
	* gdb.threads/execl.exp: Use standard_testfile,
	standard_output_file, clean_restart.
	* gdb.threads/fork-child-threads.exp: Use standard_testfile,
	clean_restart.
	* gdb.threads/fork-thread-pending.exp: Use standard_testfile,
	clean_restart.
	* gdb.threads/gcore-thread.exp: Use standard_testfile.  Remove
	incdir.
	* gdb.threads/hand-call-in-threads.exp: Use standard_testfile,
	clean_restart.  Remove incdir.
	* gdb.threads/ia64-sigill.exp: Use standard_testfile.
	* gdb.threads/interrupted-hand-call.exp: Use standard_testfile,
	clean_restart.  Remove incdir.
	* gdb.threads/killed.exp: Use standard_testfile, clean_restart.
	Remove incdir.
	* gdb.threads/leader-exit.exp: Use standard_testfile.
	* gdb.threads/linux-dp.exp: Use standard_testfile, clean_restart.
	* gdb.threads/local-watch-wrong-thread.exp: Use standard_testfile,
	clean_restart.
	* gdb.threads/manythreads.exp: Use standard_testfile,
	clean_restart.  Remove incdir.
	* gdb.threads/multi-create.exp: Use standard_testfile,
	clean_restart.
	* gdb.threads/no-unwaited-for-left.exp: Use standard_testfile.
	* gdb.threads/non-ldr-exc-1.exp: Use standard_testfile.
	* gdb.threads/non-ldr-exc-2.exp: Use standard_testfile.
	* gdb.threads/non-ldr-exc-3.exp: Use standard_testfile.
	* gdb.threads/non-ldr-exc-4.exp: Use standard_testfile.
	* gdb.threads/pending-step.exp: Use standard_testfile,
	clean_restart.  Remove incdir.
	* gdb.threads/print-threads.exp: Use standard_testfile,
	clean_restart.  Remove incdir.
	* gdb.threads/pthread_cond_wait.exp: Use standard_testfile,
	clean_restart.  Remove incdir.
	* gdb.threads/pthreads.exp: Use standard_testfile, clean_restart.
	Remove incdir.
	* gdb.threads/schedlock.exp: Use standard_testfile.  Remove
	incdir.
	* gdb.threads/sigthread.exp: Use standard_testfile,
	clean_restart.
	* gdb.threads/staticthreads.exp: Use standard_testfile,
	clean_restart.  Remove incdir.
	* gdb.threads/switch-threads.exp: Use standard_testfile,
	clean_restart.  Remove incdir.
	* gdb.threads/thread-execl.exp: Use standard_testfile,
	clean_restart.  Remove incdir.
	* gdb.threads/thread-find.exp: Use standard_testfile,
	clean_restart.
	* gdb.threads/thread-specific.exp: Use standard_testfile,
	clean_restart.  Remove incdir.
	* gdb.threads/thread-unwindonsignal.exp: Use standard_testfile,
	clean_restart.  Remove incdir.
	* gdb.threads/thread_check.exp: Use standard_testfile,
	clean_restart.  Remove incdir.
	* gdb.threads/thread_events.exp: Use standard_testfile.  Remove
	incdir.
	* gdb.threads/threadapply.exp: Use standard_testfile,
	clean_restart.  Remove incdir.
	* gdb.threads/threxit-hop-specific.exp: Use standard_testfile,
	clean_restart.  Remove incdir.
	* gdb.threads/tls-nodebug.exp: Use standard_testfile,
	clean_restart.
	* gdb.threads/tls-shared.exp: Use standard_testfile,
	clean_restart, standard_output_file.
	* gdb.threads/tls-var.exp: Use standard_testfile,
	standard_output_file.
	* gdb.threads/tls.exp: Use standard_testfile, clean_restart.
	Remove incdir.
	* gdb.threads/watchthreads-reorder.exp: Use standard_testfile.
	* gdb.threads/watchthreads.exp: Use standard_testfile.  Remove
	incdir.
	* gdb.threads/watchthreads2.exp: Use standard_testfile,
	clean_restart.  Remove incdir.

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

	* gdb.trace/actions.exp: Use standard_testfile.
	* gdb.trace/ax.exp: Use standard_testfile.
	* gdb.trace/backtrace.exp: Use standard_testfile.
	* gdb.trace/change-loc.exp: Use standard_testfile.
	* gdb.trace/circ.exp: Use standard_testfile, prepare_for_testing.
	* gdb.trace/collection.exp: Use standard_testfile,
	prepare_for_testing.
	* gdb.trace/deltrace.exp: Use standard_testfile.
	* gdb.trace/disconnected-tracing.exp: Use standard_testfile.
	* gdb.trace/ftrace.exp: Use standard_testfile.
	* gdb.trace/infotrace.exp: Use standard_testfile.
	* gdb.trace/packetlen.exp: Use standard_testfile.
	* gdb.trace/passc-dyn.exp: Use standard_testfile.
	* gdb.trace/passcount.exp: Use standard_testfile.
	* gdb.trace/pending.exp: Use standard_testfile.
	* gdb.trace/report.exp: Use standard_testfile.
	* gdb.trace/save-trace.exp: Use standard_testfile.
	* gdb.trace/stap-trace.exp: Use standard_testfile.
	* gdb.trace/status-stop.exp: Use standard_testfile.
	* gdb.trace/strace.exp: Use standard_testfile.
	* gdb.trace/tfile.exp: Use standard_testfile.
	* gdb.trace/tfind.exp: Use standard_testfile.
	* gdb.trace/trace-break.exp: Use standard_testfile.
	* gdb.trace/trace-mt.exp: Use standard_testfile.
	* gdb.trace/tracecmd.exp: Use standard_testfile.
	* gdb.trace/tspeed.exp: Use standard_testfile.
	* gdb.trace/tstatus.exp: Use standard_testfile.
	* gdb.trace/tsv.exp: Use standard_testfile.
	* gdb.trace/unavailable.exp: Use standard_testfile,
	prepare_for_testing.
	* gdb.trace/while-dyn.exp: Use standard_testfile.
	* gdb.trace/while-stepping.exp: Use standard_testfile.

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

	* gdb.reverse/break-precsave.exp: Use standard_testfile.
	* gdb.reverse/break-reverse.exp: Use standard_testfile.
	* gdb.reverse/consecutive-precsave.exp: Use standard_testfile.
	* gdb.reverse/consecutive-reverse.exp: Use standard_testfile.
	* gdb.reverse/finish-precsave.exp: Use standard_testfile.
	* gdb.reverse/finish-reverse-bkpt.exp: Use standard_testfile.
	* gdb.reverse/finish-reverse.exp: Use standard_testfile.
	* gdb.reverse/i386-precsave.exp: Use standard_testfile,
	prepare_for_testing.
	* gdb.reverse/i386-reverse.exp: Use standard_testfile,
	prepare_for_testing.
	* gdb.reverse/i386-sse-reverse.exp: Use standard_testfile,
	prepare_for_testing.
	* gdb.reverse/i387-env-reverse.exp: Use standard_testfile,
	prepare_for_testing.
	* gdb.reverse/i387-stack-reverse.exp: Use standard_testfile,
	prepare_for_testing
	* gdb.reverse/machinestate-precsave.exp: Use standard_testfile.
	* gdb.reverse/machinestate.exp: Use standard_testfile.
	* gdb.reverse/next-reverse-bkpt-over-sr.exp: Use standard_testfile.
	* gdb.reverse/sigall-precsave.exp: Use standard_testfile,
	build_executable.
	* gdb.reverse/sigall-reverse.exp: Use standard_testfile,
	build_executable.
	* gdb.reverse/solib-precsave.exp: Use standard_testfile,
	standard_output_file.
	* gdb.reverse/solib-reverse.exp: Use standard_testfile,
	standard_output_file.
	* gdb.reverse/step-precsave.exp: Use standard_testfile.
	* gdb.reverse/step-reverse.exp: Use standard_testfile.
	* gdb.reverse/until-precsave.exp: Use standard_testfile.
	* gdb.reverse/until-reverse.exp: Use standard_testfile.
	* gdb.reverse/watch-precsave.exp: Use standard_testfile.
	* gdb.reverse/watch-reverse.exp: Use standard_testfile.

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

	* gdb.stabs/weird.exp: Remove directory-checking code.  Use
	standard_output_file.
	* gdb.stabs/exclfwd.exp: Use standard_testfile,
	prepare_for_testing.  Remove directory-checking code.

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

	* gdb.multi/watchpoint-multi.exp: Use standard_testfile.
	* gdb.multi/bkpt-multi-exec.exp: Use standard_output_file.  Use
	build_executable, not prepare_for_testing.
	* gdb.multi/base.exp: Use standard_output_file.  Use
	build_executable,  not prepare_for_testing.

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

	* gdb.fortran/subarray.exp: Use standard_testfile,
	prepare_for_testing.
	* gdb.fortran/multi-dim.exp: Use standard_testfile.
	* gdb.fortran/module.exp: Use standard_testfile.
	* gdb.fortran/logical.exp: Use standard_testfile.
	* gdb.fortran/library-module.exp: Use standard_testfile,
	standard_output_file.
	* gdb.fortran/derived-type.exp: Use standard_testfile,
	prepare_for_testing.
	* gdb.fortran/complex.exp: Use standard_testfile,
	prepare_for_testing.
	* gdb.fortran/charset.exp: Use standard_testfile.
	* gdb.fortran/array-element.exp: Use standard_testfile,
	prepare_for_testing.

2012-06-25  Keith Seitz  <keiths@redhat.com>

	* gdb.mi/mi-break.exp (test_rbreak_creation_and_listing):
	Change rbreak-related tests to KFAIL and add bugzilla numbers.

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

	* gdb.pascal/integers.exp: Use standard_testfile, clean_restart.
	* gdb.pascal/hello.exp: Use standard_testfile, clean_restart.
	* gdb.pascal/gdb11492.exp: Use standard_testfile, clean_restart.
	* gdb.pascal/floats.exp: Use standard_testfile, clean_restart.

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

	* gdb.linespec/ls-errs.exp: Use standard_testfile.
	* gdb.linespec/ls-dollar.exp: Use standard_testfile.
	* gdb.linespec/linespec.exp: Use standard_testfile.

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

	* gdb.modula2/unbounded-array.exp: Use standard_testfile,
	prepare_for_testing.

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

	* gdb.opt/clobbered-registers-O2.exp: Use standard_testfile,
	prepare_for_testing.
	* gdb.opt/inline-break.exp: Use standard_testfile,
	prepare_for_testing.
	* gdb.opt/inline-bt.exp: Use standard_testfile,
	prepare_for_testing.
	* gdb.opt/inline-cmds.exp: Use standard_testfile,
	prepare_for_testing.
	* gdb.opt/inline-locals.exp: Use standard_testfile,
	prepare_for_testing.

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

	* gdb.asm/asm-source.exp: Use standard_output_file,
	standard_testfile.  Construct .o files in proper subdir.

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

	* gdb.server/ext-attach.exp: Use standard_testfile,
	prepare_for_testing.
	* gdb.server/ext-run.exp: Use standard_testfile,
	build_executable.
	* gdb.server/file-transfer.exp: Use standard_testfile,
	prepare_for_testing.
	* gdb.server/server-exec-info.exp: Use standard_testfile.
	* gdb.server/server-mon.exp: Use standard_testfile,
	prepare_for_testing.
	* gdb.server/server-run.exp: Use standard_testfile,
	build_executable.
	* gdb.server/solib-list.exp: Use standard_testfile,
	standard_output_file.

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

	* lib/gdb.exp (standard_output_file): Use "file join".
	* gdb.go/chan.exp: Use standard_testfile.
	* gdb.go/handcall.exp: Use standard_testfile.
	* gdb.go/hello.exp: Use standard_testfile.
	* gdb.integers/chan.exp: Use standard_testfile.
	* gdb.go/methods.exp: Use standard_testfile.
	* gdb.go/package.exp: Use standard_testfile.
	* gdb.go/strings.exp: Use standard_testfile.
	* gdb.go/types.exp: Use standard_testfile.
	* gdb.go/unsafe.exp: Use standard_testfile.

2012-06-25  Greta Yorsh  <greta.yorsh@arm.com>

	* gdb.arch/arm-disp-step.S: Fix use of .global directives.

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

	Fix regression by the previous commit.
	* gdb.python/lib-types.exp: Add c++ to the compilation flags.

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

	* gdb.python/lib-types.exp: Use standard_testfile,
	prepare_for_testing.
	* gdb.python/py-block.exp: Use standard_testfile.
	* gdb.python/py-breakpoint.exp: Use standard_testfile.
	* gdb.python/py-events.exp: Use standard_testfile,
	standard_output_file.
	* gdb.python/py-evsignal.exp: Use standard_testfile.
	* gdb.python/py-evethreads.exp: Use standard_testfile.
	* gdb.python/py-explore-cc.exp: Use standard_testfile.
	* gdb.python/py-explore.exp: Use standard_testfile.
	* gdb.python/py-finish-breakpoint.exp: Use standard_testfile,
	standard_output_file.
	* gdb.python/py-finish-breakpoint2.exp: Use standard_testfile,
	prepare_for_testing.
	* gdb.python/py-frame-inline.exp: Use standard_testfile.
	* gdb.python/py-frame.exp: Use standard_testfile.
	* gdb.python/py-inferior.exp: Use standard_testfile.
	* gdb.python/py-infthread.exp: Use standard_testfile.
	* gdb.python/py-mi.exp: Use standard_testfile.
	* gdb.python/py-objfile-script.exp: Use standard_testfile,
	build_executable.
	* gdb.python/py-objfile.exp: Use standard_testfile.
	* gdb.python/py-pp-maint.exp: Use standard_testfile,
	prepare_for_testing.
	* gdb.python/py-prettyprint.exp: Use standard_testfile.
	* gdb.python/py-progspace.exp: Use standard_testfile,
	build_executable.
	* gdb.python/py-prompt.exp: Use standard_testfile,
	build_executable.
	* gdb.python/py-section-script.exp: Use standard_testfile,
	build_executable.
	* gdb.python/py-shared.exp: Use standard_testfile,
	standard_output_file, clean_restart.
	* gdb.python/py-symbol.exp: Use standard_output_file,
	prepare_for_testing.
	* gdb.python/py-symtab.exp: Use standard_output_file,
	prepare_for_testing
	* gdb.python/py-template.exp: Use standard_testfile.
	* gdb.python/py-type.exp: Use standard_testfile.
	* gdb.python/py-value-cc.exp: Use standard_testfile.
	* gdb.python/py-value.exp: Use standard_testfile.
	* gdb.python/python.exp: Use standard_testfile, build_executable.

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

	* gdb.objc/basicclass.exp: Use standard_testfile.
	(do_objc_tests): Don't declare objdir.
	* gdb.objc/nondebug.exp: Use standard_testfile.
	(do_objc_tests): Don't declare objdir.
	* gdb.objc/objcdecode.exp: Use standard_testfile.
	(do_objc_tests): Don't declare objdir.

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

	* gdb.java/jmain.exp: Use standard_testfile.
	* gdb.java/jmisc.exp: Use standard_testfile.
	* gdb.java/jnpe.exp: Use standard_testfile.
	* gdb.java/jprint.exp: Use standard_testfile.

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

	* lib/gdb.exp (default_gdb_init): Set gdb_test_file_name.
	(standard_output_file, standard_testfile): New procs.
	(build_executable, clean_restart): Use standard_output_file.

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

	* boards/native-gdbserver.exp: New proc ${board}_exec.
	* boards/native-stdio-gdbserver.exp: Likewise.

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

	* lib/gdb.exp (skip_altivec_tests, skip_vsx_tests)
	(build_executable): Update.
	(get_compiler_info): Remove 'binfile' argument.
	* gdb.ada/arrayidx.exp: Update.
	* gdb.ada/null_array.exp: Update.
	* gdb.arch/altivec-abi.exp: Update.
	* gdb.arch/altivec-regs.exp: Update.
	* gdb.arch/amd64-byte.exp: Update.
	* gdb.arch/amd64-dword.exp: Update.
	* gdb.arch/amd64-word.exp: Update.
	* gdb.arch/i386-avx.exp: Update.
	* gdb.arch/i386-byte.exp: Update.
	* gdb.arch/i386-sse.exp: Update.
	* gdb.arch/i386-word.exp: Update.
	* gdb.arch/ppc-dfp.exp: Update.
	* gdb.arch/ppc-fp.exp: Update.
	* gdb.arch/vsx-regs.exp: Update.
	* gdb.base/all-bin.exp: Update.
	* gdb.base/annota1.exp: Update.
	* gdb.base/async.exp: Update.
	* gdb.base/attach.exp: Update.
	* gdb.base/break-interp.exp: Update.
	* gdb.base/call-ar-st.exp: Update.
	* gdb.base/call-rt-st.exp: Update.
	* gdb.base/call-sc.exp: Update.
	* gdb.base/callfuncs.exp: Update.
	* gdb.base/catch-load.exp: Update.
	* gdb.base/completion.exp: Update.
	* gdb.base/complex.exp: Update.
	* gdb.base/condbreak.exp: Update.
	* gdb.base/consecutive.exp: Update.
	* gdb.base/constvars.exp: Update.
	* gdb.base/corefile.exp: Update.
	* gdb.base/eval-skip.exp: Update.
	* gdb.base/expand-psymtabs.exp: Update.
	* gdb.base/exprs.exp: Update.
	* gdb.base/fileio.exp: Update.
	* gdb.base/fixsection.exp: Update.
	* gdb.base/funcargs.exp: Update.
	* gdb.base/gdb11530.exp: Update.
	* gdb.base/gdb1555.exp: Update.
	* gdb.base/gnu-ifunc.exp: Update.
	* gdb.base/gnu_vector.exp: Update.
	* gdb.base/info-macros.exp: Update.
	* gdb.base/jit-simple.exp: Update.
	* gdb.base/jit-so.exp: Update.
	* gdb.base/jit.exp: Update.
	* gdb.base/langs.exp: Update.
	* gdb.base/list.exp: Update.
	* gdb.base/logical.exp: Update.
	* gdb.base/long_long.exp: Update.
	* gdb.base/longjmp.exp: Update.
	* gdb.base/macscp.exp: Update.
	* gdb.base/mips_pro.exp: Update.
	* gdb.base/miscexprs.exp: Update.
	* gdb.base/morestack.exp: Update.
	* gdb.base/nodebug.exp: Update.
	* gdb.base/opaque.exp: Update.
	* gdb.base/pc-fp.exp: Update.
	* gdb.base/pending.exp: Update.
	* gdb.base/permissions.exp: Update.
	* gdb.base/pointers.exp: Update.
	* gdb.base/prelink.exp: Update.
	* gdb.base/printcmds.exp: Update.
	* gdb.base/psymtab.exp: Update.
	* gdb.base/ptype.exp: Update.
	* gdb.base/relational.exp: Update.
	* gdb.base/scope.exp: Update.
	* gdb.base/setvar.exp: Update.
	* gdb.base/shlib-call.exp: Update.
	* gdb.base/shreloc.exp: Update.
	* gdb.base/signals.exp: Update.
	* gdb.base/sizeof.exp: Update.
	* gdb.base/so-impl-ld.exp: Update.
	* gdb.base/so-indr-cl.exp: Update.
	* gdb.base/solib-disc.exp: Update.
	* gdb.base/solib-display.exp: Update.
	* gdb.base/solib-nodir.exp: Update.
	* gdb.base/solib-overlap.exp: Update.
	* gdb.base/solib-symbol.exp: Update.
	* gdb.base/solib-weak.exp: Update.
	* gdb.base/solib.exp: Update.
	* gdb.base/store.exp: Update.
	* gdb.base/structs.exp: Update.
	* gdb.base/structs2.exp: Update.
	* gdb.base/type-opaque.exp: Update.
	* gdb.base/unload.exp: Update.
	* gdb.base/varargs.exp: Update.
	* gdb.base/volatile.exp: Update.
	* gdb.base/watch_thread_num.exp: Update.
	* gdb.base/watchpoint-solib.exp: Update.
	* gdb.base/watchpoint.exp: Update.
	* gdb.base/watchpoints.exp: Update.
	* gdb.base/whatis.exp: Update.
	* gdb.cell/arch.exp: Update.
	* gdb.cell/break.exp: Update.
	* gdb.cell/bt.exp: Update.
	* gdb.cell/core.exp: Update.
	* gdb.cell/data.exp: Update.
	* gdb.cell/ea-cache.exp: Update.
	* gdb.cell/f-regs.exp: Update.
	* gdb.cell/fork.exp: Update.
	* gdb.cell/gcore.exp: Update.
	* gdb.cell/mem-access.exp: Update.
	* gdb.cell/ptype.exp: Update.
	* gdb.cell/registers.exp: Update.
	* gdb.cell/sizeof.exp: Update.
	* gdb.cell/solib-symbol.exp: Update.
	* gdb.cell/solib.exp: Update.
	* gdb.cp/ambiguous.exp: Update.
	* gdb.cp/breakpoint.exp: Update.
	* gdb.cp/bs15503.exp: Update.
	* gdb.cp/casts.exp: Update.
	* gdb.cp/class2.exp: Update.
	* gdb.cp/cpexprs.exp: Update.
	* gdb.cp/cplusfuncs.exp: Update.
	* gdb.cp/ctti.exp: Update.
	* gdb.cp/dispcxx.exp: Update.
	* gdb.cp/gdb1355.exp: Update.
	* gdb.cp/gdb2384.exp: Update.
	* gdb.cp/gdb2495.exp: Update.
	* gdb.cp/infcall-dlopen.exp: Update.
	* gdb.cp/local.exp: Update.
	* gdb.cp/m-data.exp: Update.
	* gdb.cp/m-static.exp: Update.
	* gdb.cp/mb-ctor.exp: Update.
	* gdb.cp/mb-inline.exp: Update.
	* gdb.cp/mb-templates.exp: Update.
	* gdb.cp/member-ptr.exp: Update.
	* gdb.cp/method.exp: Update.
	* gdb.cp/namespace.exp: Update.
	* gdb.cp/nextoverthrow.exp: Update.
	* gdb.cp/nsdecl.exp: Update.
	* gdb.cp/nsrecurs.exp: Update.
	* gdb.cp/nsstress.exp: Update.
	* gdb.cp/nsusing.exp: Update.
	* gdb.cp/pr-1023.exp: Update.
	* gdb.cp/pr-1210.exp: Update.
	* gdb.cp/pr-574.exp: Update.
	* gdb.cp/pr9631.exp: Update.
	* gdb.cp/printmethod.exp: Update.
	* gdb.cp/psmang.exp: Update.
	* gdb.cp/re-set-overloaded.exp: Update.
	* gdb.cp/rtti.exp: Update.
	* gdb.cp/shadow.exp: Update.
	* gdb.cp/templates.exp: Update.
	* gdb.cp/try_catch.exp: Update.
	* gdb.dwarf2/dw2-ranges.exp: Update.
	* gdb.dwarf2/pr10770.exp: Update.
	* gdb.fortran/library-module.exp: Update.
	* gdb.hp/gdb.aCC/optimize.exp: Update.
	* gdb.hp/gdb.aCC/watch-cmd.exp: Update.
	* gdb.hp/gdb.base-hp/callfwmall.exp: Update.
	* gdb.hp/gdb.base-hp/hwwatchbus.exp: Update.
	* gdb.hp/gdb.base-hp/pxdb.exp: Update.
	* gdb.hp/gdb.base-hp/sized-enum.exp: Update.
	* gdb.hp/gdb.base-hp/so-thresh.exp: Update.
	* gdb.hp/gdb.compat/xdb1.exp: Update.
	* gdb.hp/gdb.compat/xdb2.exp: Update.
	* gdb.hp/gdb.compat/xdb3.exp: Update.
	* gdb.hp/gdb.defects/bs14602.exp: Update.
	* gdb.hp/gdb.defects/solib-d.exp: Update.
	* gdb.hp/gdb.objdbg/objdbg01.exp: Update.
	* gdb.hp/gdb.objdbg/objdbg02.exp: Update.
	* gdb.hp/gdb.objdbg/objdbg03.exp: Update.
	* gdb.hp/gdb.objdbg/objdbg04.exp: Update.
	* gdb.mi/gdb792.exp: Update.
	* gdb.mi/mi-pending.exp: Update.
	* gdb.mi/mi-solib.exp: Update.
	* gdb.mi/mi-var-cp.exp: Update.
	* gdb.opt/clobbered-registers-O2.exp: Update.
	* gdb.opt/inline-bt.exp: Update.
	* gdb.opt/inline-cmds.exp: Update.
	* gdb.opt/inline-locals.exp: Update.
	* gdb.python/py-events.exp: Update.
	* gdb.python/py-finish-breakpoint.exp: Update.
	* gdb.python/py-type.exp: Update.
	* gdb.reverse/solib-precsave.exp: Update.
	* gdb.reverse/solib-reverse.exp: Update.
	* gdb.server/solib-list.exp: Update.
	* gdb.stabs/weird.exp: Update.
	* gdb.threads/attach-into-signal.exp: Update.
	* gdb.threads/attach-stopped.exp: Update.
	* gdb.threads/tls-shared.exp: Update.
	* gdb.trace/change-loc.exp: Update.
	* gdb.trace/strace.exp: Update.

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

	* gdb.base/whatis.exp: Add tests.

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

	* gdb.cp/m-static.cc (keepalive): New function.
	(gnu_obj_1::method): Use it.

2012-06-18  Doug Evans  <dje@google.com>

	* gdb.base/info-fun.exp: New file.
	* gdb.base/info-fun.c: New file.
	* gdb.base/info-fun-solib.c: New file.

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

	Remove stale dummy frames.
	* gdb.base/call-signal-resume.exp (maintenance print dummy-frames)
	(maintenance info breakpoints): New tests.
	* gdb.base/stale-infcall.c: New file.
	* gdb.base/stale-infcall.exp: New file.

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

	* gdb.arch/amd64-entry-value-param.S: New file.
	* gdb.arch/amd64-entry-value-param.c: New file.
	* gdb.arch/amd64-entry-value-param.exp: New file.

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

	* gdb.cp/namespace.exp: Add "show lang" test.

2012-06-15  Iain Sandoe <iain@codesourcery.com>

	* gdb.base/list.exp (test_listsize): Remove $use_gdb_stub special
	case. (top level): Use gdb_file_cmd instead of gdb_load.

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

	PR tdep/14222
	* gdb.arch/i386-sse-stack-align.S: New file.
	* gdb.arch/i386-sse-stack-align.c: New file.
	* gdb.arch/i386-sse-stack-align.exp: New file.

2012-06-13  Keith Seitz  <keiths@redhat.com>

	PR breakpoints/13798 and mi/11541
	* gdb.linespec/ls-errs.exp: Add a few more tests for
	filenames with spaces and colons.

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

	PR c++/14177 - Fix parsing TYPENAME:: in parentheses.
	* gdb.cp/cpexprs.cc (class CV, CV::i, ATTRIBUTE_USED, CV_f): New.
	(test_function): Call CV_f.
	* gdb.cp/cpexprs.exp (p 'CV::m(int)', p CV::m(int))
	(p 'CV::m(int) const', p CV::m(int) const, p 'CV::m(int) volatile')
	(p CV::m(int) volatile, p 'CV::m(int) const volatile')
	(p CV::m(int) const volatile, p CV_f(int), p CV_f(CV::t))
	(p CV_f(CV::i)): New tests.

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

	* gdb.base/condbreak.exp: Add tests for "condition" completion.

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

	Fix regression by the "ambiguous linespec" series.
	* gdb.base/break.exp (list marker1, break lineno, delete $bpnum): New
	tests.

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

	* lib/future.exp: Set $use_gdb_compile even if only find_go_linker is
	missing.

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

	* gdb.base/longjmp.c (hidden_longjmp): Move expected catch
	location...
	(main): ...here.

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

	* gdb.trace/strace.exp: Shorten some too-long lines.

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

	* gdb.threads/clone-new-thread-event.c: New file.
	* gdb.threads/clone-new-thread-event.exp: New file.

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

	* gdb.base/dprintf.c (main): Add extra parameter when calling
	printf and fprintf.
	(bar): New function.  It is a dead function, but to ensure
	'malloc' is linked explicitly.

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

	* gdb.base/info-proc.exp: Return if target doesn't support
	'info proc'.

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

	* gdb.base/freebpcmd.exp (set lines): Check valid range of I.
	(run program with breakpoint commands): XFAIl if it is not.

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

	* gdb.base/ctxobj-f.c (GET_VERSION): Introduce local variable
	and add comment.
	* gdb.base/ctxobj-m.c (main): Rewrite, and add comment.
	* gdb.base/ctxobj.exp: Insert breakpoint in ctxobj-f.c using
	"STOP" marker.  Adjust testing strategy to make it work on
	all targets.

	* gdb.base/print-file-var-main.c (main): Rewrite using local
	variables and adjust get_version_2's return value check.
	Add small comment.
	* gdb.base/print-file-var.exp: Insert breakpoint using "STOP"
	marker.  Adjust testing strategy to make it work on all targets.

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

	* gdb.ada/bad-task-bp-keyword: New testcase.

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

	* gdb.base/code_elim.exp (add-symbol-file ${testfile1} 0x100000):
	Simplify it to ...
	(symbol-file ${testfile1}): ... here.
	(test eliminated var my_global_symbol)
	(test eliminated var my_static_symbol)
	(test eliminated var my_global_func, get address of main): Wrap them to
	'single psymtabs' and 'single symtabs'
	(get address of my_global_symbol, get address of my_static_symbol)
	(get address of my_global_func, get address of main): Wrap them to
	'order1' and 'order2'.

	* gdb.base/code_elim.exp
	(add-symbol-file ${testfile1} 0x100000)
	(add-symbol-file ${testfile2} 0x200000): Wrap them to 'order1' and
	'order2'.
	(order1: add-symbol-file ${testfile1} 0x100000)
	(order1: add-symbol-file ${testfile2} 0x200000)
	(order2: add-symbol-file ${testfile2} 0x200000)
	(order2: add-symbol-file ${testfile1} 0x100000): Add -s .data and -s
	.bss as appropriate.

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

	* gdb.server/solib-list-lib.c: New file.
	* gdb.server/solib-list-main.c: New file.
	* gdb.server/solib-list.exp: New file.

2012-05-25  Maciej W. Rozycki  <macro@codesourcery.com>

	* gdb.trace/unavailable.exp (gdb_collect_globals_test): Update
	for 'set print symbol' change.

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

	* gdb.dwarf2/dw2-icc-opaque.S: Add debug_info_seg3 and
	.debug_abbrev_seg3.

2012-05-24  John Steele Scott  <toojays@toojays.net>

	PR symtab/13277: Resolving opaque structures in ICC generated binaries.
	* gdb.dwarf2/dw2-icc-opaque.S: New file.
	* gdb.dwarf2/dw2-icc-opaque.exp: New file.

2012-05-23  Stan Shebs  <stan@codesourcery.com>

	* gdb.mi/mi-info-os.exp: New file.

2012-05-23  Keith Seitz  <keiths@redhat.com>

	* gdb.trace/stap-trace.exp: If compile_stap_bin fails,
	return -1 to suppress the rest of the tests.
	(compile_stap_bin): Return boolean success value.

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

	* gdb.cp/inherit.exp (test_print_mi_members): Expect errors.
	Remove kfails.
	(test_print_mi_member_types): Likewise.

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

	* gdb.base/callfuncs.exp (do_function_calls): Update for 'set
	print symbol' change.

2012-05-18  Thiago Jung Bauermann  <thiago.bauermann@linaro.org>

	* gdb.python/py-prompt.exp: Quit if the target is remote.

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

	Fix ERROR: internal buffer is full.
	* gdb.base/info-os.exp (expect_multiline): New function.
	(get process list, get process groups, get threads)
	(get file descriptors, get internet-domain sockets)
	(get shared-memory regions, get semaphores, get message queues): Use
	it for these tests.

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

	* gdb.mi/mi-var-cmd.exp: Update.
	* gdb.objc/basicclass.exp (do_objc_tests): Update.
	* gdb.cp/virtbase.exp: Update.
	* gdb.cp/classes.exp (test_static_members): Update.
	* gdb.cp/casts.exp: Update.
	* gdb.base/pointers.exp: Update.
	* gdb.base/funcargs.exp (pointer_args): Update.
	(structs_by_reference): Update.
	* gdb.base/find.exp: Update.
	* gdb.base/call-strs.exp: Send "set print symbol off".
	* gdb.base/call-ar-st.exp: Update.
	* gdb.ada/fun_addr.exp: Update.
	* gdb.base/printcmds.exp (test_print_symbol): New proc.
	Call it.
	(test_print_repeats_10, test_print_strings)
	(test_print_char_arrays): Update.

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

	* gdb.base/charset.exp (string_display): Update.

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

	* gdb.mi/mi2-var-display.exp: Update.
	* gdb.mi/mi-var-display.exp: Update.
	* gdb.mi/mi-var-child.exp: Update.
	* gdb.cp/expand-psymtabs-cxx.exp: Update.
	* gdb.cp/cp-relocate.exp (get_func_address): Update.

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

	* info-macros.exp: Pass "debug" to prepare_for_testing.

	* Makefile.in (clean): Remove Fission .dwo and .dwp files.
	* gdb.ada/Makefile.in (clean): Ditto.
	* gdb.arch/Makefile.in (clean): Ditto.
	* gdb.asm/Makefile.in (clean): Ditto.
	* gdb.base/Makefile.in (clean): Ditto.
	* gdb.cell/Makefile.in (clean): Ditto.
	* gdb.cp/Makefile.in (clean): Ditto.
	* gdb.disasm/Makefile.in (clean): Ditto.
	* gdb.dwarf2/Makefile.in (clean): Ditto.
	* gdb.fortran/Makefile.in (clean): Ditto.
	* gdb.go/Makefile.in (clean): Ditto.
	* gdb.hp/Makefile.in (clean): Ditto.
	* gdb.hp/gdb.aCC/Makefile.in (clean): Ditto.
	* gdb.hp/gdb.base-hp/Makefile.in (clean): Ditto.
	* gdb.hp/gdb.compat/Makefile.in (clean): Ditto.
	* gdb.hp/gdb.defects/Makefile.in (clean): Ditto.
	* gdb.hp/gdb.objdbg/Makefile.in (clean): Ditto.
	* gdb.java/Makefile.in (clean): Ditto.
	* gdb.linespec/Makefile.in (clean): Ditto.
	* gdb.mi/Makefile.in (clean): Ditto.
	* gdb.modula2/Makefile.in (clean): Ditto.
	* gdb.multi/Makefile.in (clean): Ditto.
	* gdb.objc/Makefile.in (clean): Ditto.
	* gdb.opencl/Makefile.in (clean): Ditto.
	* gdb.opt/Makefile.in (clean): Ditto.
	* gdb.pascal/Makefile.in (clean): Ditto.
	* gdb.python/Makefile.in (clean): Ditto.
	* gdb.reverse/Makefile.in (clean): Ditto.
	* gdb.server/Makefile.in (clean): Ditto.
	* gdb.stabs/Makefile.in (clean): Ditto.
	* gdb.threads/Makefile.in (clean): Ditto.
	* gdb.trace/Makefile.in (clean): Ditto.
	* gdb.xml/Makefile.in (clean): Ditto.

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

	* gdb.base/macscp1.c (macscp_expr): Add comment.
	* gdb.base/macscp.exp: Test __FILE__ and __LINE__.

2012-05-16  Maciej W. Rozycki  <macro@codesourcery.com>

	* gdb.base/return-nodebug.exp: Also test float and double types.

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

	PR testsuite/12649
	* gdb.base/dprintf.exp: Replace gdb_run_cmd by runto main.

	* gdb.base/dprintf.exp: Remove now redundant breakpoint for main.

2012-05-14  Sergio Durigan Junior  <sergiodj@redhat.com>

	* gdb.base/stap-probe.exp (stap_test): Remove calls to
	`rerun_to_main'.
	(stap_test_no_debuginfo): Likewise.

2012-05-14  Stan Shebs  <stan@codesourcery.com>

	* gdb.base/dprintf.c: New file.
	* gdb.base/dprintf.exp: New file.

2012-05-14  Hui Zhu  <hui_zhu@mentor.com>

	* gdb.trace/Makefile.in (PROGS): Add disconnected-tracing.
	* gdb.trace/disconnected-tracing.c: New file.
	* gdb.trace/disconnected-tracing.exp: New file.

2012-05-13  Siva Chandra Reddy  <sivachandra@google.com>

	* gdb.python/python.c: Add a new breakpoint comment.
	* gdb.python/python.exp: Add tests to test gdb.find_pc_line.

2011-12-26  Kwok Cheung Yeung  <kcy@codesourcery.com>

	* gdb.base/info-os.exp: New file.
	* gdb.base/info-os.c: New file.

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

	* gdb.base/print-file-var-lib1.c, gdb.base/print-file-var-lib2.c,
	gdb.base/print-file-var-main.c, gdb.base/print-file-var.exp:
	New files.

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

	* gdb.base/ctxobj-f.c, gdb.base/ctxobj-m.c, gdb.base/ctxobj-v.c,
	gdb.base/ctxobj.exp: New files.

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

	* gdb.trace/strace.exp: Add 'quiet' to compiler flags.

2012-05-09  Maciej W. Rozycki  <macro@codesourcery.com>

	* lib/gdb.exp (gdb_test_multiple): Correct formatting.

2012-05-08  Maciej W. Rozycki  <macro@codesourcery.com>

	* gdb.mi/mi-var-display.exp: Check for the existence of $fp
	before using it.

2012-05-04  Tristan Gingold  <gingold@adacore.com>

	* gdb.base/set-noassign.exp: New test.

2012-05-03  Siva Chandra Reddy  <sivachandra@google.com>

	* gdb.python/py-symbol.exp: Add tests to test the new methods
	gdb.Symtab.global_block() and gdb.Symtab.static_block().
	* gdb.python/py-symbol.c: Add new struct to help test
	gdb.Symtab.static_block().

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

	* gdb.dwarf2/pr13961.S: Add file and source location, but leave
	commented out.

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

	* gdb.base/catch-syscall.exp: Skip it before compilation if target
	doesn't support.
	* gdb.base/foll-exec.exp, gdb.base/foll-fork.exp: Likewise.
	* gdb.base/foll-vfork.exp, gdb.multi/bkpt-multi-exec.exp: Likewise.

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

	* gdb.mi/mi-solib.exp: Setup kfail for gdb/13860.

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

	PR testsuite/13961
	* gdb.dwarf2/pr13961.S: New file.
	* gdb.dwarf2/pr13961.exp: New file.

2012-04-29  Yao Qi  <yao@codesourcery.com>

	* gdb.dwarf2/dw2-ifort-parameter.exp: Use proc `dwarf2_support'.

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

	* gdb.dwarf2/dw2-intercu.S (.Ltype_int2_in_cu2): Renamed from
	.Ltype_int_in_cu2.  Use name "int2" instead of "int".
	All uses updated.
	* gdb.dwarf2/dw2-intercu.exp: Add "ptype int2" ahead of
	"ptype func_cu1" to expand cu2 before cu1.

2012-04-27  Sergio Durigan Junior  <sergiodj@redhat.com>
	    Tom Tromey  <tromey@redhat.com>

	* gdb.base/default.exp: Add `$_probe_arg*' convenience
	variables.
	* gdb.base/stap-probe.c: New file.
	* gdb.base/stap-probe.exp: New file.
	* gdb.trace/stap-trace.c: New file.
	* gdb.trace/stap-trace.exp: New file.
	* gdb.cp/nextoverthrow.exp: Add check for SystemTap probe in
	libgcc's unwinder.

2012-04-26  Maciej W. Rozycki  <macro@codesourcery.com>

	* gdb.arch/mips16-thunks-inmain.c: New file.
	* gdb.arch/mips16-thunks-main.c: New file.
	* gdb.arch/mips16-thunks-sin.c: New file.
	* gdb.arch/mips16-thunks-sinfrob.c: New file.
	* gdb.arch/mips16-thunks-sinfrob16.c: New file.
	* gdb.arch/mips16-thunks-sinmain.c: New file.
	* gdb.arch/mips16-thunks-sinmips16.c: New file.
	* gdb.arch/mips16-thunks.exp: New file.

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

	* configure.ac: Create gdb.go/Makefile.
	* configure: Regenerate.
	* gdb.base/default.exp: Add "go" to "set language" testing.
	* gdb.go/Makefile.in: New file.
	* gdb.go/basic-types.exp: New file.
	* gdb.go/chan.exp: New file.
	* gdb.go/chan.go: New file.
	* gdb.go/handcall.exp: New file.
	* gdb.go/handcall.go: New file.
	* gdb.go/hello.exp: New file.
	* gdb.go/hello.go: New file.
	* gdb.go/integers.exp: New file.
	* gdb.go/integers.go: New file.
	* gdb.go/methods.exp: New file.
	* gdb.go/methods.go: New file.
	* gdb.go/package.exp: New file.
	* gdb.go/package1.go: New file.
	* gdb.go/package2.go: New file.
	* gdb.go/print.exp: New file.
	* gdb.go/strings.exp: New file.
	* gdb.go/strings.go: New file.
	* gdb.go/types.exp: New file.
	* gdb.go/types.go: New file.
	* gdb.go/unsafe.exp: New file.
	* gdb.go/unsafe.go: New file.
	* lib/future.exp: Add Go support.
	(gdb_find_go, gdb_find_go_linker): New procs.
	(gdb_default_target_compile): Add Go support.
	* lib/gdb.exp (skip_go_tests): New proc.
	* lib/go.exp: New file.

2012-04-25  Tom Tromey  <tromey@redhat.com>

	* gdb.threads/linux-dp.exp: Unset 'seen' before 'array set'.

2012-04-18  Siddhesh Poyarekar  <siddhesh@redhat.com>
	    Jan Kratochvil  <jan.kratochvil@redhat.com>

	PR symtab/7259:
	* gdb.base/enumval.c: New test case.
	* gdb.base/enumval.exp: New test case.
	* gdb.python/py-type.exp (test_enums): Use field.enumval instead of
	field.bitpos.

2012-04-17  Pedro Alves  <palves@redhat.com>

	* Makefile.in (site.exp): Make site.exp source
	$srcdir/lib/append_gdb_boards_dir.exp.
	* lib/append_gdb_boards_dir.exp: New file.

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

	New option "set auto-load safe-path".
	* gdb.python/py-objfile-script.exp (set auto-load safe-path): New.
	* gdb.python/py-section-script.exp (set auto-load safe-path): New.

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

	auto-load: Implementation.
	* gdb.base/help.exp (test set height): Increase the height.
	* gdb.python/py-objfile-script.exp (info auto-load-scripts): Change
	to ...
	(info auto-load python-scripts): ... here.
	* gdb.python/py-section-script.exp (info auto-load-scripts *): Change
	to ...
	(info auto-load python-scripts *): ... here.

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

	* lib/trace-support.exp (get_in_proc_agent): New.
	* gdb.trace/change-loc.exp: Call get_in_proc_agent to get the location
	of in process trace agent.
	* gdb.trace/ftrace.exp: Likewise.
	* gdb.trace/pending.exp: Likewise.
	* gdb.trace/trace-break.exp: Likewise.
	* gdb.trace/trace-mt.exp
	* gdb.trace/tspeed.exp: Likewise.
	* gdb.trace/tstatus.exp
	* gdb.trace/strace.exp: Likewise.

2012-04-16  Thomas Schwinge  <thomas@codesourcery.com>

	* gdb.asm/sh.inc (gdbasm_startup): Only set up the stack pointer if the
	symbol _stack is defined.  Get rid of a hard-coded constant for _stack.

	* gdb.asm/sh.inc (gdbasm_end) <.size>: Refer to the function's name.

2012-04-14  Anton Gorenkov <xgsa@yandex.ru>

	PR mi/13393
	* gdb.mi/mi-var-rtti.cc: New file.
	* gdb.mi/mi-var-rtti.exp: New file.
	* lib/mi-support.exp (mi_varobj_update_with_child_type_change): New
	function.
	(mi_varobj_update_with_type_change): updated to avoid code duplication.

2012-04-11  Siva Chandra Reddy  <sivachandra@google.com>

	* gdb.python/Makefile.in: Add py-explore and py-explore-cc to
	EXECUTABLES.
	* gdb.python/py-explore.c: C program used for testing the new
	'explore' command on C constructs.
	* gdb.python/py-explore.cc: C++ program used for testing the new
	'explore' command on C++ constructs.
	* gdb-python/py-explore.exp: Tests for the new 'explore'
	command on C constructs.
	* gdb-python/py-explore-cc.exp: Tests for the new 'explore'
	command on C++ constructs.

2012-04-07  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/funcargs.exp (complex_args): Fix typo.

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

	* gdb.trace/change-loc.exp (tracepoint_change_loc_1)
	(tracepoint_change_loc_2): Accept both orders of pending set_tracepoint.

2012-04-05  Keith Seitz  <keiths@redhat.com>

	* gdb.base/advance.exp: Update error message for
	"advance malformed" test.
	* gdb.base/break.exp: Likewise for "breakpoint with
	trailing garbage" test.
	* gdb.base/hbreak2.exp: Likewise for "hardware breakpoint
	with trailing garbage" test.
	* gdb.base/sepdebug.exp: Likewise for "breakpoint with
	trailng garbage" test.
	* gdb.base/until.exp: Likewise for "malformed until" test.
	* gdb.cp/ovldbreak.exp: Create the breakpoint table
	for "breakpoint info (after setting on all)".
	* gdb.cp/userdef.exp: Remove quoting for "break A2::operator+"
	tests.
	* gdb.cp/cplabel.cc: New file.
	* gdb.cp/cplabel.exp: New test.
	* gdb.linespec/ls-errs.c: New file.
	* gdb.linespec/ls-errs.exp: New test.

2012-04-03  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.trace/unavailable.exp
	(collect globals: print object on: print derived_partial)
	(collect globals: print object on: print derived_whole)
	(collect globals: print object off: print derived_partial)
	(collect globals: print object off: print derived_whole): Update
	expected output.

2012-03-30  Keith Seitz  <keiths@redhat.com>

	* gdb.python: Add test for linespecs with commas.

2012-03-28  Keith Seitz  <keiths@redhat.com>

	* gdb.linespec/ls-dollar.cc: New file.
	* gdb.linespec/ls-dollar.exp: New test.

2012-03-28  Keith Seitz  <keiths@redhat.com>

	* gdb.cp/namespace.exp: Add breakpoint tests for functions
	starting with the global namespace.

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

	* lib/gdb.exp (BUILD_DATA_DIRECTORY): New global.

2012-03-22  Siva Chandra Reddy  <sivachandra@google.com>

	* gdb.python/py-value.cc: Add test case for testing the
	methodology exposing C++ values to Python.
	* gdb.python/py-value-cc.exp: Add tests testing the methodology
	exposing C++ values to Python.
	* gdb.python/Makefile.in: Add py-value-cc to EXECUTABLES.

2012-03-19  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Siddhesh Poyarekar  <siddhesh@redhat.com>

	* gdb.base/auxv.c (func2): setrlimit to infinity to enable core dumps.
	* gdb.base/auxv.exp: Try to compile it with -DUSE_RLIMIT first.
	(generate native core dump): Make the test unsupported if core cannot
	be generated.

2012-03-19  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.gdb/selftest.exp (do_steps_and_nexts): New entry
	for cmdarg_vec = NULL.  Remove entries for cmdsize = 1, cmdarg = and
	ncmd = 0.  New entry for VEC_cleanup cmdarg_s.

2012-03-19  Siddhesh Poyarekar  <siddhesh@redhat.com>

	* gdb.base/cond-eval-mode.exp: Fix the anticipated warning string.

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

	* dg-extract-results.sh: Handle KFAILs.

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

	PR symtab/13777
	* gdb.dwarf2/dw2-skip-prologue.S (DW_AT_producer): Set it to 4.5.0.

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

	* gdb.ada/set_pckd_arr_elt: New testcase.

2012-03-16  Gary Benson  <gbenson@redhat.com>

	PR breakpoints/10738
	* gdb.opt/inline-break.exp: New file.
	* gdb.opt/inline-break.c: Likewise.
	* gdb.dwarf2/dw2-inline-break.exp: Likewise.
	* gdb.dwarf2/dw2-inline-break.S: Likewise.
	* gdb.base/annota1.exp: Cope with old .gdb_index warnings.
	* gdb.base/async-shell.exp: Likewise.
	* lib/mi-support.exp (library_loaded_re): Likewise.

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

	* gdb.cp/virtfunc2.exp: Update expected output.
	* gdb.cp/pr9631.exp: Update expected output.
	* gdb.cp/member-ptr.exp: Update expected output.
	* gdb.cp/inherit.exp (test_print_mvi_classes): Update expected
	output.
	* gdb.cp/casts.exp: Update expected output.

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

	* gdb.cp/virtfunc.exp (make_one_vtable_result): New proc.
	(test_info_vtbl): Likewise.
	(do_tests): Call test_info_vtbl.
	* gdb.cp/virtfunc.cc (va): New global.

2012-03-15  Thomas Schwinge  <thomas@codesourcery.com>

	* gdb.dwarf2/dw2-ada-ffffffff.S: Use .4byte instead of .long for
	describing DWARF data structures.
	* gdb.dwarf2/dw2-bad-parameter-type.S: Likewise.
	* gdb.dwarf2/dw2-double-set-die-type.S: Likewise.
	* gdb.dwarf2/dw2-empty-pc-range.S: Likewise.
	* gdb.dwarf2/dw2-entry-value.S: Likewise.
	* gdb.dwarf2/dw2-modula2-self-type.S: Likewise.
	* gdb.dwarf2/dw2-param-error.S: Likewise.
	* gdb.dwarf2/dw2-skip-prologue.S: Likewise.
	* gdb.dwarf2/dw2-stack-boundary.S: Likewise.
	* gdb.dwarf2/dw4-sig-type-unused.S: Likewise.
	* gdb.dwarf2/implptr-optimized-out.S: Likewise.
	* gdb.dwarf2/member-ptr-forwardref.S: Likewise.
	* gdb.dwarf2/pr11465.S: Likewise.

2012-03-14  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.mi/mi2-prompt.exp: New file.

2012-03-13  Joel Brobecker  <brobecker@adacore.com>

	* gdb.base/enum_cond.c, gdb.base/enum_cond.exp: New testcase.

2012-03-13  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/bp_range_type: New testcase.

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

	* gdb.base/default.exp: Delete tests for symbol-reloading.
	* gdb.base/help.exp: Ditto.
	* gdb.base/setshow.exp: Ditto.
	* gdb.base/gdb_history: Delete references to symbol-reloading.

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

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

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

	* lib/gdb.exp (gdb_get_line_number): Throw an
	error instead of returning -1.
	* gdb.base/break.exp: Remove unused variable
	bp_location5.
	* gdb.base/hbreak2.exp: Likewise.
	* gdb.base/sepdebug.exp: Likewise.

2012-03-08  Yao Qi  <yao@codesourcery.com>
	    Pedro Alves  <palves@redhat.com>

	Fix PR server/13392.
	* gdb.trace/change-loc.exp (tracepoint_change_loc_1): Remove kfail.
	(tracepoint_change_loc_2): Remove kfail.  Return if failed to
	download tracepoints.
	* gdb.trace/pending.exp (pending_tracepoint_works): Likewise.
	(pending_tracepoint_resolved_during_trace): Likewise.
	(pending_tracepoint_installed_during_trace): Likewise.
	(pending_tracepoint_with_action_resolved): Likewise.

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

	* gdb.ada/array_bounds.exp: Get breakpoint for line
	with "START", not "STOP".
	* gdb.python/py-infthread.exp: Do not continue to
	line marked "Break here.", which is undefined.

2012-03-08  Luis Machado  <lgustavo@codesourcery.com>

	Revert:

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

	Implement testsuite workaround for PR breakpoints/13781.
	* gdb.cp/mb-templates.exp: New loop with variable $workaround.
	(set breakpoint condition-evaluation host): New conditional command.

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

	Fix CU relative vs. absolute DIE offsets.
	* gdb.dwarf2/dw2-op-call.S: New compilation unit preceding the existing
	one.

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

	Fix false FAIL on distros with relro linkage as default.
	* gdb.reverse/solib-precsave.exp: Try to compile the test using
	-Wl,-z,norelro first.

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

	* gdb.ada/bp_on_var: New testcase.

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

	* gdb.ada/bp_enum_homonym: New testcase.

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

	* gdb.trace/ftrace.exp (test_fast_tracepoints): Run test on target
	x86_64-*-* and i?86-*-*.
	Set up KFAIL for gdb/13808.

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

	* gdb.ada/operator_bp.exp: Clear debug-file-directory.
	* gdb.ada/mi_task_arg.exp: Clear debug-file-directory.

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

	* gdb.java/jprint.java (jprint.main): Keep 'x' live.

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

	* gdb.base/disp-step-syscall.exp (disp_step_cross_syscall): Catch error
	messages for KFAIL.

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

	* gdb.ada/arrayidx.exp: Call get_compiler_info.  New variable old_gcc.
	(print one_two_three, indexes off, print few_reps, indexes off)
	(print many_reps, indexes off, print empty, indexes off)
	(print one_two_three, print few_reps, print many_reps, print empty):
	Call setup_xfail if $gcc_old.

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

	Implement testsuite workaround for PR breakpoints/13781.
	* gdb.cp/mb-templates.exp: New loop with variable $workaround.
	(set breakpoint condition-evaluation host): New conditional command.

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

	Code cleanup.
	* gdb.cp/mb-templates.exp: New variables executable.  Use it for
	binfile.  use clean_restart.  Replace gdb_expect by gdb_test_multiple.
	Replace GDB restart by kill and delete_breakpoints.  Replace breakpoint
	number 1 by $bpnum.  Four times.

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

	* gdb.trace/strace.exp: run strace_info_marker in linux native gdb.

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

	Setup KFAIL for PR server/13796.
	* gdb.base/disp-step-syscall.exp (single step over vfork): Setup KFAIL.

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

	* gdb.ada/operator_bp: New testcase.

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

	* gdb.ada/info_locals_renaming: New testcase.

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

	* gdb.base/nextoverexit.c: New file.
	* gdb.base/nextoverexit.exp: New file.

2012-03-02  Edjunior Machado  <emachado@linux.vnet.ibm.com>

	* gdb.arch/altivec-abi.exp (altivec_abi_tests): Remove obsolete
	parameter.

2012-03-01  Maciej W. Rozycki  <macro@mips.com>

	* gdb.xml/tdesc-regs.exp: Add "mips-dsp.xml" to the list of MIPS
	core registers.

2012-03-01  Maciej W. Rozycki  <macro@mips.com>
            Maciej W. Rozycki  <macro@codesourcery.com>
            Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/hbreak2.exp: New test for "hbreak" and "thbreak".

2012-03-01  Pedro Alves  <palves@redhat.com>

	PR gdb/13767

	* gdb.trace/unavailable.exp (gdb_unavailable_floats): New.
	(gdb_collect_globals_test): Call it.

2012-03-01  Keith Seitz  <keiths@redhat.com>

	* gdb.cp/method2.exp: Output of overload menu is now
	alphabetized.  Update tests for "break A::method".
	* gdb.cp/ovldbreak.exp: Use gdb_get_line_number instead
	of hard-coding them.
	Overload menu is alphabetized: rewrite to accommodate.
	Unset variables LINE and TYPES which are used in other tests.
	Compute the output of "info break".
	Update the breakpoint table after all breakpoints are deleted.
	(continue_to_bp_overloaded): Rename ACTUALS to ARGUMENT and
	compute ACTUALS and the method body based on parameters.
	Update expected output accordingly.
	* gdb.cp/ovldbreak.cc (foo::overload1arg): Reformat and add
	unique comments to allow the use of gdb_get_line_number.

2012-03-01  Keith Seitz  <keiths@redhat.com>

	* gdb.cp/method2.exp: Use prepare_for_testing and cleanup
	some Tcl syntax.
	* gdb.cp/ovldbreak.exp: Likewise.

2012-03-01  Keith Seitz  <keiths@redhat.com>

	* gdb.base/help.exp (help show user): Update expected result
	for new doc string changes (add "non-python").

2012-03-01  Scott J. Goldman <scottjg@vmware.com>

	* gdb.python/py-cmd.exp: Add test to verify that python commands can
	be put in the user-defined category and that the commands appear in
	"help user-defined".

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

	* gdb.ada/tagged_not_init: New testcase.

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

	* gdb.ada/arrayidx.exp: Adjust expected output for p_one_two_three.
	* gdb.ada/enum_idx_packed: New testcase.

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

	* gdb.ada/aliased_array: New testcase.

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

	* gdb.ada/whatis_array_val: New testcase.

2012-02-29  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix disp-step-syscall.exp: fork: single step over fork.
	* gdb.base/disp-step-syscall.exp (syscall_insn): Anchor it by
	whitespaces.
	(single step over $syscall): Remove its check.
	(single step over $syscall final pc): New check.

2012-02-29  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Support processors without SSSE3.
	* gdb.reverse/i386-sse-reverse.c (sse_test): Move pabsb, pabsw and
	pabsd into ...
	(ssse3_test): ... a new function.
	(main): Call ssse3_test.
	* gdb.reverse/i386-sse-reverse.exp: New variable end_ssse3_test.
	Update expected values everywhere.
	(reverse-step to pabsd, verify xmm0 after reverse pabsd)
	(verify xmm1 after reverse pabsd, verify xmm2 after reverse pabsd)
	(reverse-step to pabsw, verify xmm0 after reverse pabsw)
	(verify xmm1 after reverse pabsw, verify xmm2 after reverse pabsw)
	(reverse-step to pabsb, verify xmm0 after reverse pabsb)
	(verify xmm1 after reverse pabsb, verify xmm2 after reverse pabsb):
	Move these tests lower.
	(set breakpoint at end of ssse3_test, continue to end of ssse3_test)
	(verify xmm0 at end of ssse3_test, verify xmm1 at end of ssse3_test)
	(verify xmm2 at end of ssse3_test, continue to end of ssse3_test #2):
	New tests.

2012-02-29  Yao Qi  <yao@codesourcery.com>
	    Pedro Alves  <palves@redhat.com>

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

2012-02-28  Thomas Schwinge  <thomas@codesourcery.com>

	* gdb.base/annota1.exp: Use gdb_get_line_number for retrieving line
	numbers instead of hardcoding them.
	* gdb.base/annota1.c: Provide suitable markers.
	* gdb.base/annota3.exp: Use gdb_get_line_number for retrieving line
	numbers instead of hardcoding them.
	* gdb.base/annota3.c: Provide suitable markers.

	* gdb.base/annota1.c [__sh__]: Remove any special-casing.
	* gdb.base/annota3.c: Likewise.
	* gdb.base/sigall.c: Likewise.
	* gdb.base/signals.c: Likewise.
	* gdb.reverse/sigall-reverse.c: Likewise.

2012-02-27  Maciej W. Rozycki  <macro@codesourcery.com>

	* gdb.cp/breakpoint.exp (test_breakpoint): Fix the runto_main
	failure return path.

2012-02-27  Luis Machado  <lgustavo@codesourcery.com>

	* gdb.base/save-bp.exp: Account for new condition evaluator output.

2012-02-24  Luis Machado  <lgustavo@codesourcery.com>

	* gdb.base/cond-eval-mode.exp: New file.

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

	* gdb.base/break-interp.exp (test_ld): Use with_test_prefix.
	(top level): Use with_test_prefix.

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

	* gdb.threads/attach-into-signal.exp (corefunc): Use
	with_test_prefix.

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

	Fix false FAILs on old CPUs without SSE.
	* gdb.reverse/i386-sse-reverse.exp (continue to end of sse_test):
	Return untested for Illegal instruction.

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

	Fix false FAILs with glibc debug infos installed.
	* gdb.reverse/solib-precsave.exp (set debug-file-directory): New test.
	* gdb.reverse/solib-reverse.exp (set debug-file-directory): New test.

2012-02-22  Sterling Augustine  <saugustine@google.com>

	* gdb.base/watchpoint.exp (test_constant_watchpoint): Add test for
	constant with cast.

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

	* gdb.threads/watchpoint-fork.exp (test): Use with_test_prefix.

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

	* gdb.base/return-nodebug.exp (do_test): Use with_test_prefix.

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

	* gdb.trace/unavailable.exp (gdb_collect_globals_test): Use
	with_test_prefix.

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

	* gdb.arch/altivec-abi.exp (altivec_abi_tests): Don't do
	with_test_prefix here.
	(top level): Do it here instead.  Remove `:' from the
	with_test_prefix string.
	* gdb.base/attach-pie-misread.exp: Remove the leading space the
	the suffix `:' from the with_test_prefix prefix string.
	* gdb.base/break-interp.exp: Ditto.
	* gdb.base/catch-load.exp: Ditto.
	* gdb.base/disp-step-syscall.exp: Ditto.
	* gdb.base/jit-so.exp: Ditto.
	* gdb.base/jit.exp: Ditto.
	* gdb.base/sepdebug.exp: Ditto.
	* gdb.base/solib-display.exp: Ditto.
	* gdb.base/solib-overlap.exp: Ditto.
	* gdb.base/watch-cond-infcall.exp: Ditto.
	* gdb.base/watchpoint.exp: Ditto.
	* gdb.dwarf2/dw2-noloc.exp: Ditto.
	* gdb.mi/mi-watch.exp: Ditto.
	* gdb.mi/mi2-watch.exp: Ditto.
	* gdb.threads/non-ldr-exc-1.exp: Ditto.
	* gdb.threads/non-ldr-exc-2.exp: Ditto.
	* gdb.threads/non-ldr-exc-3.exp: Ditto.
	* gdb.threads/non-ldr-exc-4.exp: Ditto.
	* gdb.threads/watchpoint-fork.exp: Ditto.
	* gdb.threads/watchthreads-reorder.exp: Ditto.
	* gdb.trace/change-loc.exp: Ditto.
	* gdb.trace/pending.exp: Ditto.
	* gdb.trace/status-stop.exp: Ditto.
	* gdb.trace/strace.exp: Ditto.
	* gdb.trace/trace-break.exp: Ditto.
	* gdb.trace/unavailable.exp: Ditto.
	* lib/gdb.exp (with_test_prefix): Always prefix with space and
	suffix with colon.  Adjust leading comments.

2012-02-21  Pedro Alves  <palves@redhat.com>
	    Tom Tromey  <tromey@redhat.com>

	* lib/gdb.exp: Add description of test prefixes.
	(with_test_prefix): New procedure.
	* gdb.arch/altivec-abi.exp: Use with_test_prefix.
	* gdb.base/attach-pie-misread.exp: Use with_test_prefix.
	* gdb.base/break-interp.exp: Use with_test_prefix.  Use append
	instead of lappend to append to pf_prefix.
	* gdb.base/catch-load.exp: Use with_test_prefix.
	* gdb.base/disp-step-syscall.exp: Use with_test_prefix.
	* gdb.base/jit-so.exp: Use with_test_prefix.
	* gdb.base/jit.exp: Use with_test_prefix.
	* gdb.base/return-nodebug.exp (do_test): Use append instead of
	lappend to append to pf_prefix.
	* gdb.base/sepdebug.exp: Use with_test_prefix.
	* gdb.base/solib-display.exp: Use with_test_prefix.
	* gdb.base/solib-overlap.exp: Use with_test_prefix.
	* gdb.base/watch-cond-infcall.exp: Use with_test_prefix.
	* gdb.base/watchpoint.exp: Use with_test_prefix.
	* gdb.dwarf2/dw2-noloc.exp: Use with_test_prefix.
	* gdb.mi/mi-watch.exp: Use with_test_prefix.
	* gdb.mi/mi2-watch.exp: Use with_test_prefix.
	* gdb.threads/non-ldr-exc-1.exp: Use with_test_prefix.
	* gdb.threads/non-ldr-exc-2.exp: Use with_test_prefix.
	* gdb.threads/non-ldr-exc-3.exp: Use with_test_prefix.
	* gdb.threads/non-ldr-exc-4.exp: Use with_test_prefix.
	* gdb.threads/watchpoint-fork.exp: Use with_test_prefix.  Use
	append instead of lappend to append to pf_prefix.
	* gdb.threads/watchthreads-reorder.exp: Use with_test_prefix.
	* gdb.trace/change-loc.exp: Use with_test_prefix.
	* gdb.trace/pending.exp: Use with_test_prefix.
	* gdb.trace/status-stop.exp: Use with_test_prefix.
	* gdb.trace/strace.exp: Use with_test_prefix.
	* gdb.trace/trace-break.exp: Use with_test_prefix.
	* gdb.trace/unavailable.exp: Use with_test_prefix.  Use append
	instead of lappend to append to pf_prefix.

2012-02-20  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix racy FAILs.
	* gdb.base/inferior-died.c (main): Add return of 0.
	* gdb.base/inferior-died.exp (continue): Fix expectation of
	asynchronous events.
	(p 1): New test.

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

	* gdb.threads/attach-into-signal.exp (corefunc): Don't enable
	lin-lwp output.  Set SIGALRM to stop.  Adjust tests to not rely on
	gdb's internal debug output.  For the non-threaded case, look for
	"Program received signal SIGLARM", for the threaded case, peek at
	the thread's siginfo.

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

	General cleanup, make output test messages unique, and build
	different executable files for the non-threaded and threaded
	cases.

	* gdb.threads/attach-into-signal.exp (binfile, escapedbinfile):
	Delete.
	(executable_nothr, executable_thr): New globals.
	(top level): Adjust to delete both executables.
	(corefunc): New parameter $executable.  Set $pf_prefix instead of
	hand writing a prefix in tests.  Issue a clean_restart and enable
	lin-lwp debug output here.
	(top level): Adjust.  Use build_executable.  Don't start gdb here,
	and don't enable lin-lwp debug output here.
	* gdb.threads/Makefile.in (EXECUTABLES): Adjust.

2012-02-20  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix racy FAILs.
	* gdb.base/catch-load.exp (one_catch_load_test): Remove duplicate
	"continue" command.

2012-02-19  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix for gdbserver non-extended mode.
	* gdb.base/break-inline.exp (start): Replace "start" by gdb_breakpoint
	and gdb_run_cmd.

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

	* gdb.python/py-events.py (exit_handler): Add test for 'dir'.
	* gdb.python/py-events.exp: Check 'dir' output.
	* gdb.python/py-type.exp (test_fields): Add test for 'dir'.

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

	* gdb.trace/strace.exp (strace_info_marker): Test `info threads'.

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

	* gdb.base/inferior-died.c: Don't include stdio.h.

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

	* gdb.base/inferior-died.c: New file.
	* gdb.base/inferior-died.exp: New file.

2012-02-15  Aleksandar Ristovski  <aristovski@qnx.com>

	* gdb.base/break-inline.exp: New file.
	* gdb.base/break-inline.c: New file.

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

	* gdb.base/pc-fp.exp: Add "info register" tests.

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

	* gdb.base/regs.exp: Remove.

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

	* gdb.trace/backtrace.exp: Issue UNSUPPORTED instead of PASS when
	the target doesn't support tracepoints.
	* gdb.trace/circ.exp: Ditto.
	* gdb.trace/collection.exp: Ditto.
	* gdb.trace/packetlen.exp: Ditto.
	* gdb.trace/passc-dyn.exp: Ditto.
	* gdb.trace/report.exp: Ditto.
	* gdb.trace/tfind.exp: Ditto.
	* gdb.trace/tspeed.exp: Ditto.
	* gdb.trace/tsv.exp: Ditto.
	* gdb.trace/unavailable.exp: Ditto.
	* gdb.trace/while-dyn.exp: Ditto.

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

	* gdb.trace/circ.exp (trace_buffer_normal): Rewrite using
	gdb_test_multiple, and call unsupported instead of fail, if the
	remote side does not support the request.

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

	* gdb.server/ext-attach.exp: Make sure gdb is disconnected.
	* gdb.server/ext-run.exp: Make sure gdb is disconnected.
	* gdb.server/file-transfer.exp: Make sure gdb is disconnected.
	* gdb.server/server-mon.exp: Make sure gdb is disconnected.
	* gdb.server/server-run.exp: Make sure gdb is disconnected.
	* lib/gdbserver-support.exp (gdbserver_start_extended): Only
	prepend "extended-" to $gdbserver_protocol if $gdbserver_protocol
	doesn't start with "extended-" already.

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

	Support extended-remote.  Avoid cascading timeouts.

	* gdb.base/attach.exp (do_attach_tests): Add expected output for
	the extended-remote target.  If attaching with no file fails, load
	the file manually.
	* gdb.server/ext-attach.exp: Adjust expected attach/detach output.

2012-02-14  Stan Shebs  <stan@codesourcery.com>

	* gdb.base/ena-dis-br.exp: Add enable count test.

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

	* config/mips-idt.exp: Delete.
	* gdb.base/a2-run.exp: Remove mips-idt xfails.
	* gdb.base/bitfields.exp: Remove mips-idt restarts.
	* gdb.base/break.exp: Remove mips-idt references.
	* gdb.base/chng-syms.exp: Ditto.
	* gdb.base/default.exp: Ditto.
	* gdb.base/funcargs.exp (funcargs_reload): Delete.
	(top level): Don't call it.
	* gdb.base/opaque.exp: Remove mips-idt restarts.
	* gdb.base/ptype.exp: Remove mips-idt xfails.
	* gdb.base/scope.exp: Remove mips-idt restarts.
	* gdb.base/sepdebug.exp: Remove mips-idt references.
	* gdb.base/watchpoint.exp (maybe_clean_restart)
	(maybe_reinitialize): Delete.
	(test_disabling_watchpoints, test_disabling_watchpoints)
	(test_watchpoint_triggered_in_syscall)
	(test_watchpoint_and_breakpoint, test_inaccessible_watchpoint):
	Don't call them.

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

	* gdb.server/server-exec-info.exp: New file.

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

	* gdb.base/break-interp.exp (test_attach_gdb): Assume $file is
	always non-empty.
	(test_attach): Always pass $exec to test_attach_gdb.

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

	* gdb.python/py-symbol.exp: Use lookup_global_symbol for tests
	before inferior is started.

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

	* gdb.python/py-symbol.exp: Test Symbol.needs_frame and
	Symbol.value.
	* gdb.python/py-symbol.c (qq): Set default value.

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

	* gdb.python/py-symbol.c (qq): New global.
	* gdb.python/py-symbol.exp: Add test for frame-less
	lookup_symbol.
	* gdb.python/py-symtab.exp: Fix line number.

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

	* gdb.ada/mi_task_arg: New testcase.

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

	* gdb.reverse/until-precsave.exp: Also put "record save" under the
	extended timeout.

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

	* gdb.gdb/complaints.exp: Skip if gdb,noinferiorio is set.
	* gdb.gdb/selftest.exp (test_with_self): Handle gdb,noinferiorio.

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

	* gdb.base/term.exp: Rewrite.
	* gdb.base/term.c: New.

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

	* gdb.base/default.exp (run "r" abbreviation, run): Add
	extended-remote expected output.

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

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

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

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

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

	* gdb.base/skip.exp: Make test result unique.

2012-01-30  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/valgrind-db-attach.exp (attach to debugger): Fix
	compatibility with valgrind-3.7.0.

2012-01-27  Pedro Alves  <palves@redhat.com>

	* gdb.base/watchpoint.exp (no_hw): New global.
	(maybe_clean_restart, maybe_reinitialize): If no_hw is set,
	disable hw watchpoints.
	(test_wide_location_1, test_wide_location_2): If no_hw is set,
	don't expect hw watchpoints.
	(no_hw_watchpoints): Always clean restart.
	(do_tests): New procedure, factored out from the top level.
	(top level): Run tests twice.  Once with hw watchpoints enabled,
	another time with hw watchpoints disabled.

2012-01-27  Pedro Alves  <palves@redhat.com>

	* gdb.base/watchpoint.exp (test_no_hw_watchpoints): New, factored
	out from the top level.
	(top level): Call it instead.

2012-01-27  Pedro Alves  <palves@redhat.com>

	* gdb.base/watchpoint.exp (top level): Re-enable hardware
	watchpoints sooner.

2012-01-27  Pedro Alves  <palves@redhat.com>

	* gdb.base/watchpoint.exp (top level): Delete watch ival3.

2012-01-27  Pedro Alves  <palves@redhat.com>

	* gdb.base/watchpoint.exp (test_watchpoint_in_big_blob): Expect
	"You may have requested too many hardware
	breakpoints/watchpoints".

2012-01-27  Pedro Alves  <palves@redhat.com>

	* gdb.base/watchpoint.exp (maybe_clean_restart)
	(maybe_reinitialize): New.
	(test_disabling_watchpoints): Call maybe_reinitialize.  Don't
	expect "hit N times".
	(test_disabling_watchpoints, test_complex_watchpoint)
	(test_watchpoint_and_breakpoint, test_inaccessible_watchpoint):
	Call maybe_clean_restart.
	(top level): Use clean_restart.  Remove "mips-idt-*"
	reinitialization.

2012-01-27  Pedro Alves  <palves@redhat.com>

	* gdb.base/watchpoint.exp: Always run test_complex_watchpoint.

2012-01-27  Pedro Alves  <palves@redhat.com>

	* gdb.base/watchpoint.exp: Clean restart after tests that don't
	require `initialize' anymore.  Remove unnecessary `initialize'
	calls.

2012-01-27  Pedro Alves  <palves@redhat.com>

	* gdb.base/watchpoint.exp (wp_set): Delete.
	(initialize, test_simple_watchpoint, top level): Remove dead code.

2012-01-27  Pedro Alves  <palves@redhat.com>

	* gdb.base/watchpoint.exp (test_inaccessible_watchpoint): Fix
	typo.

2012-01-27  Pedro Alves  <palves@redhat.com>

	* config/extended-gdbserver.exp: New file.
	* lib/gdbserver-support.exp (gdbserver_start_extended): Extend
	comment.
	(gdbserver_start_multi, mi_gdbserver_start_multi): New.
	* boards/native-extended-gdbserver.exp: New file.

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

	* gdb.base/watchpoint.exp: Replace send_gdb/gdb_expect by gdb_test
	and gdb_test_multiple.

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

	Make test messages unique, and more identifiable.
	* gdb.multi/watchpoint-multi.exp: Change test messages.

2012-01-25  Tom Tromey  <tromey@redhat.com>

	* gdb.base/solib-disc.exp: Fix regexps.

2012-01-24  Tom Tromey  <tromey@redhat.com>

	* lib/mi-support.exp (mi_expect_stop): Add special case for
	solib-event.
	* gdb.base/catch-load-so.c: New file.
	* gdb.base/catch-load.exp: New file.
	* gdb.base/catch-load.c: New file.
	* gdb.base/break-interp.exp (reach_1): Update regexp.

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

	Fix fuzzy results.
	* gdb.mi/var-cmd.c (do_locals_tests): Initialize variables lsimple,
	lpsimple and func.

2012-01-24  Gary Benson  <gbenson@redhat.com>

	Delete #if 0'd out code.
	* gdb.base/default.exp (info catch): Remove.
	* gdb.base/gdb_history (info catch): Likewise.
	* gdb.base/help.exp (info catch): Likewise.

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

	Fix watchpoints to be specific for each inferior.
	* gdb.multi/watchpoint-multi.c: New file.
	* gdb.multi/watchpoint-multi.exp: New file.

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

	Fix watchpoints across inferior fork.
	* gdb.threads/watchpoint-fork-child.c: New file.
	* gdb.threads/watchpoint-fork-mt.c: New file.
	* gdb.threads/watchpoint-fork-parent.c: New file.
	* gdb.threads/watchpoint-fork-st.c: New file.
	* gdb.threads/watchpoint-fork.exp: New file.
	* gdb.threads/watchpoint-fork.h: New file.

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

	* gdb.base/call-signal-resume.exp: Allow output after "return".

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

	* gdb.python/py-finish-breakpoint.py: Fix typo.

2012-01-20  Ulrich Weigand  <ulrich.weigand@linaro.org>

	* gdb.base/info-proc.exp: Also run on remote targets.  Main
	"info proc" command is now always present; whether target supports
	actual info proc operation is detected when attempting to issue
	the command.

2012-01-19  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* .gdbinit: Remove.

2012-01-19  Pedro Alves  <palves@redhat.com>

	* gdb.java/jprint.exp: Don't rely on inferior output, but instead
	look at the funtions' returns.
	* gdb.java/jprint.java (jvclass.addprint, jprint.print(int))
	(jprint.print(int, int)): Change return type to int.  Adjust.

2012-01-18  Paul Pluzhnikov  <ppluzhnikov@google.com>

	PR gdb/9538
	* gdb.base/sepdebug.exp: New test.

2012-01-18  Pedro Alves  <palves@redhat.com>

	* gdb.ada/mi_task_info.exp (-ada-task-info with no argument):
	Allow output before ^done.

2012-01-16  Tom Tromey  <tromey@redhat.com>

	* gdb.linespec/linespec.exp: Change some tests to use $decimal.
	Add tests for relative directory.

2012-01-16  Tom Tromey  <tromey@redhat.com>

	* gdb.base/printcmds.c (enum flag_enum): New.
	(three): New global.
	* gdb.base/printcmds.exp (test_print_enums): Add test for flag
	enum printing.
	* gdb.python/py-pp-maint.py (build_pretty_printer): Instantiate
	FlagEnumerationPrinter.
	* gdb.python/py-pp-maint.exp: Add tests for FlagEnumerationPrinter.
	* gdb.python/py-pp-maint.c (enum flag_enum): New.
	(fval): New global.

2012-01-16  Pedro Alves  <palves@redhat.com>

	* lib/gdb.exp (banned_procedures): New variable.
	(banned_variables_traced): Rename to ...
	(banned_traced): ... this.
	(gdb_init): Also trace banned procedures.
	(gdb_finish): Also untrace banned procedures.

2012-01-16  Pedro Alves  <palves@redhat.com>

	Remove all calls to strace.

2012-01-14  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.dwarf2/dw2-namespaceless-anonymous.S: New file.
	* gdb.dwarf2/dw2-namespaceless-anonymous.exp: New file.

2012-01-13  Paul Pluzhnikov  <ppluzhnikov@google.com>

	* gdb.base/attach-pie-misread.exp: Pass -pie only to the linker.
	* gdb.base/pie-execl.exp: Likewise.

2012-01-12  Keith Seitz  <keiths@redhat.com>

	PR mi/10586
	* gdb.mi/var-cmd.c (struct anonymous): New structure.
	(do_anonymous_type_tests): New function.
	(main): Call do_anonymous_type_tests.
	* gdb.mi/mi2-var-child.exp: Add anonymous type tests.
	(verify_everything): New procedure.
	* gdb.mi/mi-var-cp.cc (class A): New class.
	(anonymous_structs_and_unions): New function.
	(main): Call anonymous_structs_and_unions.
	* gdb.mi/mi-var-cp.exp: Add anonymous type tests.
	(verify_everything): New procedure.

2012-01-12  Keith Seitz  <keiths@redhat.com>

	* lib/mi-support.exp: Expand comments about PATH_EXPR.
	(varobj_tree::get_path_expr): Assume that all varobjs are
	compound unless they are known simple types.
	Adjust path expressions based on parent type, path parent type,
	and tree language.
	(varobj_tree::walk_tree): Add LANGUAGE parameter and save it into
	the root varobj.
	(mi_walk_varobj_tree): Add LANGUAGE parameter.

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

	* gdb.base/default.exp (core-file): Don't expect "GDB can't read
	core files on this machine" anymore.

2012-01-11  Paul Hilfinger  <hilfingr@adacore.com>

	* gdb.base/watchpoint.c (recurser): Initialize local_x.
	(main): Repeat recurser call.
	* gdb.base/watchpoint.exp: Check that 'watch recurser::local_x' is
	equivalent to 'local_x'.

2012-01-11  Paul Hilfinger  <hilfingr@adacore.com>
    	    Joel Brobecker <brobecker@adacore.com>

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

2012-01-05  Pedro Alves  <alves.ped@gmail.com>

	* gdb.mi/mi-stepn.c, gdb.mi/mi-stepn.exp: New files.
	* gdb.python/py-events.c (first): Add bits for new "step N" test.
	* gdb.python/py-events.exp: Test that "step N" tripping on a
	breakpoint emits a breakpoint event.

2012-01-03  Joel Brobecker  <brobecker@adacore.com>

	* gdb.base/auxv.exp: Reformat the copyright notice.

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

	* gdb.trace/strace.exp (strace_trace_on_same_addr): New.
	(strace_trace_on_diff_addr): New.
	* gdb.trace/strace.c: (main): Add two local variables.

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

	* gdb.cell/fork.exp: Delete breakpoints after reaching main.
	* gdb.cell/gcore.exp: Likewise.
	* gdb.cell/solib-symbol.exp: Use "info symbol" instead of "break"
	to verify the correct instance of main is selected.

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

	* dg-extract-results.sh, gdb.arch/gcore.c, gdb.arch/gdb1558.c,
	gdb.arch/i386-gnu-cfi.c, gdb.base/complex.c, gdb.base/cvexpr.c,
	gdb.base/gcore.c, gdb.base/gdb1555-main.c, gdb.base/gdb1555.c,
	gdb.base/gdb1821.c, gdb.base/long_long.c, gdb.base/restore.c,
	gdb.base/sepdebug.c, gdb.base/type-opaque-lib.c,
	gdb.base/type-opaque-main.c, gdb.cp/maint.exp, gdb.cp/namespace1.cc,
	gdb.cp/pr9631.cc, gdb.cp/psmang1.cc, gdb.cp/psmang2.cc,
	gdb.cp/try_catch.cc, gdb.cp/virtfunc.cc, gdb.hp/gdb.base-hp/reg.exp,
	gdb.mi/basics.c, gdb.mi/mi-stack.c, gdb.mi/mi-var-child.c,
	gdb.mi/mi2-var-child.exp, gdb.mi/var-cmd.c,
	gdb.threads/thread_check.c: Reformat copyright header.

2011-12-30  Edjunior Machado  <emachado@linux.vnet.ibm.com>

	* gdb.python/py-finish-breakpoint.exp: Add `.' prefix for ppc64.
	* gdb.python/py-finish-breakpoint2.exp: Skip testcase if python support
	is not enabled.

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

	* gdb.python/py-finish-breakpoint.c (test_exec_exit): Change the
	parameter to self_exec, adjust the function.
	(main): Check for argv[1] "exit".  Use argv[0] for test_exec_exit.
	* gdb.python/py-finish-breakpoint.exp (set var self_exec = 0): New test.
	(set var do_exit = 0): Remove test.
	(newline at end of file): Add one.

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

	* gdb.base/dmsym.c, gdb.base/dmsym_main.c, gdb.base/dmsym.exp:
	New files.

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

	Fix racy FAILs.
	* gdb.threads/fork-thread-pending.c (barrier): New variable.
	(thread_function, thread_forker): Call pthread_barrier_wait for it.
	(main): Call pthread_barrier_init for it.

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

	Fix double send_gdb leading to racy FAILs.
	* gdb.base/break.exp (set silent break bp_location1): Replace
	3x send_gdb and gdb_expect by gdb_test.
	* gdb.base/fileio.exp: Replace 2x send_gdb by gdb_exit and sleep.
	* gdb.base/foll-vfork.exp (vfork_and_exec_child_follow_to_main_bp)
	(vfork_and_exec_child_follow_through_step): Use gdb_test_no_output
	instead of send_gdb.  Twice.
	* gdb.base/sepdebug.exp (set silent break bp_location1): Replace
	3x send_gdb and gdb_expect by gdb_test.
	* gdb.mi/mi-nsmoribund.exp: Replace 3x send_gdb by mi_gdb_test.

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

	* gdb.linespec/linespec.exp: Compile using {c++}.

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

	* gdb.cp/templates.exp (test_template_typedef): Import gdb_prompt.
	(print destructor of template typedef): Extend it for gcc/51668 XFAIL.
	(verify GCC PR debug/51668): New test.

2011-12-23  Kevin Pouget  <kevin.pouget@st.com>

	Introduce gdb.FinishBreakpoint in Python.
	* Makefile.in (EXECUTABLES): Add py-finish-breakpoint and
	py-finish-breakpoint2
	(MISCALLANEOUS): Add py-events-shlib.so and py-events-shlib-nodebug.so
	* gdb.python/py-breakpoint.exp (mult_line): Define and use variable
	instead of line number.
	* gdb.python/py-finish-breakpoint.c: New file.
	* gdb.python/py-finish-breakpoint.exp: New file.
	* gdb.python/py-finish-breakpoint.py: New file.
	* gdb.python/py-finish-breakpoint2.cc: New file.
	* gdb.python/py-finish-breakpoint2.exp: New file.
	* gdb.python/py-finish-breakpoint2.py: New file.

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

	Partial fix of compatibility with gcc-4.7.
	* gdb.cp/templates.exp (ptype T5<int>, ptype t5i): Turn all PASS cases
	into XFAIL "new without size_t".  Permit size_t for the KFAIL case.
	Add comment to add a PASS case in the future.

	Fix compatibility with gcc-4.7.
	* gdb.python/py-frame-inline.c (f): Use inline for __always_inline__.

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

	PR tdep/12797
	* gdb.base/callfuncs.exp: Remove KFAIL.

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

	* gdb.ada/task_bp: New testcase.

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

	* gdb.base/reread.exp: If srcfile2 fails to build retry it with
	-DNO_SECTIONS.
	* gdb.base/reread2.c <!NO_SECTIONS>: New sections block.

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

	* gdb.cp/ptype-cv-cp.exp (ptype v_volatile_const_my_int): Make
	PR gcc/45997 XFAIL conditional for gcc <= 4.5.
	* gdb.python/py-type.exp (python print ttype.template_argument(2)):
	Change PR gcc/41736 to the more specific PR gcc/46955.  Make it
	conditional for gcc <= 4.5.

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

	* gdb.cp/ptype-cv-cp.exp (ptype v_volatile_const_my_int): Replace KFAIL
	by XFAIL.
	* gdb.cp/static-method.exp (info addr A::func())
	(list static-method.cc:xxx::(anonymous namespace)::A::func)
	(list 'static-method.cc:xxx::(anonymous namespace)::A::func')
	(list 'static-method.cc':'xxx::(anonymous namespace)::A::func')
	(list static-method.cc:'xxx::(anonymous namespace)::A::func'): Likewise.
	* gdb.cp/temargs.exp (test value of F in k2_m, test type of F in k3_m)
	(test value of F in k3_m): Likewise.
	* gdb.python/py-type.exp (python print ttype.template_argument(2)):
	Likewise.

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

	* gdb.threads/attach-stopped.exp (continue (*: attach2 continue))
	(*: attach2 stop interrupt, *: attach2, exit leaves process sleeping):
	Remove.
	* gdb.threads/attachstop-mt.c: Remove.
	* gdb.threads/attachstop-mt.exp: Remove.

2011-12-17  Mark Kettenis  <kettenis@gnu.org>

	* gdb.arch/amd64-i386-address.exp: Skip on *-*-openbsd*.

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

	* boards/native-stdio-gdbserver.exp: New file.
	* boards/native-gdbserver.exp: New file.

	* lib/gdbserver-support.exp (gdb_target_cmd): Recognize stdio
	gdbserver output.
	(gdbserver_default_get_remote_address): New function.
	(gdbserver_start): Call gdb,get_remote_address to compute argument
	to "target remote" command.

2011-12-16  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.python/py-function.exp: Change "on" to "full" for
	python print-stack.  Add set/show python print-stack
	off|full|message tests.

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

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

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

	* gdb.dwarf2/dw2-inline-param.exp: Log the objcopy command.

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

	* lib/gdb.exp (gdb_start_cmd): Fix error return value.

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

	PR threads/10729

	* gdb.mi/watch-nonstop.c: New file.
 	* gdb.mi/mi-watch-nonstop.exp: New file.

2011-12-13  Pedro Alves  <pedro@codesourcery.com>
	    Doug Evans  <dje@google.com>

	* lib/gdb.exp (gdb_run_cmd, runto_main, gdb_compile)
	(clean_restart): Remove references to the gdb_stub target board
	variable.
	(gdb_step_for_stub): Delete.

	* gdb.base/annota1.exp: Remove all references to [target_info
	exists gdb_stub], gdb_step_for_stub and usestubs.
	* gdb.base/annota3.exp: Ditto.
	* gdb.base/async.exp: Ditto.
	* gdb.base/break.exp: Ditto.
	* gdb.base/code-expr.exp: Ditto.
	* gdb.base/commands.exp: Ditto.
	* gdb.base/completion.exp: Ditto.
	* gdb.base/condbreak.exp: Ditto.
	* gdb.base/consecutive.exp: Ditto.
	* gdb.base/cvexpr.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/gnu-ifunc.exp: Ditto.
	* gdb.base/maint.exp: Ditto.
	* gdb.base/pending.exp: Ditto.
	* gdb.base/sect-cmd.exp: Ditto.
	* gdb.base/sepdebug.exp: Ditto.
	* gdb.base/unload.exp: Ditto.
	* gdb.base/watchpoint-solib.exp: Ditto.
	* gdb.cp/annota2.exp: Ditto.
	* gdb.cp/annota3.exp: Ditto.
	* gdb.dwarf2/dw2-inline-param.exp: Ditto.
	* gdb.hp/gdb.compat/xdb1.exp: Ditto.
	* gdb.mi/mi-pending.exp: Ditto.
	* gdb.trace/circ.exp: Ditto.
	* gdb.cp/ovldbreak.exp: Ditto.  Adjust expected line numbers.
	* gdb.base/list.exp: Ditto.

	* gdb.base/all-types.c: Remove all calls to set_debug_traps and
	breakpoint function and all references to the usestubs macro.
	* gdb.base/exprs.c: Ditto.
	* gdb.base/freebpcmd.c: Ditto.
	* gdb.base/bitfields.c: Ditto.
	* gdb.base/bitfields2.c: Ditto.
	* gdb.base/break.c: Ditto.
	* gdb.base/call-sc.c: Ditto.
	* gdb.base/call-signals.c: Ditto.
	* gdb.base/callfuncs.c: Ditto.
	* gdb.base/charset.c: Ditto.
	* gdb.base/consecutive.c: Ditto.
	* gdb.base/constvars.c: Ditto.
	* gdb.base/funcargs.c: Ditto.
	* gdb.base/int-type.c: Ditto.
	* gdb.base/interrupt.c: Ditto.
	* gdb.base/langs0.c: Ditto.
	* gdb.base/list0.c: Ditto.
	* gdb.base/mips_pro.c: Ditto.
	* gdb.base/miscexprs.c: Ditto.
	* gdb.base/nodebug.c: Ditto.
	* gdb.base/opaque0.c: Ditto.
	* gdb.base/pointers.c: Ditto.
	* gdb.base/printcmds.c: Ditto.
	* gdb.base/ptype.c: Ditto.
	* gdb.base/recurse.c: Ditto.
	* gdb.base/reread1.c: Ditto.
	* gdb.base/reread2.c: Ditto.
	* gdb.base/restore.c: Ditto.
	* gdb.base/return.c: Ditto.
	* gdb.base/run.c: Ditto.
	* gdb.base/scope0.c: Ditto.
	* gdb.base/sepdebug.c: Ditto.
	* gdb.base/setshow.c: Ditto.
	* gdb.base/setvar.c: Ditto.
	* gdb.base/sigall.c: Ditto.
	* gdb.base/signals.c: Ditto.
	* gdb.base/structs.c: Ditto.
	* gdb.base/structs2.c: Ditto.
	* gdb.base/testenv.c: Ditto.
	* gdb.base/twice.c: Ditto.
	* gdb.base/unwindonsignal.c: Ditto.
	* gdb.base/watchpoint.c: Ditto.
	* gdb.base/watchpoints.c: Ditto.
	* gdb.base/whatis.c: Ditto.
	* gdb.cp/classes.cc: Ditto.
	* gdb.cp/cplusfuncs.cc: Ditto.
	* gdb.cp/derivation.cc: Ditto.
	* gdb.cp/formatted-ref.cc: Ditto.
	* gdb.cp/misc.cc: Ditto.
	* gdb.cp/overload.cc: Ditto.
	* gdb.cp/ovldbreak.cc: Ditto.
	* gdb.cp/ref-params.cc: Ditto.
	* gdb.cp/ref-types.cc: Ditto.
	* gdb.cp/templates.cc: Ditto.
	* gdb.cp/virtfunc.cc: Ditto.
	* gdb.hp/gdb.aCC/run.c: Ditto.
	* gdb.hp/gdb.base-hp/callfwmall.c: Ditto.
	* gdb.hp/gdb.compat/xdb0.c: Ditto.
	* gdb.reverse/consecutive-reverse.c: Ditto.
	* gdb.reverse/sigall-reverse.c: Ditto.
	* gdb.reverse/until-reverse.c: Ditto.
	* gdb.reverse/watch-reverse.c: Ditto.
	* gdb.trace/actions.c: Ditto.
	* gdb.trace/circ.c: Ditto.
	* gdb.trace/collection.c: Ditto.

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

	* gdb.base/watchpoint.c (struct foo2, foo2, struct foo4, foo4)
	(func6, func7): New.
	(main): Call func6 and func7.
	* gdb.base/watchpoint.exp (test_wide_location_1)
	(test_wide_location_2): New.
	(top level): Re-enable hardware watchpoints if necessary.  Call
	test_wide_location_1 and test_wide_location_2.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* gdb.ada/fullname_bp: New testcase.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* gdb.ada/small_reg_param: New testcase.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	PR python/13327

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

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

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

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

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

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

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

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

	PR python/12656

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	PR gdb/13175

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* gdb.ada/same_enum: New testcase.

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

	* gdb.ada/ptr_typedef: New testcase.

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

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

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

	* gdb.ada/char_enum: New testcase.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	Cope with async mode.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	PR testsuite/12649
	Fix races.

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

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

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

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

	PR mi/12531

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

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

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

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

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

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

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

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

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

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

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

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

	MI breakpoint notifications.

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

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

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

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

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

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

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

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

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

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

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

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

	* gdb.base/maint.exp: Test that "maint print registers" works
	without a running program.

2011-04-20  Marek Polacek  <mpolacek@redhat.com>

	* gdb.base/setshow.exp: Fix racy tests.
	($old_gdb_prompt): New variable.

2011-04-19  Tom Tromey  <tromey@redhat.com>

	* gdb.mi/mi-nsmoribund.exp:
	* gdb.hp/gdb.objdbg/objdbg01.exp:
	* gdb.base/structs.exp (test_struct_returns):
	* gdb.base/call-sc.exp (test_scalar_returns):
	* gdb.base/bigcore.exp: Remove duplicate words.

2011-04-17  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/break-interp-lib.c (v, vptr): New variables.
	* gdb.base/break-interp.exp (test_attach): New comment.

2011-04-17  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.threads/gcore-thread.exp ($core0file): New variable.
	(clear __stack_user.next, clear stack_used.next)
	(save a zeroed-threads corefile): New test.
	Call core_load for $core0file.
	(zeroed-threads cannot be listed): New test.

2011-04-17  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.threads/gcore-thread.exp ($testfile): Match it the .exp
	filename.
	($srcfile): Preserve the original value.
	($testfile): Match it the .exp filename.
	($corefile): New variable.  Substitute it around.
	Use clean_restart.
	($prev_timeout): Remove.
	(load_core): Move core loading into this proc.
	Fix restore of $timeout if load_core fails.

2011-04-17  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/eu-strip-infcall.c: New file.
	* gdb.base/eu-strip-infcall.exp: New file.

2011-04-17  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/callfuncs.c (Lcallfunc, callfunc): New functions.
	* gdb.base/callfuncs.exp (print callfunc (Lcallfunc, 5)): New test.

2011-04-17  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix Python access to inlined frames.
	* gdb.python/py-frame-inline.c: New file.
	* gdb.python/py-frame-inline.exp: New file.

2011-04-13  Edjunior Machado  <emachado@linux.vnet.ibm.com>

	* gdb.base/gdb1090.exp: Change breakpoint location to read the
	content of 's24' correctly (avoiding "optimized out").
	* gdb.base/gdb1090.c: Add comment in order to set breakpoint.

2011-04-13  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* lib/gdb.exp (gdb_breakpoint): New case for a GDB internal error.

2011-04-13  Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* gdb.base/watchpoint.exp (test_inaccessible_watchpoint): Don't
	expect a colon in watch -location output.

2011-04-13  Marek Polacek  <mpolacek@redhat.com>

	* gdb.base/commands.exp (redefine_backtrace_test): Fix race.
	New testcase `expect response to define backtrace'.  Also remove
	redundant `default' block.

2011-04-11  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.python/py-prettyprint.c (struct hint_error): New.
	(main): New variable hint_error.
	* gdb.python/py-prettyprint.exp (run_lang_tests): New testcase
	"print hint_error".
	* gdb.python/py-prettyprint.py (class pp_hint_error): New.
	(register_pretty_printers): Register it.

2011-04-04  Tom Tromey  <tromey@redhat.com>

	* gdb.cp/maint.exp (test_help): Update.
	(test_namespace): Likewise.

2011-04-01  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/arrayptr/foo.adb: Add access to constrained array.
	* gdb.ada/arrayptr.exp: Add new tests.

2011-04-01  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/mi_catch_ex: New testcase.

2011-04-01  Pedro Alves  <pedro@codesourcery.com>

	* gdb.cp/cpexprs.exp (Overloaded methods): No longer try the
	base::overload(void) method without specifying "const".

2011-04-01  Ulrich Weigand  <ulrich.weigand@linaro.org>

	* gdb.arch/thumb-singlestep.S: New file.
	* gdb.arch/thumb-singlestep.exp: Likewise.

2011-03-31  Tom Tromey  <tromey@redhat.com>

	* gdb.python/py-prettyprint.py (exception_flag): New global.
	(NoStringContainerPrinter._iterator.next): Check it.
	* gdb.python/py-prettyprint.c (main): New variable nstype2.
	* gdb.python/py-mi.exp: Set exception_flag and do more tests.

2011-03-29  Tom Tromey  <tromey@redhat.com>

	* gdb.cp/anon-struct.cc: New file.
	* gdb.cp/anon-struct.exp: New file.

2011-03-28  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Test STT_GNU_IFUNC support.
	* gdb.base/gnu-ifunc-lib.c: New file.
	* gdb.base/gnu-ifunc.c: New file.
	* gdb.base/gnu-ifunc.exp: New file.

2011-03-28  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Support a ring of related breakpoints.
	* gdb.base/watchpoint-delete.c: New file.
	* gdb.base/watchpoint-delete.exp: New file.

2011-03-28  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.ada/arrayparam.exp (print first after function call): Use
	explicit package name.  Add a comment
	(print lasta after function call): Rename ...
	(print last after function call): ... it and use explicit package
	name.
	(print length after function call): Use explicit package name.
	* gdb.ada/str_ref_cmp.exp (operator = works for strings): New test.
	* gdb.ada/sym_print_name.exp: Change `i' to `integervar'.
	(multiple matches for symbol i): Rename ...
	(multiple matches for symbol integervar): ... it.
	* gdb.ada/sym_print_name/foo.adb (Foo): Change `I' to `IntegerVar'.
	* gdb.ada/sym_print_name/pck.ads (Pck): Likewise.

2011-03-25  Andrew Burgess  <aburgess@broadcom.com>

	* lib/gdb.exp (default_gdb_start,gdb_init): Clear the GREP_OPTIONS
	environment variable to make grep output more predictable. Move
	all the environment setup into gdb_init so it's done once per test
	case rather than each time we start gdb.

2011-03-24  Tom Tromey  <tromey@redhat.com>

	* gdb.base/label.exp: Use `main:there' linespec.  Add re-running
	test.

2011-03-22  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.dwarf2/dw2-entry-value-main.c: New file.
	* gdb.dwarf2/dw2-entry-value.S: New file.
	* gdb.dwarf2/dw2-entry-value.exp: New file.

2011-03-22  Phil Muldoon  <pmuldoon@redhat.com>

        PR python/12183

	* gdb.python/py-function.exp: Add GdbError tests.

2011-03-18  Pedro Alves  <pedro@codesourcery.com>

	* gdb.trace/unavailable.cc (args_test_func, local_test_func)
	(reglocal_test_func, statlocal_test_func): New functions.
	(globals_test_func): Call new functions.
	* gdb.trace/unavailable.exp (gdb_collect_args_test)
	(gdb_collect_locals_test): New procedure.
	(gdb_trace_collection_test): Call new procedures.

2011-03-18  Pedro Alves  <pedro@codesourcery.com>

	* gdb.trace/unavailable.exp (fpreg, spreg, pcreg): Define.
	(test_register, test_register_unavailable): New procedures.
	(gdb_unavailable_registers_test): New procedure.
	(gdb_trace_collection_test): Call it.

2011-03-18  Phil Muldoon  <pmuldoon@redhat.com>

        PR python/12149

	* gdb.python/python.exp: Add gdb.write tests.

2010-03-17  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.python/Makefile.in: Add py-objfile.
	* gdb.python/py-objfile.exp: New file.
	* gdb.python/py-objfile.c: New file.
	* gdb.python/py-block.exp: Add is_valid tests.
	* gdb.python/py-inferior.exp: Ditto.
	* gdb.python/py-infthread.exp: Ditto.
	* gdb.python/py-symbol.exp: Ditto.
	* gdb.python/py-symtab.exp: Ditto.

2011-03-16  Keith Seitz  <keiths@redhat.com>

	PR c++/12273
	* gdb.cp/cmpd-minsyms.exp: New test.
	* gdb.cp/cmpd-minsyms.cc: New file.

	PR c++/11734
	* gdb.cp/ovsrch.exp: New test.
	* gdb.cp/ovsrch.h: New file.
	* gdb.cp/ovsrch1.cc: New file.
	* gdb.cp/ovsrch2.cc: New file.
	* gdb.cp/ovsrch3.cc: New file.
	* gdb.cp/ovsrch4.cc: New file.

2011-03-16  Paul Pluzhnikov  <ppluzhnikov@google.com>

	PR gdb/12528
	* gdb.base/Makefile.in: Adjust EXECUTABLES.
	* gdb.base/break-on-linker-gcd-function.exp: New test.
	* gdb.base/break-on-linker-gcd-function.cc: New file.

2011-03-15  Andreas Tobler  <andreast@fgznet.ch>

	* gdb.base/jit-main.c: Define ElfW for non glibc elf targets.

2011-03-15  Phil Muldoon  <pmuldoon@redhat.com>

	* lib/gdb.exp (gdb_unload): Add another termination case.

2011-03-15  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.dwarf2/dw2-empty-pc-range.S: New file.
	* gdb.dwarf2/dw2-empty-pc-range.exp: New file.
	* gdb.dwarf2/pr11465.S: New .text labels text_start and text_end.
	Provide a stub byte there.
	(DW_TAG_compile_unit): Set DW_AT_low_pc, DW_AT_high_pc and
	DW_AT_entry_pc.
	(dieb4, dieda): Set DW_AT_high_pc higher than DW_AT_low_pc.

2011-03-15  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdb.arch/altivec-abi.exp: Skip "generic" tests on 64-bit when
	using a GCC 4.1 or 4.2 compiler.  Add an additional test variant
	"generic ABI, auto".
	(altivec_abi_tests): Accept vectors returned by reference.

2010-03-14  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.python/py-breakpoint.exp: Add Python stop operations tests.

2011-03-13  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdb.python/py-section-script.exp: Skip test if no Python support.

2011-03-12  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdb.base/solib-weak.exp: Allow "." prefix for ppc64.

2011-03-10  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.python/py-parameter.exp: Update tests to the new Python
	parameter API. Add "no documentation" test.  Add deprecated API
	backward compatibility test.

2011-03-09  Tom Tromey  <tromey@redhat.com>

	* gdb.ada/catch_ex.exp: Use explicit gdb_test rather than
	gdb_continue_to_end.

2011-03-09  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/memattr.exp: Adjust regexps to accept spaces as well as
	tabs.

2011-03-09  Tom Tromey  <tromey@redhat.com>

	* lib/gdb.exp (inferior_exited_re): Match. leading `['.  Wrap in
	parentheses.
	(gdb_continue_to_end): Add "allow_extra" parameter.  Use
	$command.
	* gdb.threads/thread-unwindonsignal.exp: Pass "allow_extra"
	argument to gdb_continue_to_end.
	* gdb.threads/interrupted-hand-call.exp: Pass "allow_extra"
	argument to gdb_continue_to_end.
	* gdb.cp/annota3.exp: Fix regex.
	* gdb.cp/annota2.exp: Fix regex.
	* gdb.base/shlib-call.exp: Pass "allow_extra" argument to
	gdb_continue_to_end.
	* gdb.base/call-signal-resume.exp: Revert earlier patch.
	* gdb.ada/tasks.exp: Pass "allow_extra" argument to
	gdb_continue_to_end.

2011-03-08  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.server/ext-run.exp
	(load new file without any gdbserver inferior): New test.

2011-03-07  Tom Tromey  <tromey@redhat.com>

	* Makefile.in (TAGS): Rewrite.

2011-03-07  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.trace/report.exp (12.1: trace report #1): New match for the
	initial commands echo.  New match for `Found trace'.  Anchor all the
	other matches.  Anchor and match for `No trace frame found' the final
	match.

2011-03-07  Tom Tromey  <tromey@redhat.com>

	* Makefile.in (TAGS): New target.

2011-03-07  Tom Tromey  <tromey@redhat.com>

	* lib/opencl.exp (skip_opencl_tests): Update for exit message
	change.
	* lib/mi-support.exp (mi_gdb_test): Update for exit message
	change.
	* lib/gdb.exp (gdb_test_multiple): Update comment.  Update for
	exit message change.
	(skip_altivec_tests): Update for exit message change.
	(skip_vsx_tests): Likewise.
	(gdb_continue_to_end): Likewise.  Add 'command' argument.
	* lib/cell.exp (skip_cell_tests): Update for exit message change.
	* gdb.threads/tls.exp: Update for exit message change.
	* gdb.threads/thread-unwindonsignal.exp: Use
	gdb_continue_to_end.
	* gdb.threads/step.exp (step_it): Update for exit message change.
	(continue_all): Likewise.
	* gdb.threads/print-threads.exp (test_all_threads): Update for
	exit message change.
	* gdb.threads/interrupted-hand-call.exp: Use
	gdb_continue_to_end.
	* gdb.threads/execl.exp: Use gdb_continue_to_end.
	* gdb.python/py-prettyprint.exp (run_lang_tests): Use
	gdb_continue_to_end.
	* gdb.hp/gdb.objdbg/objdbg02.exp: Use gdb_continue_to_end.
	* gdb.hp/gdb.objdbg/objdbg01.exp: Use gdb_continue_to_end.
	* gdb.hp/gdb.defects/solib-d.exp: Update for exit message change.
	* gdb.cp/method.exp: Update for exit message change.
	* gdb.cp/mb-templates.exp: Update for exit message change.
	* gdb.cp/mb-inline.exp: Use gdb_continue_to_end.
	* gdb.cp/annota3.exp: Update for exit message change.
	* gdb.cp/annota2.exp: Update for exit message change.
	* gdb.cell/fork.exp: Use gdb_continue_to_end.
	* gdb.base/term.exp: Update for exit message change.
	* gdb.base/step-test.exp (test_i): Update for exit message change.
	* gdb.base/sigstep.exp (advance): Update for exit message change.
	(advancei): Likewise.
	* gdb.base/siginfo.exp: Update for exit message change.
	* gdb.base/shlib-call.exp: Use gdb_continue_to_end.
	* gdb.base/reread.exp: Use gdb_continue_to_end.
	* gdb.base/langs.exp: Use gdb_continue_to_end.
	* gdb.base/interrupt.exp: Update for exit message change.
	* gdb.base/gdb1555.exp: Update for exit message change.
	* gdb.base/exe-lock.exp: Use gdb_continue_to_end.
	* gdb.base/ending-run.exp: Update for exit message change.
	* gdb.base/chng-syms.exp: Update for exit message change.
	* gdb.base/checkpoint.exp: Update for exit message change.
	* gdb.base/catch-syscall.exp (check_for_program_end): Use
	gdb_continue_to_end.
	(test_catch_syscall_with_wrong_args): Likewise.
	* gdb.base/call-signal-resume.exp: Use gdb_continue_to_end.
	* gdb.base/break-interp.exp (test_ld): Update for exit message
	change.
	* gdb.base/bang.exp: Update for exit message change.
	* gdb.base/attach.exp (do_attach_tests): Use gdb_continue_to_end.
	(do_call_attach_tests): Likewise.
	* gdb.base/a2-run.exp: Update for exit message change.
	* gdb.arch/ppc-dfp.exp: Update for exit message change.
	* gdb.ada/tasks.exp: Use gdb_continue_to_end.
	* gdb.ada/catch_ex.exp: Use gdb_continue_to_end.

2011-03-05  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/help.exp (help thread find): Fix one forgotten quote.

2011-03-03  Tom Tromey  <tromey@redhat.com>

	* gdb.hp/gdb.aCC/Makefile.in (Makefile): Remove.
	* gdb.hp/gdb.aCC/configure (Makefile): Remove.
	* gdb.hp/gdb.aCC/configure.ac: Remove.
	* gdb.hp/gdb.base-hp/Makefile.in (Makefile): Remove.
	* gdb.hp/gdb.base-hp/configure (Makefile): Remove.
	* gdb.hp/gdb.base-hp/configure.ac: Remove.
	* gdb.hp/gdb.compat/Makefile.in (Makefile): Remove.
	* gdb.hp/gdb.compat/configure (Makefile): Remove.
	* gdb.hp/gdb.compat/configure.ac: Remove.
	* gdb.hp/gdb.defects/Makefile.in (Makefile): Remove.
	* gdb.hp/gdb.defects/configure (Makefile): Remove.
	* gdb.hp/gdb.defects/configure.ac: Remove.
	* gdb.hp/gdb.objdbg/Makefile.in (Makefile): Remove.
	* gdb.hp/gdb.objdbg/configure (Makefile): Remove.
	* gdb.hp/gdb.objdbg/configure.ac: Remove.
	* gdb.hp/configure.ac: Remove.
	* gdb.hp/configure: Remove.
	* gdb.hp/Makefile.in (SUBDIRS): No longer a configure
	substitution.
	(Makefile): Remove rule.
	* gdb.cell/configure.ac: Remove.
	* gdb.cell/configure: Remove.
	* gdb.stabs/Makefile.in (Makefile): Remove.
	(distclean): Don't remove config.status or config.log.
	* gdb.stabs/configure (Makefile): Remove.
	* gdb.stabs/configure.ac: Remove.
	* configure: Rebuild.
	* configure.ac: Don't AC_CONFIG_SUBDIRS in gdb.hp or gdb.stabs.
	Remove stabs- and cell-specific logic.  Test for existence of
	../gdbtk before configuring gdb.gdbtk.  Build Makefiles in gdb.hp
	subdirectories, gdb.cell, and and gdb.stabs.
	* Makefile.in (ALL_SUBDIRS): Add gdb.hp and gdb.stabs.

2011-03-03  Joel Brobecker  <brobecker@adacore.com>

	* gdb.python/py-inferior.exp: Avoid searching pattern beyond
	end of buffer.

2011-03-02  Joel Brobecker  <brobecker@adacore.com>

	* gdb.python/py-inferior.exp: Use gdb_test_no_output instead of
	gdb_test when running a test where we expected no output back.

2011-02-28  Michael Snyder  <msnyder@vmware.com>

	* gdb.cp/overload.cc: Change initializer value to integer.

2011-02-27  Michael Snyder  <msnyder@vmware.com>

	* gdb.multi/base.exp: Add test for remove-inferiors.

2011-02-26  Joel Brobecker  <brobecker@adacore.com>

	* gdb.python/py-frame.exp: Simplify the initialization phase
	using prepare_for_testing.

2011-02-25  Michael Snyder  <msnyder@vmware.com>

	* gdb.multi/base.exp: Add tests for info inferiors with args.

2011-02-25  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.dwarf2/dw2-ranges.S: Rename to ...
	* gdb.dwarf2/dw2-ranges.c: ... here, convert it to C.
	* gdb.dwarf2/dw2-ranges.exp: Skip the testcase on !$gcc_compiled.
	Rename srcfile, srcfile2 and srcfile3, new asmfile, asmfile2 and
	asmfile3.  Comment the STABS (#3) file compilation.  Compile
	everything through assembler.  Provide KFAIL for symtab/12497.
	* gdb.dwarf2/dw2-ranges2.S: Rename to ...
	* gdb.dwarf2/dw2-ranges2.c: ... here, convert it to C.
	* gdb.dwarf2/dw2-ranges3.S: Rename to ...
	* gdb.dwarf2/dw2-ranges3.c: ... here, convert it to C.

2011-02-24  Michael Snyder  <msnyder@vmware.com>

	* gdb.base/break.exp: Add tests for delete breakpoints using
	convenience variables and value history references.

2011-02-24  Michael Snyder  <msnyder@vmware.com>

	* gdb.base/break.exp: Remove debugging 'printf' accidentally
	left behind in previous check-in.

2011-02-23  Michael Snyder  <msnyder@vmware.com>

	* gdb.base/break.exp: Add tests for "info break" with arguments.
	* gdb.trace/infotrace.exp: Update patterns for error and help.
	* gdb.base/completion.exp: Update pattern.
	* gdb.base/ena-dis-br.exp: Update pattern.
	* gdb.base/help.exp: Update patterns.

2011-02-23  Michael Snyder  <msnyder@vmware.com>

	* gdb.base/memattr.exp: New test.
	* gdb.base/memattr.c: Test load for memattr.exp.

2011-02-22  Doug Evans  <dje@google.com>

	* gdb.python/py-symbol.exp: Test lookup_global_symbol.

2011-02-22  Michael Snyder  <msnyder@vmware.com>

	* Makefile.in: Make more clean.
	* gdb.ada/Makefile.in: Ditto.
	* gdb.arch/Makefile.in: Ditto.
	* gdb.asm/Makefile.in: Ditto.
	* gdb.base/Makefile.in: Ditto.
	* gdb.cp/Makefile.in: Ditto.
	* gdb.dwarf2/Makefile.in: Ditto.
	* gdb.java/Makefile.in: Ditto.
	* gdb.mi/Makefile.in: Ditto.
	* gdb.modula2/Makefile.in: Ditto.
	* gdb.python/Makefile.in: Ditto.
	* gdb.server/Makefile.in: Ditto.
	* gdb.stabs/Makefile.in: Ditto.
	* gdb.threads/Makefile.in: Ditto.
	* gdb.trace/Makefile.in: Ditto.

2011-02-22  Michael Snyder  <msnyder@vmware.com>

	* gdb.threads/thread-find.exp: Add tests for bad input to
	info threads.

2011-02-22  Joel Brobecker  <brobecker@adacore.com>

	* gdb.python/py-breakpoint.exp: Fix the expected output of
	one of the "maint info breakpoints" tests to accept the output
	generated on platforms that do not have hardware watchpoints.

2011-02-22  Joel Brobecker  <brobecker@adacore.com>

	* gdb.python/py-breakpoint.exp: Remove unnecessary call to
	clean_restart.  Be a little stricter in the expected output
	for one of the tests.  Fix a typo in one of the comments.

2011-02-22  Joel Brobecker  <brobecker@adacore.com>

	* gdb.python/py-block.exp: Simplify using prepare_for_testing.
	Delete variable binfile, no longer use.  Add or modify test
	comments to make them unique.

2011-02-21  Michael Snyder  <msnyder@vmware.com>

	* Makefile.in: Update for make clean.
	* gdb.ada/Makefile.in: Ditto.
	* gdb.arch/Makefile.in: Ditto.
	* gdb.asm/Makefile.in: Ditto.
	* gdb.base/Makefile.in: Ditto.
	* gdb.cp/Makefile.in: Ditto.
	* gdb.dwarf2/Makefile.in: Ditto.
	* gdb.java/Makefile.in: Ditto.
	* gdb.mi/Makefile.in: Ditto.
	* gdb.modula2/Makefile.in: Ditto.
	* gdb.python/Makefile.in: Ditto.
	* gdb.server/Makefile.in: Ditto.
	* gdb.stabs/Makefile.in: Ditto.
	* gdb.threads/Makefile.in: Ditto.
	* gdb.trace/Makefile.in: Ditto.

2011-02-21  Michael Snyder  <msnyder@vmware.com>

	* gdb.threads/thread-find.exp: Update patterns for changes in
	output of "info threads" command.

2011-02-21  Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
	    Ulrich Weigand  <uweigand@de.ibm.com>

	* lib/gdb.exp (skip_hw_breakpoint_tests): Add arm*-*-* target.
	(skip_hw_watchpoint_tests): Likewise.
	(skip_hw_watchpoint_multi_tests): Likewise.

2011-02-21  Ulrich Weigand  <uweigand@de.ibm.com>

	* lib/gdb.exp (skip_hw_breakpoint_tests): New procedure.
	(skip_hw_watchpoint_tests): Likewise.
	(skip_hw_watchpoint_multi_tests): Likewise.
	(skip_hw_watchpoint_access_tests): Likewise.

	* gdb.base/hbreak.exp: Use appropriate skip_hw_..._tests checks.
	* gdb.base/pr11022.exp: Likewise.
	* gdb.base/watch-read.exp: Likewise.
	* gdb.base/watch_thread_num.exp: Likewise.
	* gdb.base/watchpoint-hw-hit-once.exp: Likewise.
	* gdb.base/watchpoint-hw.exp: Likewise.
	* gdb.base/watchpoint.exp: Likewise.
	* gdb.threads/local-watch-wrong-thread.exp: Likewise.
	* gdb.threads/watchthreads-reorder.exp: Likewise.
	* gdb.threads/watchthreads.exp: Likewise.
	* gdb.threads/watchthreads2.exp: Likewise.

2011-02-21  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/packed_array.exp: Add xfail for "print u_var" if
	the debugger is unable to find the array bounds.

2011-02-18  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.cp/typedef-operator.exp: New file.
	* gdb.cp/typedef-operator.cc: New file.

2011-02-17  Michael Snyder  <msnyder@vmware.com>

	* gdb.threads/thread-find.exp: Fix regular expressions.

2011-02-17  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/packed_array: Expand testcase to test printing of
	unconstrained packed array.

2011-02-17  Joel Brobecker  <brobecker@adacore.com>

	* gdb.dwarf2/dw2-ranges.exp: Simplify using clean_restart.

2011-02-16  Pedro Alves  <pedro@codesourcery.com>

	* gdb.trace/collection.c (globalarr3): New global.
	(main): Initialize it before collecting, and and clear it
	afterwards.
	* gdb.trace/collection.exp (gdb_collect_globals_test): Test
	collecting with '{type} addr', where the addr expression is not an
	rvalue.

2011-02-16  Ken Werner  <ken.werner@de.ibm.com>

	* gdb.opencl/datatypes.exp: Allow "false" when printing the content of
	a bool variable. Expect correct OpenCL names for vector types. Use the
	uc3 variable name instead of referring to the uchar3 built-in type.
	Escape the asterisk at the half pointer test.

2011-02-16  Pedro Alves  <pedro@codesourcery.com>

	* gdb.trace/collection.c (globalarr2): New global.
	(main): Initialize it before collecting, and and clear it
	afterwards.
	* gdb.trace/collection.exp (gdb_collect_globals_test): Test
	collecting overlapping memory ranges.

2011-02-15  Michael Snyder  <msnyder@vmware.com>

	* gdb.base/default.exp: Add tests for thread commands.
	* gdb.base/help.exp: Add tests for thread commands.
	* gdb.threads/thread-find.exp: New test for thread find command.

2011-02-15  Ken Werner  <ken.werner@de.ibm.com>

	* gdb.opencl/datatypes.exp: Expect the size of a bool to be one byte.

2011-02-15  Yao Qi  <yao@codesourcery.com>

	PR tdep/12352
	* gdb.arch/arm-disp-step.S : New test for str instruction.
	* gdb.arch/arm-disp-step.exp : Likewise.

2011-02-15  Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* gdb.arch/vsx-regs.exp: Add "vector_register1_vr" and
	"vector_register2_vr" test strings.  Test the extended floating
	point registers (F32~F63).
	* lib/gdb.exp (skip_vsx_tests): Update compile flags for the
	IBM XL C compiler.  Make the test program use a register provided
	by the compiler for the lxvd2x instruction.

2011-02-14  Pedro Alves  <pedro@codesourcery.com>

	* gdb.trace/unavailable.cc (class Base, class Middle, class
	Derived): New types.
	(derived_unavail, derived_partial, derived_whole): New globals.
	(virtual_partial): New global.
	(virtualp): Point at virtual_partial.
	* gdb.trace/unavailable.exp (gdb_collect_globals_test): Add tests
	related to unavailable vptr.

2011-02-14  Pedro Alves  <pedro@codesourcery.com>

	* gdb.trace/unavailable.cc (a, b, c): New globals.
	(main): Set and clear them.
	* gdb.trace/unavailable.exp (gdb_collect_globals_test): Collect
	`a' and `c', and check that `b' isn't collected, although `a' and
	`c' are.

2011-02-14  Pedro Alves  <pedro@codesourcery.com>

	* gdb.trace/unavailable.cc (struct Virtual): New.
	(virtualp): New global pointer.
	* gdb.trace/unavailable.exp (gdb_collect_globals_test): Test
	printing a pointer to an object whose type has a vtable, with
	print object on.

2011-02-14  Pedro Alves  <pedro@codesourcery.com>

	* gdb.trace/unavailable.exp (gdb_collect_globals_test): Test that
	value repeat handles unavailableness.

2011-02-14  Pedro Alves  <pedro@codesourcery.com>

	* gdb.trace/unavailable.exp (gdb_collect_globals_test): Add new
	tests for building arrays from unavailable values, subscripting
	non-memory rvalue unvailable arrays, and accessing fields or
	baseclasses of non-lazy unavailable values,
	* gdb.trace/unavailable.cc (small_struct, small_struct_b): New
	struct types.
	(g_smallstruct, g_smallstruct_b): New globals.

2011-02-14  Pedro Alves  <pedro@codesourcery.com>

	* gdb.trace/unavailable.cc, gdb.trace/unavailable.exp: New files.

2011-02-13  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix const/volatile qualifiers of C++ types, PR c++/12328.
	* gdb.cp/overload-const.exp: New file.
	* gdb.cp/overload-const.cc: New file.

2011-02-08  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdb.opencl/callfuncs.cl: New file.
	* gdb.opencl/callfuncs.exp: New test.
	* gdb.opencl/Makefile.in (EXECUTABLES): Add callfuncs.

2011-02-08  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdb.arch/altivec-abi.c (vec_func): Make use of intv_on_stack_f
	when computing result.
	* gdb.arch/altivec-abi.exp: Update expected results.

2011-02-07  Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* gdb.base/break-interp.exp: Remove ${objdir} from test messages.
	* gdb.base/jit.exp: Likewise.
	* gdb.base/pie-execl.exp: Likewise.
	* gdb.base/solib-nodir.exp: Likewise.
	* gdb.base/solib-overlap.exp: Likewise.

2011-02-07  Pedro Alves  <pedro@codesourcery.com>

	* gdb.trace/collection.c (global_pieces): New.
	* gdb.trace/collection.exp (gdb_collect_global_in_pieces_test):
	New procedure.
	(gdb_trace_collection_test): Call it.

2011-02-04  Sami Wagiaalla  <swagiaal@redhat.com>

	* gdb.python/py-evthreads.c: New file.
	* gdb.python/py-evthreads.exp: New file.
	* gdb.python/py-events.py: New file.
	* gdb.python/py-events.exp: New file.
	* gdb.python/py-events.c: New file.

2011-02-04 David Daney <ddaney@caviumnetworks.com>

	* gdb.base/catch-syscall.exp: Enable for mips*-linux*.

2011-02-03  Andrew Burgess  <aburgess@broadcom.com>

	* gdb.base/disasm-end-cu-1.c, gdb.base/disasm-end-cu-2.c,
	gdb.base/disasm-end-cu.exp: New test for disassembling over the
	boundary between two compilation units.

2011-02-02  Pedro Alves  <pedro@codesourcery.com>

	* gdb.cp/virtbase.cc (VirtualBase, VirtualMiddleA, VirtualMiddleB)
	(Virtual): New structs.
	(virtual_o, virtual_middle_b): New globals.
	* gdb.cp/virtbase.exp: New tests.

2011-01-31  Paul Pluzhnikov  <ppluzhnikov@google.com>

	* gdb.base/jit.exp: New file.
	* gdb.base/jit-main.c: New file.
	* gdb.base/jit-solib.c: New file.

2011-01-31  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdb.opencl/convs_casts.exp: Use tbreak instead of break to
	proceed to initial kernel entry point.
	* gdb.opencl/datatypes.exp: Likewise.
	* gdb.opencl/operators.exp: Likewise.
	* gdb.opencl/vec_comps.exp: Likewise.

2011-01-31  Sami Wagiaalla  <swagiaal@redhat.com>

	* gdb.cp/nsnested.cc: New.
	* gdb.cp/nsnested.exp: New.
	* gdb.cp/nsnoimports.exp: New.
	* gdb.cp/nsnoimports.cc: New.

2011-01-31  Joel Brobecker  <brobecker@adacore.com>

	* gdb.base/interact.exp: Add extra tests that verify that
	the value of the interactive-mode setting does not change
	after the script is sourced.

2011-01-29  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.cp/noparam.exp: New file.
	* gdb.cp/noparam.cc: New file.

2011-01-28  Pedro Alves  <pedro@codesourcery.com>

	* gdb.trace/tfile.exp: Test that with no traceframe selected,
	there's no stack or registers.

2011-01-26  Tom Tromey  <tromey@redhat.com>

	* gdb.python/py-prettyprint.exp (run_lang_tests): Ensure no blank
	space before string output.  Add test for "set print pretty off"
	case.

2011-01-25  Pedro Alves  <pedro@codesourcery.com>

	* gdb.base/frame-args.exp: Adjust.
	* gdb.dwarf2/dw2-noloc.exp: Adjust.
	* gdb.dwarf2/dw2-inline-param.exp: Adjust.
	* gdb.dwarf2/pieces.exp: Adjust.
	* gdb.opt/clobbered-registers-O2.exp: Adjust.
	* gdb.opt/inline-locals.exp: Adjust.
	* gdb.threads/fork-child-threads.exp: Adjust.

2011-01-25  Ken Werner  <ken.werner@de.ibm.com>

	* gdb.opencl/convs_casts.cl: Move program scope variables into the
	OpenCL kernel function. Add a comment as marker. Add address space
	qualifiers for the remaining program scope variables.
	* gdb.opencl/datatypes.cl: Likewise.
	* gdb.opencl/operators.cl: Likewise.
	* gdb.opencl/vec_comps.cl: Likewise.
	* gdb.opencl/convs_casts.exp: Replace gdb_test_multiple by gdb_test.
	Add breakpoint at the marker comment.
	* gdb.opencl/datatypes.exp: Likewise.
	* gdb.opencl/operators.exp: Likewise.
	* gdb.opencl/vec_comps.exp: Likewise.

2011-01-24  Pedro Alves  <pedro@codesourcery.com>

	* gdb.base/printcmds.c (some_struct): New struct and instance.
	* gdb.base/printcmds.exp (test_print_repeats_embedded_array): New
	procedure.
	<global scope>: Call it.

2011-01-21  Ken Werner  <ken.werner@de.ibm.com>

	* lib/opencl.exp (skip_opencl_tests): Add missing compile_flags
	argument to the gdb_compile_opencl_hostapp call.

2011-01-19  Yao Qi  <yao@codesourcery.com>

	* lib/dwarf.exp (dwarf2_support): Change supported targets to a
	positve list.

2011-01-19  Yao Qi  <yao@codesourcery.com>

	* gdb.asm/asm-source.exp: Replace ARM target triplet with a
	canonical form.
	Remove "xscale-*-*"
	* gdb.xml/tdesc-regs.exp: Likewise.
	* gdb.python/py-section-script.exp: Replace ARM target triplet
	with canonical form.
	Match arm*-*-symbianelf*.
	* gdb.base/dup-sect.exp: Likewise.
	* lib/dwarf.exp: New.
	* gdb.dwarf2/callframecfa.exp: Check dwarf2 support by routine
	dwarf2_support.
	* gdb.dwarf2/dup-psym.exp: Likewise.
	* gdb.dwarf2/dw2-ada-ffffffff.exp: Likewise.
	* gdb.dwarf2/dw2-anonymous-func.exp: Likewise.
	* gdb.dwarf2/dw2-bad-parameter-type.exp: Likewise.
	* gdb.dwarf2/dw2-basic.exp: Likewise.
	* gdb.dwarf2/dw2-compressed.exp: Likewise.
	* gdb.dwarf2/dw2-const.exp: Likewise.
	* gdb.dwarf2/dw2-cp-infcall-ref-static.exp: Likewise.
	* gdb.dwarf2/dw2-cu-size.exp: Likewise.
	* gdb.dwarf2/dw2-double-set-die-type.exp: Likewise.
	* gdb.dwarf2/dw2-empty-namespace.exp: Likewise.
	* gdb.dwarf2/dw2-filename.exp: Likewise.
	* gdb.dwarf2/dw2-inheritance.exp: Likewise.
	* gdb.dwarf2/dw2-inline-param.exp: Likewise.
	* gdb.dwarf2/dw2-intercu.exp: Likewise.
	* gdb.dwarf2/dw2-intermix.exp: Likewise.
	* gdb.dwarf2/dw2-modula2-self-type.exp: Likewise.
	* gdb.dwarf2/dw2-noloc.exp: Likewise.
	* gdb.dwarf2/dw2-op-call.exp: Likewise.
	* gdb.dwarf2/dw2-producer.exp: Likewise.
	* gdb.dwarf2/dw2-ranges.exp: Likewise.
	* gdb.dwarf2/dw2-ref-missing-frame.exp: Likewise.
	* gdb.dwarf2/dw2-stack-boundary.exp: Likewise.
	* gdb.dwarf2/dw2-strp.exp: Likewise.
	* gdb.dwarf2/dw2-unresolved.exp: Likewise.
	* gdb.dwarf2/implptr.exp: Likewise.
	* gdb.dwarf2/mac-fileno.exp: Likewise.
	* gdb.dwarf2/member-ptr-forwardref.exp: Likewise.
	* gdb.dwarf2/pieces.exp: Likewise.
	* gdb.dwarf2/pr11465.exp: Likewise.
	* gdb.dwarf2/valop.exp: Likewise.
	* gdb.dwarf2/watch-notconst.exp: Likewise.
	* gdb.mi/dw2-ref-missing-frame.exp: Likewise.

2011-01-19  Tom Tromey  <tromey@redhat.com>

	* gdb.python/py-infthread.exp: Add thread tests.

2011-01-14  Joel Brobecker  <brobecker@adacore.com>

	* gdb.base/wchar.c, gdb.base/wchar.exp: New testcases.

2011-01-14  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/widewide: New testcase.

2011-01-13  Joel Brobecker  <brobecker@adacore.com>

	* gdb.base/interact.exp: New testcase.

2011-01-12  Tom Tromey  <tromey@redhat.com>

	* gdb.mi/gdb2549.exp: Update for error message changes.
	* gdb.mi/mi-cli.exp: Likewise.
	* gdb.mi/mi-disassemble.exp: Likewise.
	* gdb.mi/mi-pthreads.exp: Likewise.
	* gdb.mi/mi-regs.exp: Likewise.
	* gdb.mi/mi-stack.exp: Likewise.
	* gdb.mi/mi-var-block.exp: Likewise.
	* gdb.mi/mi-var-cmd.exp: Likewise.
	* gdb.mi/mi2-cli.exp: Likewise.
	* gdb.mi/mi2-disassemble.exp: Likewise.
	* gdb.mi/mi2-pthreads.exp: Likewise.
	* gdb.mi/mi2-regs.exp: Likewise.
	* gdb.mi/mi2-stack.exp: Likewise.
	* gdb.mi/mi2-var-block.exp: Likewise.
	* gdb.mi/mi2-var-cmd.exp: Likewise.

2011-01-12  Andrew Burgess  <aburgess@broadcom.com>
	    Jan Kratochvil  <jan.kratochvil@redhat.com>

	PR fortran/11104 and DWARF unbound arrays detection.
	* gdb.fortran/multi-dim.exp: New file.
	* gdb.fortran/multi-dim.f90: New file.

2011-01-12  Andrew Burgess  <aburgess@broadcom.com>

	* gdb.mi/mi-disassemble.exp, gdb.mi/mi2-disassemble.exp: Update
	expected output to reflect changes in gdb/mi/mi-cmd-disas.c and
	add new tests for opcode dumping.

2011-01-11  Tom Tromey  <tromey@redhat.com>

	* gdb.python/py-infthread.exp: Load gdb-python.exp.

2010-01-11  Thiago Jung Bauermann  <bauerman@br.ibm.com>

	Convert hardware watchpoints to use breakpoint_ops.
	* gdb.base/foll-exec.exp: Adapt to new error string when the catchpoint
	type is not supported.
	* gdb.base/foll-fork.exp: Likewise.
	* gdb.base/foll-vfork.exp: Likewise.

2011-01-10  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.python/py-cmd.exp: Remove gdb_py_test_multiple function.
	Use load_lib gdb-python.exp.
	* gdb.python/python.exp: Ditto.
	* gdb.python/py-function.exp: Ditto.

2011-01-09  Andreas Schwab  <schwab@linux-m68k.org>

	* gdb.threads/tls.exp ("info address me"): Fix expected output.

2011-01-07  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* configure: Regenerate.

2011-01-06  Tom Tromey  <tromey@redhat.com>

	* gdb.python/py-frame.exp: Test gdb.newest_frame.

2011-01-06  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/array_bounds.exp, gdb.ada/array_return.exp,
	gdb.ada/array_subscript_addr.exp, gdb.ada/arrayidx.exp,
	gdb.ada/arrayparam.exp, gdb.ada/arrayptr.exp,
	gdb.ada/atomic_enum.exp, gdb.ada/call_pn.exp,
	gdb.ada/catch_ex.exp, gdb.ada/char_param.exp,
	gdb.ada/complete.exp, gdb.ada/exprs.exp, gdb.ada/fixed_cmp.exp,
	gdb.ada/fixed_points.exp, gdb.ada/formatted_ref.exp,
	gdb.ada/frame_args.exp, gdb.ada/fun_addr.exp,
	gdb.ada/fun_in_declare.exp, gdb.ada/funcall_param.exp,
	gdb.ada/homonym.exp, gdb.ada/int_deref.exp,
	gdb.ada/interface.exp, gdb.ada/lang_switch.exp,
	gdb.ada/mod_from_name.exp, gdb.ada/nested.exp,
	gdb.ada/null_array.exp, gdb.ada/null_record.exp,
	gdb.ada/packed_array.exp, gdb.ada/packed_tagged.exp,
	gdb.ada/print_chars.exp, gdb.ada/print_pc.exp,
	gdb.ada/ptype_field.exp, gdb.ada/ptype_tagged_param.exp,
	gdb.ada/rec_return.exp, gdb.ada/ref_param.exp,
	gdb.ada/ref_tick_size.exp, gdb.ada/start.exp,
	gdb.ada/str_ref_cmp.exp, gdb.ada/sym_print_name.exp,
	gdb.ada/taft_type.exp, gdb.ada/tagged.exp, gdb.ada/tasks.exp,
	gdb.ada/tick_last_segv.exp, gdb.ada/type_coercion.exp,
	gdb.ada/uninitialized_vars.exp,
	gdb.ada/variant_record_packed_array.exp, gdb.ada/watch_arg.exp:
	Simplify by using clean_restart.

2011-01-06  Joel Brobecker  <brobecker@adacore.com>

	Add marker to be used as anchor for inserting breakpoints.
	* gdb.ada/null_record/null_record.adb: Add "-- START" comment.
	* gdb.ada/start/dummy.adb, gdb.ada/uninitialized_vars/parse.adb:
	Likewise.

	Remove uses of gdb_start_cmd.
	* gdb.ada/null_record.exp: Remove use of gdb_start_cmd.
	* gdb.ada/print_pc.exp, gdb.ada/uninitialized_vars.exp: Ditto.

	Do not run testcase if testing with GDBserver.
	* gdb.ada/exec_changed.exp, gdb.ada/start.exp: Abort as untested
	if testing with GDBserver.

2011-01-06  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/complete/foo.adb, gdb.ada/complete/pck.adb,
	gdb.ada/complete/pck.ads, gdb.ada/print_chars/foo.adb: Add
	copyright header.

2011-01-05  Joel Brobecker  <brobecker@adacore.com>

	* testsuite/configure.ac, testsuite/gdb.arch/gdb1291.s,
	testsuite/gdb.arch/gdb1431.s, testsuite/gdb.fortran/array-element.f,
	testsuite/gdb.fortran/complex.f,
	testsuite/gdb.fortran/derived-type.f90,
	testsuite/gdb.fortran/library-module-lib.f90,
	testsuite/gdb.fortran/library-module-main.f90,
	testsuite/gdb.fortran/logical.f90, testsuite/gdb.fortran/module.f90,
	testsuite/gdb.fortran/subarray.f, testsuite/gdb.mi/array.f:
	Copyright year update.

2011-01-05  Joel Brobecker  <brobecker@adacore.com>

	* gdb.base/langs1.f: Add copyright header.

2011-01-03  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/morestack.exp: New file.
	* gdb.base/morestack.c: New file.

2011-01-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.ada/gnat_ada.gpr: Fix copyright comment line regression by 2011.

2010-12-29  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/arrayptr/foo.adb: Add new local variable Null_String.
	* gdb.ada/arrayptr.exp: Add test printing that new variable.

2010-12-29  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/lang_switch.exp: Correct expected parameter value.

2010-12-25  Andreas Schwab  <schwab@linux-m68k.org>

	* gdb.threads/tls.exp: Fix typo.

	* gdb.threads/thread-specific.exp (get_thread_list): Update.
	* gdb.threads/execl.exp: Update.

2010-12-23  Yao Qi  <yao@codesourcery.com>

	* gdb.arch/arm-disp-step.exp: New.
	* gdb.arch/arm-disp-step.S: New.

2010-12-21  Tom Tromey  <tromey@redhat.com>

	* gdb.threads/execl.exp: Update.
	* gdb.threads/linux-dp.exp: Update.
	* gdb.threads/manythreads.exp: Update.
	* gdb.threads/tls.exp: Update.

2010-12-15  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.cp/nextoverthrow.cc (dummy): Return int 0.
	(NextOverThrowDerivates) <resumebpt>: New.
	(resumebpt_test): New.
	(main): Call resumebpt_test.
	* gdb.cp/nextoverthrow.exp: New block for test of "resumebpt".

2010-12-12  Stan Shebs  <stan@codesourcery.com>

	* gdb.trace/tsv.exp: Test print command on trace state variables.

2010-12-09  Tom Tromey  <tromey@redhat.com>

	* gdb.base/interp.exp: Add regression test.

2010-12-09  Tom Tromey  <tromey@redhat.com>

	* gdb.java/jnpe.java: New file.
	* gdb.java/jnpe.exp: New file.
	* gdb.cp/nextoverthrow.exp: New file.
	* gdb.cp/nextoverthrow.cc: New file.

2010-12-07  Doug Evans  <dje@google.com>

	* gdb.base/catch-syscall.exp (do_syscall_tests): Remove setting
	of data-directory.
	* lib/gdb-python.exp (gdb_check_python_config): Delete, all callers
	updated.
	* lib/gdb.exp (INTERNAL_GDBFLAGS): Add -data-directory.

2010-11-29  Michael Snyder  <msnyder@vmware.com>

	* gdb.base/callfuncs.exp: Test for skip_float_tests.
	* gdb.base/call-sc.exp: Ditto.
	* gdb.base/finish.exp: Ditto.
	* gdb.base/return.exp: Ditto.
	* gdb.base/return2.exp: Ditto.

2010-11-30  Doug Evans  <dje@google.com>

	* lib/gdb.exp (gdb_test_sequence): Return result of gdb_expect_list.
	(gdb_expect_list): Fix spelling errors in comments.
	* gdb.arch/system-gcore.exp: Use gdb_test_sequence instead of
	send_gdb/gdb_expect_list where applicable.
	* gdb.base/call-ar-st.exp: Ditto.
	* gdb.base/funcargs.exp: Ditto.
	* gdb.base/gcore.exp: Ditto.
	* gdb.base/page.exp: Ditto.
	* gdb.base/sigaltstack.exp: Ditto.
	* gdb.base/siginfo.exp: Ditto.
	* gdb.base/sigstep.exp: Ditto.
	* gdb.base/trace-commands.exp: Ditto.

2010-11-29  Doug Evans  <dje@google.com>

	* gdb.python/py-pp-maint.exp: Change printer-name:subprinter-name to
	printer-name;subprinter-name.

2010-11-29  Tom Tromey  <tromey@redhat.com>

	* gdb.dwarf2/implptr.exp: New file.
	* gdb.dwarf2/implptr.c: New file.
	* gdb.dwarf2/implptr.S: New file.

2010-11-29  Phil Muldoon  <pmuldoon@redhat.com>

	PR python/12199

	* gdb.python/py-breakpoint.exp: Test the delete method.

2010-11-28  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix step_resume_breakpoint unsaved during an infcall.
	* gdb.base/step-resume-infcall.exp: New file.
	* gdb.base/step-resume-infcall.c: New file.

2010-11-24  Edjunior Machado  <emachado@br.ibm.com>

	* gdb.asm/powerpc.inc: Use 'sys_exit' on gdbasm_exit0 macro.

2010-11-24  Edjunior Machado  <emachado@br.ibm.com>

	* gdb.asm/asm-source.exp: Add new target "powerpc64"; expect leading `.'
	on ppc64's symbols; "finish" and "return" commands must accept to
	show the caller line again as well as the line after.
	* gdb.asm/powerpc64.inc: New file.

2010-11-23  Doug Evans  <dje@google.com>

	* lib/gdb.exp (gdb_test_sequence): New function.
	(gdb_expect_list): Add verbose -log call for each pattern.
	* gdb.base/signals.exp (test_handle_all_print): Call it.
	Reduce timeout increment from 6 minutes to 1 minute.
	* gdb.server/ext-run.exp: Call it.

2010-11-23  Phil Muldoon  <pmuldoon@redhat.com>

	PR python/12212

	* gdb.python/python.exp: Check that selected_thread raises an
	error when no inferior is loaded.

2010-11-20  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.dwarf2/dw2-stack-boundary.exp: New file.
	* gdb.dwarf2/dw2-stack-boundary.S: New file.

2010-11-20  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.dwarf2/dw2-ada-ffffffff.S: New file.
	* gdb.dwarf2/dw2-ada-ffffffff.exp: New file.

2010-11-18  Doug Evans  <dje@google.com>

	* gdb.server/ext-run.exp: Fix intermittent failures.

2010-11-12  Nathan Froyd  <froydnj@codesourcery.com>

	* gdb.stabs/gdb11479.exp: Use runto_main.

2010-11-12  Nathan Froyd  <froydnj@codesourcery.com>

	* gdb.base/break-entry.exp: Skip if using a stub.

2010-11-12  Nathan Froyd  <froydnj@codesourcery.com>

	* gdb.python/py-inferior.exp: Pack values in target endianness.

2010-11-12  Tom Tromey  <tromey@redhat.com>

	* gdb.python/py-prettyprint.c (main): Add new 'ns2' local.
	* gdb.python/py-prettyprint.exp (run_lang_tests): Add test for
	MemoryError.
	* gdb.python/python.exp (gdb_py_test_multiple): Update exception
	type.
	* gdb.python/py-value.exp (test_value_in_inferior): Add test for
	MemoryError.
	(test_subscript_regression): Update exception type.

2010-11-11  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.python/py-breakpoint.exp: Add internal watchpoint and
	breakpoint tests.

2010-11-09  Pedro Alves  <pedro@codesourcery.com>

	* gdb.base/watchpoint.exp: Test "watch -location" with an
	innacessible location.

2010-11-09  Edjunior Machado  <emachado@br.ibm.com>
	    Luis Machado  <luisgpm@br.ibm.com>

	* gdb.base/maint.exp: Expect "." prefix.
	* gdb.base/nodebug.exp: Expect "." Likewise.
	* gdb.base/sepsymtab.exp: Expect "." Likewise.
	* gdb.base/watchpoint-cond-gone.exp: Likewise.
	* gdb.base/watchpoint.exp: Expect a software watch to be created for
	POWER server processors.

2010-11-08  Edjunior Machado  <emachado@br.ibm.com>
	    Luis Machado  <luisgpm@br.ibm.com>

	* gdb.base/break-entry.exp: convert entry point for
	ppc64 and expect leading `.' on ppc64's symbols

2010-11-05  Doug Evans  <dje@google.com>

	* gdb.base/help.exp: Update expected output.
	* gdb.python/py-param.exp: Delete, contents moved to ...
	* gdb.python/py-parameter.exp: ... here.  New file.
	Add test for gdb.parameter ("directories").

2010-11-05  Ken Werner  <ken.werner@de.ibm.com>

	* Makefile.in (ALL_SUBDIRS): Add gdb.opencl.
	* configure.ac (AC_OUTPUT): Add gdb.opencl/Makefile.
	* configure: Regenerate.
	* gdb.opencl/Makefile.in: New File.
	* gdb.opencl/datatypes.exp: Likewise.
	* gdb.opencl/datatypes.cl: Likewise.
	* gdb.opencl/operators.exp: Likewise.
	* gdb.opencl/operators.cl: Likewise.
	* gdb.opencl/vec_comps.exp: Likewise.
	* gdb.opencl/vec_comps.cl: Likewise.
	* gdb.opencl/convs_casts.exp: Likewise.
	* gdb.opencl/convs_casts.cl: Likewise.
	* lib/opencl.exp: Likewise.
	* lib/opencl_hostapp.c: Likewise.
	* lib/opencl_kernel.cl: Likewise.
	* lib/cl_util.c: Likewise.
	* lib/cl_util.c: Likewise.
	* gdb.base/default.exp (set language): Add "opencl" to the list of
	languages.

2010-11-04  Sami Wagiaalla  <swagiaal@redhat.com>

	* gdb.cp/overload.exp: Added test for inheritance overload.
	* gdb.cp/overload.cc: Ditto.
	* gdb.cp/oranking.exp: Removed releveant kfails.

2010-11-04  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/null_array.exp (print my_table): Call get_compiler_info and
	check test_compiler_info.

2010-11-03  Ken Werner  <ken.werner@de.ibm.com>

	* gdb.base/gnu_vector.exp: Adjust expect messages.

2010-11-03  Ken Werner  <ken.werner@de.ibm.com>

	* gdb.base/gnu_vector.exp: Add unary operator tests.

2010-11-03  Ken Werner  <ken.werner@de.ibm.com>

	* gdb.base/exprs.exp: Add tests for pre-/post- in-/decrement operators.

2010-11-02  Doug Evans  <dje@google.com>

	* gdb.python/py-pp-maint.c: New file.
	* gdb.python/py-pp-maint.exp: New file.
	* gdb.python/py-pp-maint.py: New file.

2010-11-02  Tom Tromey  <tromey@redhat.com>

	* gdb.base/default.exp: Remove "scheme" from language list.

2010-11-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Revert:
	2010-10-17  Jan Kratochvil  <jan.kratochvil@redhat.com>
	* gdb.threads/sigstep-threads.exp: New file.
	* gdb.threads/sigstep-threads.c: New file.

2010-10-20  Michael Snyder  <msnyder@vmware.com>

	* gdb.threads/fork-child-threads.exp: Don't run on remote target.

2010-10-19  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdb.base/watch_thread_num.exp: Revert 2008-09-03 change.
	Skip test completely if gdb,no_hardware_watchpoints.

2010-10-19  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdb.base/foll-fork.exp: Make regexps to match catchpoint hits more
	strict, but do not check for any particular function name within libc.

2010-10-19  Sami Wagiaalla  <swagiaal@redhat.com>

	* gdb.cp/smartp.exp: New test.
	* gdb.cp/smartp.cc : New test.

2010-10-19  Sami Wagiaalla  <swagiaal@redhat.com>

	* gdb.cp/converts.exp: Test pointer to bool conversion.
	Test pointer to long conversion.
	* gdb.cp/oranking.exp: Removed relevant kfail.

2010-10-18  Tom Tromey  <tromey@redhat.com>

	* gdb.python/py-prettyprint.exp (run_lang_tests): Test encoding
	argument to lazy_string.
	* gdb.python/py-prettyprint.py (pp_ls_encoding): New global.
	(pp_ls.to_string): Use it.
	* gdb.python/py-prettyprint.c (main): Move declarations to top.
	Add "estring2" local.

2010-10-17  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix s390x compatibility.
	* gdb.dwarf2/pr11465.S (DW_TAG_pointer_type): Use PTRBITS.  Twice.
	* gdb.dwarf2/pr11465.exp: Set ptrbits, use it for -DPTRBITS.

2010-10-17  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.threads/sigstep-threads.exp: New file.
	* gdb.threads/sigstep-threads.c: New file.

2010-10-17  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/pie-execl.exp: New file.
	* gdb.base/pie-execl.c: New file.

2010-10-13  Doug Evans  <dje@google.com>
	    Jan Kratochvil  <jan.kratochvil@redhat.com>

	PR exp/12117
	* gdb.cp/ptype-cv-cp.cc: New file.
	* gdb.cp/ptype-cv-cp.exp: New file.

2010-10-14  Sami Wagiaalla  <swagiaal@redhat.com>

	* gdb.cp/converts.cc: New test program.
	* gdb.cp/converts.exp: New test.
	* gdb.cp/overload.exp: Added test for void* vs int*.
	* gdb.cp/overload.exp: Ditto.
	* gdb.cp/oranking.exp: Removed related kfail.

2010-10-13  Doug Evans  <dje@google.com>

	* lib/gdb-python.exp (gdb_check_python_config): New function.
	* gdb.python/Makefile.in (EXECUTABLES): Add lib-types.
	* gdb.python/lib-types.cc: New file.
	* gdb.python/lib-types.exp: New file.

2010-10-13  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.python/py-error.exp: New file.
	* gdb.python/py-error.py: New file.

2010-10-12  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/break-interp.exp (test_ld): Replace gdb_expect by
	gdb_test_multiple.

2010-10-12  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/break-interp.exp: Use ldlags for linking flags.
	* gdb.base/prelink.exp: Likewise.
	* gdb.base/solib-nodir.exp: Likewise.
	* lib/gdb.exp (gdb_compile) <*-*-openbsd*>
	(gdb_compile) <shlib_load>: Use ldlags for linking flags.
	* lib/prelink-support.exp (build_executable_own_libs): Likewise.

2010-10-12  Ulrich Weigand  <uweigand@de.ibm.com>

	* break-interp.exp (test_ld): Use two separate gdb_expect statements
	for the "info files" test to avoid timeouts on slow machines.

2010-10-11  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.cp/infcall-dlopen.cc (openlib): Support NULL FILENAME.
	(main): Make openlib dummy call.

2010-10-11  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix missing _start PIE relocation on ppc64 due to stop on dl_main.
	* break-interp.exp (reach): Move the core body ...
	(reach_1): ... here.  Use stop-on-solib-events for _dl_debug_state.
	(test_ld): Provide always real argument, even to the linker.  Replace
	dl_main by _dl_debug_state.

2010-10-11  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix results of prelinked PIEs on ppc*.
	* gdb.base/break-interp.exp (reach, test_core, test_attach_gdb):
	Accept also DISPLACEMENT "PRESENT".
	(main): Replace "ZERO" displacements by "PRESENT".

2010-10-08  Sami Wagiaalla  <swagiaal@redhat.com>

	* gdb.cp/oranking.exp: New test.
	* gdb.cp/oranking.cc: New test program.

2010-10-08  Ken Werner  <ken.werner@de.ibm.com>

	* gdb.base/gnu_vector.c (ia, ib, fa, fb): New variables.
	* gdb.base/gnu_vector.exp: Add tests for scalar to vector widening.

2010-10-06  Ken Werner  <ken.werner@de.ibm.com>

	* gdb.base/constvars.c (logical, lugged, luck, lunar, lumen, lurk,
	lush, lynx) New constant.
	* gdb.base/constvars.exp: Test const array types.
	* gdb.dwarf2/dw2-strp.exp: Add const qualifier for ptype tests.

2010-10-06  Doug Evans  <dje@google.com>

	* gdb.base/catch-syscall.exp (do_syscall_tests): Update location
	of syscall staging area.

2010-10-06  Ken Werner  <ken.werner@de.ibm.com>

	* gdb.base/gnu_vector.c: Add variable c4.
	* gdb.base/gnu_vector.exp: Add tests for character vector printing.
	* gdb.arch/altivec-abi.exp: Fix expect pattern of character vectors.

2010-10-05  Maciej W. Rozycki  <macro@codesourcery.com>

	* gdb.arch/altivec-abi.exp: Fix a typo.

2010-10-02  Maciej W. Rozycki  <macro@codesourcery.com>

	* lib/mi-support.exp (thread_selected_re): Correct pattern used
	to match a thread ID.

2010-10-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix s390x testcase compatibility.
	* gdb.dwarf2/dw2-double-set-die-type.S: Use .2byte, not .value.

2010-10-01  Doug Evans  <dje@google.com>

	* lib/gdb-python.exp: New file.
	* gdb.python/py-block.exp: Use it.
	* gdb.python/py-breakpoint.exp: Ditto.
	* gdb.python/py-frame.exp: Ditto.
	* gdb.python/py-inferior.exp: Ditto.
	* gdb.python/py-param.exp: Ditto.
	* gdb.python/py-prettyprint.exp: Ditto.
	* gdb.python/py-shared.exp: Ditto.
	* gdb.python/py-symbol.exp: Ditto.
	* gdb.python/py-symtab.exp: Ditto.
	* gdb.python/py-type.exp: Ditto.
	* gdb.python/py-value.exp: Ditto.
	* gdb.python/python.exp: Ditto.

2010-09-30  Tom Tromey  <tromey@redhat.com>

	* gdb.base/anon.exp: New file.
	* gdb.base/anon.c: New file.

2010-09-30  Tom Tromey  <tromey@redhat.com>

	* gdb.base/completion.exp: Test completion through anonymous
	union.
	* gdb.base/break1.c (struct some_struct): Add anonymous union.

2010-09-30  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix printing parameters of inlined functions.
	* gdb.dwarf2/dw2-inline-param.exp: New file.
	* gdb.dwarf2/dw2-inline-param-main.c: New file.
	* gdb.dwarf2/dw2-inline-param.S: New file.

2010-09-30  Jan Kratochvil  <jan.kratochvil@redhat.com>

	PR corefiles/12071.
	* gdb.base/corefile.exp (quit with a process, no question: load core)
	(quit with a core file): New tests.

2010-09-29  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix GDB crash on inferior calls with self-referencing classes.
	* gdb.dwarf2/dw2-cp-infcall-ref-static.exp: New file.
	* gdb.dwarf2/dw2-cp-infcall-ref-static-main.c: New file.
	* gdb.dwarf2/dw2-cp-infcall-ref-static.S: New file.

2010-09-24  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix lost siginfo_t for inferior calls.
	* gdb.base/siginfo-infcall.exp: New file.
	* gdb.base/siginfo-infcall.c: New file.

2010-09-22  Joel Brobecker  <brobecker@adacore.com>

	* gdb.dwarf2/dw2-const.S: Minor (space) reformatting.

2010-09-22  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.fortran/module.exp (fully qualified name of DW_TAG_constant):
	New test.
	* gdb.fortran/module.f90 (mod1) <var_const>: New constant.

2010-09-22  Joel Brobecker  <brobecker@adacore.com>

	* gdb.dwarf2/dw2-const.S: Use .4byte to reference the target
	type of our const type.

2010-09-22  Sami Wagiaalla  <swagiaal@redhat.com>

	* gdb.cp/pr12028.cc: New.
	* gdb.cp/pr12028.exp: New.

2010-09-22  Joel Brobecker  <brobecker@adacore.com>

	* gdb.dwarf2/dw2-const.S, gdb.dwarf2/dw2-const.exp: New files.

2010-09-16  Phil Muldoon  <pmuldoon@redhat.com>
	    Jan Kratochvil  <jan.kratochvil@redhat.com>

	PR mi/11407
	* gdb.mi/dw2-ref-missing-frame-func.c: New File.
	* gdb.mi/dw2-ref-missing-frame-main.c New File.
	* gdb.mi/dw2-ref-missing-frame.S New File.
	* gdb.mi/dw2-ref-missing-frame.exp New File.

2010-09-14  Tom Tromey  <tromey@redhat.com>

	PR symtab/8399:
	* gdb.threads/tls.exp: Remove kfail.  Update expected output.

2010-09-14  Tom Tromey  <tromey@redhat.com>

	PR exp/11803:
	* gdb.threads/tls.exp: Use C++.
	(check_thread_local): Use K::another_thread_local.
	* gdb.threads/tls.c (class K): New.
	(another_thread_local): Now a member of K.
	(spin): Update.  No longer K&R C.

2010-09-13  Sami Wagiaalla  <swagiaal@redhat.com>

	* gdb.cp/koenig.cc: created class for testing member lookup.
	* gdb.cp/koenig.exp: Added test for member lookup.

2010-09-13  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix false FAILs on sourcetree topdir directory containing "kill".
	* gdb.base/sigall.exp (test_one_sig) <advance to $nextsig>: Extend the
	source line matching regexp.

2010-09-11  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.python/python.exp (set height 0, collect help from uiout)
	(verify help to uiout): New tests.

2010-09-10  Edjunior Barbosa Machado  <emachado@linux.vnet.ibm.com>

	* gdb.base/break-interp.exp (test_ld) <istarget powerpc64-*>: Add
	is_lp64_target to check 64bit target.

2010-09-09  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/break-interp.exp (reach): Permit leading . for ppc64.
	(test_ld) <powerpc64-*>: New.

2010-09-08  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.cp/templates.exp (test_template_args): Allow "struct".

2010-09-08  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.cp/templates.cc (Empty, FunctionArg): New classes.
	(FunctionArg::method): New function.
	(empty, arg): New variables.
	(main): Call arg.method.
	* gdb.cp/templates.exp (test_template_args): New function.
	(do_tests): Call it.

2010-09-08  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdb.threads/threxit-hop-specific.exp: Use "continue" instead
	of "next" to proceed over pthread_exit call.

2010-09-08  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdb.base/maint.exp: Avoid wildcards against potentially very long
	"maint print statistics" output to prevent expect timeouts.

2010-09-06  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/printcmds.exp (test_float_accepted): Import gdb_prompt.
	Move here, negate and extend by XFAIL the "p 0x1.1" test from ...
	(test_float_rejected): ... here.
	* gdb.java/jv-print.exp (test_float_accepted): Import gdb_prompt.
	Move here, negate and extend by XFAIL the "p 0x1.1" test from ...
	(test_float_rejected): ... here.
	* gdb.objc/print.exp (test_float_accepted): Import gdb_prompt.
	Move here, negate and extend by XFAIL the "p 0x1.1" test from ...
	(test_float_rejected): ... here.
	* gdb.pascal/print.exp (test_float_accepted): Import gdb_prompt.
	Move here, negate and extend by XFAIL the "p 0x1.1" test from ...
	(test_float_rejected): ... here.

2010-09-04  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/watchpoint.exp: Call test_inaccessible_watchpoint
	before disabling hardware watchpoints.
	(test_inaccessible_watchpoint): Check that hardware watchpoints
	are used.  Test for watchpoints on a constant address.

2010-09-03  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/ui-redirect.exp: New file.

2010-09-02  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Joel Brobecker  <brobecker@adacore.com>

	* gdb.dwarf/dw2-filename.S, gdb.dwarf/dw2-filename.exp: New files.

2010-08-31  Doug Evans  <dje@google.com>

	* gdb.dwarf2/dw4-sig-types.exp: Use .x for executable name.

2010-08-30  Tom Tromey  <tromey@redhat.com>

	PR python/11792:
	* gdb.python/py-value.exp (test_subscript_regression): Add
	dynamic_type test.

2010-08-30  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.cp/cpexprs.exp (test_breakpoint): Continue to test_function
	instead of running to main.  Do not test the main function.
	* gdb/testsuite/gdb.cp/cpexprs.cc (main): Rename to test_function.
	Add new main.

2010-08-26  Pedro Alves  <pedro@codesourcery.com>

	* gdb.mi/mi-nsmoribund.exp: Revert back to send_gdb/gdb_expect in
	one test.

2010-08-24  Doug Evans  <dje@google.com>

	PR symtab/11942
	* gdb.dwarf2/dw4-sig-types.cc: New file.
	* gdb.dwarf2/dw4-sig-types.h: New file.
	* gdb.dwarf2/dw4-sig-types-b.cc: New file.
	* gdb.dwarf2/dw4-sig-types.exp: New file.

2010-08-23  Tom Tromey  <tromey@redhat.com>

	PR python/11145:
	* gdb.python/py-value.c (Base, Derived): New types.
	(base): New global.
	* gdb.python/py-value.exp (test_subscript_regression): Add
	dynamic_cast test.

2010-08-23  Tom Tromey  <tromey@redhat.com>

	PR python/10676:
	* gdb.python/py-type.exp (test_fields): Add tests for type
	equality.

2010-08-23  Tom Tromey  <tromey@redhat.com>

	PR python/11915:
	* gdb.python/py-type.exp (test_fields): Add tests for array.

2010-08-23  Keith Seitz  <keiths@redhat.com>

	* gdb.dwarf2/dw2-double-set-die-type.S: DIE 0x51f does not
	have any children. Create a new abbrev for it.
	Add missing terminal sequence to .debug_abbrev.

2010-08-20  Keith Seitz  <keiths@redhat.com>

	PR symtab/11465:
	* gdb.dwarf2/pr11465.exp: New test.
	* gdb.dwarf2/pr11465.S: New file.
	* gdb.dwarf2/dw2-double-set-die-type.S: New file.
	* gdb.dwarf2/dw2-double-set-die-type.exp: New test.

2010-08-19  Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* gdb.arch/vsx-regs.exp: Remove wrong comment about testing AltiVec
	registers.  Update data sets with the new v2_double element in the
	VSX register union.  Add vector_register3_vr data set for the AltiVec
	registers.  Use gdb_test_no_output instead of send_gdb.

2010-08-19  Pedro Alves  <pedro@codesourcery.com>

	* gdb.python/py-shared.exp: New file, factored out from
	python.exp.
	* gdb.python/py-shared.c: New file.
	* gdb.python/py-shared-sl.c: New file.
	* gdb.python/python-1.c: New file.
	* gdb.python/python-sl.c: Delete.
	* gdb.python/python.c: Mention python-1.c.
	* gdb.python/python.exp: Move shared library tests to
	py-shared.exp.
	* gdb.python/Makefile.in (EXECUTABLES): Add py-shared and python.
	(MISCELLANEOUS): New.
	(clean mostlyclean): Also remove $MISCELLANEOUS.

2010-08-19  Doug Evans  <dje@google.com>

	PR exp/11926
	* gdb.base/printcmds.exp (test_float_accepted): New function.
	Move existing float tests there.  Add tests for floats with suffixes.
	(test_float_rejected): New function.
	* gdb.java/jv-print.exp (test_float_accepted): New function.
	(test_float_rejected): New function.
	* gdb.objc/print.exp: New file.
	* gdb.pascal/print.exp: New file.
	* lib/objc.exp: New file.

2010-08-19  Pierre Muller  <muller@ics.u-strasbg.fr>

	* gdb.base/default.exp (info set): Avoid full buffer error and force
	reading up to final gdb prompt.
	(show): Likewise.

2010-08-18  Tom Tromey  <tromey@redhat.com>

	PR symtab/11919:
	* gdb.base/completion.exp: Add test.

2010-08-18  Doug Evans  <dje@google.com>

	* gdb.base/call-ar-st.exp (set_lang_c): Delete, unused.
	* gdb.base/callfuncs.exp (set_lang_c): Delete, set c language directly.
	* gdb.base/printcmds.exp (set_lang_c): Delete, set c language directly.
	Simplify, early exit if runto_main fails.
	* gdb.fortran/exprs.exp: load_lib fortran.exp.
	(set_lang_fortran): Moved to lib/fortran.exp.
	* gdb.fortran/types.exp: load_lib fortran.exp.
	(set_lang_fortran): Moved to lib/fortran.exp.
	* gdb.java/jmisc.exp (set_lang_java): Moved to lib/java.exp.
	* gdb.java/jprint.exp (set_lang_java): Ditto.
	* gdb.java/jv-exp.exp: load_lib java.exp.
	If set_lang_java fails, issue a warning instead of failure to be
	consistent with other set_lang_foo uses.
	(set_lang_java): Moved to lib/java.exp.
	* gdb.java/jv-print.exp (set_lang_java): Moved to lib/java.exp.
	If set_lang_java fails, issue a warning instead of failure to be
	consistent with other set_lang_foo uses.
	* gdb.pascal/types.exp: load_lib pascal.exp.
	(set_lang_pascal): Moved to lib/pascal.exp.
	* lib/fortran.exp: New file.
	* lib/java.exp (set_lang_java): New function.
	* lib/pascal.exp (set_lang_pascal): New function.

2010-08-18  Yao Qi  <yao@codesourcery.com

	* gdb.dwarf2/dw2-ref-missing-frame-func.c: Add .p2align 4 for labels
	func_nofb_start and func_loopfb_start, so that address of functions
	is equal to these labels on Thumb.

2010-08-18  Yao Qi  <yao@codesourcery.com>

	* gdb.gdb/selftest.exp (do_steps_and_nexts): Update test case
	to reflect latest c source file.

2010-08-17  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.cp/infcall-dlopen.exp: New file.
	* gdb.cp/infcall-dlopen.cc: New file.
	* gdb.cp/infcall-dlopen-lib.cc: New file.

2010-08-17  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Pedro Alves  <pedro@codesourcery.com>

	PR breakpoints/11371

	* gdb.base/watch-cond-infcall.exp: New file.
	* gdb.base/watch-cond-infcall.c: New file.

2010-08-16  Tom Tromey  <tromey@redhat.com>

	* gdb.base/help.exp: Update.
	* gdb.base/watchpoint.exp (test_watchpoint_and_breakpoint): Delete
	watchpoint.
	(test_watch_location): New proc.
	(test_watchpoint_in_big_blob): Delete watchpoint.
	* gdb.base/watchpoint.c (func5): New function.
	(main): Call it.

2010-08-16  Doug Evans  <dje@google.com>

	* gdb.python/python.exp: Fix syntax in "post event insertion" test.

2010-08-11  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.python/python.exp (gdb_py_test_multiple): Add gdb.post_event
	tests.

2010-08-11  Ken Werner  <ken.werner@de.ibm.com>

	* gdb.base/Makefile.in (EXECUTABLES): Add gnu_vector.
	* gdb.base/gnu_vector.c: New File.
	* gdb.base/gnu_vector.exp: Likewise.

2010-08-11  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.python/python.c: New File.
	* gdb.python/python-sl.c: New File.
	* gdb.python/python.exp: Test solib_address and decode_line
	* functions.

2010-08-07  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.python/python.exp (show height, set height 10)
	(verify pagination beforehand, verify pagination beforehand: q)
	(gdb.execute does not page, verify pagination afterwards)
	(verify pagination afterwards: q): New.

2010-08-02  Doug Evans  <dje@google.com>

	* gdb.cp/namespace.exp: When "print ::cOtherFileClassVar" fails
	because of an older gcc, change test2
	"print ::C::OtherFileClass::cOtherFileClassVar" from unresolved
	to unsupported.

2010-07-30  Kazu Hirata  <kazu@codesourcery.com>

	* gdb.base/break-always.exp: Do not expect full paths to file
	names.
	* gdb.base/commands.exp: Likewise.

2010-07-30  Doug Evans  <dje@google.com>

	* gdb.cp/temargs.exp: For new tests that require newer gccs,
	xfail them when run with older gccs.

	* lib/gdb.exp (build_executable): Forward "c++" option to
	get_compiler_info.

	* gdb.python/py-type.exp (test_template): Mark as xfail tests
	"python print ttype.template_argument(1)" and
	"python print isinstance(ttype.template_argument(1), gdb.Value)"
	if using gcc 4.4 or earlier.

	* gdb.base/valgrind-db-attach.exp: Use unique test name for
	attach-to-debugger handling.

2010-07-30  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/prelink-lib.c (copyreloc): New initialized variable.
	* gdb.base/prelink.c (copyreloc, bssvar, bssvarp): New variables.
	(main): Use copyreloc.
	* gdb.base/prelink.exp (split debug of executable)
	(.dynbss vs. .bss address shift): New tests.

2010-07-29  Pedro Alves  <pedro@codesourcery.com>

	* gdb.threads/pthreads.exp (check_backtraces): Consume $gdb_prompt
	in gdb_test_multiple.

2010-07-29  Pedro Alves  <pedro@codesourcery.com>

	* lib/gdb.exp (gdb_init): Set LC_ALL and LANG to C in the
	environment.

2010-07-28  Tom Tromey  <tromey@redhat.com>

	PR python/11060:
	* gdb.python/py-type.c (Temargs): New template.
	(temvar): New variable.
	* gdb.python/py-type.exp (test_template): New proc.

2010-07-28  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.cp/member-ptr.exp, gdb.cp/printmethod.exp,
	gdb.dwarf2/member-ptr-forwardref.exp: Adjust.

2010-07-28  Tom Tromey  <tromey@redhat.com>

	PR c++/9946:
	* gdb.cp/temargs.exp: New file.
	* gdb.cp/temargs.cc: New file.

2010-07-27  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/help.exp (help disassemble): Update the content.

2010-07-27  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.threads/ia64-sigill.exp: New file.
	* gdb.threads/ia64-sigill.c: New file.

2010-07-27  Tom Tromey  <tromey@redhat.com>

	* gdb.opt/inline-cmds.c (ATTR): New define.
	(func1): Use it.
	(func2): Likewise.
	(func3): Likewise.
	(outer_inline1): Likewise.
	(outer_inline2): Likewise.
	* gdb.opt/inline-bt.c (ATTR): New define.
	(func1): Use it.
	(func2): Likewise.
	* gdb.opt/inline-locals.c (ATTR): New define.
	(func1): Use it.
	(func2): Likewise.

2010-07-27  Tom Tromey  <tromey@redhat.com>

	* gdb.stabs/gdb11479.c (hack): New function.
	(test): Use it.
	(test2): Use it.
	* gdb.python/py-inferior.c (int8_search_buf, int16_search_buf)
	(int32_search_buf, int64_search_buf): No longer static.
	(x): Remove.
	* gdb.base/relocate.c (hack): New function.

2010-07-27  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.python/py-value.exp (test_inferior_function_call): New function.
	* gdb.python/py-value.c (func1): New function.
	(func2): Likewise.

2010-07-26  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.asm/xstormy16.inc (gdbasm_startup): Fix beginning of stack so
	as not to clash with .data section.

2010-07-26  Jerome Guitton  <guitton@adacore.com>

	* gdb.base/code_elim.exp: New file.
	* gdb.base/code_elim1.c: New file.
	* gdb.base/code_elim2.c: New file.

2010-07-21  Pedro Alves  <pedro@codesourcery.com>

	PR symtab/11827

	* gdb.base/printcmds.c (enum some_volatile_enum): New enum.
	(some_volatile_enum): New variable.
	* gdb.base/printcmds.exp (test_print_enums): New.
	<top level>: Call it.

2010-07-21  Sami Wagiaalla  <swagiaal@redhat.com>

	* gdb.cp/fpointer.cc: New test.
	* gdb.cp/fpointer.exp: New test.

2010-07-20  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/solib-nodir.exp: New file.
	* lib/gdb.exp (runto): New case for a GDB internal error.

2010-07-20  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Ulrich Weigand  <uweigand@de.ibm.com>
	    Tom Tromey  <tromey@redhat.com>

	* gdb.base/charset-malloc.c: New file.
	* gdb.base/charset.c (malloc_stub): New prototype.
	(main): Call it instead of malloc itself.
	* gdb.base/charset.exp: Use only prepare_for_testing.
	(binfile): Remove the variable.

2010-07-19  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Make core files the process_stratum.
	* gdb.base/corefile.exp (run: load core again)
	(run: sanity check we see the core file, run: with core)
	(run: core file is cleared, attach: load core again)
	(attach: sanity check we see the core file, attach: with core)
	(attach: core file is cleared): New tests.
	* gdb.base/coremaker.c (main): New parameters.  Implement "sleep" argv.

2010-07-14  Ken Werner  <ken.werner@de.ibm.com>

	* gdb.arch/altivec-abi.exp: New tests.

2010-07-13  Tom Tromey  <tromey@redhat.com>

	* gdb.python/py-prettyprint.c (struct arraystruct): New struct.
	(main): Use it.
	* gdb.python/py-prettyprint.exp (run_lang_tests): Add test.

2010-07-13  Tom Tromey  <tromey@redhat.com>

	* gdb.base/label.exp: New file.
	* gdb.base/label.c: New file.

2010-07-12  Ulrich Weigand  <uweigand@de.ibm.com>
	    H.J. Lu  <hongjiu.lu@intel.com>

	* lib/gdb.exp (is_ilp32_target): New.
	(is_lp64_target): Likewise.

	* gdb.arch/amd64-byte.exp: Use is_lp64_target to check 64bit
	target.
	* gdb.arch/amd64-disp-step.exp: Likewise.
	* gdb.arch/amd64-dword.exp: Likewise.
	* gdb.arch/amd64-i386-address.exp: Likewise.
	* gdb.arch/amd64-word.exp: Likewise.

	* gdb.arch/i386-avx.exp: Use is_ilp32_target to check for 32bit
	target.
	* gdb.arch/i386-bp_permanent.exp: Likewise.
	* gdb.arch/i386-byte.exp: Likewise.
	* gdb.arch/i386-disp-step.exp: Likewise.
	* gdb.arch/i386-gnu-cfi.exp: Likewise.
	* gdb.arch/i386-prologue.exp: Likewise.
	* gdb.arch/i386-size-overlap.exp: Likewise.
	* gdb.arch/i386-size.exp: Likewise.
	* gdb.arch/i386-sse.exp: Likewise.
	* gdb.arch/i386-unwind.exp: Likewise.
	* gdb.arch/i386-word.exp: Likewise.

	* gdb.arch/ppc64-atomic-inst.exp: Use is_lp64_target to execute
	test only when building 64-bit executables.  Do not hard-code
	-m64 option.

2010-07-07  Doug Evans  <dje@google.com>

	* lib/gdb.exp (gdb_test_list_exact): New function.
	* gdb.base/default.exp (show convenience): Call it, add tests for
	$_sdata = void, $_thread = 0.

2010-07-05  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Joel Brobecker  <brobecker@adacore.com>

	Fix re-run of PIE executable, PR shlibs/11776.
	* gdb.base/break-interp.exp (test_ld): Turn off "disable-randomization".
	Remove $displacement_main to match the solib-svr4.c change.  New "kill"
	and re-"run" of the inferior.

2010-07-05  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Joel Brobecker  <brobecker@adacore.com>

	Cope with missing /usr/sbin/prelink.
	* lib/prelink-support.exp (prelink_no):
	<result == 1 && $output is "no such file or directory">: New.
	(prelink_yes): Likewise.  Return on failed prelink_no.

2010-07-05  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Joel Brobecker  <brobecker@adacore.com>

	* gdb.base/attach-pie-misread.exp: Load prelink-support.exp.  Replace
	build_executable by build_executable_own_libs.  Replace "prelink -R"
	execution by a call of prelink_yes.  Comment why "prelink -r" needs no
	change.
	* gdb.base/break-interp.exp: Load prelink-support.exp.  Rename calls of
	copy to file_copy.  Move setting opts --dynamic-linker and -rpath,
	mkdir $dir and ldd its parsing and copying to lib/prelink-support.exp.
	Replace build_executable by build_executable_own_libs's function
	build_executable_own_libs.
	(prelinkNO): Create new stub to call prelink_no.
	(prelinkYES): Create new stub to call prelink_yes.
	(test_attach): Rename calls of copy to file_copy.
	(section_get, prelinkNO_run, prelinkNO, prelinkYES, symlink_resolve)
	(copy): Move to ...
	* lib/prelink-support.exp: ... a new file.  Rename prelinkNO to
	prelink_no, prelinkYES to prelink_yes, copy to file_copy.
	* gdb.base/prelink.exp: Disable testcase also for is_remote and
	skip_shlib_tests.  Load prelink-support.exp.  Replace gdb_compile with
	special flags by gdb_compile_shlib.  Replace second gdb_compile by
	build_executable_own_libs.  Replace "prelink -R" execution by a call of
	prelink_yes.  Replace "prelink -u" and second "prelink -R" execution by
	a second call of prelink_yes.  Replace restart commands by
	clean_restart.
	(prelink): Rename to ...
	(seen displacement message): ... this test.  Extend its expectation
	strictness.

2010-07-05  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/attach-pie-misread.exp, gdb.base/attach-pie-misread.c: New.
	* gdb.base/break-interp.exp (reach, test_core, test_ld): Require each
	displacement message exactly once.

2010-07-05  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Joel Brobecker  <brobecker@adacore.com>

	* gdb.base/break-interp.exp (test_attach): Keep $interp changed.  Move
	its restore after the <$relink_args != ""> loop.  new comment.

2010-07-05  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Joel Brobecker  <brobecker@adacore.com>

	* gdb.base/break-interp.exp: Run $binpie with new value "ATTACH", new
	code for it.  New variable relink_args.
	(prelinkYES): Call prelinkNO.
	(test_attach): Accept new parameter relink_args.  Re-prelink the binary
	in such case.  Move the core code to ...
	(test_attach_gdb): ... a new function.  Send GDB command "file".
	Extend expected "Attaching to " string.

2010-07-02  Tom Tromey  <tromey@redhat.com>

	* gdb.base/bitops.exp: Remove extraneous "pass".

2010-07-02  Ken Werner  <ken.werner@de.ibm.com>

	* gdb.arch/altivec-abi.exp: Fix expect pattern of character vectors.

2010-07-01  Pedro Alves  <pedro@codesourcery.com>

	* gdb.base/help.exp: Adjust expected output.

2010-07-01  Pedro Alves  <pedro@codesourcery.com>

	* gdb.base/help.exp: Adjust expected output.

2010-06-30  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.cp/namespace.exp (print C::OtherFileClass::cOtherFileClassVar)
	(print ::C::OtherFileClass::cOtherFileClassVar): Remove KFAIL for
	c++/11702.

2010-06-29  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Doug Evans  <dje@google.com>

	* gdb.base/break-interp.exp (prelinkYES): XFAIL on `Not enough room to
	add .dynamic entry'.

2010-06-29  Doug Evans  <dje@google.com>

	Test PR c++/11702.
	* gdb.cp/m-static.exp: Add testcase.
	* gdb.cp/m-static.h (gnu_obj_4): Add initialized static const member.

2010-06-28  Phil Muldoon  <pmuldoon@redhat.com>
	    Tom Tromey  <tromey@redhat.com>
	    Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* gdb.python/py-inferior.c: New File.
	* gdb.python/py-infthread.c: New File.
	* gdb.python/py-inferior.exp: New File.
	* gdb.python/py-infthread.exp: New File.

2010-06-28  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.cp/namespace.exp (ptype OtherFileClass typedefs)
	(ptype ::C::OtherFileClass typedefs): New.
	* gdb.cp/namespace1.cc (C::OtherFileClass::cOtherFileClassType2)
	(C::OtherFileClass::cOtherFileClassVar2): New.
	(C::OtherFileClass::cOtherFileClassVar_use): Use also
	cOtherFileClassVar2.
	(C::cOtherFileType2, C::cOtherFileVar2): New.
	(C::cOtherFileVar_use): use also cOtherFileVar2.
	* gdb.cp/userdef.exp (ptype &*c): Permit arbitrary trailing text.

2010-06-28  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.cp/namespace.exp (whatis C::cOtherFileType)
	(whatis ::C::cOtherFileType, whatis C::cOtherFileVar)
	(whatis ::C::cOtherFileVar, print C::cOtherFileVar)
	(print ::C::cOtherFileVar)
	(whatis C::OtherFileClass::cOtherFileClassType)
	(whatis ::C::OtherFileClass::cOtherFileClassType)
	(print C::OtherFileClass::cOtherFileClassVar)
	(print ::cOtherFileClassVar)
	(print ::C::OtherFileClass::cOtherFileClassVar): New tests.
	(ptype OtherFileClass, ptype ::C::OtherFileClass): Permit arbitrary
	trailing content.
	* gdb.cp/namespace1.cc (C::OtherFileClass::cOtherFileClassType)
	(C::OtherFileClass::cOtherFileClassVar)
	(C::OtherFileClass::cOtherFileClassVar_use, C::cOtherFileType)
	(C::cOtherFileVar, C::cOtherFileVar_use): New.

2010-06-28  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Test PR c++/11703 and PR gdb/1448.
	* gdb.cp/namespace.exp (ptype ::C::NestedClass): Remove KFAIL for
	gdb/1448.

2010-06-28  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.cp/virtbase.cc (class RTTI_base, class RTTI_data)
	(main) <rtti_data>: New.
	* gdb.cp/virtbase.exp (print rtti_data): New.

2010-06-28  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Joel Brobecker  <brobecker@adacore.com>

	* lib/gdb.exp (gdb_test_multiple): Error on trailing newlines.

2010-06-28  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.cp/static-print-quit.exp, gdb.cp/static-print-quit.cc: New.

2010-06-28  Doug Evans  <dje@google.com>

	* gdb.base/break-interp.exp (reach): Relax expected output a bit.

2010-06-27  Doug Evans  <dje@google.com>

	* gdb.cp/m-static.exp: Update expected test output.

2010-06-25  Paul Hilfinger  <hilfinger@adacore.com>

	* gdb.gdb/selftest.exp: Adjust expected message for
	capturing start-up runtime.

2010-06-25  Tom Tromey  <tromey@redhat.com>

	PR python/10808:
	* gdb.python/python.exp: Add new tests.

2010-06-25  Sami Wagiaalla  <swagiaal@redhat.com>

	* gdb.cp/operator.cc: Created an import loop.
	* gdb.cp/operator.exp: Added testcase for import loop.

2010-06-25  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Test PR python/11407.
	* gdb.dwarf2/dw2-ref-missing-frame-func.c: New file.
	* gdb.dwarf2/dw2-ref-missing-frame.S: Use cu_text_start and cu_text_end.
	Split main into func_nofb and func_loopfb dropping NO_FRAME_BASE.
	* gdb.dwarf2/dw2-ref-missing-frame.exp: Remove variables sources,
	executable_nofb and executable_fb.  New variables srcsfile, objsfile,
	srcfuncfile, objfuncfile, srcmainfile, objmainfile, executable and
	binfile.  Call gdb_compile with clean_restart twice.
	(func_nofb print, func_nofb backtrace, func_loopfb print)
	(func_loopfb backtrace): New.

2010-06-25  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.dwarf2/dw2-ref-missing-frame-main.c: New.
	* gdb.dwarf2/dw2-ref-missing-frame.S: Replace compiler generated output
	by a hand made one.
	* gdb.dwarf2/dw2-ref-missing-frame.exp: Remove invalid comment.  Remove
	i?86 requirement.  Remove variables srcfile and binfile.  New variable
	sources, executable_nofb and executable_fb.  Call prepare_for_testing.

2010-06-25  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.cell/dwarfaddr.exp: New file.
	* gdb.cell/dwarfaddr.S: New file.

2010-06-24  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Test PR 9436.
	* gdb.base/nostdlib.exp, gdb.base/nostdlib.c: New.

2010-06-24  Hui Zhu  <teawater@gmail.com>

	* gdb.base/eval.exp: New file.

2010-06-23  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.cell/fork.exp: New file.
	* gdb.cell/fork.c: Likewise.
	* gdb.cell/fork-spu.c: Likewise.

2010-06-22  Pierre Muller  <muller@ics.u-strasbg.fr>

	* lib/gdb.exp (banned_variables_traced): New global variable.
	(gdb_init, gdb_finish): Use new variable to avoid multiple tracing.
	(gdb_init): Use `trace add variable' instead of obsolete
	`trace variable'.

2010-06-21  Doug Evans  <dje@google.com>

	* gdb.gdb/selftest.exp: Remove support for gpl v1 and v2 gdb's.

2010-06-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.arch/spu-ls.exp: New file.
	* gdb.arch/spu-ls.c: Likewise.

2010-06-18  Stan Shebs  <stan@codesourcery.com>

	* gdb.threads/thread-specific.exp: Add tests of $_thread.

2010-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.base/gdb11531.exp: Respect gdb,no_hardware_watchpoints flag.
	* gdb.base/watch-cond.exp: Likewise.
	* gdb.python/py-breakpoint.exp: Likewise.

2010-06-18  Pedro Alves  <pedro@codesourcery.com>

	* gdb.multi/base.exp, gdb.multi/bkpt-multi-exec.exp: Use
	clean_restart, make sure every test has a distinct message, and
	that messages don't include the executable' full path.

2010-06-17  Doug Evans  <dje@google.com>

	* gdb.arch/i386-size.exp: Updated expected output for
	DISASSEMBLY_OMIT_FNAME.

2010-06-16  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Sergio Durigan Junior  <sergiodj@redhat.com>

	* gdb.base/watch-notconst.c: New file.
	* gdb.base/watch-notconst.S: New file.
	* gdb.base/watch-notconst2.c: New file.
	* gdb.base/watch-notconst2.S: New file.
	* gdb.base/watch-notconst.exp: New file.
	* gdb.base/watchpoint.c (global_ptr_ptr): New variable.
	(func4): Add operations on `global_ptr_ptr'.
	* gdb.base/watchpoint.exp (test_constant_watchpoint): New
	routine to test watchpoints created with a constant expression.
	(test_inaccessible_watchpoint): Include tests for watchpoints
	created with a constant expression.

2010-06-14  Kevin Buettner  <kevinb@redhat.com>

	* gdb.disasm/t01_mov.exp, gdb.disasm/t02_mova.exp,
	gdb.disasm/t03_add.exp, gdb.disasm/t04_sub.exp,
	gdb.disasm/t05_cmp.exp, gdb.disasm/t06_ari2.exp,
	gdb.disasm/t07_ari3.exp, gdb.disasm/t08_or.exp,
	gdb.disasm/t09_xor.exp, gdb.disasm/t10_and.exp,
	gdb.disasm/t11_logs.exp, gdb.disasm/t12_bit.exp,
	gdb.disasm/t13_otr.exp: Examine instruction at label `start' instead
	of `_start'.

2010-06-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.mi/mi-nonstop.exp: Do not call perror if non-stop mode is
	not supported on the target.
	* gdb.mi/mi-nonstop-exit.exp: Likewise.
	* gdb.mi/mi-ns-stale-regcache.exp: Likewise.
	* gdb.mi/mi-nsintrall.exp: Likewise.
	* gdb.mi/mi-nsmoribund.exp: Likewise.
	* gdb.mi/mi-nsthrexec.exp: Likewise.

2010-06-11  Stan Shebs  <stan@codesourcery.com>

	* gdb.base/permissions.exp: New file.

2010-06-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.base/valgrind-db-attach.exp: Fail gracefully if valgrind
	does not support ELF executable class.

2010-06-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.trace/packetlen.exp: Respect gdb_target_supports_trace.

2010-06-11  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* lib/gdb.exp (gdb_run_cmd): Return on $gdb_prompt.
	(runto): Catch "The target does not support running in non-stop mode.".

2010-06-11  Michael Snyder  <msnyder@vmware.com>

	* gdb.base/setshow.exp (set language asm): Don't use
	gdb_test_no_output, fails on some targets.

2010-06-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.cp/cpexprs.exp: Skip test on spu*-*-*.
	* gdb.cp/pr9167.exp: Likewise.

2010-06-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.python/py-breakpoint.exp: Handle software watchpoints as well.

2010-06-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.base/solib-corrupted.exp: Respect skip_shlib_tests.

2010-06-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.base/charset.c (main): Make sure malloc gets linked in.

2010-06-11  Tom Tromey  <tromey@redhat.com>

	PR gdb/9977, PR exp/11636::
	* gdb.dwarf2/pieces.exp (pieces_test_f3): Remove kfail.
	(pieces_test_f6): Update expected output.

2010-06-11  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/moribund-step.exp: New.

2010-06-08  Michael Snyder  <msnyder@vmware.com>

	* gdb.ada/assign_1.exp: Use ".*" instead of "" as wildcard regexp.
	* gdb.ada/boolean_expr.exp:
	* gdb.ada/frame_args.exp: Ditto.
	* gdb.ada/lang_switch.exp: Ditto.
	* gdb.ada/ptype_arith_binop.exp: Ditto.
	* gdb.ada/ref_param.exp: Ditto.
	* gdb.ada/type_coercion.exp:Ditto.

	* gdb.asm/asm-source.exp: Ditto.

	* gdb.base/attach.exp: Ditto.
	* gdb.base/bitfields2.exp: Ditto.
	* gdb.base/call-signal-resume.exp: Ditto.
	* gdb.base/callfuncs.exp: Ditto.
	* gdb.base/commands.exp: Ditto.
	* gdb.base/dbx.exp: Ditto.
	* gdb.base/default.exp: Ditto.
	* gdb.base/dump.exp: Ditto.
	* gdb.base/exprs.exp: Ditto.
	* gdb.base/freebpcmd.exp: Ditto.
	* gdb.base/interrupt.exp: Ditto.
	* gdb.base/list.exp: Ditto.
	* gdb.base/long_long.exp: Ditto.
	* gdb.base/maint.exp: Ditto.
	* gdb.base/ptype.exp: Ditto.
	* gdb.base/return.exp: Ditto.
	* gdb.base/setshow.exp: Ditto.
	* gdb.base/sigbpt.exp: Ditto.
	* gdb.base/sigrepeat.exp: Ditto.

	* gdb.cp/classes.exp: Ditto.

	* gdb.dwarf2/dw2-restore.exp: Ditto.

	* gdb.gdb/selftest.exp: Ditto.

	* gdb.multi/base.exp: Ditto.
	* gdb.multi/bkpt-multi-exec.exp: Ditto.

	* gdb.python/py-block.exp: Ditto.
	* gdb.python/py-prettyprint.exp: Ditto.
	* gdb.python/py-template.exp: Ditto.

	* gdb.server/ext-attach.exp: Ditto.
	* gdb.server/ext-run.exp: Ditto.
	* gdb.server/server-mon.exp: Ditto.

	* gdb.threads/fork-thread-pending.exp: Ditto.
	* gdb.threads/hand-call-in-threads.exp: Ditto.
	* gdb.threads/interrupted-hand-call.exp: Ditto.
	* gdb.threads/linux-dp.exp: Ditto.
	* gdb.threads/manythreads.exp: Ditto.
	* gdb.threads/print-threads.exp: Ditto.
	* gdb.threads/pthreads.exp: Ditto.
	* gdb.threads/schedlock.exp: Ditto.
	* gdb.threads/thread-unwindonsignal.exp: Ditto.
	* gdb.threads/threadapply.exp: Ditto.

2010-06-08  Michael Snyder  <msnyder@vmware.com>

	* gdb.ada/exec_changed.exp:
	Use ".*" instead of "" as wildcard regexp.

	* gdb.base/async.exp: Use ".*" instead of "" as wildcard regexp.
	* gdb.base/call-ar-st.exp: Ditto.
	* gdb.base/checkpoint.exp: Ditto.
	* gdb.base/default.exp: Ditto.
	* gdb.base/dump.exp: Ditto.
	* gdb.base/ending-run.exp: Ditto.
	* gdb.base/fileio.exp: Ditto.
	* gdb.base/miscexprs.exp: Ditto.
	* gdb.base/pointers.exp: Ditto.
	* gdb.base/readline.exp: Ditto.
	* gdb.base/reread.exp: Ditto.
	* gdb.base/restore.exp: Ditto.
	* gdb.base/shlib-call.exp: Ditto.
	* gdb.base/valgrind-db-attach.exp: Ditto.
	* gdb.base/volatile.exp: Ditto.
	* gdb.base/watchpoints.exp: Ditto.

	* gdb.cp/classes.exp: Use ".*" instead of "" as wildcard regexp.

	* gdb.python/py-frame.exp: Use ".*" instead of "" as wildcard regexp.
	* gdb.python/py-value.exp: Ditto.

	* gdb.trace/backtrace.exp: Use ".*" instead of "" as wildcard regexp.
	* gdb.trace/circ.exp: Ditto.
	* gdb.trace/collection.exp: Ditto.
	* gdb.trace/packetlen.exp: Ditto.
	* gdb.trace/passc-dyn.exp: Ditto.
	* gdb.trace/report.exp: Ditto.
	* gdb.trace/tfile.exp: Ditto.
	* gdb.trace/tfind.exp: Ditto.
	* gdb.trace/while-dyn.exp: Ditto.

2010-06-08  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.python/python.exp (pythonX.Y/lib-dynload/*.so): New.

2010-06-07  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Test PR 10640.
	* gdb.dwarf2/dw2-op-call.exp, gdb.dwarf2/dw2-op-call.S: New.

2010-06-07  Sami Wagiaalla  <swagiaal@redhat.com>

	* gdb.cp/koenig.exp: Test for ADL operators.
	* gdb.cp/koenig.cc: Added ADL operators.
	* gdb.cp/operator.exp: New test.
	* gdb.cp/operator.cc: New test.

2010-06-04  Michael Snyder  <msnyder@vmware.com>

	* gdb.base/attach.exp: Replace gdb_test_multiple with gdb_test.
	* gdb.base/pending.exp: Ditto.

	* gdb.cp/pr-1210.exp: Add message string to gdb_test_multiple.

2010-06-04  Doug Evans  <dje@google.com>

	* gdb.python/py-prettyprint.exp: Add new test for enabled and
	disabled printers.
	* gdb.python/py-prettyprint.py (disable_lookup_function): New function.
	(enable_lookup_function): New function.

2010-06-04  Tom Tromey  <tromey@redhat.com>

	* gdb.python/py-value.exp (test_value_hash): Don't test equality
	of hash and id.

2010-06-04  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/commands.exp (add printf tbreak command): Remove trailing
	newline.
	* gdb.gdb/complaints.exp (empty non-verbose non-noisy clear)
	(empty verbose non-noisy clear, empty verbose noisy clear)
	(empty non-verbose noisy clear): Likewise.

2010-06-03  Michael Snyder  <msnyder@vmware.com>

	* gdb.base/commands.exp: Replace gdb_test with gdb_test_no_output.
	* gdb.base/display.exp: Ditto.
	* gdb.base/find.exp: Ditto.
	* gdb.base/ifelse.exp: Ditto.
	* gdb.base/multi-forks.exp: Ditto.
	* gdb.base/recurse.exp: Ditto.
	* gdb.base/setshow.exp: Ditto.
	* gdb.base/value-double-free.exp: Ditto.
	* gdb.base/watch-vfork.exp: Ditto.
	* gdb.base/watch_thread_num.exp: Ditto.
	* gdb.base/watchpoint-solib.exp: Ditto.
	* gdb.base/watchpoint.exp: Ditto.
	* gdb.base/watchpoints.exp: Ditto.

	* gdb.cp/classes.exp: Replace gdb_test with gdb_test_no_output.
	* gdb.cp/overload.exp: Ditto.
	* gdb.cp/virtfunc.exp: Ditto.

	* gdb.python/py-value.exp: Replace gdb_test with gdb_test_no_output.

	* gdb.reverse/watch-precsave.exp:
	Replace gdb_test with gdb_test_no_output.

	* gdb.threads/attach-into-signal.exp:
	Replace gdb_test with gdb_test_no_output.
	* gdb.threads/local-watch-wrong-thread.exp: Ditto.
	* gdb.threads/watchthreads.exp: Ditto.
	* gdb.threads/watchthreads2.exp: Ditto.

	* gdb.trace/deltrace.exp: Replace gdb_test with gdb_test_no_output.
	* gdb.trace/tfind.exp: Ditto.

2010-06-03  Joel Brobecker  <brobecker@adacore.com>

	* lib/gdb.exp (gdb_test_no_output): Do not emit pass for
	successful test if message is the empty string.

2010-06-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.fortran/module.exp (stopped language detection): New test.

2010-06-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Support DW_TAG_module as separate namespaces.
	* gdb.fortran/library-module.exp, gdb.fortran/library-module-main.f90,
	gdb.fortran/library-module-lib.f90: New.
	* gdb.fortran/module.exp: Replace startup by a prepare_for_testing call.
	(print i): Remove.
	(continue to breakpoint: i-is-1, print var_i value 1)
	(continue to breakpoint: i-is-2, print var_i value 2)
	(continue to breakpoint: a-b-c-d, print var_a, print var_b, print var_c)
	(print var_d, print var_i value 14, ptype modmany, complete `modm)
	(complete `modmany, complete `modmany`, complete `modmany`var)
	(show language, setting breakpoint at module): New tests.
	* gdb.fortran/module.f90 (module mod): Remove.
	(module mod1, module mod2, module modmany, subroutine sub1)
	(subroutine sub2, program module): New.

2010-06-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.cp/ref-types.exp (pass, pass, pass): Rename to ...
	(print value of rUC, print value of rI, print value of UI): ... here.
	* gdb.cp/anon-union.exp (pass): Rename to ...
	(print z 2): ... here.

2010-06-02  Michael Snyder  <msnyder@vmware.com>

	* gdb.trace/actions.exp: Use gdb_test_no_output.
	* gdb.trace/circ.exp: Ditto.
	* gdb.trace/packetlen.exp: Ditto.
	* gdb.trace/save-trace.exp: Ditto.
	* gdb.trace/tracecmd.exp: Ditto.
	* gdb.trace/tsv.exp: Ditto.

	* gdb.threads/fork-thread-pending.exp: Use gdb_test_no_output.
	* gdb.threads/hand-call-in-thraeds.exp: Ditto.
	* gdb.threads/local-watch-wrong-thread.exp: Ditto.
	* gdb.threads/manythreads.exp: Ditto.
	* gdb.threads/print-threads.exp: Ditto.
	* gdb.threads/pthreads.exp: Ditto.
	* gdb.threads/schedlock.exp: Ditto.
	* gdb.threads/staticthreads.exp: Ditto.
	* gdb.threads/thread-specific.exp: Ditto.
	* gdb.threads/thread-unwindonsignal.exp: Ditto.
	* gdb.threads/threadapply.exp: Ditto.
	* gdb.threads/watchthreads.exp: Ditto.
	* gdb.threads/watchthreads2.exp: Ditto.

	* gdb.python/py-block.exp: Use gdb_test_no_output.
	* gdb.python/py-prettyprint.exp: Ditto.
	* gdb.python/py-template.exp: Ditto.
	* gdb.python/py-value.exp: Ditto.

	* gdb.reverse/watch-precsave.exp: Use gdb_test_no_output.
	* gdb.reverse/watch-reverse.exp: Ditto.

	* gdb.server/ext-attach.exp: Use gdb_test_no_output.
	* gdb.server/ext-run.exp: Ditto.

	* gdb.dwarf2/dw2-basic.exp: Use gdb_test_no_output.
	* gdb.dwarf2/dw2-compressed.exp: Ditto.
	* gdb.dwarf2/dw2-intercu.exp: Ditto.
	* gdb.dwarf2/dw2-intermix.exp: Ditto.
	* gdb.dwarf2/dw2-producer.exp: Ditto.
	* gdb.dwarf2/mac-fileno.exp: Ditto.

	* gdb.gdb/observer.exp: Use gdb_test_no_output.
	* gdb.gdb/selftest.exp: Ditto.

	* gdb.multi/base.exp: Use gdb_test_no_output.

	* gdb.opt/inline-cmds.exp: Use gdb_test_no_output.

2010-06-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.cp/ref-types.exp (print value of UI): Remove excessive newline.

2010-06-02  Michael Snyder  <msnyder@msnyder-server.eng.vmware.com>

	* gdb.cp/class2.exp: Use gdb_test_no_output.
	* gdb.cp/classes.exp: Ditto.
	* gdb.cp/extern-c.exp: Ditto.
	* gdb.cp/inherit.exp: Ditto.
	* gdb.cp/maint.exp: Ditto.
	* gdb.cp/mb-inline.exp: Ditto.
	* gdb.cp/mb-templates.exp: Ditto.
	* gdb.cp/method2.exp: Ditto.
	* gdb.cp/misc.exp: Ditto.
	* gdb.cp/ovldbreak.exp: Ditto.
	* gdb.cp/punctuator.exp: Ditto.
	* gdb.cp/templates.exp: Ditto.
	* gdb.cp/virtbase.exp: Ditto.

	* gdb.threads/attach-stopped.exp:
	Replace uses of send_gdb / gdb_expect.
	* gdb.threads/attachstop-mt.exp:
	Replace uses of send_gdb / gdb_expect.
	* gdb.threads/gcore-thread.exp:
	Replace uses of send_gdb / gdb_expect.
	* gdb.threads/hand-call-in-threads.exp:
	Replace uses of send_gdb / gdb_expect.
	* gdb.threads/linux-dp.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.threads/print-threads.exp:
	Replace uses of send_gdb / gdb_expect.
	* gdb.threads/pthreads.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.threads/schedlock.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.threads/sigthread.exp: Replace uses of send_gdb / gdb_expect.

	* gdb.trace/actions.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.trace/backtrace.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.trace/collection.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.trace/deltrace.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.trace/infotrace.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.trace/limits.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.trace/report.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.trace/save-trace.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.trace/tfind.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.trace/tracecmd.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.trace/tsv.exp: Replace uses of send_gdb / gdb_expect.

2010-06-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.cp/re-set-overloaded.exp, gdb.cp/re-set-overloaded.cc: New.

2010-06-02  Sami Wagiaalla  <swagiaal@redhat.com>

	* gdb.cp/koenig.exp: Added new test case.
	* gdb.cp/koenig.cc: Ditto.

2010-06-01  Michael Snyder  <msnyder@vmware.com>

	* gdb.base/arithmet.exp: Use gdb_test_no_output.
	* gdb.base/arrayidx.exp: Ditto.
	* gdb.base/attach.exp: Ditto.
	* gdb.base/auxv.exp: Ditto.
	* gdb.base/bigcre.exp: Ditto.
	* gdb.base/break-always.exp: Ditto.
	* gdb.base/break-interp.exp: Ditto.
	* gdb.base/break.exp: Ditto.
	* gdb.base/breakpoint-shadow.exp: Ditto.
	* gdb.base/call-ar-st.exp: Ditto.
	* gdb.base/call-sc.exp: Ditto.
	* gdb.base/call-signal-resume.exp: Ditto.
	* gdb.base/callfuncs.exp: Ditto.
	* gdb.base/catch-syscall.exp: Ditto.
	* gdb.base/charset.exp: Ditto.
	* gdb.base/code-expr.exp: Ditto.
	* gdb.base/commands.exp: Ditto.
	* gdb.base/cond-expr.exp: Ditto.
	* gdb.base/condbreak.exp: Ditto.
	* gdb.base/cursal.exp: Ditto.
	* gdb.base/cvexpr.exp: Ditto.
	* gdb.base/default.exp: Ditto.
	* gdb.base/del.exp: Ditto.
	* gdb.base/detach.exp: Ditto.
	* gdb.base/display.exp: Ditto.
	* gdb.base/ena-dis-br.exp: Ditto.
	* gdb.base/eval-skip.exp: Ditto.
	* gdb.base/foll-fork.exp: Ditto.
	* gdb.base/foll-vfork.exp: Ditto.
	* gdb.base/frame-args.exp: Ditto.
	* gdb.base/funcargs.exp: Ditto.
	* gdb.base/gcore-buffer-overflow.exp: Ditto.
	* gdb.base/gdbvars.exp: Ditto.
	* gdb.base/help.exp: Ditto.
	* gdb.base/ifelse.exp: Ditto.
	* gdb.base/included.exp: Ditto.
	* gdb.base/list.exp: Ditto.
	* gdb.base/macscp.exp: Ditto.
	* gdb.base/maint.exp: Ditto.
	* gdb.base/multi-fork.exp: Ditto.
	* gdb.base/overlays.exp: Ditto.
	* gdb.base/page.exp: Ditto.
	* gdb.base/pending.exp: Ditto.
	* gdb.base/pointers.exp: Ditto.
	* gdb.base/pr11022.exp: Ditto.
	* gdb.base/prelink.exp: Ditto.
	* gdb.base/printcmds.exp: Ditto.
	* gdb.base/psymtab.exp: Ditto.
	* gdb.base/randomize.exp: Ditto.
	* gdb.base/relational.exp: Ditto.
	* gdb.base/relocate.exp: Ditto.
	* gdb.base/remote.exp: Ditto.
	* gdb.base/sepdebug.exp: Ditto.
	* gdb.base/set-lang-auto.exp: Ditto.
	* gdb.base/setshow.exp: Ditto.
	* gdb.base/setvar.exp: Ditto.
	* gdb.base/signals.exp: Ditto.
	* gdb.base/signull.exp: Ditto.
	* gdb.base/sigstep.exp: Ditto.
	* gdb.base/sizeof.exp: Ditto.
	* gdb.base/solib-disc.exp: Ditto.
	* gdb.base/store.exp: Ditto.
	* gdb.base/structs.exp: Ditto.
	* gdb.base/structs2.exp: Ditto.
	* gdb.base/subst.exp: Ditto.
	* gdb.base/term.exp: Ditto.
	* gdb.base/trace-commands.exp: Ditto.
	* gdb.base/unwindonsignal.exp: Ditto.
	* gdb.base/valgrind-db-attach.exp: Ditto.
	* gdb.base/varargs.exp: Ditto.
	* gdb.base/watch-cond.exp: Ditto.
	* gdb.base/watch_thread_num.exp: Ditto.
	* gdb.base/watchpoint-cond-gone.exp: Ditto.
	* gdb.base/watchpoint.exp: Ditto.
	* gdb.base/whatis-exp.exp: Ditto.

2010-06-01  Michael Snyder  <msnyder@vmware.com>

	* gdb.cp/annota2.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.cp/annota3.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.cp/anon-union.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.cp/cplusfuncs.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.cp/demangle.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.cp/formatted-ref.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.cp/local.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.cp/method.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.cp/misc.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.cp/namespace.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.cp/ovldbreak.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.cp/pr-1023.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.cp/ref-types.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.cp/templates.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.cp/userdef.exp: Replace uses of send_gdb / gdb_expect.

2010-06-01  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/commands.exp (begin commands on watch): Remove excessive
	trailing newline.
	* gdb.mi/mi-nsintrall.exp (-gdb-show non-stop): Likewise.
	* gdb.java/jmisc.exp (p *args\n): Rename to ...
	(p *args): ... here and remove excessive trailing newline.

2010-05-31  Joel Brobecker  <brobecker@adacore.com>

	* gdb.base/subst.exp: Fix call to gdb_test with empty message.

2010-05-31  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Accept the new Linux kernel "t (tracing stop)" string.
	* gdb.threads/watchthreads-reorder.c (thread1_func, thread2_func):
	Update comment.
	(state_wait) <T (tracing stop)>: New.
	(main): Update the state_wait expect string.

2010-05-28  Pedro Alves  <pedro@codesourcery.com>

	* limits.c, limits.exp: Delete files.
	* Makefile.in (clean mostlyclean): Adjust.
	* tracecmd.exp: Adjust.

2010-05-28  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/tui-layout.exp: New.

2010-05-28  Michael Snyder  <msnyder@vmware.com>

	* gdb.reverse/break-precsave.exp:
	Replace uses of send_gdb / gdb_expect.
	* gdb.reverse/break-reverse.exp:
	Replace uses of send_gdb / gdb_expect.
	* gdb.reverse/consecutive-precsave.exp:
	Replace uses of send_gdb / gdb_expect.
	* gdb.reverse/consecutive-reverse.exp:
	Replace uses of send_gdb / gdb_expect.
	* gdb.reverse/finish-precsave.exp:
	Replace uses of send_gdb / gdb_expect.
	* gdb.reverse/finish-reverse.exp:
	Replace uses of send_gdb / gdb_expect.
	* gdb.reverse/i386-precsave.exp:
	Replace uses of send_gdb / gdb_expect.
	* gdb.reverse/i386-reverse.exp:
	Replace uses of send_gdb / gdb_expect.
	* gdb.reverse/i386-sse-reverse.exp:
	Replace uses of send_gdb / gdb_expect.
	* gdb.reverse/i387-env-reverse.exp:
	Replace uses of send_gdb / gdb_expect.
	* gdb.reverse/i387-stack-reverse.exp:
	Replace uses of send_gdb / gdb_expect.
	* gdb.reverse/machinestate-precsave.exp:
	Replace uses of send_gdb / gdb_expect.
	* gdb.reverse/machinestate.exp:
	Replace uses of send_gdb / gdb_expect.
	* gdb.reverse/sigall-precsave.exp:
	Replace uses of send_gdb / gdb_expect.
	* gdb.reverse/sigall-reverse.exp:
	Replace uses of send_gdb / gdb_expect.
	* gdb.reverse/solib-precsave.exp:
	Replace uses of send_gdb / gdb_expect.
	* gdb.reverse/solib-reverse.exp:
	Replace uses of send_gdb / gdb_expect.
	* gdb.reverse/step-precsave.exp:
	Replace uses of send_gdb / gdb_expect.
	* gdb.reverse/step-reverse.exp:
	Replace uses of send_gdb / gdb_expect.
	* gdb.reverse/until-precsave.exp:
	Replace uses of send_gdb / gdb_expect.
	* gdb.reverse/until-reverse.exp:
	Replace uses of send_gdb / gdb_expect.
	* gdb.reverse/watch-precsave.exp:
	Replace uses of send_gdb / gdb_expect.
	* gdb.reverse/watch-reverse.exp:
	Replace uses of send_gdb / gdb_expect.

2010-05-28  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/sepdebug.exp (info silent break bp_location1): Fix racy
	excessive newline.

2010-05-27  Michael Snyder  <msnyder@vmware.com>

	* gdb.base/break.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.base/relational.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.base/relocate.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.base/restore.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.base/return.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.base/return2.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.base/sepdebug.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.base/setshow.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.base/setvar.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.base/shlib-call.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.base/shreloc.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.base/sigall.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.base/sigbpt.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.base/signull.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.base/so-impl-ld.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.base/varargs.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.base/volatile.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.base/watch_thread_num.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.base/watchpoint.exp: Replace uses of send_gdb / gdb_expect.

2010-05-26  Michael Snyder  <msnyder@vmware.com>

	* gdb.java/jmisc.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.java/jprint.exp: Replace uses of send_gdb / gdb_expect.

	* gdb.gdb/complaints.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.gdb/selftest.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.gdb/xfullpath.exp: Replace uses of send_gdb / gdb_expect.

	* gdb.reverse/consecutive-reverse.exp:
	Replace uses of send_gdb / gdb_expect.
	* gdb.reverse/consecutive-precsave.exp:
	Replace uses of send_gdb / gdb_expect.

	* gdb.mi/mi-basics.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.mi/mi-nonstop-exit.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.mi/mi-nonstop.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.mi/mi-ns-stale-regcache.exp:
	Replace uses of send_gdb / gdb_expect.
	* gdb.mi/mi-nsintrall.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.mi/mi-nsmoribund.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.mi/mi-nsthrexec.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.mi/mi-return.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.mi/mi-var-display.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.mi/mi2-basics.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.mi/mi2-console.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.mi/mi2-return.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.mi/mi2-var-display.exp: Replace uses of send_gdb / gdb_expect.

2010-05-26  Michael Snyder  <msnyder@vmware.com>

	* gdb.ada/formatted_ref.exp: Replace uses of send_gdb / gdb_expect.

	* gdb.asm/asm-source.exp: Replace uses of send_gdb / gdb_expect.

	* gdb.base/a2-run.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.base/all-bin.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.base/annota1.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.base/annota3.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.base/assign.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.base/attach.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.base/bitfields.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.base/bitfields2.exp: Replace uses of send_gdb / gdb_expect.
	* gdb.base/bitops.exp: Replace uses of send_gdb / gdb_expect.

2010-05-25  Tom Tromey  <tromey@redhat.com>

	* gdb.base/macscp.exp: Add missing space after setup_kfail.

2010-05-25  Tom Tromey  <tromey@redhat.com>

	* gdb.arch/i386-prologue.exp (skip_breakpoint): Fix setup_kfail
	argument order.
	* gdb.base/macscp.exp: Fix setup_kfail argument order.
	* gdb.base/long_long.exp (gdb_test_xxx): Fix setup_kfail argument
	order.
	* gdb.base/sigbpt.exp (stepi_out): Fix setup_kfail argument
	order.
	* gdb.base/call-sc.exp (setup_kfails): Remove.
	(setup_compiler_kfails): Remove.
	* gdb.base/callfuncs.exp (do_function_calls): Fix setup_kfail
	argument order.
	* gdb.base/siginfo.exp: Fix setup_kfail argument order.
	* gdb.base/sigstep.exp (advance): Fix setup_kfail argument order.
	(advancei): Fix setup_kfail argument order.
	* gdb.base/radix.exp: Fix setup_kfail argument order.
	* gdb.base/solib-weak.exp (do_test): Fix setup_kfail argument
	order.
	* gdb.base/structs.exp (setup_kfails): Remove.
	(setup_compiler_kfails): Fix setup_kfail argument order.
	* gdb.base/sigaltstack.exp (finish_test): Fix setup_kfail argument
	order.
	* gdb.java/jmain.exp: Fix setup_kfail argument order.
	* gdb.pascal/types.exp (test_string_literal_types_accepted): Fix
	setup_kfail argument order.
	* gdb.cp/overload.exp: Fix setup_kfail argument order.

2010-05-25  Tom Tromey  <tromey@redhat.com>

	* gdb.dwarf2/pieces.exp (pieces_test_f3): Mention PR 11636.

2010-05-25  Michael Snyder  <msnyder@vmware.com>

	* gdb.base/a2-run.exp: Replace send_gdb with gdb_test.
	* gdb.base/all-bin.exp: Replace send_gdb with gdb_test.
	* gdb.base/annota1.exp: Replace send_gdb with gdb_test.
	* gdb.base/annota3.exp: Replace send_gdb with gdb_test.
	* gdb.base/assign.exp: Replace send_gdb with gdb_test.
	* gdb.base/attach.exp: Replace send_gdb with gdb_test.
	* gdb.base/bitfields.exp: Replace send_gdb with gdb_test.
	* gdb.base/bitfields2.exp: Replace send_gdb with gdb_test.
	* gdb.base/bitops.exp: Replace send_gdb with gdb_test.
	* gdb.base/call-ar-st.exp: Replace send_gdb with gdb_test.
	* gdb.base/callfuncs.exp: Replace send_gdb with gdb_test.
	* gdb.base/call-rt-st.exp: Replace send_gdb with gdb_test.
	* gdb.base/call-signal-resume.exp: Replace send_gdb with gdb_test.
	* gdb.base/call-strs.exp: Replace send_gdb with gdb_test.
	* gdb.base/catch-syscall.exp: Replace send_gdb with gdb_test.
	* gdb.base/charset.exp: Replace send_gdb with gdb_test.
	* gdb.base/checkpoint.exp: Replace send_gdb with gdb_test.
	* gdb.base/commands.exp: Replace send_gdb with gdb_test.
	* gdb.base/condbreak.exp: Replace send_gdb with gdb_test.
	* gdb.base/cond-exprs.exp: Replace send_gdb with gdb_test.
	* gdb.base/consecutive.exp: Replace send_gdb with gdb_test.
	* gdb.base/constvars.exp: Replace send_gdb with gdb_test.
	* gdb.base/corefile.exp: Replace send_gdb with gdb_test.
	* gdb.base/default.exp: Replace send_gdb with gdb_test.
	* gdb.base/define.exp: Replace send_gdb with gdb_test.
	* gdb.base/display.exp: Replace send_gdb with gdb_test.
	* gdb.base/dump.exp: Replace send_gdb with gdb_test.
	* gdb.base/ending-run.exp: Replace send_gdb with gdb_test.
	* gdb.base/eval-skip.exp: Replace send_gdb with gdb_test.
	* gdb.base/exprs.exp: Replace send_gdb with gdb_test.
	* gdb.base/fileio.exp: Replace send_gdb with gdb_test.
	* gdb.base/finish.exp: Replace send_gdb with gdb_test.
	* gdb.base/foll-fork.exp: Replace send_gdb with gdb_test.
	* gdb.base/funcargs.exp: Replace send_gdb with gdb_test.
	* gdb.base/gcore-buffer-overflow.exp: Replace send_gdb with gdb_test.
	* gdb.base/gcore.exp: Replace send_gdb with gdb_test.
	* gdb.base/gdb1090.exp: Replace send_gdb with gdb_test.
	* gdb.base/gdbvars.exp: Replace send_gdb with gdb_test.
	* gdb.base/help.exp: Replace send_gdb with gdb_test.
	* gdb.base/info-proc.exp: Replace send_gdb with gdb_test.
	* gdb.base/jump.exp: Replace send_gdb with gdb_test.
	* gdb.base/long_long.exp: Replace send_gdb with gdb_test.
	* gdb.base/maint.exp: Replace send_gdb with gdb_test.
	* gdb.base/miscexprs.exp: Replace send_gdb with gdb_test.
	* gdb.base/nodebug.exp: Replace send_gdb with gdb_test.
	* gdb.base/pointers.exp: Replace send_gdb with gdb_test.
	* gdb.base/ptype.exp: Replace send_gdb with gdb_test.
	* gdb.base/whatis.exp: Replace send_gdb with gdb_test.

2010-05-25  Doug Evans  <dje@google.com>

	* gdb.python/py-cmd.exp: Add tests for gdb.GdbError and
	gdb.string_to_argv.

2010-05-21  Tom Tromey  <tromey@redhat.com>

	* gdb.dwarf2/pieces.exp (pieces_test_f3): New proc.
	Call it.
	* gdb.dwarf2/pieces.S: Update.
	* gdb.dwarf2/pieces.c (struct B): Remove initial field.

2010-05-21  Tom Tromey  <tromey@redhat.com>

	* gdb.dwarf2/pieces.exp (pieces_test_f6): New proc.
	Call it.
	* gdb.dwarf2/pieces.c (struct C): New.
	(f6): New function.
	* gdb.dwarf2/pieces.S: Replace.

2010-05-21  Tom Tromey  <tromey@redhat.com>

	* gdb.dwarf2/pieces.exp (pieces_test_f2): New proc.
	Call it.

2010-05-21  Tom Tromey  <tromey@redhat.com>

	* gdb.dwarf2.pieces.exp: New file.
	* gdb.dwarf2.pieces.S: New file.
	* gdb.dwarf2.pieces.c: New file.

2010-05-20  Pedro Alves  <pedro@codesourcery.com>
	    Joel Brobecker  <brobecker@adacore.com>

	* lib/gdb.exp (gdb_test_no_output): New function.
	* lib/gdb.ada/arrayidx.exp: Use gdb_test_no_output instead of gdb_test
	when testing commands that should produce no output.

2010-05-17  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/watch_arg/watch.adb: Rewrite testcase to avoid the
	parameter that we want to watch being a constant.

2010-05-17  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/cond_lang: New testcase.

2010-05-17  Joel Brobecker  <brobecker@adacore.com>

	* lib/gdb.exp (banned_variables): New variable/constant.
	(gdb_init): Add write trace on variables listed in banned_variables.
	(gdb_finish): Remove write traces on variables listed in
	banned_variables.

2010-05-17  Joel Brobecker  <brobecker@adacore.com>

	* gdb.base/gdb11530.exp: Delete setting of prms_id and bug_id.
	* gdb.cp/koenig.exp: Likewise.

2010-05-14  Phil Muldoon  <pmuldoon@redhat.com>

	PR python/11482

	* gdb.python/py-value.exp (test_value_hash): New function.

2010-05-11  Pierre Muller  <muller@ics.u-strasbg.fr>

	PR exp/11530.
	* gdb.base/gdb11530.c: New file.
	* gdb.base/gdb11530.exp: New file.

2010-05-08  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.dwarf2/dw2-modula2-self-type.exp: New.
	* gdb.dwarf2/dw2-modula2-self-type.S: New.

2010-05-07  Sami Wagiaalla  <swagiaal@redhat.com>

	* gdb.cp/koenig.exp: New test.
	* gdb.cp/koenig.cc: New test program.

2010-05-05  Joel Brobecker  <brobecker@adacore.com>

	Remove the use of prms_id and bug_id throughout the testsuite.

2010-05-04  Pierre Muller  <muller@ics.u-strasbg.fr>

	PR exp/11349.
	* testsuite/gdb.cp/ref-types.exp: Add test to examine
	use a reference local variable.

2010-05-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/break-interp.exp: Remove $exec.debug safety removal.
	* gdb.base/sepdebug.exp: Remove .debug subdirectory handling.  New
	variable different_dir. Move debugfile into a full directory pathname
	under DIFFERENT_DIR.
	* lib/gdb.exp (separate_debug_filename): Remove.
	(gdb_gnu_strip_debug): No longer call separate_debug_filename.  Remove
	variable debug_dir and mkdir of it.  Update function comments.

2010-04-29  Pedro Alves  <pedro@codesourcery.com>

	PR gdb/11557

	* gdb.mi/mi-ns-stale-regcache.exp, gdb.mi/ns-stale-regcache.c: New
	files.

2010-04-29  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.python/py-param.exp: New File.

2010-04-29  Mihail Zenkov  <mihail.zenkov@gmail.com>

	* gdb.base/default.exp: Fix "set language" test.

2010-04-24  Pierre Muller  <muller@ics.u-strasbg.fr>

	PR breakpoints/11531.
	* gdb.base/gdb11531.c: New file.
	* gdb.base/gdb11531.exp: New file.

2010-04-26  Tom Tromey  <tromey@redhat.com>

	* gdb.base/completion.exp: Add tests for completion and deprecated
	commands.

2010-04-26  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.pascal/gdb11492.exp (print integer_array, print /d char_array)
	(print /x char_array): Escape curly brackets.

2010-04-23  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix deadlock on looped list of loaded shared objects.
	* gdb.base/solib-corrupted.exp: New.

2010-04-23  Doug Evans  <dje@google.com>

	* gdb.python/py-section-script.c: New file.
	* gdb.python/py-section-script.exp: New file.
	* gdb.python/py-section-script.py: New file.

2010-04-20  Chris Moller  <cmoller@redhat.com>

	PR 10179

	* gdb.base/Makefile.in (EXECUTABLES): Added pr10179.
	* gdb.base/pr10179-a.c:
	* gdb.base/pr10179-b.c:
	* gdb.base/pr10179.exp: New files.

2010-04-22  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix crashes on dangling display expressions.
	* gdb.base/solib-display.exp: Call gdb_gnu_strip_debug if LIBSEPDEBUG
	is SEP.
	(lib_flags): Remove the "debug" keyword.
	(libsepdebug): New variable for iterating new loop.
	(save_pf_prefix): New variable wrapping the loop.
	(sep_lib_flags): New variable derived from LIB_FLAGS.  Use it.
	* lib/gdb.exp (gdb_gnu_strip_debug): Document the return code.

2010-04-22  Pierre Muller  <muller@ics.u-strasbg.fr>

	* gdb.threads/watchthreads.exp: Change to obtain consistent output.

2010-04-22  Pierre Muller  <muller@ics.u-strasbg.fr>

	PR stabs/11479.
	* gdb.stabs/gdb11479.exp: New file.
	* gdb.stabs/gdb11479.c: New file.

2010-04-22  Pierre Muller  <muller@ics.u-strasbg.fr>

	* gdb.base/charset.c (Strin16, String32): New variables.
	* gdb.base/charset.exp (gdb_test): Test correct display
	of 16 or 32 bit strings.

2010-04-21  Chris Moller  <cmoller@redhat.com>

	PR 9167
	* gdb.cp/Makefile.in (EXECUTABLES): Added pr9167.
	* gdb.cp/pr9167.cc: New file.
	* gdb.cp/pr9167.exp: New file.


2010-04-21  Pierre Muller  <muller@ics.u-strasbg.fr>

	PR pascal/11492.
	* gdb.pascal/gdb11492.pas: New file.
	* gdb.pascal/gdb11492.exp: New file.

2010-04-20  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/info_types.c, gdb.ada/info_types.exp: New files.

2010-04-20  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/dyn_loc: New testcase.

2010-04-20  Chris Moller  <cmoller@redhat.com>

	PR 10867

	* gdb.cp/Makefile.in  (EXECUTABLES): Added pr10687
	* gdb.cp/pr10687.cc: New file.
	* gdb.cp/pr10687.exp: New file.


2010-04-20  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Sergio Durigan Junior  <sergiodj@redhat.com>

	* gdb.fortran/logical.exp: New testcase.
	* gdb.fortran/logical.f90: New file.

2010-04-19  Doug Evans  <dje@google.com>

	* gdb.base/help.exp (help source): Update expected output.

2010-04-19  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/solib-display.exp: Replace gdb_exit, gdb_start,
	gdb_reinitialize_dir and gdb_load by clean_restart.  Remove trailing
	gdb_exit and return.
	(executable): New variable.
	(binfile): Use it.

2010-04-19  Pedro Alves  <pedro@codesourcery.com>

	PR breakpoints/8554.

	* gdb.trace/save-trace.exp: Adjust.

2010-04-17  H.J. Lu  <hongjiu.lu@intel.com>

	PR corefiles/11511
	* gdb.arch/system-gcore.exp: New.
	* gdb.arch/gcore.c: Likewise.

2010-04-15  Doug Evans  <dje@google.com>

	* gdb.python/py-progspace.c: New file.
	* gdb.python/py-progspace.exp: New file.

	* gdb.base/source.exp: Add tests for "source -s".

2010-04-14  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.python/py-prettyprint.py (NoStringContainerPrinter): New printer.
	* gdb.python/py-prettyprint.c: Add justchildren struct, typedefs.
	* gdb.python/py-prettyprint.exp: New test for to_string returning None.
	* gdb.python/py-mi.exp: New test for to_string returning None.

2010-04-12  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.python/py-breakpoint.c: Make result global.

2010-04-09  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix non-GNU make compatibility.
	* Makefile.in ($(TEST_TARGETS)): Conditionalize it by @GMAKE_TRUE@.

2010-04-09  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.python/py-breakpoint.exp: New File.
	* gdb.python/py-breakpoint.C: Ditto.

2010-04-08  Stan Shebs  <stan@codesourcery.com>

	* gdb.trace/actions.exp: Clear default-collect.
	* gdb.trace/save-trace.exp: Clear default-collect.

2010-04-08  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.python/py-value: Add null string variable.
	  (test_lazy_string): Test zero length, NULL address lazy
	  strings.

2010-04-07  H.J. Lu  <hongjiu.lu@intel.com>

	* gdb.arch/i386-avx.c: New.
	* gdb.arch/i386-avx.exp: Likewise.

	* gdb.arch/i386-cpuid.h: Updated from gcc 4.4.

2010-04-06  Doug Evans  <dje@google.com>

	* gdb.base/source-test.gdb: New file.
	* gdb.base/source.exp: Test source -v.

2010-04-06  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.cp/inherit.exp (test_print_anon_union): Fix re_class pattern.

2010-04-06  Pierre Muller  <muller@ics.u-strasbg.fr>

	* gdb.stabs/aout.sed: Convert all backslash to double backslash
	within one line, unless it is followed by a double quote.
	* gdb.stabs/hppa.sed: Idem.
	* gdb.stabs/weird.def: Add char and String constants
	* gdb.stabs/weird.exp: Check for correct parsing of
	char and string constants.
	* gdb.stabs/xcoff.sed: Ignore escaped quote quotes
	in .stabs to .stabx substitution.

2010-04-05  Stan Shebs  <stan@codesourcery.com>

	* gdb.trace/tfile.c: Add a variable split across two blocks, and a
	constant global.
	* gdb.trace/tfile.exp: Try to print them.

2010-04-04  Stan Shebs  <stan@codesourcery.com>

	* gdb.base/completion.exp: Update for new "info watchpoints".
	* gdb.base/default.exp: Ditto.
	* gdb.base/help.exp: Ditto.
	* gdb.base/watchpoint.exp: Ditto.
	* gdb.trace/infotrace.exp: Update "info tracpoints" output.

2010-04-04  Stan Shebs  <stan@codesourcery.com>

	* gdb.trace/tfile.exp: Sharpen tfind test.

2010-04-04  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/break-entry.exp: New.

2010-04-02  Hui Zhu  <teawater@gmail.com>
	    Michael Snyder <msnyder@vmware.com>

	* gdb.reverse/i386-sse-reverse.exp: New file.
	* gdb.reverse/i386-sse-reverse.c: New file.

2010-04-02  Pedro Alves  <pedro@codesourcery.com>

	* gdb.trace/tfind.exp: Adjust expected disassembly output.

2010-04-01  Stan Shebs  <stan@codesourcery.com>

	* gdb.trace/actions.exp: Tweak expected output.
	* gdb.trace/while-stepping.exp: Tweak expected output.

2010-04-01  H.J. Lu  <hongjiu.lu@intel.com>

	* gdb.arch/amd64-byte.exp: Check "ah", "bh", "ch", "dh".

2010-04-01  Pedro Alves  <pedro@codesourcery.com>

	* gdb.base/commands.exp: Adjust.
	* gdb.cp/extern-c.exp: Adjust.

2010-04-01  Pedro Alves  <pedro@codesourcery.com>

	* gdb.trace/collection.c (local_test_func): Define a local struct,
	and instanciate it.

2010-04-01  Pedro Alves  <pedro@codesourcery.com>

	* gdb.trace/collection.exp (gdb_collect_args_test)
	(gdb_collect_argarray_test): XFAIL the tests that assume the
	argarray argument's elements are collected.

2010-03-31  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.dwarf2/dw2-bad-parameter-type.exp,
	gdb.dwarf2/dw2-bad-parameter-type.S: New.

2010-03-31  Stan Shebs  <stan@codesourcery.com>

	* gdb.trace/save-trace.exp: Test save/restore of default-collect
	and tracepoint conditionals.
	(gdb_verify_tracepoints): Delete unused return.

2010-03-26  Keith Seitz  <keiths@redhat.com>

	* gdb.java/jmisc.exp (ptype jmisc): Allow the constructor to
	appear in the output before main.
	Remove KFAIL for gdb/2215 aka bz 9320.

2010-03-30  Doug Evans  <dje@google.com>

	* gdb.arch/amd64-word.exp: Rename hex to hexr, the former is defined
	by dejagnu.
	* gdb.arch/amd64-dword.exp: Ditto.

	* gdb.base/annota1.exp (break handle_USR1): Make fail and pass text
	match.
	(break printf): Ditto.

2010-03-29  Sami Wagiaalla  <swagiaal@redhat.com>

	* gdb.cp/nsusing.exp: Marked imported declaration test as xfail with
	gcc < 4.4.
	* gdb.cp/shadow.exp: Ditto.

2010-03-29  Pedro Alves  <pedro@codesourcery.com>

	* gdb.trace/collection.exp (run_trace_experiment): Make sure
	"tstart" is silent.

2010-03-29  Pedro Alves  <pedro@codesourcery.com>

	* gdb.trace/collection.exp (executable): New.
	(binfile): Use it.
	(fpreg, spreg, pcreg): New.
	(test_register): Use gdb_test_multiple.  Pass /x to print.
	(prepare_for_trace_test): New.
	(run_trace_experiment): Use "continue", not gdb_run_cmd.
	(gdb_collect_args_test, gdb_collect_argstruct_test)
	(gdb_collect_argarray_test, gdb_collect_locals_test): Use
	prepare_for_trace_test.
	(gdb_collect_registers_test): Use prepare_for_trace_test.  Use
	fpreg, spreg and pcreg.
	(gdb_collect_expression_test, gdb_collect_globals_test): Use
	prepare_for_trace_test.
	(gdb_trace_collection_test): Use fpreg, spreg and pcreg.  Don't
	try to detect tracing support here.  Don't set breakpoints at
	`begin' or `end' here.
	<global scope>: Use clean_restart.  Run to main before checking
	for tracing support.  Check for for tracing support here.

2010-03-28  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/break-interp.exp (test_core, test_attach, test_ld): Add
	" as $displacement" to "seen displacement message".

2010-03-28  Pedro Alves  <pedro@codesourcery.com>

	* gdb.trace/while-dyn.exp (executable): New variable.
	(binfile): Use it.
	(test_while_stepping): New function.  Move most tests here.  Call
	it once for each of the while-stepping, stepping and ws aliases.

2010-03-26  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.cp/inherit.exp (test_ptype_si): XFAIL test for GCC versions
	that do not provide the tagless_struct type name at all.
	(test_print_anon_union): Do not check value of uninitialized
	union member.  Do not use cp_test_ptype_class, so we can accept
	"long" as well as "long int".

2010-03-26  Pedro Alves  <pedro@codesourcery.com>

	* gdb.trace/tfile.c (tohex, bin2hex): New.
	(write_error_trace_file): Hexify error description.

2010-03-25  Stan Shebs  <stan@codesourcery.com>

	* gdb.trace/tfile.c: Generate an additional trace file, improve
	portability.
	* gdb.trace/tfile.exp: Test trace file with an error stop, delete
	files in a better way.

2010-03-25  Keith Seitz  <keiths@redhat.com>

	* gdb.java/jprint.exp: XFAIL printing of static class members
	because of GCC debuginfo problem.

2010-03-25  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/dup-sect.exp, gdb.base/dup-sect.S: New.

2010-03-24  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/completion.exp: Allow long instead of long int.
	* gdb.base/ending-run.exp: Match _rt_entry.* for RealView.
	* gdb.base/gdbvars.c (main): Remove unused usestubs code.  Reference
	variable p.
	* gdb.base/maint.exp: Allow ER_RO and ER_RW instead of .text and .data.
	* gdb.base/pointers.exp: Allow long instead of long int.
	* gdb.base/printcmds.exp: XFAIL for RealView on ARM EABI.
	* gdb.base/step-line.exp: Allow a directory before the source file name.

2010-03-24  Tom Tromey  <tromey@redhat.com>

	PR breakpoints/9352:
	* gdb.base/default.exp: Update.
	* gdb.base/commands.exp: Update.
	* gdb.cp/extern-c.exp: Test setting commands on multiple
	breakpoints at once.

2010-03-24  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/call-signal-resume.exp, gdb.base/unwindonsignal.exp: Skip
	if gdb,nosignals.
	* gdb.base/watchpoints.c: Do not include unnecessary headers.
	* lib/gdb.exp (gdb_test_multiple): Relax pattern for "the program
	exited".

2010-03-24  Stan Shebs  <stan@codesourcery.com>

	* gdb.trace/tfile.exp: Expect "trace frame", with a space.

2010-03-24  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/callfuncs.exp (do_function_calls): Add XFAILs for RealView.
	* gdb.base/ptype.exp (ptype_maybe_prototyped): Add overprototyped
	argument.  Handle "short" and "long".
	(Top level): Pass overprototyped output for old_fptr and xptr.

2010-03-23  Pedro Alves  <pedro@codesourcery.com>

	* gdb.threads/pthreads.c (thread1, thread2, main): Fix printf
	format strings and add casts to avoid compiler warnings.

2010-03-23  Vladimir Prus  <vladimir@codesourcery.com>

	* lib/trace-support.exp (gdb_trace_setactions):
	Don't expect whitespace after ">" prompt.
	* gdb.trace/actions.exp: Adjust for output changes.
	* gdb.trace/while-stepping.exp: Likewise.

2010-03-22  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* dg-extract-results.sh: Sync with GCC HEAD (import r155655, r157175
	and r157645).

2010-03-22  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.dwarf2/dw2-empty-namespace.exp, gdb.dwarf2/dw2-empty-namespace.S:
	New.

2010-03-22  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.python/Makefile.in (EXECUTABLES): Add py-mi.
	* gdb.python/py-mi.exp (binfile): Rename to py-mi.

2010-03-19  Stan Shebs  <stan@codesourcery.com>

	* gdb.trace/ax.exp: New file.

2010-03-19  Doug Evans  <dje@google.com>

	* lib/gdb.exp (gdb_compile_test): Watch for "compiler not installed"
	output from gcc.

	* gdb.base/break-interp.exp (prelinkNO): Handle prelink binaries
	named /usr/sbin/prelink<foo>.

2010-03-18  Stan Shebs  <stan@codesourcery.com>

	* gdb.trace/circ.exp: Test circular-trace-buffer.
	* gdb.trace/tfile.exp: Update tstatus test.

2010-03-18  Joel Brobecker  <brobecker@adacore.com>

	* gdb.dwarf2/dw2-anonymous-func.S: New file.
	* gdb.dwarf2/dw2-anonymous-func.exp: New testcase.

2010-03-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.mi/gdb680.exp: Revert 2009-06-17 change.

2010-03-18  Pedro Alves  <pedro@codesourcery.com>

	* gdb.base/default.exp: Adjust the expected output of the finish
	and until commands when the inferior is not being run.

2010-03-15  Sami Wagiaalla  <swagiaal@redhat.com>

	* gdb.cp/shadow.exp: Removed kfail; test has been fix.
	* gdb.cp/nsusing.exp: Ditto.

2010-03-15  Tom Tromey  <tromey@redhat.com>

	* gdb.cp/userdef.exp: Add tests for explicit calls to operator==.
	* gdb.cp/userdef.cc (operator==): New function.
	(main): New locals mem1, mem2.

2010-03-15  Jie Zhang  <jie@codesourcery.com>

	* lib/mi-support.exp (mi_gdb_target_load): Delete unused timeout var.
	Declare and use new loadtimeout variable.

2010-03-14  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/printcmds.exp: Use gdb_file_cmd instead of gdb_load.
	Use gdb_load later.

2010-03-14  Pedro Alves  <pedro@codesourcery.com>

	* gdb.base/solib-disc.c (main): Make format of fprintf a string
	literal.  Add missing endlines to prints to stderr.

2010-03-12  Tom Tromey  <tromey@redhat.com>

	PR c++/9708:
	* gdb.cp/m-static.exp: Add regression test.
	* gdb.cp/m-static.cc (method): New method.
	(main): Call it.

2010-03-12  Sami Wagiaalla  <swagiaal@redhat.com>

	* gdb.cp/gdb2384-base.h: Created 'namespace B'.
	* gdb.cp/gdb2384-base.cc: Use 'namespace B'.

2010-03-12  Daniel Jacobowitz  <dan@codesourcery.com>

	* lib/gdb.exp (gdb_test_multiple): Handle -timeout.

2010-03-12  Daniel Jacobowitz  <dan@codesourcery.com>

	* lib/gdb.exp (skip_stl_tests): New.
	(gdb_compile): Symbian needs -ldl.
	(shlib_target_file): New.
	(shlib_symbol_file): New.
	(gdb_load_shlibs): Use shlib_target_file.
	* lib/mi-support.exp (mi_load_shlibs): Use shlib_target_file.
	* gdb.cp/exception.exp: Use skip_stl_tests.
	* gdb.cp/bs15503.exp: Use skip_stl_tests.  Use untested.
	* gdb.cp/try_catch.exp: Use skip_stl_tests.
	* gdb.cp/mb-templates.exp: Ditto.
	* gdb.base/commands.exp: Relax regexes.
	* gdb.base/watchpoint-solib.exp: Don't skip on symbian.  Use
	shlib_target_file and shlib_symbol_file.
	* gdb.base/maint.exp: Allow lowercase t.  Allow .rodata in
	sections.
	* gdb.base/ending-run.exp: Accept E32Main for symbian.
	* gdb.base/solib-disc.exp: Use
	shlib_target_file and shlib_symbol_file.
	* gdb.base/unload.exp: Don't skip on symbian.  Use
	shlib_target_file and shlib_symbol_file.
	* gdb.base/list.exp: Check use_gdb_stub instead of is_remote.

2010-03-12  Pedro Alves  <pedro@codesourcery.com>

	* gdb.trace/backtrace.exp: Adjust for x86 and x86_64.
	* gdb.trace/report.exp: Adjust for x86 and x86_64.
	Issue a tfind end before looking for a tracepoint frame.
	* gdb.trace/tfind.exp: Adjust tstatus output.
	Adjust disassembly output.
	* gdb.trace/while-dyn.exp: Adjust for x86 and x86_64.

2010-03-11  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/break-interp.exp: Create new displacement parameter value
	for the test_ld calls.
	(reach): New parameter displacement, verify its content.  New push of
	pf_prefix "reach-$func:".  Import global expect_out.
	(test_core): New parameter displacement, verify its content.  New push
	of pf_prefix "core:".  New command "set verbose on".  Import global
	expect_out.
	(test_attach): New parameter displacement, verify its content.  New
	push of pf_prefix "attach:".  New command "set verbose on".  Import
	global expect_out.
	(test_ld): New parameter displacement, pass it to the reach, test_core
	and test_attach calls and verify its content in the "ld.so exit" test.
	* gdb.base/prelink.exp: Remove gdb_exit and final return.
	(prelink): Update expected text, use gdb_test.

2010-03-10  Doug Evans  <dje@google.com>

	* gdb.base/checkpoint.exp: Fix comment.
	Lengthen timeout while doing >600 checkpoints test.
	Rename duplicate "kill all one" test to keep test names unique.

2010-03-10  Pedro Alves  <pedro@codesourcery.com>

	* gdb.base/watch-cond.c, gdb.base/watch-cond.exp: New.

2010-03-08  Keith Seitz  <keiths@redhat.com>

	* gdb.cp/cp-relocate.exp: Remove single-quoting of C++ methods.
	* gdb.cp/cplusfuncs.cc (dm_type_short): New function.
	(dm_type_long): New function.
	(dm_type_unsigned_short): New function.
	(dm_type_unsigned_long): New function.
	(myint): New typedef.
	* gdb.cp/cplusfuncs.exp (probe_demangler): Add tests for short,
	long, unsigned shor and long, operator char*, and typedef.
	(test_lookup_operator_functions): Add operator char* test.
	(test_paddr_operator_functions): Likewise.
	(test_paddr_overloaded_functions): Use probe values for
	short, long, and unsigned short and long.
	(test_paddr_hairy_functions): If the demangler probe detected
	gdb type printers, "expect" them. Otherwise "expect" the v2 or v3
	demangler.
	* gdb.cp/expand-sals.exp: Backtrace may contain class names.
	* gdb.cp/member-ptr.exp: Refine expected result for "print pmf"
	and "print null_pmf".
	Add test "ptype a.*pmf".
	* gdb.cp/overload.exp: Allow optional "int" to appear with
	"short" and "long".
	* gdb.cp/ovldbreak.exp: Use append to construct super-duper
	long expect value for men_overload1arg.
	Allow "int" to appear with "short" and "long".
	When testing "info break", add argument for main (void).
	Also allow "int" to appear with "short" and "long".
	Ditto with "unsigned" and "long long".
	* gdb.java/jmain.exp: Do not enclose methods names in single
	quotes.
	* gdb.java/jmisc.exp: Likewise.
	* gdb.java/jprint.exp: Likewise.
	* gdb.python/py-symbol.exp: Update expected "linkage_name" value.

	From Jan Kratochvil  <jan.kratochvil@redhat.com>:
	* gdb.cp/exception.exp (backtrace after first throw)
	(backtrace after second throw): Allow a namespace before __cxa_throw.
	(backtrace after first catch, backtrace after second catch): Allow
	a namespace before __cxa_begin_catch.

	* gdb.cp/cpexprs.exp: New file.
	* gdb.cp/cpexprs.cc: New file.

	From Daniel Jacobowitz  <dan@codesourcery.com>
	* gdb.cp/cpexprs.exp (escape): Delete.  Change all callers
	to use string_to_regexp.
	(ctor, dtor): New functions.  Use them to match constructor
	and destructor function types.
	(Top level): Use runto_main.

2010-03-05  Tom Tromey  <tromey@redhat.com>

	* gdb.python/py-prettyprint.py (pp_nullstr.to_string): Use
	gdb.target_charset.
	(pp_ns.to_string): Likewise.

2010-03-04  Keith Seitz  <keiths@redhat.com>

	* gdb.cp/overload.exp: Test that the filename portion of a linespec
	can be quoted.  Test that both the filename and function/line
	portions can be quoted at the same time.

2010-03-04  Pedro Alves  <pedro@codesourcery.com>

	* gdb.base/watch-non-mem.c, gdb.base/watch-non-mem.exp: New.

2010-03-03  Doug Evans  <dje@google.com>

	* lib/gdb.exp (gdb_compile_pthreads): Handle case where
	libc contains libpthread.

	* gdb.threads/linux-dp.c (shared_random): Call rand instead of rand_r.
	* gdb.threads/linux-dp.exp: Compile with gdb_compile_pthreads instead
	of gdb_compile.  Add another pattern to match android backtrace.

2010-03-03  Tom Tromey  <tromey@redhat.com>

	PR gdb/11345:
	* gdb.base/printcmds.exp (test_printf): Add test.

2010-03-02  H.J. Lu  <hongjiu.lu@intel.com>

	* gdb.arch/amd64-byte.exp: New.
	* gdb.arch/amd64-dword.exp: Likewise.
	* gdb.arch/amd64-pseudo.c: Likewise.
	* gdb.arch/amd64-word.exp: Likewise.
	* gdb.arch/i386-byte.exp: Likewise.
	* gdb.arch/i386-pseudo.c: Likewise.
	* gdb.arch/i386-word.exp: Likewise.

2010-03-01  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.xml/extra-regs.xml: Add struct1, struct2, and flags
	types.  Add structreg, bitfields, and flags registers.
	* gdb.xml/tdesc-regs.exp: Test structreg and bitfields
	registers.

2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>

	* gdb.xml/tdesc-regs.exp (architecture): New.  Set it for x86.
	(load_description): Set architecture if defined.

2010-02-28  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.python/py-frame.exp: Add read_var block tests.
	* gdb.python/py-frame.c (block): New function.

2010-02-28  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/callfuncs.exp: New tests for $spval 0 and -1.  Remove return.

2010-02-25  David S. Miller  <davem@davemloft.net>

	* gdb.base/catch-syscall.exp: Allow to run on sparc*-*-linux and
	fix logic for setting all_syscalls_numbers.

2010-02-24  Phil Muldoon  <pmuldoon@redhat.com>

	* Makefile.in: Add py-block and py-symbol.
	* gdb.python/py-symbol.exp: New File.
	* gdb.python/py-symtab.exp: New File.
	* gdb.python/py-block.exp: New File.
	* gdb.python/py-symbol.c: New File.
	* gdb.python/py-block.c: New File.

2010-02-24  Phil Muldoon  <pmuldoon@redhat.com>

	PR python/11314
	* lib/gdb.exp (skip_python_tests): New function.
	* gdb.python/py-cmd.exp: Use skip_python_tests.
	* gdb.python/py-frame.exp: Likewise.
	* gdb.python/py-function.exp: Likewise.
	* gdb.python/py-prettyprint.exp: Likewise.
	* gdb.python/py-template.exp: Likewise.
	* gdb.python/py-type.exp: Likewise.
	* gdb.python/py-value.exp: Likewise.

2010-02-22  Pedro Alves  <pedro@codesourcery.com>

	PR9605

	* gdb.base/watch-read.c, gdb.base/watch-read.exp: New files.

2010-02-19  Tom Tromey  <tromey@redhat.com>

	PR c++/8693, PR c++/9496:
	* gdb.cp/namespace.exp: Remove some setup_kfail calls.  Added
	regression tests.

2010-02-19  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix compatibility with m68k as.
	* gdb.dwarf2/member-ptr-forwardref.S: Use .data section.  Use .2byte.
	Use only /* comments */.

2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* configure.ac: Add gdb.multi/Makefile to AC_OUTPUT.
	* configure: Regenerate.

2010-02-18  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.python/py-type.exp: Check for Python support.

2010-02-17  Pedro Alves  <pedro@codesourcery.com>

	* lib/gdb.exp (build_id_debug_filename_get): Don't assume new
	`regsub' syntax available.

2010-02-17  Pedro Alves  <pedro@codesourcery.com>

	* gdb.base/shmain.c (main): Remove printf call.
	* gdb.base/sizeof.c (main): Cast return of sizeof to int.
	* gdb.base/unload.c (main): Make format of fprintf a string
	literal.  Add missing endlines to prints to stderr.
	* gdb.base/watchpoint-solib.c (open_shlib): Ditto.

2010-02-17  Tom Tromey  <tromey@redhat.com>

	* gdb.java/jprint.java (jprint.props): New field.
	* gdb.java/jprint.exp (set_lang_java): Add regression test.

2010-02-17  Pedro Alves  <pedro@codesourcery.com>

	* gdb.base/charset.exp: Don't assume new `regsub' syntax
	available.

2010-02-16  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.xml/tdesc-arch.exp, gdb.xml/tdesc-regs.exp: Rewrite file
	creation to support remote host testing.

2010-02-16  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/valgrind-db-attach.exp: Use unsupported instead of xfail.
	Recognize "command not found".

2010-02-16  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.arch/thumb2-it.exp (test_it_break): Handle hardware
	single-stepping.

2010-02-16  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.python/py-value.exp (test_value_in_inferior): Skip arg0 test
	if arguments are not supported.

2010-02-16  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.cp/overload.exp: Allow foo::overload1arg's "this" pointer to
	be const or non-const.

2010-02-16  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.mi/mi-break.exp (test_breakpoint_commands): Use
	mi_send_resuming_command to send -exec-continue.

2010-02-16  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/list.exp (test_list_filename_and_function): Add test
	with single quotes.
	* gdb.cp/overload.cc (intToChar): Rewrite onto one line for easy
	matching.
	* gdb.cp/overload.exp: Add tests with filename, function, and quotes.
	Add KFAIL'd tests for PR gdb/11289.

2010-02-16  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.cp/cpcompletion.exp: Specify source file name explicitly.

2010-02-16  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/comp-dir/subdir/dummy.txt: New file.
	* gdb.base/completion.exp: Use comp-dir/subdir instead of creating
	a temporary directory.

2010-02-16  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/charset.exp: Use a single regular expression to match
	show host-charset and show target-charset output.

2010-02-15  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/attach.exp (attach to nonsense is prohibited): Make the
	"Illegal process-id" expect string more exact.
	(attach to digits-starting nonsense is prohibited): New.

2010-02-13  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/prelink.exp (set verbose on): New.

2010-02-12  Tomas Holmberg  <th@virtutech.com>

	* mi-reverse.exp: New file. Test for reverse option to the
	following MI commands: exec-continue, exec-finish, exec-next,
	exec-step, exec-next-instruction, exec-step-instruction.

2010-02-09  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/ptype_tagged_param: New testcase.

2010-02-08  Tom Tromey  <tromey@redhat.com>

	PR c++/8017:
	* gdb.cp/overload.exp: Add tests.
	* gdb.cp/overload.cc (struct K): New.
	(namespace N): New.
	(main): Call new functions.
	(K::staticoverload): Define.

2010-02-08  Chris Moller  <moller@mollerware.com>

	PR gdb/10728
	* gdb.cp/pr10728-x.h: New file.
	* gdb.cp/pr10728-x.cc: New file.
	* gdb.cp/pr10728-y.cc: New file.
	* gdb.cp/pr10728.exp: New file.
	* gdb.cp/Makefile.in (EXECUTABLES): Add pr10728

2010-02-08  Chris Moller  <moller@mollerware.com>

	PR gdb/9067
	* gdb.cp/pr9067.exp:  New
	* gdb.cp/pr9067.cc:   New
	* gdb.cp/Makefile.in (EXECUTABLES): Add pr9067

2010-02-08  Joel Brobecker  <brobecker@adacore.com>

	* lib/gdb.exp (gdb_test_timeout): New global variable.
	Set it to timeout if not already set.
	(gdb_init): Reset the value of timeout to gdb_test_timeout.

2010-02-05  Doug Evans  <dje@google.com>

	* lib/gdb.exp (INTERNAL_GDBFLAGS): Don't override value provided by
	user.

2010-02-05  Sami Wagiaalla  <swagiaal@redhat.com>

	PR c++/7935:
	* gdb.cp/namespace-using.exp: Removed kfail; bug has been fixed.

2010-02-04  Tom Tromey  <tromey@redhat.com>

	* gdb.cp/virtbase.exp: Make test case names unique.

2010-02-02  Tom Tromey  <tromey@redhat.com>

	* gdb.cp/virtbase.exp: Add regression tests.
	* gdb.cp/virtbase.cc (RHA, RHB, RHC): New classes.
	(main): Instantiate RHC.

2010-02-02  Tom Tromey  <tromey@redhat.com>

	* gdb.dwarf2/member-ptr-forwardref.exp: Update expected result for
	type-printing change.

2010-02-02  Tom Tromey  <tromey@redhat.com>

	PR c++/11226, PR c++/9629, PR c++/9688, PR c++/8890:
	* gdb.cp/virtbase.cc: New file.
	* gdb.cp/virtbase.exp: New file.
	* gdb.cp/userdef.exp: Allow 'struct' or 'class'.

2010-02-01  Jan Kratochvil  <jan.kratochvil@redhat.com>

	PR libc/11214:
	* gdb.threads/current-lwp-dead.c: Include features.h.
	(HAS_NOMMU): New.
	(fn, main): Move CLONE_VM into [__UCLIBC__ && HAS_NOMMU].

2010-02-01  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/symbol-without-target_section.exp,
	gdb.base/symbol-without-target_section.c: New.

2010-02-01  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/bigcore.exp: Reset increased timeout.
	* gdb.base/interrupt.exp: Match unexpected gdb prompt.

2010-02-01  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/gcore.exp (capture_command_output): Use
	gdb_test_multiple.

2010-02-01  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.arch/thumb2-it.S (it_breakpoints): New function.
	* gdb.arch/thumb2-it.exp (test_it_break): New function.
	(Top level): Call it.

2010-02-01  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.arch/thumb2-it.S, gdb.arch/thumb2-it.exp: New files.

2010-01-29  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/call-strs.exp, gdb.base/default.exp,
	gdb.base/ending-run.exp, gdb.base/finish.exp, gdb.base/funcargs.exp,
	gdb.base/huge.exp, gdb.base/nodebug.exp, gdb.base/ptype.exp,
	gdb.base/restore.exp, gdb.base/return.exp, gdb.base/setvar.exp,
	gdb.base/watchpoints.exp, gdb.threads/gcore-thread.exp,
	gdb.base/watchpoint-solib.exp: Save and restore timeout.
	* gdb.base/ending-run.exp: Correct restore of timeout.
	* gdb.base/page.exp: Remove unnecessary timeout setting.

2010-01-29  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/rec_return: New testcase.

2010-01-29  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/call_pn: New testcase.

2010-01-28  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.mi/mi-nonstop.exp (mi_nonstop_resume): New function.
	(Top level): Use it to resume.
	* lib/mi-support.exp (mi_send_resuming_command_raw): Recognize
	the Thumb mode displaced stepping error as unsupported.

2010-01-28  Sami Wagiaalla  <swagiaal@redhat.com>

	* gdb.cp/nsusing.exp: Added more tests.
	* gdb.cp/nsrecurs.exp: Ditto.
	* gdb.cp/nsusing.cc: Added test functions.
	* gdb.cp/nsrecurs.cc: Ditto.

2010-01-27  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/break-interp.exp: Use [file tail $filename] to omit any
	absolute directory pathnames in gdb.sum file.

2010-01-27  Sami Wagiaalla  <swagiaal@redhat.com>

	* gdb.cp/namespace-using.exp: Rename to nsusing.exp.
	* gdb.cp/namespace-using.cc: Rename to nsusing.cc.

2010-01-26  Tom Tromey  <tromey@redhat.com>

	PR exp/7643:
	* gdb.base/printcmds.exp (test_print_string_constants): Remove
	setup_kfail.

2010-01-14  Sami Wagiaalla  <swagiaal@redhat.com>

	* gdb.cp/nsrecurs.exp: New test.
	* gdb.cp/nsrecurs.cc: New test program.
	* gdb.cp/nsstress.exp: New test.
	* gdb.cp/nsstress.cc: New test program.
	* gdb.cp/nsdecl.exp: New test.
	* gdb.cp/nsdecl.cc: New test program.

2010-01-26  Sami Wagiaalla  <swagiaal@redhat.com>

	* gdb.cp/namespace-using.exp: Add test for printing of namespaces
	imported into file scope.
	Marked test as xfail.
	* gdb.cp/namespace-using.cc (marker5): New function.
	* gdb.cp/shadow.exp: New test.
	* gdb.cp/shadow.cc: New test program.
	* gdb.cp/nsimport.exp: New test.
	* gdb.cp/nsimport.cc: New test program.

2010-01-25  Tom Tromey  <tromey@redhat.com>

	PR gdb/11049:
	* gdb.base/printcmds.exp (test_print_typedef_arrays): Add test
	with "set print null-stop on".

2010-01-24  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.arch/i386-bp_permanent.exp (Disassemble function '$function'):
	Adjust it for DISASSEMBLY_OMIT_FNAME.

2010-01-22  Jan Kratochvil  <jan.kratochvil@redhat.com>

	PR symtab/11199:
	* gdb.dwarf2/member-ptr-forwardref.exp,
	gdb.dwarf2/member-ptr-forwardref.S: New.

2010-01-20  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.threads/watchthreads-reorder.c (gdbstop_mutex): Remove.
	(thread1_func): Protect thread1_tid with thread1_tid_cond by
	thread1_tid_mutex.  Remove gdbstop_mutex handling.
	(thread2_func): Protect thread2_tid with thread2_tid_cond by
	thread2_tid_mutex.  Remove gdbstop_mutex handling.
	(main): Move thread1_tid_mutex and thread2_tid_mutex locks before
	pthread_create.  Remove gdbstop_mutex handling.  New comment.  Replace
	pthread_cond_wait conditionalizations by while loops.

2010-01-20  Tom Tromey  <tromey@redhat.com>

	PR backtrace/10770:
	* gdb.dwarf2/pr10770.exp: New file.
	* gdb.dwarf2/pr10770.c: New file.
	* gdb.dwarf2/Makefile.in (EXECUTABLES): Add pr10770.

2010-01-20  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.mi/mi-async.exp: Remove check for 'async' target, because
	that target was removed, and the test always runs native anyway.

2010-01-19  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/watchpoint-cond-gone.exp, gdb.base/watchpoint-cond-gone.c,
	gdb.base/watchpoint-cond-gone-stripped.c: New.

2010-01-19  Tom Tromey  <tromey@redhat.com>

	PR c++/8000:
	* gdb.cp/namespace.exp: Use new enum.  Fix line numbers in
	existing tests.
	* gdb.cp/namespace.cc (AAA::SomeEnum): New enum.
	(main): Use AAA::SomeEnum.

2010-01-19  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.mi/mi-break.exp (set line_callme_head, set line_callme_body): New.
	(test_ignore_count): Declare line_callme_body global.
	(run to breakpoint with ignore count): Use line_callme_body.
	* gdb.mi/mi-cli.exp (set line_main_head, set line_main_body)
	(set line_main_hello, set line_main_return): Reindent.
	(set line_callee4_head, set line_callee4_body, set line_callee4_next):
	New.
	(continue to callee4): Use line_callee4_body.
	(check *stopped from CLI command): Use line_callee4_next.
	* gdb.mi/mi2-cli.exp (set line_main_head, set line_main_body)
	(set line_main_hello, set line_main_return): Reindent.
	(set line_callee4_head, set line_callee4_body): New.
	(continue to callee4): Use line_callee4_body.

2010-01-18  Tom Tromey  <tromey@redhat.com>

	PR c++/9680:
	* gdb.cp/casts.cc: Add new classes and variables.
	* gdb.cp/casts.exp: Test new operators.

2010-01-18  Tom Tromey  <tromey@redhat.com>
	    Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* gdb.python/source2.py: New file.
	* gdb.python/source1: New file.
	* gdb.python/python.exp: Test "source" command.

2010-01-15  Stan Shebs  <stan@codesourcery.com>

	* gdb.trace/tfile.c: New file.
	* gdb.trace/tfile.exp: New file.

2010-01-14  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/pie-support.exp, gdb.base/pie-support.c: Remove.

2010-01-14  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/valgrind-db-attach.exp, gdb.base/valgrind-db-attach.c: New.

2010-01-14  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/break-interp-lib.c: Include unistd.h, assert.h and stdio.h.
	(libfunc): New parameter action.  Implement also selectable "sleep".
	* gdb.base/break-interp-main.c: Include assert.h.
	(libfunc): New parameter action.
	(main): New parameters argc and argv.  Assert argc.  Pass argv.
	* gdb.base/break-interp.exp (test_core): Pass the "segv" argument.
	(test_attach): New proc.
	(test_ld): Pass new "segv" exec parameter.  Call also test_attach.
	* lib/gdb.exp (core_find): New parameter arg.  Pass it to $binfile.

2010-01-14  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/break-interp.exp (test_core): New proc.
	(test_ld): Call it.

2010-01-14  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/break-interp-main.c, gdb.base/break-interp-lib.c: New.
	* gdb.base/break-interp.exp: Exit on skip_shlib_tests.  Change $srcfile.
	New variables $binfile_lib and $srcfile_lib.  Call get_compiler_info
	and gdb_compile_shlib.  Use new -Wl compiler options.
	(dl bt, main bt): New tests.

2010-01-14  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Support PIEs with no symfile_objfile.
	* gdb.base/break-interp.exp: New argument at the test_ld calls.
	(test_ld): New parameter trynosym.
	(test_ld <$trynosym>): New block.

2010-01-14  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/break-interp.exp: New file.

2010-01-13  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.python/py-value.exp (test_lazy_strings): Add lazy string test.
	* gdb.python/py-prettyprint.py (pp_ls): New printer.
	* gdb.python/py-prettyprint.exp (run_lang_tests): Add lazy string
	test.
	* gdb.python/py-prettyprint.c: Define lazystring test structure.
	* gdb.python/py-mi.exp: Add lazy string test.

2010-01-13  Vladimir Prus  <vladimir@codesourcery.com>

	* lib/mi-support.exp (mi_check_thread_states): Handle
	core number in thread listing.

2010-01-12  Joel Brobecker  <brobecker@adacore.com>

	* gdb.base/maint.exp: Adjust the expected output for the
	"maint print type" test. Use gdb_test_multiple instead of
	gdb_sent/gdb_expect.

2010-01-11  Doug Evans  <dje@google.com>

	* lib/gdbserver-support.exp (gdbserver_download_current_prog): Rename
	from gdbserver_download.  All callers updated.

	* gdb.server/ext-run.exp: "info os processes" requires xml support.

2010-01-11  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Implement binary numbers parsing.
	* gdb.base/printcmds.exp (test_integer_literals_accepted)
	(test_integer_literals_rejected): New binary tests.

2010-01-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* gdb.cell/configure: Regenerate.

2010-01-09  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/corefile.exp: Move the core finding block out and call it as
	core_find, new variable $corefile, replace corefile by $corefile and
	[file tail $corefile] for usage vs. test names resp.
	* lib/gdb.exp (core_find): Move it as a new function here.  New
	parameter binfile and deletefiles.  New variable $destcore.  Pre-delete
	$destcore.  Return "" on error.

2010-01-08  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Workaround PR binutils/10802.
	* lib/gdb.exp (gdb_gnu_strip_debug): Preserve the file attributes
	(twice).

2010-01-08  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.cp/gdb2495.exp: Skip if gdb,nosignals.

2010-01-08  Joel Brobecker  <brobecker@adacore.com>

	* lib/gdb.exp (gdb_start_cmd): Move comment outside of gdb_expect
	call, to avoid interruption.

2010-01-08  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.stabs/weird.def (args93): New.

2010-01-07  Doug Evans  <dje@google.com>

	* lib/gdb.exp (gdb_skip_xml_test): Add comment.

2010-01-07  Tom Tromey  <tromey@redhat.com>

	* gdb.base/source.exp: Use correct line number.

2010-01-05  Stan Shebs  <stan@codesourcery.com>

	* gdb.trace/tracecmd.exp: Test ftrace.

2010-01-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.xml/tdesc-regs.exp: Support s390*-*-* targets.

2010-01-03  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.mi/var-cmd.c (do_bitfield_tests): Change "V.sharable" type to
	"uint_for_mi_testing".

2010-01-01  Joel Brobecker  <brobecker@adacore.com>

	Test indented comment in file being sourced.
	* gdb.base/commands.exp: Test indented comment in file being sourced.

2010-01-01  Joel Brobecker  <brobecker@adacore.com>

	* gdb.fortran/array-element.f, gdb.fortran/complex.f,
	gdb.fortran/derived-type.f90, gdb.fortran/module.f90,
	gdb.fortran/subarray.f, gdb.mi/array.f: Update year in copyright
	notice.

2010-01-01  Joel Brobecker  <brobecker@adacore.com>

	* gdb.arch/gdb1291.s, gdb.arch/gdb1431.s: Update year in copyright
	notice.

2010-01-01  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* lib/mi-support.exp (mi_expect_stop <stopped at wrong place>): Insert
	missing $after_stopped and comma (,) expectation.

2009-12-31  Stan Shebs  <stan@codesourcery.com>

	* gdb.trace/actions.exp: Test teval action.

2009-12-30  Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* gdb.base/watchpoint.exp (test_watchpoint_in_big_blob): New function.
	(top level): Call test_watchpoint_in_big_blob.
	* gdb.base/watchpoint.c (buf): Change size to value too big for hardware
	watchpoints.
	(func3): Write to buf.

2009-12-29  Stan Shebs  <stan@codesourcery.com>

	* gdb.trace/actions.exp: Test default-collect.

2009-12-28  Stan Shebs  <stan@codesourcery.com>

	* gdb.trace/tsv.exp: New file.
	* gdb.base/completion.exp: Update ambiguous info output.

2009-12-28  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/find.c (main): Reference search buffers.
	* gdb.base/included.c (main): Reference integer.
	* gdb.base/ptype.c (charfoo): Declare.
	(intfoo): Call charfoo.
	* gdb.base/scope0.c (useitp): New function.
	(usestatics): Use useitp.
	(useit): Add a type for val.
	* gdb.base/scope1.c (useit1): Take a pointer argument.
	(usestatics1): Update calls to useit1.
	* gdb.cp/call-c.cc: Declare foo.
	(main): Call foo.
	* gdb.cp/m-static.cc (main): Reference test4.elsewhere.
	* gdb.cp/namespace.cc (ensureOtherRefs): Declare.
	(main): Call C::ensureRefs and ensureOtherRefs.
	* gdb.cp/namespace1.cc (C::ensureOtherRefs): Also reference int
	variables.
	(ensureOtherRefs): New function.
	* gdb.cp/overload.cc (main): Call all overloadNamespace variants.
	* gdb.cp/templates.cc (main): Call t5i.value.

2009-12-24  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix compatibility with G++-4.5.
	* gdb.cp/expand-sals.cc (main): Remove the "exit-line" comment.
	* gdb.cp/expand-sals.exp: Remove breakpoint on "exit-line".
	(uncaught return): Remove.

2009-12-23  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.base/condbreak.exp: Put breakpoint on marker3 and marker4.
	(bp_location13, bp_location14, bp_location17, bp_location18)
	(marker3_proto, marker4_proto): New variables.
	(breakpoint info): Update output.
	(run until breakpoint at marker3, run until breakpoint at marker4): New
	tests.

2009-12-23  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/unload.c (main): Change the UNLOADSHR parameter to 1.
	Replace the printf call of Y by provided "y-set-1" label.  New block
	for the second shared library.
	* gdb.base/unload.exp: Compile also the second library, call
	gdb_load_shlibs also for it.  Use now gdb_breakpoint.
	(single pending breakpoint info): Rename to ...
	(pending breakpoint info before run): ... this extended test.
	(libfile2, libname2, libsrcfile2, libsrc2)
	(lib_sl2): New variables.
	(exec_opts): Set also SHLIB_NAME2.
	(pending breakpoint info on first run at shrfunc1)
	(pending breakpoint info on second run at shrfunc1)
	(pending breakpoint info on second run at shrfunc2)
	(print y from libfile, print y from libfile2): New tests.
	* gdb.base/unloadshr.c (shrfunc1): Change the returned value.
	* gdb.base/unloadshr2.c: New.

2009-12-22  Hui Zhu  <teawater@gmail.com>

	* gdb.reverse/sigall-reverse.exp: Adjust.

2009-12-21  Vladimir Prus  <vladimir@codesourcery.com>

	PR gdb/10884

	* gdb.mi/var-cmd.c (do_bitfield_tests): New
	(main): Call do_bitfield_tests.
	* gdb.mi/mi-var-cmd.exp: Run the 'bitfield' testcase.

2009-12-20  Joel Brobecker  <brobecker@adacore.com>

	* Makefile.in gdb.ada/gnat_ada.gpr, gdb.base/gcore-buffer-overflow.c,
	gdb.base/gcore-buffer-overflow.exp, gdb.base/source-error.gdb,
	gdb.base/watch_thread_num.c, gdb.java/jprint.java,
	gdb.mi/mi-async.exp, gdb.modula2/unbounded-array.exp,
	gdb.modula2/unbounded1.c: Update copyright header.

2009-12-10  Chris Moller  <moller@mollerware.com>

	PR gdb/9399
	* gdb.cp/virtfunc2.exp: New tests
	* gdb.cp/virtfunc2.cc: New tests
	* gdb.cp/Makefile.in: Added tests to EXECUTABLES

2009-12-10  Oza Pawandeep (paawan1982@yahoo.com

	* gdb.reverse/i387-env-reverse.c: New file.
	* gdb.reverse/i387-env-reverse.exp: New file.
	* gdb.reverse/i387-stack-reverse.c: New file.
	* gdb.reverse/i387-stack-reverse.exp: New file.

2009-12-08  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.python/py-type.exp (test_range): New test.

2009-12-03  Phil Muldoon <pmuldoon@redhat.com>

	PR python/10805

	* gdb.python/py-type.exp: New file.
	* gdb.python/py-type.c: New file.
	* Makefile.in: Add py-type.

2009-12-03  Tom Tromey  <tromey@redhat.com>

	* gdb.python/py-value.exp (test_parse_and_eval): New
	function.

2009-12-03  Paul Pluzhnikov  <ppluzhnikov@google.com>

       PR gdb/11022

       * gdb.base/pr11022.exp: New test.
       * gdb.base/pr11022.c: New test.

2009-12-03  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix spurious false FAILs.
	* gdb.base/structs.c (chartest): New.
	(main): Fill-in chartest.
	* gdb.base/structs.exp (anychar_re, first): New.
	(start_structs_test): Import global anychar_re and first.
	New gdb_test call "set print elements 300; ${testfile}"
	(start_structs_test <$first>): New block.
	(any): Import global anychar_re.  New variable ac.  Use ${ac}.

2009-11-30  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/bigcore.exp (extract_heap): Set $lim limit to 200.

2009-11-30  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/foll-fork.exp (unpatch child, breakpoint at exit call):
	Force $srcfile file.
	* gdb.base/foll-fork.c (callee): Comment out the printf call.

2009-11-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.base/hbreak.exp: Disable for s390*-*-* targets.
	* gdb.base/watchpoint-hw-hit-once.exp: Likewise.
	* gdb.threads/watchthreads-reorder.exp: Likewise.

2009-11-24  Daniel Jacobowitz  <dan@codesourcery.com>

	PR gdb/8704

	* gdb.base/condbreak.exp: Test combinations of "break *EXP",
	"if", and "thread".  Correct matching in the previous test.

2009-11-25  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.cp/extern-c.cc, gdb.cp/extern-c.exp: New test.

2009-11-23  Michael Snyder  <msnyder@vmware.com>

	* gdb.reverse/watch-reverse.exp: Extend test for hw watchpoints.
	* gdb.reverse-watch-precsave.exp: Ditto.

2009-11-23  Paul Pluzhnikov  <ppluzhnikov@google.com>

	* gdb.asm/asm-source.exp: Adjust.
	* gdb.base/help.exp: Adjust.

2009-11-22  Pedro Alves  <pedro@codesourcery.com>

	* gdb.base/catch-syscall.exp (test_catch_syscall_fail_nodatadir)
	(do_syscall_tests_without_xml): Set data-directory to
	/the/path/to/nowhere.

2009-11-21  Pedro Alves  <pedro@codesourcery.com>

	* gdb.threads/local-watch-wrong-thread.c,
	gdb.threads/local-watch-wrong-thread.exp: New files.

2009-11-21  Pedro Alves  <pedro@codesourcery.com>

	* gdb.cp/cplusfuncs.exp (info_func_regexp, print_addr): Don't
	assume new `regsub' syntax available.

2009-11-20  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/watchpoint-hw-hit-once.exp,
	gdb.base/watchpoint-hw-hit-once.c: New.

2009-11-20  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.threads/watchthreads-reorder.exp,
	gdb.threads/watchthreads-reorder.c: New.

2009-11-17  Nathan Sidwell  <nathan@codesourcery.com>

	* gdb.xml/tdesc-regs.exp: Use for m68k.

2009-11-15  Pedro Alves  <pedro@codesourcery.com>

	* gdb.base/watch-vfork.c, gdb.base/watch-vfork.exp: New files.

2009-11-13  Daniel Jacobowitz  <dan@codesourcery.com>

	* lib/gdb.exp (current_target_name): New procedure.
	(gdb_wrapper_target): New variable.
	(gdb_wrapper_init): Set gdb_wrapper_target.
	(default_gdb_init): Check gdb_wrapper_target before rebuilding the
	wrapper.

2009-11-13  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/remote.exp: Delete the slowest load test.
	Do not load with fixed packet sizes.

2009-11-13  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.cp/virtfunc.exp (do_tests): If runto_main fails, give up.

2009-11-13  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/freebpcmd.exp: Delete unused variable.  Specify
	srcfile when setting a breakpoint.

2009-11-13  Maciej W. Rozycki  <macro@codesourcery.com>

	* gdb.base/find.c (int8_t, int16_t, int32_t, int64_t): Undefine
	macros.

2009-11-13  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.cp/formatted-ref.exp (test_p_x_ref_addr): Allow the reference
	to be in memory.
	* gdb.base/display.c (force_mem): New.
	(do_loops): Use it.  Add breakpoint comments.
	(do_vars): Add a breakpoint comment.
	* gdb.base/display.exp: Use gdb_get_line_number.  Remove hardcoded
	line numbers.

2009-11-13  Nathan Froyd  <froydnj@codesourcery.com>

	* gdb.base/pending.exp: Use gdb_run_cmd to start the program
	instead of a bare "run".

2009-11-13  Paul Pluzhnikov  <ppluzhnikov@google.com>

	* gdb.python/py-prettyprint.exp: Adjust.

2009-11-12  Daniel Jacobowitz  <dan@codesourcery.com>

	* lib/cell.exp (skip_cell_tests): Clean up test files before
	returning.

2009-11-12  Daniel Jacobowitz  <dan@codesourcery.com>

	* lib/gdb.exp (gdb_test_multiple): Handle "y or [n]", "[y] or n",
	and the breakpoint menu.  Do not call perror if a prompt is seen.
	Consume the following GDB prompt.
	* gdb.cp/method2.exp (test_break): Use gdb_test_multiple.
	* gdb.cp/namespace.exp: Use gdb_test.
	* gdb.cp/templates.exp: Use gdb_test.
	(test_template_breakpoints): Use gdb_test_multiple.

2009-11-12  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/break1.c (struct some_struct, values): Move earlier.
	(marker4): Reference values.

2009-11-12  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/macscp.exp: Avoid the first FAIL if macro information
	is missing.

2009-11-12  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/break.c (need_malloc): New.
	* gdb.base/constvars.c (main): Reference crass and crisp.
	* gdb.base/gdb1821.c (main): Reference bar.
	* gdb.cp/gdb1355.cc (main): Reference s1.
	* gdb.cp/hang1.cc (dummy2, dummy3): Declare.
	(main): Call them.
	* gdb.cp/hang2.cc (dummy2): Define.
	* gdb.cp/hang3.cc (dummy3): Define.
	* gdb.cp/m-data.cc (main): Reference shadow.

2009-11-12  Daniel Jacobowitz  <dan@codesourcery.com>
	    Nathan Froyd  <froydnj@codesourcery.com>

	* lib/gdb.exp (gdb_compile): Also set rpath for shlib=, on a
	remote host.

2009-11-12  Nathan Froyd  <froydnj@codesourcery.com>

	* gdb.base/step-line.exp: Copy step-line.inp to the remote host.
	* gdb.dwarf2/dw2-basic.exp: Copy file1.txt to the remote host.
	* gdb.dwarf2/dw2-compressed.exp: Likewise.
	* gdb.dwarf2/dw2-intercu.exp: Likewise.
	* gdb.dwarf2/dw2-intermix.exp: Likewise.
	* gdb.dwarf2/dw2-producer.exp: Likewise.
	* gdb.dwarf2/mac-fileno.exp: Likewise.
	* gdb.python/py-prettyprint.exp (run_lang_tests): Copy
	py-prettyprint.py to the remote host.
	* gdb.python/py-mi.exp: Copy py-mi.py to the remote host.

2009-11-11  Keith Seitz  <keiths@redhat.com>

	* gdb.cp/classes.cc (ByAnyOtherName): Add typedef and
	use it instead of "Foo".
	* gdb.cp/classes.exp (do_tests): Add a test to access
	a method through a typedef'd class name.

2009-11-11  Nathan Froyd  <froydnj@codesourcery.com>

	* gdb.base/long_long.exp: Permit leading zeros on floating-point
	exponents.
	* gdb.base/pointers.exp: Likewise.
	* gdb.cp/ref-types.exp: Likewise.

2009-11-11  Keith Seitz  <keiths@redhat.com>

	* gdb.cp/cplusfuncs.cc (class foo): Add operators
	new[] and delete[].
	* gdb.cp/cplusfuncs.exp (dm_type_void): Change to
	"void".
	(probe_demangler): Remove all single-quoting of
	method and variable names.
	(info_func_regexp): Remove the word "void" from any
	occurrence of "(void)".
	(print_addr_2): Remove all single-quoting of
	method names.
	(print_addr_2_kfail): Likewise.
	(print_addr): Single-quote C function names before
	passing to print_addr_2.
	(test_paddr_operator_functions): Remove single-quoting
	for method names.
	Add tests for operator new[] and operator delete[].

2009-11-11  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.dwarf2/dw2-ranges.exp: Call runto_main.

2009-11-09  Keith Seitz  <keiths@redhat.com>

	* gdb.cp/overload.exp: Add tests for resolving overloaded
	methods in expression parsing/evaluation.

2009-11-10  Daniel Jacobowitz  <dan@codesourcery.com>

	* lib/gdb.exp (default_gdb_version): Use --version instead of
	--command.

2009-11-10  Nathan Sidwell  <nathan@codesourcery.com>

	* lib/gdb.exp (gdb_compile_test): New.
	(skip_ada_tests, skip_java_tests): New.
	(gdb_compile): Use gdb_compile_test for f77.
	* lib/ada.exp (gdb_compile_ada): Use gdb_compile_test to record result.
	* lib/java.exp (compile_java_from_source): Remove runtests check,
	use gdb_compile_test to record result.
	* gdb.ada/packed_array.exp, gdb.ada/fixed_points.exp,
	gdb.ada/exec_changed.exp, gdb.ada/start.exp,
	gdb.ada/watch_arg.exp, gdb.ada/null_record.exp,
	gdb.ada/array_return.exp, gdb.ada/arrayidx.exp,
	gdb.mi/mi-var-child-f.exp, gdb.fortran/types.exp,
	gdb.fortran/array-element.exp, gdb.fortran/subarray.exp,
	gdb.fortran/derived-type.exp, gdb.fortran/exprs.exp,
	gdb.java/jmisc.exp, gdb.java/jmisc1.exp, gdb.java/jprint.exp,
	gdb.java/jv-print.exp, gdb.java/jmain.exp: Add language skip,
	adjust gdb_compile invocations.

2009-11-09  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* Makefile.in (abs_builddir): New.
	(site.exp): New target `$(abs_builddir)/site.exp'.  New comment.
	(check-single, $(TEST_TARGETS), check-gdb.base%): Change `site.exp' to
	`$(abs_builddir)/site.exp'.

2009-11-05  Daniel Jacobowitz  <dan@codesourcery.com>

	* config/m68k-emc.exp, lib/emc-support.exp,
	gdb.trace/gdb_c_test.c: Delete.
	* gdb.trace/actions.exp, gdb.trace/backtrace.exp, gdb.trace/circ.exp,
	gdb.trace/collection.exp, gdb.trace/deltrace.exp,
	gdb.trace/infotrace.exp, gdb.trace/limits.exp, gdb.trace/packetlen.exp,
	gdb.trace/passc-dyn.exp, gdb.trace/passcount.exp, gdb.trace/report.exp,
	gdb.trace/save-trace.exp, gdb.trace/tfind.exp, gdb.trace/tracecmd.exp,
	gdb.trace/while-dyn.exp, gdb.trace/while-stepping.exp: Remove special
	casing for m68k-*-elf.

2009-11-03  Pedro Alves  <pedro@codesourcery.com>

	* gdb.arch/i386-gnu-cfi.exp: Define SYMBOL_PREFIX on *-*-mingw*.
	* gdb.arch/i386-prologue.exp: Likewise.
	* gdb.arch/i386-unwind.exp: Likewise.

2009-11-02  Daniel Jacobowitz  <dan@codesourcery.com>

	* lib/gdb.exp (gdb_expect): Fix timeout typo.

2009-11-02  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/opaque.exp: Remove duplicate tests and xyz from test name.

2009-11-02  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.cp/ctti.exp: Correct return values for unsigned char functions.

2009-11-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/sepdebug.exp: New test_different_dir call for multiple-dirs.

2009-11-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/sepdebug.exp (CRC mismatch is reported): New test.
	* gdb.base/sepdebug2.c: New file.

2009-10-31  Sergio Durigan Junior <sergiodj@linux.vnet.ibm.com>

	* gdb.base/catch-syscall.exp: Adapt the testcase in order to accept
	the modified warnings for catch syscall.  Verify if GDB was compiled
	with support for lib expat, and choose which tests to run depending
	on this.

2009-10-30  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.mi/mi-break.exp (test_breakpoint_commands): Test
	that composite commands are parsed OK. And also test
	that breakpoint commands do work.

2009-10-23  Michael Snyder  <msnyder@vmware.com>

	gdb.reverse/consecutive-precsave.exp: Change expect pattern
	to allow for new disassembly style.

2009-10-22  Paul Pluzhnikov  <ppluzhnikov@google.com>

	* gdb.asm/asm-source.exp: Adjust.

2009-10-22  Michael Snyder  <msnyder@vmware.com>

	* gdb.reverse/break-precsave.exp: New test.
	* gdb.reverse/consecutive-precsave.exp: Ditto.
	* gdb.reverse/finish-precsave.exp: Ditto.
	* gdb.reverse/i386-precsave.exp: Ditto.
	* gdb.reverse/machinestate-precsave.exp: Ditto.
	* gdb.reverse/sigall-precsave.exp: Ditto.
	* gdb.reverse/solilb-precsave.exp: Ditto.
	* gdb.reverse/step-precsave.exp: Ditto.
	* gdb.reverse/until-precsave.exp: Ditto.
	* gdb.reverse/watch-precsave.exp: Ditto.

2009-10-22  Michael Snyder  <msnyder@vmware.com>

	* gdb.reverse/consecutive-reverse.exp: Substitute gdb_test_multiple
	for gdb_expect.  Adjust one test's expect strings for the new
	format of disassemble.
	* gdb.reverse/finish-reverse.exp: Delete 'return'.
	* gdb.reverse/sigall-reverse.exp: Substitute gdb_test for
	gdb_test_multiple.
	* gdb.reverse/step-reverse.exp: Delete 'return'.
	* gdb.reverse/until-reverse.exp: Delete blank lines.
	* gdb.reverse/watch-reverse.exp: Delete blank lines.

2009-10-21  Paul Pluzhnikov  <ppluzhnikov@google.com>

	* gdb.base/consecutive.exp: Adjust.
	* gdb.base/display.exp: Likewise.
	* gdb.base/pc-fp.exp: Likewise.
	* gdb.base/sigbpt.exp: Likewise.

2009-10-19  Michael Snyder  <msnyder@vmware.com>

	* gdb.reverse/consecutive-reverse.c: Add comment at end of main.
	* gdb.reverse/finish-reverse.c: Ditto.
	* gdb.reverse/sigall-reverse.c: Ditto.
	* gdb.reverse/solib-reverse.c: Ditto.
	* gdb.reverse/step-reverse.c: Ditto.
	* gdb.reverse/watch-reverse.c: Ditto.

2009-10-19  Pedro Alves  <pedro@codesourcery.com>
	    Stan Shebs  <stan@codesourcery.com>

	* gdb.base/foll-vfork.exp: Adjust to spell out "follow-fork".
	* gdb.base/foll-exec.exp: Adjust to expect a process id before
	"Executing new program".
	* gdb.base/foll-fork.exp: Adjust to spell out "follow-fork".
	* gdb.base/multi-forks.exp: Ditto.  Adjust to the inferior being
	left listed after having been killed.
	* gdb.base/attach.exp: Adjust to spell out "symbol-file".
	* gdb.base/maint.exp: Adjust test.

	* Makefile.in (ALL_SUBDIRS): Add gdb.multi.
	* gdb.multi/Makefile.in: New.
	* gdb.multi/base.exp: New.
	* gdb.multi/goodbye.c: New.
	* gdb.multi/hangout.c: New.
	* gdb.multi/hello.c: New.
	* gdb.multi/bkpt-multi-exec.c: New.
	* gdb.multi/bkpt-multi-exec.exp: New.
	* gdb.multi/crashme.c: New.

2009-10-13  Tristan Gingold  <gingold@adacore.com>

	* gdb.base/sepdebug.exp: Check debug info are found.

2009-10-08  Pedro Alves  <pedro@codesourcery.com>

	* lib/gdb.exp (gdb_compile): Remove dead aix and irix related
	bits.

2009-10-07  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/hbreak.exp, gdb.base/hbreak.c: New.

2009-10-07  Joel Brobecker  <brobecker@adacore.com>

	* gdb.base/watchpoints.c: Add copyright header.  Reformat one
	of the comments.

2009-10-06  Pierre Muller  <muller@ics.u-strasbg.fr>

	* gdb.base/annota1.exp: Remove obsolete match_max increase.
	* gdb.base/annota3.exp: Idem.
	* gdb.base/maint.exp: Idem.

2009-10-05  Pierre Muller  <muller@ics.u-strasbg.fr>

	* lib/gdb.exp (default_gdb_init): Set current value of match_max
	to default.

2009-10-02  Pierre Muller  <muller@ics.u-strasbg.fr>

	* lib/gdb.exp (gdb_compile): Add --enable-auto-import option for
	mingw and cygwin targets.

2009-10-02  Pierre Muller  <muller@ics.u-strasbg.fr>
	    Pedro Alves  <pedro@codesourcery.com>

	* lib/gdb.exp (gdb_compile): Avoid adding
	gdb_saved_unbuffered_mode_obj if -nostdlib option is used.

2009-10-01  Pierre Muller  <muller@ics.u-strasbg.fr>

	* gdb.base/shr1.c: Use %p in format string.
	* gdb.base/unload.c: Avoid warning in fprintf.
	* gdb.base/watchpoint-solib.c: Idem.

2009-10-01  Pierre Muller  <muller@ics.u-strasbg.fr>

	* gdb.base/fileio.c (test_lseek): typecast ofs_t ret variable to
	long type.
	(test_unlink): Correct printf string.
	* gdb.base/checkpoint.c (main): Correct fprintf string for variable i.
	* gdb.threads/attachstop-mt.c: Add #include <string.h>.

2009-09-29  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/breakpoint-shadow.exp: Move the ia64 part into ...
	* gdb.arch/ia64-breakpoint-shadow.exp: ... a new file, with new tests.
	* gdb.arch/ia64-breakpoint-shadow.S: New file.

2009-09-29  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.objc/basicclass.exp: Disable pending breakpoint query.
	* gdb.objc/nondebug.exp: Likewise.

2009-09-29  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.base/watchpoints.exp: Respect gdb,no_hardware_watchpoints
	target_info setting.

	* gdb.threads/thread-specific.exp (get_thread_list): Support targets
	that detect new threads during "info threads".

2009-09-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.threads/manythreads.c (main): Increase thread stack size
	to 2*PTHREAD_STACK_MIN.
	* gdb.threads/multi-create.c (main): Likewise.
	(create_function): Likewise.

2009-09-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.base/dump.exp: Pass difference of pointer types instead
	of integer types as offset to restore in intarr3.srec case.

2009-09-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.cp/gdb2495.exp: Skip test on spu*-*-*.

2009-09-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.base/pie-support.exp: Pass "quiet" flag to gdb_compile.

2009-09-26  Pierre Muller  <muller@ics.u-strasbg.fr>

	New test for two watchpoints, with disabling of
	the first inserted.
	* testsuite/gdb.base/watchpoints.c: New file.
	* testsuite/gdb.base/watchpoints.exp: New file.

2009-09-25  Tom Tromey  <tromey@redhat.com>

	* gdb.base/charset.exp: Test utf-16 strings with Python.

2009-09-25  Tom Tromey  <tromey@redhat.com>

	* gdb.base/charset.exp: Use UTF-16 and UTF-32, not UCS-2 and
	UCS-4.
	* gdb.base/charset.c (utf_32_string): Rename.
	(init_utf32): Rename.
	(main): Update.

2009-09-22  Tom Tromey  <tromey@redhat.com>

	* gdb.python/py-function.exp: Add regression tests.

2009-09-21  Keith Seitz  <keiths@redhat.com>

	* gdb.cp/cplusfuncs.exp (do_tests): Add check for proper error message
	with invalid operator.

2009-09-21  Keith Seitz  <keiths@redhat.com>

	* gdb.cp/classes.exp (do_tests): Add tests to print a constructor
	and destructor using typedef name of class.
	* gdb.cp/classes.cc (class Base1): Add a destructor.
	(base1): New typedef.
	(use_methods): Instanitate an object of type base1.
	* gdb.cp/templates.exp (test_template_typedef): New procedure.
	(do_tests): Call test_template_typedef.
	* gdb.cp/templates.cc (Baz::~Baz): New method.
	(intBazOne): New typedef.
	(main): Instantiate intBazOne.

2009-09-21  Phil Muldoon <pmuldoon@redhat.com>

	PR python/10633

	* gdb.python/py-prettyprint.exp (gdb_py_test_silent_cmd): New
	Function.
	(run_lang_tests): Add print elements test.

2009-09-21  Phil Muldoon <pmuldoon@redhat.com>

	* gdb.python/py-value.exp (test_subscript_regression): New
	function.  Test for invalid subscripts.
	* gdb.python/py-value.c (main): Add test array, and pointer to it.
	(ptr_ref): New function.

2009-09-17  Paul Pluzhnikov  <ppluzhnikov@google.com>

	* gdb.base/default.exp: Fix "show convenience".

2009-09-15  Tom Tromey  <tromey@redhat.com>

	* lib/mi-support.exp (mi_create_varobj): Update.
	(mi_create_floating_varobj): Likewise.
	(mi_create_dynamic_varobj): New proc.
	(mi_varobj_update): Update.
	(mi_varobj_update_with_type_change): Likewise.
	(mi_varobj_update_kv_helper): New proc.
	(mi_varobj_update_dynamic_helper): Rewrite.
	(mi_varobj_update_dynamic): New proc.
	(mi_list_varobj_children): Update.
	(mi_list_varobj_children_range): Add 'from' and 'to' arguments.
	* gdb.python/python-prettyprint.py (pp_outer): New class.
	(pp_nullstr): Likewise.
	(lookup_function): Register new printers.
	* gdb.python/python-prettyprint.c (struct substruct): New type.
	(struct outerstruct): Likewise.
	(substruct_test): New function.
	(struct nullstr): New type.
	(string_1, string_2): New globals.
	(main): Add new tests.
	* gdb.python/python-mi.exp: Added regression tests.
	* gdb.mi/mi2-var-display.exp: Update.
	* gdb.mi/mi2-var-cmd.exp: Update.
	* gdb.mi/mi2-var-child.exp: Update.
	* gdb.mi/mi2-var-block.exp: Update.
	* gdb.mi/mi-var-invalidate.exp: Update.
	* gdb.mi/mi-var-display.exp: Update.
	* gdb.mi/mi-var-cmd.exp: Update.
	* gdb.mi/mi-var-child.exp: Update.
	* gdb.mi/mi-var-block.exp: Update.
	* gdb.mi/mi-break.exp: Update.
	* gdb.mi/gdb701.exp: Update.

2009-09-14  Sergio Durigan Junior <sergiodj@linux.vnet.ibm.com>

	* Makefile.in: Inclusion of catch-syscall object.
	* gdb.base/catch-syscall.c: New file.
	* gdb.base/catch-syscall.exp: New file.

2009-09-12  Michael Snyder  <msnyder@vmware.com>

	* gdb.reverse/step-reverse.exp: Explicitly check for targets
	that can support reverse debuggnig.

2009-09-11  Tom Tromey  <tromey@redhat.com>

	* gdb.dwarf2/valop.S: New file.
	* gdb.dwarf2/valop.exp: New file.

2009-09-11  Mark Kettenis  <kettenis@gnu.org>

	* gdb.threads/current-lwp-dead.exp: Only run this on Linux.

2009-09-10  Doug Evans  <dje@google.com>

	* gdb.base/breakpoint-shadow.exp: Fix intermittent failures.
	Add $gdb_prompt to second breakpoint regexp.

2009-09-08  Thiago Jung Bauermann  <thiago.bauermann@gmail.com>

	* gdb.python/Makefile.in (EXECUTABLES): Adjust to new executable
	names, add missing ones.
	* gdb.python/py-cmd.exp: Rename from python-cmd.exp.
	* gdb.python/py-frame.c: Rename from python-frame.c.
	* gdb.python/py-frame.exp: Rename from python-frame.exp.  Adjust
	testfile name.
	* gdb.python/py-function.exp: Rename from python-function.exp.
	* gdb.python/py-mi.exp: Rename from python-mi.exp.  Adjust
	testfile name.
	* gdb.python/py-prettyprint.c: Rename from python-prettyprint.c.
	* gdb.python/py-prettyprint.exp: Rename from python-prettyprint.exp.
	Adjust testfile name.
	* gdb.python/py-prettyprint.py: Rename from python-prettyprint.py.
	* gdb.python/py-template.cc: Rename from python-template.cc.
	* gdb.python/py-template.exp: Rename from python-template.exp.
	Adjust testfile name.
	* gdb.python/py-value.c: Rename from python-value.c.
	* gdb.python/py-value.exp: Rename from python-value.exp.  Adjust
	testfile name.

2009-09-08  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/breakpoint-shadow.exp (Second breakpoint placed): Initialize
	$bpt2address.
	(Second breakpoint address is valid on ia64)
	(Third breakpoint on ia64 in the Second breakpoint's bundle): New.

2009-09-03  Joseph Myers  <joseph@codesourcery.com>

	* gdb.base/ending-run.exp: Restrict regular expression matching
	line number to require closing brace following.

2009-09-03  Doug Evans  <dje@google.com>

	* gdb.base/store.exp (check_set): Fix typo in expected value message.

2009-09-02  Tom Tromey  <tromey@redhat.com>

	* gdb.dwarf2/callframecfa.exp: Use gdb_continue_to_breakpoint.

2009-09-02  Tom Tromey  <tromey@redhat.com>

	* gdb.dwarf2/callframecfa.exp: New file.
	* gdb.dwarf2/callframecfa.S: New file.

2009-09-01  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/solib-overlap.exp, gdb.base/solib-overlap-lib.c,
	gdb.base/solib-overlap-main.c: New.

2009-08-28  Daniel Jacobowitz  <dan@codesourcery.com>

	PR gdb/10565

	* gdb.base/bitfields.c (struct container, container): New.
	(main): Initialize it and call break5.
	* gdb.base/bitfields.exp (bitfield_at_offset): New test.

2009-08-28  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Support constant DW_AT_data_member_location by GCC PR debug/40659.
	* gdb.dwarf2/dw2-inheritance.exp, gdb.dwarf2/dw2-inheritance.S: New.

2009-08-27  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.mi/mi2-var-cmd.exp (create variable with invalid FRAME-ADDR): New.

2009-08-26  Michael Snyder  <msnyder@vmware.com>

	* gdb.base/i386-reverse.c: New file.
	* gdb.base/i386-reverse.exp: New file.
	* gdb.base/Makefile.in: Add new files to be removed.

2009-08-26  Joseph Myers  <joseph@codesourcery.com>

	* gdb.mi/mi-basics.exp (test_cwd_specification): Do not test
	environment-pwd for remote host.
	* gdb.mi/mi2-basics.exp (test_cwd_specification): Likewise.

2009-08-24  Keith Seitz  <keiths@redhat.com>

	* gdb.cp/cpcompletion.exp (test_class_complete): New procedure.
	Add two new C++ completer tests which limit the output to a
	given class.

2009-08-24  Michael Snyder  <msnyder@vmware.com>

	* gdb.base/del.exp: Fix typo in comment.
	* gdb.base/step-bt.exp: Fix cut and paste error in comment.

2009-08-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* configure: Regenerate.
	* gdb.hp/configure: Likewise.
	* gdb.hp/gdb.aCC/configure: Likewise.
	* gdb.hp/gdb.base-hp/configure: Likewise.
	* gdb.hp/gdb.compat/configure: Likewise.
	* gdb.hp/gdb.defects/configure: Likewise.
	* gdb.hp/gdb.objdbg/configure: Likewise.
	* gdb.stabs/configure: Likewise.

2009-08-19  Doug Evans  <dje@google.com>

	* gdb.base/gdbvars.c: New file.
	* gdb.base/gdbvars.exp: Test convenience vars with program variables.

2009-08-14  Pedro Alves  <pedro@codesourcery.com>

	* gdb.threads/killed.exp, gdb.threads/manythreads.exp,
	gdb.threads/staticthreads.exp: Adjust to "quit" output changes.

2009-08-13  Pedro Alves  <pedro@codesourcery.com>

	* gdb.base/default.exp: Adjust "set language test": it's now an
	enum command.  Larger help string moved to "help set language".
	* gdb.base/help.exp: Adjust "help set language" expected output,
	now lists all known languages.

2009-08-11  Nathan Froyd  <froydnj@codesourcery.com>

	* gdb.arch/altivec-abi.exp (altivec_abi_tests): Turn on printing of
	all frame arguments.
	* gdb.arch/altivec-regs.exp: Likewise.

2009-08-07  Tom Tromey  <tromey@redhat.com>

	* gdb.base/setshow.exp: Add tests for changes to set language, set
	check range, and set check type.

2009-08-03  Vladimir Prus  <vladimir@codesourcery.com>

	* lib/mi-support.exp (mi_list_breakpoints): Make it work.
	* gdb.mi/mi-break.exp (test_breakpoint_commands): New.
	Call it.

2009-07-31  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* configure.ac: Run gdb.cell tests when appropriate.
	* configure: Regenerate.
	* lib/cell.exp: New file.
	* gdb.cell: New directory.
	* gdb.cell/configure.ac: New file.
	* gdb.cell/configure: New file.
	* gdb.cell/Makefile.in: New file.
	* gdb.cell/arch.exp: New file.
	* gdb.cell/break.c: New file.
	* gdb.cell/break.exp: New file.
	* gdb.cell/break-spu.c: New file.
	* gdb.cell/bt.c: New file.
	* gdb.cell/bt2-spu.c: New file.
	* gdb.cell/bt-spu.c: New file.
	* gdb.cell/bt.exp: New file.
	* gdb.cell/coremaker.c: New file.
	* gdb.cell/coremaker-spu.c: New file.
	* gdb.cell/core.exp: New file.
	* gdb.cell/gcore.exp: New file.
	* gdb.cell/data.c: New file.
	* gdb.cell/data.exp: New file.
	* gdb.cell/data-spu.c: New file.
	* gdb.cell/ea-cache.exp: New file.
	* gdb.cell/ea-cache.c: New file.
	* gdb.cell/ea-cache-spu.c: New file.
	* gdb.cell/ea-standalone.c: New file.
	* gdb.cell/ea-standalone.exp: New file.
	* gdb.cell/ea-test.c: New file.
	* gdb.cell/ea-test.exp: New file.
	* gdb.cell/f-regs.exp: New file.
	* gdb.cell/mem-access.c: New file.
	* gdb.cell/mem-access.exp: New file.
	* gdb.cell/mem-access-spu.c: New file.
	* gdb.cell/ptype.exp: New file.
	* gdb.cell/registers.exp: New file.
	* gdb.cell/size.c: New file.
	* gdb.cell/sizeof.exp: New file.
	* gdb.cell/size-spu.c: New file.
	* gdb.cell/solib.exp: New file.
	* gdb.cell/solib-symbol.exp: New file.

2009-07-31  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.xml/tdesc-regs.exp: Skip for SPU targets.

2009-07-28  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/float.exp: Handle VFP registers.

2009-07-14  Michael Snyder  <msnyder@vmware.com>

	* gdb.reverse/finish-reverse.exp: Do not expect reverse-finish
	to bring gdb to the beginning of the calling line.

	* gdb.arch/i386-signal.c (sigframe): Add a nop to avoid
	confusing the i386 epilogue unwinder.

2009-07-14  Stan Shebs  <stan@codesourcery.com>

	* gdb.trace/tracecmd.exp: Add basic test of tracepoint conditions.

2009-07-14  Michael Snyder  <msnyder@vmware.com>

	* gdb.reverse/step-reverse.exp (stepi into function call):
	Call instruction may not be first instruction in the line.
	(reverse stepi from a function call): Used wrong line number.

2009-07-13  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.arch/amd64-i386-address.exp, gdb.arch/amd64-i386-address.S: New.

2009-07-13  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix gdb.base/macscp.exp when using custom inputrc.
	* gdb.base/completion.exp: Remove env(INPUTRC) set and restore.
	* gdb.base/readline.exp: Remove env(INPUTRC) set and restore.  Remove
	env(TERM) set.
	* gdb.cp/cpcompletion.exp: Remove env(INPUTRC) set.
	* lib/gdb.exp (default_gdb_start): Add env(INPUTRC) and env(TERM) set.

2009-07-13  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix racy clashing of output files for gdb.base{1,2}/ parallel run.
	* gdb.base/annota1.exp (thread_test): Import global $testfile.
	Change the compilation target to match the testcase name.
	* gdb.base/sect-cmd.exp: Change the compilation target to match the
	testcase name.
	* a2-run.exp: Use for setup prepare_for_testing.  Change the
	compilation target to match the testcase name.
	* gdb.base/commands.exp: Likewise.
	* gdb.base/finish.exp: Likewise.
	* gdb.base/float.exp: Likewise.
	* gdb.base/info-target.exp: Likewise.
	* gdb.base/relational.exp: Likewise.
	* gdb.base/term.exp: Likewise.
	* gdb.base/until.exp: Likewise.
	* gdb.base/volatile.exp: Likewise.
	* gdb.base/whatis-exp.exp: Likewise.

2009-07-11  Hui Zhu  <teawater@gmail.com>

	* gdb.base/help.exp (disassemble): Update expected help text.

2009-07-09  Tom Tromey  <tromey@redhat.com>

	* lib/gdb.exp: Handle TRANSCRIPT.
	(remote_spawn, remote_close, send_gdb): New procs.

2009-07-10 Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.python/python-prettyprint.c: Add counted null string
	structure.
	* gdb.python/python-prettyprint.exp: Print null string. Test for
	embedded nulls.
	* gdb.python/python-prettyprint.py (pp_ns): New Function.
	* gdb.python/python-value.exp (test_value_in_inferior): Add
	variable length string fetch tests.
	* gdb.python/python-value.c (main): Add strings for string fetch tests.

2009-07-09  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/dump.exp (inaccessible memory is reported): New test.

2009-07-07  Tom Tromey  <tromey@redhat.com>

	* gdb.base/call-rt-st.exp: Update for change to escape output.
	* gdb.base/callfuncs.exp: Likewise.
	* gdb.base/charset.exp: Likewise.
	* gdb.base/constvars.exp: Likewise.
	* gdb.base/long_long.exp: Likewise.
	* gdb.base/pointers.exp: Likewise.
	* gdb.base/printcmds.exp: Likewise.
	* gdb.base/setvar.exp: Likewise.
	* gdb.base/store.exp: Likewise.
	* gdb.cp/ref-types.exp: Likewise.
	* gdb.mi/mi-var-child.exp: Likewise.
	* gdb.mi/mi-var-display.exp: Likewise.
	* gdb.mi/mi2-var-display.exp: Likewise.
	* gdb.base/charset.exp: Test octal escape sequence length.
	Update for change to escape output.

2009-07-07  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.mi/mi2-var-cmd.exp (floating varobj invalidation): New test.

2009-07-06  Daniel Jacobowitz  <dan@codesourcery.com>

	* lib/java.exp (java_init): Ignore $GCJ if it is empty.

2009-07-06  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* lib/gdbserver-support.exp (gdbserver_start): Loop spawning
	gdbserver increasing $portnum if "Can't bind address" has been seen.

2009-07-05  Pedro Alves  <pedro@codesourcery.com>

	* gdb.base/ending-run.exp: Add "step out of main" pattern for
	mingw32ce.

2009-07-05  Pedro Alves  <pedro@codesourcery.com>

	* gdb.base/long_long.exp: arm-mingw32ce defaults to natural-endian
	VFP format.

2009-07-02  Pedro Alves  <pedro@codesourcery.com>

	* gdb.base/multi-forks.exp: Only run detach-on-fork tests on
	linux.  Adjust to use "inferior", "info inferiors", "detach
	inferior" and "kill inferior" instead of "restart", "info fork",
	"detach fork" and "delete fork".
	* gdb.base/ending-run.exp: Spell out "info".
	* gdb.base/help.exp: Adjust to use test_prefix_command_help for
	the "kill" command.

2009-07-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.threads/tls-shared.exp: Update to locexpr_describe_location
	change to prefix TLS offset in hex with 0x.

2009-07-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.base/default.exp: Update test case for "x" changes.

2009-07-01  Tristan Gingold  <gingold@adacore.com>

	* gdb.base/bigcore.exp: Make darwin untested.

2009-06-30  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/completion.exp (directory completion): Create the directory.
	New variables uniquedir, escapeduniquedir, uniquesu, uniquesub,
	escapeuniquesub.
	(directory completion 2): Expect now ${escapeuniquesub}.
	(Glob remaining of directory test): Remove one excessive newline.
	Expect the real output.

2009-06-30  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix `make check//%' target after `make check' has been ran.
	* Makefile.in (TEST_TARGETS): Remove the %/.dir dependency.  Add
	a mkdir call.
	(check-gdb.base%): Remove the gdb.base%/.dir dependency.
	(%/.dir): Remove.

2009-06-30  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* lib/mi-support.exp (mi_check_thread_states): Permit any output before
	the expected result record.

2009-06-30  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Remove racy FAILs relying just on the timeouts.
	* gdb.base/setshow.exp (set annotate 2, show annotate (2))
	(annotation_level 2): Remove racy FAILs.

2009-06-30  Paul Pluzhnikov  <ppluzhnikov@google.com>

	gdb/10275
	* gdb.dwarf2/dw2-restore.{S,exp}: New test.

2009-06-30  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.opt/inline-locals.exp: Remove XFAIL with duplicated arg1.

2009-06-30  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.mi/mi-stack.exp: Testing symbolic options
	to -stack-list-locals and -stack-list-arguments.

2009-06-29  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.threads/current-lwp-dead.exp, gdb.threads/current-lwp-dead.c: New.

2009-06-29  Tom Tromey  <tromey@redhat.com>

	* dg-extract-results.sh: New file.
	* Makefile.in (FORCE_PARALLEL): New variable.
	(CHECK_TARGET): New conditional variable.
	(check): Use CHECK_TARGET.
	(DO_RUNTEST): New variable.
	(check-single): New target.
	(TEST_DIRS): New variable.
	(TEST_TARGETS): Likewise.
	(check-parallel): New target.
	(check-gdb.%): New pattern.
	(BASE1_FILES): New variable.
	(BASE2_FILES): Likewise.
	(check-gdb.base%): New pattern.
	(%/.dir): New pattern.
	* configure: Rebuild.
	* aclocal.m4 (AM_CONDITIONAL): New defun.
	* configure.ac: Check whether user is using GNU make.
	(GMAKE): New conditional.

2009-06-29  Sami Wagiaalla  <swagiaal@redhat.com>

	* gdb.cp/namespace-nested-import.cc: New test.
	* gdb.cp/namespace-nested-import.exp: New test.

2009-06-27  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/break.exp: Add an XFAIL for gcc/36748.
	* gdb.cp/annota2.exp: Accept frames-invalid in more places.
	* gdb.opt/Makefile.in (EXECUTABLES): Update.
	* gdb.opt/clobbered-registers-O2.exp: Update to GPL v3.
	* gdb.opt/inline-bt.c, gdb.opt/inline-bt.exp,
	gdb.opt/inline-cmds.c, gdb.opt/inline-cmds.exp,
	gdb.opt/inline-locals.c, gdb.opt/inline-locals.exp,
	gdb.opt/inline-markers.c: New files.
	* lib/gdb.exp (skip_inline_frame_tests): New function.
	(skip_inline_var_tests): New function.

2009-06-27  Andreas Schwab  <schwab@linux-m68k.org>

	* gdb.cp/exception.exp: Don't require $hex before inner frame in
	backtrace.

2009-06-27  Michael Snyder  <msnyder@vmware.com>

	* gdb.reverse: New directory.
	* gdb.reverse/break-reverse.c: New test.
	* gdb.reverse/break-reverse.exp: New test.
	* gdb.reverse/consecutive-reverse.c: New test.
	* gdb.reverse/consecutive-reverse.exp: New test.
	* gdb.reverse/finish-reverse.c: New test.
	* gdb.reverse/finish-reverse.exp: New test.
	* gdb.reverse/machinestate.c: New test.
	* gdb.reverse/ms1.c: New test.
	* gdb.reverse/machinestate.exp: New test.
	* gdb.reverse/Makefile.in: New file.
	* gdb.reverse/shr2.c: New test.
	* gdb.reverse/solib-reverse.c: New test.
	* gdb.reverse/solib-reverse.exp: New test.
	* gdb.reverse/step-reverse.c: New test.
	* gdb.reverse/step-reverse.exp: New test.
	* gdb.reverse/until-reverse.c: New test.
	* gdb.reverse/ur1.c: New test.
	* gdb.reverse/until-reverse.exp: New test.
	* gdb.reverse/watch-reverse.c: New test.
	* gdb.reverse/watch-reverse.exp: New test.
	* configure.ac (AC_OUTPUT): Add gdb.reverse/Makefile.
	* configure: Regenerate.

2009-06-26  Doug Evans  <dje@google.com>

	* gdb.base/psymtab.exp: Turn off pending breakpoints.

2009-06-26  Pierre Muller  <muller@ics.u-strasbg.fr>

	* gdb.base/exe-lock.exp (binfile): Add $EXEEXT suffix to fix
	windows problem for 'file delete $binfile'.

2009-06-23  Sami Wagiaalla  <swagiaal@redhat.com>

	* gdb.cp/namespace-using.exp: New test.
	* gdb.cp/namespace-using.cc: New test.

2009-05-20  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/variant_record_packed_array: New testcase.

2009-06-23  Tom Tromey  <tromey@redhat.com>

	* gdb.base/charset.exp (test_combination): Regression test.
	* gdb.base/charset.c (my_wchar_t): New typedef.
	(myvar): New global.
	(main): Set myvar.

2009-06-18  Pierre Muller  <muller@ics.u-strasbg.fr>

	* lib/gdb.exp (gdb_compile): Also force unbuffered mode for DJGPP
	target.

2009-06-17  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.base/dump.exp: Handle SPU like 64-bit platforms.

2009-06-17  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.mi/gdb680.exp: Update test for error message.

2009-06-17  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.base/annota1.exp: Allow multiple occurrences of the
	frames-invalid annotation.
	* gdb.cp/annota2.exp: Likewise.

2009-06-15  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.cp/gdb2495.cc: New file.
	* gdb.cp/gdb2495.exp: New file.

2009-06-12  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Report error on GDB crash during runto.
	* lib/gdb.exp (runto <eof>): New.

2009-06-09  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.mi/mi-async.exp, gdb.mi/mi-basics.exp,
	gdb.mi/mi-break.exp, gdb.mi/mi-cli.exp,
	gdb.mi/mi-disassemble.exp, gdb.mi/mi-eval.exp,
	gdb.mi/mi-file-transfer.exp, gdb.mi/mi-file.exp,
	gdb.mi/mi-regs.exp, gdb.mi/mi-return.exp,
	gdb.mi/mi-simplerun.exp, gdb.mi/mi-stepi.exp,
	gdb.mi/mi-var-block.exp, gdb.mi/mi-var-cmd.exp,
	gdb.mi/mi-var-display.exp, gdb.mi/mi-var-invalidate.exp,
	gdb.mi/mi-watch.exp, gdb.mi/mi2-basics.exp,
	gdb.mi/mi2-break.exp, gdb.mi/mi2-cli.exp,
	gdb.mi/mi2-disassemble.exp, gdb.mi/mi2-eval.exp,
	gdb.mi/mi2-file.exp, gdb.mi/mi2-regs.exp,
	gdb.mi/mi2-return.exp, gdb.mi/mi2-simplerun.exp,
	gdb.mi/mi2-stepi.exp, gdb.mi/mi2-var-block.exp,
	gdb.mi/mi2-var-child.exp, gdb.mi/mi2-var-cmd.exp,
	gdb.mi/mi2-var-display.exp, gdb.mi/mi2-watch.exp,
	gdb.server/ext-run.exp, gdb.server/file-transfer.exp,
	gdb.server/server-mon.exp, gdb.server/server-run.exp,
	gdb.trace/actions.exp, gdb.trace/backtrace.exp,
	gdb.trace/deltrace.exp, gdb.trace/infotrace.exp,
	gdb.trace/packetlen.exp, gdb.trace/passc-dyn.exp,
	gdb.trace/passcount.exp, gdb.trace/report.exp,
	gdb.trace/save-trace.exp, gdb.trace/tfind.exp,
	gdb.trace/tracecmd.exp, gdb.trace/while-dyn.exp,
	gdb.trace/while-stepping.exp: Use a unique name for the compiled
	executable.

2009-06-07  Pedro Alves  <pedro@codesourcery.com>

	* gdb.threads/manythreads.c (main): Check if PTHREAD_STACK_MIN is
	defined before referencing it.

2009-06-03  Doug Evans  <dje@google.com>

	* gdb.arch/i386-sse.exp: Test xmm[8-15] if amd64.
	* gdb.arch/i386-see.c: Ditto.

2009-05-30  Pierre Muller  <muller@ics.u-strasbg.fr>

	* gdb.base/macscp.exp (info_macro): Return undefined if undefined.
	(check_macro): Return 1 if undefined.
	If first test fails, check if macro debug information is available,
	and report unsupported test if no macro information is found.

2009-05-29  Doug Evans  <dje@google.com>

	* gdb.threads/hand-call-in-threads.exp: New.
	* gdb.threads/hand-call-in-threads.c: New.

2009-05-29  Michael Snyder  <msnyder@vmware.com>

	* gdb.base/break-always.exp: Change "1" to "on".
	Add confirmation check.

2009-05-28  Pedro Alves  <pedro@codesourcery.com>

	* gdb.threads/threxit-hop-specific.c: New.
	* gdb.threads/threxit-hop-specific.exp: New.
	* gdb.threads/thread-execl.c: New.
	* gdb.threads/thread-execl.exp: New.

2009-05-27  Tom Tromey  <tromey@redhat.com>
	    Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* lib/mi-support.exp (mi_varobj_update_dynamic): New proc.
	(mi_child_regexp): Likewise.
	(mi_list_varobj_children_range): Likewise.
	(mi_get_features): Likewise.
	(mi_list_varobj_children): Rewrite.
	* gdb.python/python-mi.exp: New file.

2009-05-27  Tom Tromey  <tromey@redhat.com>
	    Thiago Jung Bauermann  <bauerman@br.ibm.com>
	    Phil Muldoon  <pmuldoon@redhat.com>
	    Paul Pluzhnikov  <ppluzhnikov@google.com>

	* gdb.python/python-prettyprint.exp: New file.
	* gdb.python/python-prettyprint.c: New file.
	* gdb.python/python-prettyprint.py: New file.
	* gdb.base/display.exp: print/r is now valid.

2009-05-27  Thiago Jung Bauermann  <bauerman@br.ibm.com>
	    Tom Tromey  <tromey@redhat.com>
	    Pedro Alves  <pedro@codesourcery.com>
	    Paul Pluzhnikov  <ppluzhnikov@google.com>

	* gdb.python/python-template.exp: New file.
	* gdb.python/python-template.cc: New file.
	* gdb.python/python.exp (gdb_py_test_multiple): Add two objfile
	tests.
	* gdb.python/python-value.exp (py_objfile_tests): New proc.
	Call it.
	(test_value_after_death): New proc.
	* gdb.python/python-value.c (PTR): New typedef.
	(main): New variable 'x'.

2009-05-27  Tom Tromey  <tromey@redhat.com>

	* gdb.python/python.exp (gdb_py_test_multiple): Add two objfile
	tests.
	* gdb.python/python-value.exp (py_objfile_tests): New proc.
	Call it.

2009-05-27  Pedro Alves  <pedro@codesourcery.com>

	* gdb.mi/nsthrexec.c, gdb.mi/mi-nsthrexec.exp: New.

2009-05-24  Pedro Alves  <pedro@codesourcery.com>

	* gdb.threads/fork-thread-pending.c: New.
	* gdb.threads/fork-thread-pending.exp: New.

2009-05-21  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.dwarf2/dw2-strp.exp (p a_string2, ptype a_string2): New.
	* gdb.dwarf2/dw2-strp.S (a_string2): New.

2009-05-18  Jon Beniston  <jon@beniston.com>

	* gdb.asm/asm-source.exp: Add lm32 target.

2009-05-17  Pedro Alves  <pedro@codesourcery.com>

	* gdb.base/foll-fork.c: Include stdlib.h.  Add markers for
	`gdb_get_line_number'.  Call `callee' in both parent and child.
	* gdb.base/foll-fork.exp (catch_fork_child_follow): Use
	`gdb_get_line_number' instead of hardcoding line numbers.
	(catch_fork_unpatch_child): New procedure to test detaching
	breakpoints from child fork.
	(tcatch_fork_parent_follow): Use `gdb_get_line_number' instead of
	hardcoding line numbers.
	(do_fork_tests): Run `catch_fork_unpatch_child'.

2009-05-17  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.mi/mi-cmd-var.exp: Check that when varobj
	of structure type enters or leaves the scope, it
	is reported by -var-update.

2009-05-11  Doug Evans  <dje@sebabeach.org>

	* gdb.mi/nsintrall.c (main): Fix off-by-one error.
	* gdb.threads/pending-step.c (main): Fix off-by-one error.
	* gdb.threads/schedlock.c (main): Fix off-by-one error.

2009-05-11  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.cp/expand-sals.exp, gdb.cp/expand-sals.cc: New.

2009-04-30  Doug Evans  <dje@google.com>

	* gdb.threads/watchthreads2.exp: New testcase.
	* gdb.threads/watchthreads2.c: New testcase.

2009-04-29  Doug Evans  <dje@google.com>

	* gdb.cp/mb-ctor.exp: Add multi-line source statement test.
	* gdb.cp/mb-ctor.cc: Ditto.
	* gdb.cp/mb-inline.exp: Add multi-line source statement test.
	* gdb.cp/mb-inline.h (multi_line_foo): New function.
	* gdb.cp/mb-inline1.cc: Call it.
	* gdb.cp/mb-inline2.cc: Ditto.
	* gdb.cp/mb-templates.exp: Add multi-line source statement test.
	* gdb.cp/mb-templates.cc (multi_line_foo): New template.

2009-04-29  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/macscp.exp: New `options' parameter `-DFROM_COMMANDLINE'.
	(info_macro): Remova `decimal' declaration.  New variable `nonzero'.
	Replace all uses of `decimal' by `nonzero'.
	(info macro FROM_COMMANDLINE): New test.

2009-04-27  Tom Tromey  <tromey@redhat.com>

	* gdb.base/printcmds.exp (test_printf): Test comma operator in [].

2009-04-27  Doug Evans  <dje@google.com>

	* gdb.threads/watchthreads.c (main): Initialize args before starting
	the threads.  Plus formatting cleanup.
	* gdb.threads/watchthreads.exp: Avoid errant failures due to
	biased scheduling of one thread.

2009-04-27  Jerome Guitton  <guitton@adacore.com>

	* gdb.cp/templates.cc (GetMax): New template.
	(main): Declare two instances of GetMax.
	* gdb.cp/templates.exp: Add new test.

2009-04-27  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.cp/abstract-origin.exp, gdb.cp/abstract-origin.cc: New test.

2009-04-22  Joseph Myers  <joseph@codesourcery.com>

	* lib/gdb.exp (get_compiler_info): Use -E -o in remote-host case.

2009-04-15  Tom Tromey  <tromey@redhat.com>

	* gdb.base/charset.exp: Add regression test.

2009-04-14  Joel Brobecker  <brobecker@adacore.com>

	* gdb.base/exe-lock.exp: New testcase.

2009-04-13  Tom Tromey  <tromey@redhat.com>

	* gdb.python/python-frame.exp (gdb_py_test_silent_cmd): Test !=
	operator on Frame.

2009-04-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.base/attach.exp: Re-enable for spu*-*-* targets.
	* gdb.server/ext-attach.exp: Likewise.

2009-04-03  Vladimir Prus  <vladimir@codesourcery.com>

	Eliminate some sleep usage.

	* gdb.mi/basics.c (do_nothing): New.
	(main): Use do_nothing instead of printf, so that
	not to introduce race condition between output of
	inferiour and output of gdb. Do not use sleep as it
	is not generally available on embedded targets.

2009-04-02  Pedro Alves  <pedro@codesourcery.com>

	* gdb.server/ext-attach.exp: Expect an optional process id after
	"Detached from remote process".

2009-04-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.dwarf2/dw2-unresolved-main.c, gdb.dwarf2/dw2-unresolved.S,
	gdb.dwarf2/dw2-unresolved.exp: New.

2009-04-02  Pedro Alves  <pedro@codesourcery.com>

	* gdb.mi/mi-nonstop-exit.exp: Don't check isnative.  Use
	mi_run_to_main.

2009-04-02  Pedro Alves  <pedro@codesourcery.com>

	* gdb.mi/mi-nonstop.exp: Don't check isnative.  Use
	mi_run_to_main.  Skip thread exit test on remote targets.
	* gdb.mi/mi-nsintrall.exp: Don't check isnative.  Use
	mi_run_to_main.
	* gdb.mi/mi-nsmoribund.exp: Don't check isnative.  Use
	mi_run_to_main.
	* lib/mi-support.exp (mi_gdb_target_cmd): Remove trailing anchor
	when expecting ^connected.  Detect when the target doesn't support
	non-stop mode.
	(mi_run_cmd): Detect if non-stop mode was requested by isn't
	supported.  Return -1 on error, 0 on success.
	(mi_runto_helper): Don't expect a stop if mi_run_cmd failed.
	(mi_runto): Return mi_runto_helper's result explicitly.

2009-04-01  Pedro Alves  <pedro@codesourcery.com>

	* gdb.threads/pending-step.c, gdb.threads/pending-step.exp: New.

2009-04-01  Tom Tromey  <tromey@redhat.com>

	* gdb.base/funcargs.exp: Set print frame-arguments to "all".
	* gdb.base/call-ar-st.exp: Set print frame-arguments to "all".
	* gdb.ada/ref_param.exp: Set print frame-arguments to "all".
	* gdb.ada/lang_switch.exp: Set print frame-arguments to "all".

2009-03-31  Daniel Jacobowitz  <dan@codesourcery.com>
	    Jan Kratochvil  <jan.kratochvil@redhat.com>

	PR gdb/931
	* gdb.cp/gdb1355.exp (f_li, f_lui, f_si, f_sui): Allow canonical
	output.
	* gdb.cp/templates.exp: Allow canonical output.  Remove KFAILs
	for gdb/931.
	* dw2-strp.S (DW_AT_language): Change to C++.
	(DW_TAG_variable (name ""), Abbrev code 7, .Lemptyname): New.

2009-03-31  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/tasks: New testcase.

2009-03-30  Stan Shebs  <stan@codesourcery.com>

	* gdb.trace/actions.exp: Update to match new info trace format.
	* gdb.trace/deltrace.exp: Ditto.
	* gdb.trace/infotrace.exp: Ditto.
	* gdb.trace/passcount.exp: Ditto.
	* gdb.trace/save-trace.exp: Ditto.
	* gdb.trace/while-stepping.exp: Ditto.
	* gdb.trace/tracecmd.exp: Ditto, plus don't allow pending option.

2009-03-30  Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* gdb.python/python-frame.c: New file.
	* gdb.python/python-frame.exp: New file.

2009-03-29  Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* gdb.python/python-value.exp: Add tests for the address
	attribute.

2009-03-29  Andreas Schwab  <schwab@linux-m68k.org>

	* gdb.arch/powerpc-prologue.exp: Update for disassemble-next-line.

2009-03-26  Doug Evans  <dje@google.com>

	* gdb.mi/mi-nonstop-exit.exp: New file.
	* gdb.mi/non-stop-exit.c: New file.

2009-03-26  Tom Tromey  <tromey@redhat.com>

	Update for change to prologue skipping:
	* gdb.mi/mi2-simplerun.exp: Update.
	* gdb.mi/mi2-break.exp: Update.
	* gdb.mi/mi-simplerun.exp: Update.
	* gdb.mi/mi-break.exp: Update.
	* gdb.base/ending-run.exp: Update.

2009-03-26  Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* gdb.python/python-value.exp (test_value_in_inferior): Test
	gdb.Value.is_optimized_out attribute.

2009-03-26  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.dwarf2/dw2-noloc-main.c: New file.
	* gdb.dwarf2/dw2-noloc.S: New symbols matrix.
	(.text): Remove.
	(.data): New.
	(DW_AT_stmt_list, .debug_line, DW_AT_frame_base): Remove.
	(DW_AT_low_pc, DW_AT_high_pc): Reference `dw2-noloc-main.c'.
	(DW_TAG_subprogram func_cu1, noloc): Remove.
	(main): New.
	* gdb.dwarf2/dw2-noloc.exp: Use prepare_for_testing, compile also
	`dw2-noloc-main.c'.  Test the new DIEs from `dw2-noloc.S'.
	(file_symbols): New procedure.

2009-03-25  Tom Tromey  <tromey@redhat.com>

	* gdb.base/charset.exp (valid_target_charset): New proc.
	Use it to skip tests on invalid charsets.

2009-03-25  Pierre Muller  <muller@ics.u-strasbg.fr>

	* gdb.base/completion.exp: Add a test for directory completion.

2009-03-22  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix a racy FAIL.
	* gdb.base/auxv.exp (fetch_auxv): Fix trailing newlines consumption.
	* gdb.base/callfuncs.exp (fetch_all_registers): Likewise.

2009-03-21  Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* gdb.python/python-cmd.exp: Add tests for keyword arguments.
	* gdb.python/python-function.exp: Add test for function returning
	a GDB value.

2009-03-20  Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* gdb.python/python-function.exp: New file.

2009-03-20  Tom Tromey  <tromey@redhat.com>

	* gdb.base/store.exp: Update for change to escape output.
	* gdb.base/callfuncs.exp (fetch_all_registers): Update for change
	to escape output.
	* gdb.base/pointers.exp: Update for change to escape output.
	* gdb.base/long_long.exp (gdb_test_long_long): Update for change
	to escape output.
	* gdb.base/constvars.exp (do_constvar_tests): Update for change to
	escape output.
	* gdb.base/call-rt-st.exp (print_struct_call): Update for change
	to escape output.
	* gdb.cp/ref-types.exp (gdb_start_again): Update for change to
	escape output.
	* gdb.base/setvar.exp: Update for change to escape output.
	* lib/gdb.exp (default_gdb_start): Set LC_CTYPE to C.
	* gdb.base/printcmds.exp (test_print_all_chars): Update for change
	to escape output.
	(test_print_string_constants): Likewise.
	* gdb.base/charset.exp (valid_host_charset): Check size of
	wchar_t.  Handle UCS-2 and UCS-4.  Add tests for wide and unicode
	cases.  Handle "auto"-related output.
	* gdb.base/charset.c (char16_t, char32_t): New typedefs.
	(uvar, Uvar): New globals.

2009-03-19  Jerome Guitton  <guitton@adacore.com>

	* gdb.ada/fixed_points/fixed_points.adb: Add a test on overprecise
	deltas.
	* gdb.ada/fixed_points.exp: Ditto.

2009-03-18  Pedro Alves  <pedro@codesourcery.com>

	* return-nodebug.c: Don't include stdio.h.
	(init): Delete.
	(func): Delete definition and provide extern declaration.
	(t): New.
	(main): Don't call printf.  Call func and store its result in t.
	* return-nodebug1.c: New.
	* return-nodebug.exp: Don't expect stdio output.  Instead, print
	the global variable t.  Drop printf formatters and cast types from
	foreach loop.  Don't use prepare_for_testing.  Compile
	return-nodebug.c and return-nodebug1.c in separate steps.  Don't
	define FORMAT or CAST.

2009-03-17  Paul Pluzhnikov  <ppluzhnikov@google.com>

	* gdb.base/solib-display.exp: Disable test for remote targers.

2009-03-15  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/return-nodebug.exp, gdb.base/return-nodebug.c: New.

2009-03-14  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix a racy FAIL.
	* gdb.base/multi-forks.exp (continue_to_exit_bp_loc): New function with
	code from `follow parent, print pids'.
	(`follow child, print pids', `follow parent, print pids'): Call it.
	Replace `gdb_test "break..."' by gdb_breakpoint.

2009-03-13  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.mi/mi-cli.exp: Adjust for output difference in
	sync and async modes.

2009-03-12  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/ptype_arith_binop.exp: Remove some commented-out code
	that was checked in by mistake. Remove loading of ada.exp, since
	this is not necessary in this case.

2009-03-12  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/ptype_arith_binop.exp: New testcase.

2009-03-12  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/mod_from_name: New testcase.

2009-03-12  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/tick_last_segv: New testcase.

2009-03-12  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.mi/mi-cli.exp: Remove debug print.

2009-03-12  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.mi/mi-cli.exp: Verify that CLI commands that run inferior
	include the token in ^running and frame info in *stopped.

2009-03-05  Paul Pluzhnikov  <ppluzhnikov@google.com>

	* solib-display.exp: New file.
	* solib-display-main.c: New file.
	* solib-display-lib.c: New file.

2009-03-05  Pedro Alves  <pedro@codesourcery.com>

	* gdb.arch/i386-permbkpt.S, gdb.arch/i386-permbkpt.exp: New.

2009-02-18  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/macscp.exp (objfile): Move it to ${objdir}/${subdir}/.
	(list_and_check_macro): Use more specific test name.
	(next to definition): Make the test names unique.

2009-02-18  Pierre Muller  <muller@ics.u-strasbg.fr>

	* gdb.pascal/floats.exp: Accept approximate results everywhere.

2009-02-17  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.mi/mi-nonstop.exp (notifs): Adjust for library
	notifications.
	* gdb.mi/mi-nsintrall.exp (notifs): Likewise.
	* gdb.mi/mi-nsmoribund.exp (notifs): Likewise.
	* lib/mi-support.exp (library_loaded_re): New.
	(mi_run_cmd, mi_send_resuming_command_raw): Adjust.

2009-02-17  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.gdb/observer.exp: Use test_notification observer, not
	normal_stop, everywhere.
	(test_normal_stop_notifications): Rename to...
	(test_notifications): ...this.
	(test_observer_normal_stop): Rename to...
	(test_observer): ...this.

2009-02-16  Doug Evans  <dje@google.com>

	* gdb.arch/amd64-disp-step.S (test_int3): New test.
	* gdb.arch/amd64-disp-step.exp (test_int3): New test.
	* gdb.arch/i386-disp-step.S (test_prefixed_abs_jump): New test.
	(test_prefixed_syscall,test_int3): New tests.
	* gdb.arch/i386-disp-step.exp (test_prefixed_abs_jump): New test.
	(test_prefixed_syscall,test_int3): New tests.

2009-02-14  Vladimir Prus  <vladimir@codesourcery.com>

	* lib/mi-support.exp (mi_expect_stop): Adjust the order of fields.
	(mi_expect_interrupt): Likewise.
	* gdb.mi/mi-cli.exp: Check that "step" results in proper *stopped
	response.

2009-02-14  Pierre Muller  <muller@ics.u-strasbg.fr>

	* lib/gdb.exp (get_hexadecimal_valueof): New procedure.
	* gdb.base/pc-fp.exp (get_valueofx): Remove.
	Replace calls to get_valueofx by get_hexadecimal_valueof.

2009-02-14  Pierre Muller  <muller@ics.u-strasbg.fr>

	* lib/gdb.exp (get_valueof): Accept anything as a return value.
	(get_integer_valueof): New procedure.
	(get_sizeof): Use new get_integer_value_of.
	* gdb.base/sizeof.exp: Replace all uses of get_valueof
	by get_integer_valueof.

2009-02-13  Tom Tromey  <tromey@redhat.com>

	* gdb.base/remote.exp (get_sizeof): Remove.
	* gdb.base/long_long.exp (get_valueof, get_sizeof): Remove.
	* gdb.base/dfp-test.exp (get_valueof, get_sizeof): Remove.
	* gdb.base/sizeof.exp (get_valueof, get_sizeof): Remove.
	* lib/gdb.exp (get_valueof): Move from long_long.exp.
	(get_sizeof): Likewise.

2009-02-12  Jan Kratochvil  <jan.kratochvil@redhat.com>

	PR fortran/9806
	* gdb.fortran/module.exp, gdb.fortran/module.f90: New.

2009-02-06  Paul Pluzhnikov  <ppluzhnikov@google.com>

	* gdb.cp/pr9594.cc: Prevent GCC from optimizing 'a' out.

2009-02-06  Pedro Alves  <pedro@codesourcery.com>

	* gdb.base/siginfo-obj.c, gdb.base/siginfo-obj.exp: New.

2009-02-06  Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* gdb.python/python-cmd.exp: New file.

2009-02-06  Tristan Gingold  <gingold@adacore.com>

	* gdb.arch/i386-sse.c (main): Replace call to puts by an nop asm.

2009-02-05  Tristan Gingold  <gingold@adacore.com>

	* gdb.base/sigbpt.exp: Detect which signal is received when a NULL
	pointer is dereferenced and use this signal name in regexp.
	* gdb.base/signull.exp: Ditto.
	* gdb.base/sigbpt.c (main): Catch SIGBUS too.
	* gdb.base/signull.c (main): Ditto.

2009-02-04  Tom Tromey  <tromey@redhat.com>
	    Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* gdb.python/python-value.exp: Use `gdb.history' instead of
	`gdb.value_from_history'.
	(test_value_numeric_ops): Add test for conversion of enum constant.
	* gdb.python/python-value.c (enum e): New type.
	(evalue): New global.
	(main): Use argv.

2009-02-04  Jerome Guitton  <guitton@adacore.com>

	* gdb.ada/uninitialized_vars: New test program.
	* gdb.ada/uninitialized_vars.exp: New testcase.

2009-02-02  Tom Tromey  <tromey@redhat.com>

	* gdb.cp/cpcompletion.exp: Name the test "pr9594".
	* gdb.cp/pr2489.cc: Rename...
	* gdb.cp/pr9594.cc: ... to this.

2009-02-02  Tom Tromey  <tromey@redhat.com>

	* gdb.cp/Makefile.in (EXECUTABLES): Add pr2489.
	* gdb.cp/pr2489.cc: New file.
	* gdb.cp/cpcompletion.exp: New file.

2009-02-02  Tom Tromey  <tromey@redhat.com>

	PR exp/9059:
	* gdb.cp/call-c.exp: Add regression test.
	* gdb.cp/call-c.cc (FooHandle): New typedef.
	(main): New variable 'handle'.

2009-01-30  Vladimir Prus  <vladimir@codesourcery.com>

	* lib/mi-support.exp (et_mi_thread_list)
	(check_mi_and_console_threads): Adjust for current thread in
	-thread-list-ids output.

2009-01-30  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.mi/mi-break.exp (test_disabled_creation): New.
	Call it.

2009-01-28  Doug Evans  <dje@google.com>

	* gdb.arch/amd64-disp-step.S: New file.
	* gdb.arch/amd64-disp-step.exp: New file.
	* gdb.arch/i386-disp-step.S: New file.
	* gdb.arch/i386-disp-step.exp: New file.

2009-01-27  Pierre Muller  <muller@ics.u-strasbg.fr>

	* gdb.base/find.exp: Set newline variable
	using quotes instead of braces to fix cygwin failures.

2009-01-23  Pedro Alves  <pedro@codesourcery.com>

	* gdb.base/radix.exp: Add tests to ensure that that set
	input-radix 0 and set output-radix 0 are really rejected.

2009-01-23  Pedro Alves  <pedro@codesourcery.com>

	* gdb.base/hook-stop-frame.c, gdb.base/hook-stop-frame.exp: Update
	copyright years.

2009-01-23  Pedro Alves  <pedro@codesourcery.com>

	PR gdb/9664:
	* gdb.base/hook-stop-frame.c, gdb.base/hook-stop-frame.exp: New.

2009-01-22  Pedro Alves  <pedro@codesourcery.com>

	PR c++/9631:
	* gdb.cp/pr9631.cc, gdb.cp/pr9631.exp: New.

2009-01-22  Pierre Muller  <muller@ics.u-strasbg.fr>

	* gdb.server/file-transfer.exp: Use EXEEXT variable for
	binfile definition to fix Windows OS failure.

2009-01-20  Daniel Jacobowitz  <dan@codesourcery.com>

	PR gdb/9346
	* gdb.base/interrupt.c (sigint_handler): New.
	(main): Install a SIGINT handler if SIGNALS is defined.  Exit
	on error.
	* gdb.base/interrupt.exp: Define SIGNALS unless gdb,nosignals.
	Test "signal SIGINT".

2009-01-19  Doug Evans  <dje@google.com>

	* gdb.base/break.exp: Update expected gdb output.
	* gdb.base/sepdebug.exp: Ditto.
	* gdb.mi/mi-syn-frame.exp: Ditto.
	* gdb.mi/mi2-syn-frame.exp: Ditto.
	* gdb.base/call-signal-resume.exp: New file.
	* gdb.base/call-signals.c: New file.
	* gdb.base/unwindonsignal.exp: New file.
	* gdb.base/unwindonsignal.c: New file.
	* gdb.threads/interrupted-hand-call.exp: New file.
	* gdb.threads/interrupted-hand-call.c: New file.
	* gdb.threads/thread-unwindonsignal.exp: New file.

2009-01-14  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/define.exp: Test defining and hooking prefix commands.
	* gdb.python/python.exp: Update test for "show user" output.

2009-01-07  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.fortran/derived-type.exp: New variables int4 and real4.  Match
	now the output exactly, using less wildcards.  Expect also the output
	of gfortran-4.3.  Update for the f-valprint.c modification from
	2008-04-22.
	* gdb.fortran/subarray.exp: Expect also the output of gfortran-4.3.
	Remove gdb_test test names where matching the command.

2009-01-01  Pedro Alves  <pedro@codesourcery.com>

	PR breakpoints/9681:
	* gdb.base/watchpoint.exp: Add regression test.

2008-12-31  Pedro Alves  <pedro@codesourcery.com>

	* gdb.threads/attach-into-signal.exp: Don't use
	gdb_suppress_entire_file.
	* gdb.threads/attach-stopped.exp: Ditto.
	* gdb.threads/attachstop-mt.exp: Ditto.

2008-12-31  Pedro Alves  <pedro@codesourcery.com>

	PR gdb/8812:
	* gdb.base/signal.exp: Change kfail to fail, and update PR number.

2008-12-29  Pedro Alves  <pedro@codesourcery.com>

	PR gdb/7536:
	* gdb.base/radix.exp: Add tests to ensure invalid input radices
	and unsupported output radices are really rejected.

2008-12-23  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.cp/punctuator.exp: Backslash the '$' signs.

2008-12-22  Tom Tromey  <tromey@redhat.com>

	* gdb.cp/punctuator.exp: New file.

2008-12-22  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/completion.exp (Completing non-existing component): New test.

2008-12-21  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix for PR gdb/8648.
	* gdb.arch/ppc-fp.exp, gdb.arch/vsx-regs.exp, gdb.base/watchpoint-hw.c,
	gdb.gdbtk/browser.test, gdb.gdbtk/console.test, gdb.gdbtk/srcwin.test,
	gdb.gdbtk/srcwin2.test, gdb.gdbtk/srcwin3.test, gdb.gdbtk/windows.test,
	gdb.threads/tls2.c: Remove reference to bug-gdb@prep.ai.mit.edu .

2008-12-21  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/watchpoint-hw.exp, gdb.base/watchpoint-hw.c: New.

2008-12-16  Christophe Lyon  <christophe.lyon@st.com>

	* gdb.base/expand-psymtabs.c: Insert code in foo so that the
	compiler actually generate code at the expected line number.

2008-12-15  Jie Zhang  <jie.zhang@analog.com>

	* gdb.base/consecutive.exp: Don't use global in gdb_expect.

2008-12-12  Tom Tromey  <tromey@redhat.com>

	* gdb.base/commands.exp (redefine_hook_test): New proc.
	Call it.

2008-12-11  Tom Tromey  <tromey@redhat.com>

	* gdb.base/macscp.exp: New regression test.

2008-12-11  Tom Tromey  <tromey@redhat.com>

	* gdb.base/macscp.exp: Print "address.addr".
	* gdb.base/macscp1.c (struct outer): New struct.
	(address): New global.

2008-12-09  Tom Tromey  <tromey@redhat.com>

	* gdb.base/commands.exp (redefine_backtrace_test): New proc.
	Call it.

2008-12-04  Doug Evans  <dje@google.com>

	* gdb.server/ext-run.exp: Relax regexp for init program.

2008-12-03  Tristan Gingold  <gingold@adacore.com>

	* gdb.base/macscp.exp: Generate an object file during compilation
	to work around Darwin dsymutil limitations.

2008-12-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Test resolving external references to TLS variables.
	* gdb.threads/tls.exp: New tests to examine A_THREAD_LOCAL and
	FILE2_THREAD_LOCAL.
	(testfile2, srcfile2): New variables.
	* gdb.threads/tls.c (file2_thread_local)
	(function_referencing_file2_thread_local): New.
	* gdb.threads/tls2.c: New file.

2008-11-28  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/int_deref.exp: Convert the addresses into long_integer
	rather than integer, as integer might not be big enough when
	on 64bit targets.

2008-11-27  Jerome Guitton  <guitton@adacore.com>

	* gdb.cp/formatted-ref.exp: Add equality test.
	* gdb.ada/formatted_ref.exp: Ditto.

2008-11-25  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/breakpoint-shadow.exp, gdb.base/breakpoint-shadow.c: New.
	* gdb.base/start.exp: New comment about an alternative - `runto_main'.

2008-11-20  Andreas Schwab  <schwab@suse.de>

	* gdb.base/foll-fork.exp (catch_fork_child_follow): Fix patterns
	matching syscall entry point.
	* gdb.base/foll-vfork.exp (tcatch_vfork_then_parent_follow)
	(tcatch_vfork_then_child_follow): Likewise.  Finish through
	vfork even if we stopped at the syscall trampoline.

2008-11-20  Doug Evans  <dje@google.com>

	* gdb.base/sepsymtab.exp: Update, old "info sym" format restored.

2008-11-18  Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* gdb.arch/ppc-dfp.exp: New file.
	* gdb.arch/ppc-dfp.c: New file.

2008-11-18  Paul Pluzhnikov  <ppluzhnikov@google.com>

	* gdb.base/sepsymtab.exp: Update for new 'info sym' format.

2008-11-17  Doug Evans  <dje@google.com>

	* gdb.mi/mi-syn-frame.exp: Update expected output.
	* gdb.mi/mi2-syn-frame.exp: Update expected output.

2008-11-17  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.mi/mi-pthreads.exp (check_mi_thread_command_set): Make sure
	"thread N" results in =thread-selected.
	* lib/mi-support (mi_run_cmd, mi_expect_stop)
	(mi_send_resuming_command_raw): Be prepared for
	=thread-selected.

2008-11-17  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.mi/mi-nonstop.exp: Expect 'group-id' field.
	* lib/mi-support.exp: Likewise.

2008-11-16  Joel Brobecker  <brobecker@adacore.com>

	* gdb.base/help.exp: Remove the "catch load" and "catch unload"
	commands from the expected output for "help catch".

2008-11-15  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/int_deref.exp: New testcase.

2008-11-14  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.mi/gdb2549.exp: New file.

2008-11-11  Doug Evans  <dje@google.com>

	* gdb.base/callexit.exp: New file.
	* gdb.base/callexit.c: New file.

2008-11-10  Doug Evans  <dje@google.com>

	* lib/gdb.exp (GDBFLAGS): Move -nx ...
	(INTERNAL_GDBFLAGS): ... to here.  Move -nw to here as well.
	(default_gdb_version): Add $INTERNAL_GDBFLAGS to gdb invocations.
	(default_gdb_start,default_gdb_exit): Ditto.
	* lib/mi-support.exp (default_mi_gdb_start): Ditto.
	(mi_uncatched_gdb_exit): Add $INTERNAL_GDBFLAGS to log message.
	* gdb.base/corefile.exp: Add $INTERNAL_GDBFLAGS to gdb invocations.
	* gdb.base/dbx.exp (dbx_gdb_start): Ditto.
	* gdb.base/args.exp (GDBFLAGS): Don't overwrite, append.
	* gdb.base/remotetimeout.exp (GDBFLAGS): Ditto.

2008-11-03  Andreas Schwab  <schwab@suse.de>

	* gdb.base/hashline2.exp: Fix typo.
	* gdb.base/hashline3.exp: Likewise.

2008-10-30  Tom Tromey  <tromey@redhat.com>

	* gdb.base/pointers.exp: Add test.
	* gdb.base/pointers.c (k, S): New typedefs.
	(instance): New global.

2008-10-30  Andreas Schwab  <schwab@suse.de>

	* gdb.base/args.exp: Add tests for newlines.

2008-10-30  Joel Brobecker  <brobecker@adacore.com>

	gdb.base/foll-exec.exp: Update the expected output of a couple
	of "info breakpoints" tests.

2008-10-28  Tom Tromey  <tromey@redhat.com>

	* gdb.base/exprs.exp (test_expr): Add enum formatting tests.

2008-10-24  Pedro Alves  <pedro@codesourcery.com>

	* gdb.python/python-value.exp (test_value_in_inferior): Don't use
	gdb_start_cmd.
	Use runto_main before any test that requires execution.

2008-10-23  Pedro Alves  <pedro@codesourcery.com>

	* lib/mi-support.exp (mi_expect_interrupt): Expect signal 0
	instead of SIGINT.

2008-10-22  Joel Brobecker  <brobecker@adacore.com>

	* gdb.base/completion.exp: Update expected output following
	the addition of the "info tasks" command.

2008-10-22  Tom Tromey  <tromey@redhat.com>

	* gdb.base/exprs.exp (test_expr): Add test for string
	concatenation.

2008-10-19  Pedro Alves  <pedro@codesourcery.com>

	* configure.ac: Output gdb.python/Makefile.
	* configure: Regenerate.
	* gdb.python/Makefile.in: New.

2008-10-16  Joel Brobecker  <brobecker@adacore.com>

	* gdb.base/foll-fork.exp: Adjust the expected output to match
	the new description for fork/vfork catchpoints in the "info
	breakpoints" output.

2008-10-16  Paul Pluzhnikov  <ppluzhnikov@google.com>

	* Makefile.in: Add gdb.python to ALL_SUBDIRS.

2008-10-16  Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* gdb.python/python-value.c: New file.
	* gdb.python/python-value.exp: New file.

2008-10-15  Pedro Alves  <pedro@codesourcery.com>

	* gdb.mi/mi-nsmoribund.exp, gdb.mi/nsmoribund.c: New test.

2008-10-15  Denis Pilat  <denis.pilat@st.com>

	* gdb.cp/mb-ctor.exp: Fix a typo.

2008-10-09  Tom Tromey  <tromey@redhat.com>

	* gdb.base/macscp.exp: Use 'vafunc' and 'fixedarg' rather than
	'fprintf' and 'stderr'.

2008-10-07  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/ref_tick_size.exp: New testcase.

2008-10-06  Doug Evans  <dje@google.com>

	* gdb.dwarf2/dw2-cu-size.exp: New file.
	* gdb.dwarf2/dw2-cu-size.S: New file.

	* gdb.dwarf2/dw2-intercu.S (.Ltype_int_in_cu2): Renamed from
	.Ltype_int for clarity.

2008-10-03  Paul Pluzhnikov  <ppluzhnikov@google.com>

	PR gdb/2384:
	* gdb.cp/gdb2384.exp: Extended to test more cases.
	* gdb.cp/gdb2384.cc: Likewise.
	* gdb.cp/gdb2384-base.h: Likewise.
	* gdb.cp/gdb2384-base.cc: Likewise.

2008-10-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/maint.exp (maint print type): Remove printing
	UPPER_BOUND_TYPE and LOWER_BOUND_TYPE.

2008-09-30  Tom Tromey  <tromey@redhat.com>

	* gdb.base/macscp.exp: Add completion tests.
	* gdb.base/macscp1.c (FIFTY_SEVEN): New macro.
	(TWENTY_THREE): Likewise.
	(FORTY_EIGHT): Likewise.

2008-09-30  Tom Tromey  <tromey@redhat.com>

	* gdb.base/macscp.exp: Change "M" to "MACRO_TO_EXPAND"
	everywhere.
	* gdb.base/macscp1.c (MACRO_TO_EXPAND): Rename from "M".

2008-09-28  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.threads/attachstop-mt.exp: Note a real testcase name this
	testcase is derived from.  Fix racy dependency on an expected PID
	number.  No longer support the testcase on Linux kernel 2.4.x.

2008-09-27  Tom Tromey  <tromey@redhat.com>

	* gdb.base/macscp.exp: Add tests for stringification, splicing,
	and varargs.

2008-09-22  Pedro Alves  <pedro@codesourcery.com>

	* lib/mi-support.exp (mi_expect_interrupt): New.
	(mi_reverse_list, mi_check_thread_states): New, moved and renamed
	from gdb.mi/mi-nonstop.exp.
	* gdb.mi/mi-nsintrall.exp, gdb.mi/nsintrall.c: New.
	* gdb.mi/mi-nonstop.exp (myreverse, check_thread_states): Moved to
	lib/mi-support.exp.
	Use mi_check_thread_states throughout.  Avoid ".*" and do not
	require an anchor after -exec-run.

2008-09-13  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.mi/mi-nonstop.exp: Do not check thread state while a
	stop is pending.  Avoid ".*" when two stops are pending.
	* lib/gdb.exp (fullname_syntax_POSIX, fullname_syntax_UNC)
	(fullname_syntax_DOS_CASE, fullname_syntax_DOS): Do not match
	newlines in fullnames.
	* lib/mi-support.exp (mi_run_cmd): Do not require an anchor.
	(mi_expect_stop): Update comments.  Only anchor in sync mode.
	Do not match newlines.
	(mi_send_resuming_command_raw): Always return status.
	(mi_get_stop_line): Do not match more than one line by accident.
	Only anchor in sync mode.
	(mi_run_inline_test): If -exec-next fails, give up.

2008-09-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.base/stack-checking.c (big_frame): Reduce stack consumption
	on SPU.

2008-09-10  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/Makefile.in (EXECUTABLES): Bring up to date.

2008-09-10  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/array_bounds.exp, gdb.ada/array_subscript_addr.exp,
	gdb.ada/arrayidx.exp, gdb.ada/arrayparam.exp, gdb.ada/arrayptr.exp,
	gdb.ada/assign_1.exp, gdb.ada/boolean_expr.exp,
	gdb.ada/char_param.exp, gdb.ada/exprs.exp, gdb.ada/fixed_cmp.exp,
	gdb.ada/fixed_points.exp, gdb.ada/fun_addr.exp,
	gdb.ada/funcall_param.exp, gdb.ada/homonym.exp,
	gdb.ada/interface.exp, gdb.ada/null_array.exp,
	gdb.ada/packed_array.exp, gdb.ada/packed_tagged.exp,
	gdb.ada/print_chars.exp, gdb.ada/print_pc.exp,
	gdb.ada/str_ref_cmp.exp, gdb.ada/sym_print_name.exp,
	gdb.ada/taft_type.exp, gdb.ada/tagged.exp, gdb.ada/type_coercion.exp:
	Include the "= " sequence in the expected output of print tests.

2008-09-10  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/packed_tagged.exp: Accept "boolean" as a valid type
	description for boolean types.

2008-09-09  Pedro Alves  <pedro@codesourcery.com>

	* gdb.base/hook-stop-continue.c: New.
	* gdb.base/hook-stop-continue.exp: New.

2008-09-08  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/structs3.c, gdb.base/structs3.exp: New files.

2008-09-08  Jerome Guitton  <guitton@adacore.com>

	* gdb.arch/powerpc-aix-prologue.c (stack_check_probe_1)
	(stack_check_probe_2, stack_check_probe_loop_1)
	(stack_check_probe_loop_2): New functions.
	(main): Add call to these new functions.
	* gdb.arch/powerpc-aix-prologue.exp: When breaking on these
	functions, check that the breakpoint is inserted at the appropriate
	location.
	(insert_breakpoint): Slightly refine this procedure so that it can
	be called several times in the test.

2008-09-08  Jerome Guitton  <guitton@adacore.com>

	* gdb.base/stack-checking.c: New file.
	* gdb.base/stack-checking.exp: New file.

2008-09-05  Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* gdb.arch/altivec-abi.exp: Remove extra verbose call.
	* gdb.arch/altivec-regs.exp: Likewise.
	* gdb.arch/vsx-regs.exp: Likewise.

2008-09-05  Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* gdb.arch/ppc-fp.exp: New file.
	* gdb.arch/ppc-fp.c: New file.

2008-09-05  Paul Pluzhnikov  <ppluzhnikov@google.com>

	*gdb.base/mips_pro.exp: compile with gcc -fno-inline,
	lest gcc-4.3.1 optimizes the whole thing away.

2008-09-04  Michael Snyder  <msnyder@vmware.com>

	* lib/gdb.exp (gdb_continue_to_breakpoint): Accept "in" as well
	as "at" (for non-debug functions such as _start).

2008-09-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.base/value-double-free.exp: Respect gdb,no_hardware_watchpoints.
	* gdb.base/watchpoint-solib.exp: Likewise.  Update tests to handle
	software watchpoints.
	* gdb.base/watch_thread_num.exp: Likewise.

2008-09-03  Aleksandar Ristovski  <aristovski@qnx.com>

	* gdb.arch/i386-bp_permanent.exp: New test.

2008-08-24  Tom Tromey  <tromey@redhat.com>

	* gdb.base/maint.exp: Update "maint print type".

2008-08-21  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.mi/mi-nonstop.exp: Fix the check for non-stop
	support.  Adjust the order of "*running" notifications.
	* gdb.mi/non-stop.c: Don't cast from int to void* and
	back.

2008-08-20  Mark Kettenis  <kettenis@gnu.org>

	* gdb.arch/powerpc-prologue.exp: Code doesn't save %r31 so don't
	expect to find it in the "info frame" output.

2008-08-20  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/interp.exp: Always consume both prompts.

2008-08-20  Pedro Alves  <pedro@codesourcery.com>

	* gdb.base/pending.exp: Test pending breakpoints without symbols
	loaded.

2008-08-19  Vladimir Prus  <vladimir@codesourcery.com>

	* lib/mi-support.exp (mi_expect_stop): Produce
	more details on failures.
	* gdb.mi/mi-nonstop.exp: New.
	* gdb.mi/non-stop.c: New.

2008-08-19  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.mi/mi-async.exp: Use 'set target-async'.
	* lib/mi-support.exp: Use 'set/show target-async'.

2008-08-18  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.arch/powerpc-prologue.exp: Correct saved registers.

2008-08-17  Tom Tromey  <tromey@redhat.com>

	* gdb.base/help.exp (help catch): Rewrite.

2008-08-16  Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* gdb.base/define.exp: Test indented command documentation.
	* gdb.python/python.exp: Test indented multi-line command.

2008-08-15  Luis Machado  <luisgpm@br.ibm.com>

	* testsuite/gdb.arch/vsx-regs.c: New source file.
	* testsuite/gdb.arch/vsx-regs.exp: New testcase.
	* testsuite/lib/gdb.exp (skip_vsx_tests): New function.

2008-08-14  Tom Tromey  <tromey@redhat.com>

	* gdb.base/macscp.exp: Add regression test for "macro define" or
	"macro undef" with no arguments.

2008-08-08  Paul Pluzhnikov  <ppluzhnikov@google.com>

	* gdb.base/args.exp: Prevent ~/.gdbinit from affecting test.

2008-08-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.arch/spu-info.exp: Updated for "info spu dma" changes.

2008-08-06  Tom Tromey  <tromey@redhat.com>

	* gdb.python/python.exp: New file.

2008-08-06  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix for PR gdb/1543.
	* gdb.base/sep.exp: `sep-proc.c' absolute line numbers replaced with
	$LOCATION.
	(location): New variable.
	* config/cfdbug.exp, config/d10v.exp, config/dve.exp, config/i960.exp,
	config/m32r.exp, config/mn10300-eval.exp, config/proelf.exp,
	config/rom68k.exp, config/sh.exp, config/unix.exp, config/vr4300.exp,
	config/vr5000.exp, config/vxworks.exp, gdb.arch/altivec-regs.exp,
	gdb.arch/e500-abi.exp, gdb.arch/e500-regs.exp, gdb.asm/asm-source.exp,
	gdb.base/a2-run.exp, gdb.base/advance.exp, gdb.base/all-bin.exp,
	gdb.base/args.exp, gdb.base/arithmet.exp, gdb.base/assign.exp,
	gdb.base/async.exp, gdb.base/auxv.exp, gdb.base/bigcore.c,
	gdb.base/bigcore.exp, gdb.base/bitfields.exp, gdb.base/bitops.exp,
	gdb.base/break.c, gdb.base/break.exp, gdb.base/break1.c,
	gdb.base/call-ar-st.exp, gdb.base/call-rt-st.exp,
	gdb.base/call-strs.exp, gdb.base/callfuncs.c, gdb.base/callfuncs.exp,
	gdb.base/checkpoint.exp, gdb.base/chng-syms.exp,
	gdb.base/code-expr.exp, gdb.base/commands.exp, gdb.base/completion.exp,
	gdb.base/complex.exp, gdb.base/cond-expr.exp, gdb.base/condbreak.exp,
	gdb.base/consecutive.exp, gdb.base/corefile.exp, gdb.base/cvexpr.c,
	gdb.base/cvexpr.exp, gdb.base/dbx.exp, gdb.base/default.exp,
	gdb.base/define.exp, gdb.base/del.c, gdb.base/detach.exp,
	gdb.base/display.exp, gdb.base/dump.exp, gdb.base/echo.exp,
	gdb.base/environ.exp, gdb.base/eval-skip.exp, gdb.base/exprs.exp,
	gdb.base/fileio.exp, gdb.base/find.exp, gdb.base/finish.exp,
	gdb.base/funcargs.exp, gdb.base/gcore-buffer-overflow.exp,
	gdb.base/gcore.exp, gdb.base/gdb1555.exp, gdb.base/gdbvars.exp,
	gdb.base/help.exp, gdb.base/huge.exp, gdb.base/info-proc.exp,
	gdb.base/interrupt.exp, gdb.base/jump.exp, gdb.base/langs.exp,
	gdb.base/lineinc.exp, gdb.base/list.exp, gdb.base/macscp.exp,
	gdb.base/maint.exp, gdb.base/mips_pro.exp, gdb.base/miscexprs.exp,
	gdb.base/nodebug.exp, gdb.base/nofield.c, gdb.base/opaque.exp,
	gdb.base/overlays.exp, gdb.base/page.exp, gdb.base/pc-fp.exp,
	gdb.base/pending.c, gdb.base/pendshr.c, gdb.base/pointers.exp,
	gdb.base/psymtab.exp, gdb.base/ptype.exp, gdb.base/randomize.c,
	gdb.base/readline.exp, gdb.base/recurse.exp, gdb.base/regs.exp,
	gdb.base/relational.exp, gdb.base/relocate.exp, gdb.base/remote.exp,
	gdb.base/reread.exp, gdb.base/return.exp, gdb.base/return2.exp,
	gdb.base/scope.exp, gdb.base/sect-cmd.exp, gdb.base/sep-proc.c,
	gdb.base/sep.c, gdb.base/sep.exp, gdb.base/sepdebug.c,
	gdb.base/sepdebug.exp, gdb.base/setshow.exp, gdb.base/shlib-call.exp,
	gdb.base/sigaltstack.c, gdb.base/so-indr-cl.exp, gdb.base/solib.exp,
	gdb.base/source.exp, gdb.base/start.c, gdb.base/step-bt.c,
	gdb.base/step-line.exp, gdb.base/structs.c, gdb.base/structs.exp,
	gdb.base/structs2.exp, gdb.base/term.exp, gdb.base/twice.exp,
	gdb.base/type-opaque.exp, gdb.base/until.exp,
	gdb.base/value-double-free.c, gdb.base/varargs.exp,
	gdb.base/watchpoint.exp, gdb.base/whatis-exp.exp, gdb.disasm/am33.exp,
	gdb.disasm/h8300s.exp, gdb.disasm/hppa.exp, gdb.disasm/mn10300.exp,
	gdb.disasm/sh3.exp, gdb.disasm/t01_mov.exp, gdb.disasm/t02_mova.exp,
	gdb.disasm/t03_add.exp, gdb.disasm/t04_sub.exp, gdb.disasm/t05_cmp.exp,
	gdb.disasm/t06_ari2.exp, gdb.disasm/t07_ari3.exp,
	gdb.disasm/t08_or.exp, gdb.disasm/t09_xor.exp, gdb.disasm/t10_and.exp,
	gdb.disasm/t11_logs.exp, gdb.disasm/t12_bit.exp,
	gdb.disasm/t13_otr.exp, gdb.fortran/exprs.exp, gdb.fortran/types.exp,
	gdb.hp/gdb.aCC/exception.exp, gdb.hp/gdb.aCC/optimize.exp,
	gdb.hp/gdb.aCC/watch-cmd.exp, gdb.hp/gdb.base-hp/callfwmall.exp,
	gdb.hp/gdb.base-hp/dollar.exp, gdb.hp/gdb.base-hp/hwwatchbus.exp,
	gdb.hp/gdb.base-hp/pxdb.exp, gdb.hp/gdb.base-hp/reg-pa64.exp,
	gdb.hp/gdb.base-hp/reg.exp, gdb.hp/gdb.base-hp/sized-enum.exp,
	gdb.hp/gdb.base-hp/so-thresh.exp, gdb.hp/gdb.compat/xdb1.exp,
	gdb.hp/gdb.compat/xdb2.exp, gdb.hp/gdb.compat/xdb3.exp,
	gdb.java/jmisc.exp, gdb.java/jv-exp.exp, gdb.java/jv-print.exp,
	gdb.mi/gdb669.exp, gdb.mi/gdb680.exp, gdb.mi/gdb701.exp,
	gdb.mi/gdb792.exp, gdb.mi/mi-basics.exp, gdb.mi/mi-console.exp,
	gdb.mi/mi-hack-cli.exp, gdb.mi/mi-pending.c, gdb.mi/mi-pendshr.c,
	gdb.mi/mi-pthreads.exp, gdb.mi/mi-read-memory.exp, gdb.mi/mi-regs.exp,
	gdb.mi/mi-syn-frame.exp, gdb.mi/mi-until.exp, gdb.mi/mi2-basics.exp,
	gdb.mi/mi2-console.exp, gdb.mi/mi2-hack-cli.exp,
	gdb.mi/mi2-pthreads.exp, gdb.mi/mi2-read-memory.exp,
	gdb.mi/mi2-regs.exp, gdb.mi/mi2-syn-frame.exp, gdb.mi/mi2-until.exp,
	gdb.pascal/types.exp, gdb.stabs/weird.exp,
	gdb.threads/gcore-thread.exp, gdb.threads/manythreads.exp,
	gdb.threads/print-threads.exp, gdb.threads/pthreads.exp,
	gdb.threads/schedlock.exp, gdb.threads/step.exp, gdb.threads/step2.exp,
	gdb.threads/switch-threads.exp, gdb.threads/thread-specific.exp,
	gdb.threads/thread_check.exp, gdb.threads/thread_events.exp,
	gdb.threads/tls-nodebug.exp, gdb.threads/tls-shared.exp,
	gdb.threads/tls.exp, gdb.trace/actions.exp, gdb.trace/backtrace.exp,
	gdb.trace/circ.exp, gdb.trace/collection.exp, gdb.trace/deltrace.exp,
	gdb.trace/infotrace.exp, gdb.trace/limits.exp, gdb.trace/packetlen.exp,
	gdb.trace/passc-dyn.exp, gdb.trace/passcount.exp, gdb.trace/report.exp,
	gdb.trace/save-trace.exp, gdb.trace/tfind.exp, gdb.trace/tracecmd.exp,
	gdb.trace/while-dyn.exp, gdb.trace/while-stepping.exp,
	lib/mi-support.exp, lib/trace-support.exp: Remove reference
	to bug-gdb@prep.ai.mit.edu .

2008-07-31  Vladimir Prus  <vladimir@codesourcery.com>

	* lib/mi-support.exp (mi_load_shlibs): New.
	* gdb.mi/mi-pending.exp: Use mi_load_shlibs, not gdb_load_shlibs.

2008-07-30  Vladimir Prus  <vladimir@codesourcery.com>

	* lib/mi-support.exp (get_mi_thread_list)
	(check_mi_and_console_threads): New, moved from ...
	* gdb.mi/mi-pthread.exp: ...here.
	* gdb.mi/gdb669.exp (get_mi_thread_list)
	(check_mi_and_console_threads): Delete.
	* gdb.mi/mi2-pthread.exp: Likewise.

2008-07-28  Tom Tromey  <tromey@redhat.com>

	* Makefile.in (just-check): Remove.  Move body to...
	(check): ... here.

2008-07-27  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.threads/manythreads.exp: Use remote_expect instead of after.
	Add a test for duplicated SIGINTs.

2008-07-27  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.threads/schedlock.exp (get_args): Update to work for any
	value of NUM.
	(Top level): Report the number of threads that did not resume.

2008-07-27  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.dwarf2/dw2-compressed.S: Also define __start.

2008-07-27  Daniel Jacobowitz  <dan@codesourcery.com>

	* lib/mi-support.exp (default_mi_gdb_start): Remove check for
	non-MI prompt.

2008-07-26  Tom Tromey  <tromey@redhat.com>

	* gdb.base/callfuncs.c (struct struct_with_fnptr): New struct.
	(function_struct, function_struct_ptr): New globals.
	* gdb.base/callfuncs.exp (do_function_calls): Test calling via a
	function pointer in a struct.

2008-07-26  Tom Tromey  <tromey@redhat.com>

	* gdb.base/macscp.exp: Add test for macro lexing bug.

2008-07-18  Tom Tromey  <tromey@redhat.com>

	* gdb.base/macscp.exp: Add macro tests.

2008-07-17  Paul Pluzhnikov  <ppluzhnikov@google.com>

	* gdb.base/foll-fork.exp: Fix for Linux/VDSO failure.

2008-07-17  Paul Pluzhnikov  <ppluzhnikov@google.com>

	* gdb.base/coremaker.c: Fix for Linux failure in gdb.base/corefile.exp

2008-07-15  Paul Pluzhnikov  <ppluzhnikov@google.com>

	* gdb.cp/class2.exp: fix for failure on spu-elf

2008-07-14  Paul Pluzhnikov  <ppluzhnikov@google.com>

	* gdb.cp/class2.exp, gdb.cp/class2.cc: Test for PR2477.

2008-07-13  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/randomize.exp: Catch non-Linux targets as untested.

2008-07-12  Vladimir Prus  <vladimir@codesourcery.com>

	* lib/mi-support.exp (mi_expect_stop): Adjust for the new field.

2008-07-11  Kevin Buettner  <kevinb@redhat.com>

	* gdb.arch/e500-regs.exp (decimal_vector): Adjust "v8_int8" portion
	of regexp to account for changes made to GDB in the printing of
	byte vectors.

2008-07-11  Tom Tromey  <tromey@redhat.com>

	* gdb.base/completion.exp: Add 'help' completion test.

2008-07-10  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/randomize.exp: Remove dependency on tcl-8.4+.

2008-07-10  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/randomize.exp, gdb.base/randomize.c: New files.

2008-07-09  Pedro Alves  <pedro@codesourcery.com>

	* gdb.base/chng-syms.exp: Don't expect "No symbol ...".

2008-07-09  Pedro Alves  <pedro@codesourcery.com>

	* gdb.base/fullname.exp: Restore pwd if compiling failed.

2008-07-07  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/value-double-free.exp, gdb.base/value-double-free.c: New.

2008-06-28  Vladimir Prus  <vladimir@codesourcery.com>

	* lib/mi-support.exp (mi_send_resuming_command_raw): Revert
	previous commit.  Add a comment.

2008-06-28  Pedro Alves  <pedro@codesourcery.com>

	* gdb.base/sigchld.c, gdb.base/sigchld.exp: New test.

2008-06-28  Vladimir Prus  <vladimir@codesourcery.com>

	* lib/mi-support.exp (mi_send_resuming_command_raw): Report pass.

2008-06-27  Pedro Alves  <pedro@codesourcery.com>

	* lib/gdb.exp (gdb_saved_set_unbuffered_mode_obj): New global.
	(gdb_compile): If target is *-*-cygwin* or *-*-mingw*, and we're
	compiling an executable, link in an object that forces unbuffered
	output.
	* lib/set_unbuffered_mode.c: New file.

2008-06-25  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* lib/gdb.exp (prepare_for_testing): Do not drop the OPTIONS argument.

2008-06-25  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.mi/mi-async.exp: Use mi_sending_resuming_command_raw and
	mi_expect_stop.
	* gdb.mi/mi-support.exp (mi_run_cmd, mi_send_resuming_command):
	Demand that *running is output.
	(detect_async): Perform checking every time.
	(mi_send_resuming_command): Extract everything into...
	(mi_send_resuming_command_raw): ...this.
	(mi_expect_stop): Don't accept any output before *stopped.

2008-06-13  Vladimir Prus  <vladimir@codesourcery.com>

	Robustify mi-simplerun.
	* gdb.mi/basics.c (main): Add a call to sleep.
	* gdb.mi/mi-cli.exp: Adjust for change in line numbers.
	* gdb.mi/mi2-cli.exp: Likewise.
	* gdb.mi/mi-break.exp: Likewise.

2008-06-11  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.mi/mi-break.exp (test_ignore_count): Use mi_expect_stop.

2008-06-10  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.mi/mi-console.exp: Adjust.
	* gdb.mi/mi-syn-frame.exp: Adjust.
	* gdb.mi/mi2-console.exp: Adjust.
	* gdb.mi/mi2-syn-frame.exp: Adjust.
	* lib/mi-support.exp (mi_run_cmd): Adjust.
	(mi_send_resuming_command): Adjust.

2008-06-10  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.mi/mi-break.exp (test_ignore_count): Adjust stopped pattern.
	* gdb.mi/mi-syn-frame.exp: Use mi_expect_stop instead of direct
	testing of stopped.
	* gdb.mi/mi2-syn-frame.exp: Likewise.
	* lib/mi-support.exp (default_mi_gdb_start): Call detect_async.
	(async, detect_async): New.
	(mi_expect_stop, mi_continue_to_line): Adjust expectation
	depending on if we're running in sync or async mode.

2008-06-09  Tom Tromey  <tromey@redhat.com>

	* gdb.base/completion.exp: New tests for field name completion
	with spaces, and field name completion with '->'.

2008-06-06  Tom Tromey  <tromey@redhat.com>

	* gdb.base/break1.c (struct some_struct): New struct.
	(values): New global.
	* gdb.base/completion.exp: Add field name completion test.

2008-06-06  Paul Pluzhnikov  <ppluzhnikov@google.com>

	* gdb.cp/call-c.exp: Test for incorrect handling of reference
	to pointer.
	* gdb.cp/call-c.cc: Likewise.

2008-06-06  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.base/annota1.exp (thread_switch): Test for thread-changed
	annotation.

2008-06-05  Paul Pluzhnikov  <ppluzhnikov@google.com>
	    Pedro Alves  <pedro@codesourcery.com>

	* gdb.threads/execl.c, gdb.threads/execl1.c,
	gdb.threads/execl.exp: New tests.

2008-06-05  Aleksandar Ristovski  <aristovski@qnx.com>
	    Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.cp/exception.exp: Activate test, make it work with pending
	catchpoints.

2008-06-05  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* dw2-ref-missing-frame.S, dw2-ref-missing-frame.exp: New files.

2008-05-28  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.mi/mi-var-cmd.exp: Adjust for the fact that type_changed field is
	now printed.
	* gdb.mi/mi2-var-cmd.exp: Likewise.

2008-05-27  Andreas Schwab  <schwab@suse.de>

	* gdb.base/frame-args.exp: Handle arguments that are optimized
	out.

2008-05-26  Luis Machado  <luisgpm@br.ibm.com>

	* gdb.arch/ppc64-atomic-inst.exp: Make the expected compile failure
	quiet for ppc32 and group options into a single variable.

2008-05-23  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/null_array/foo.adb: Add multi-dimensional array
	of zero-size elements.
	* gdb.ada/null_array.exp: Test printing this new array.

2008-05-22  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/longjmp.exp: Fix GDB_TEST_MULTIPLE missing GDB_PROMPT races.

2008-05-21  Joel Brobecker  <brobecker@adacore.com>

	* gdb.base/finish.exp: Test that "fin" works as an abbreviation
	of the "finish" command.

2008-05-21  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.base/annota1.exp: Test for new annotation.

2008-05-16  Pedro Alves  <pedro@codesourcery.com>

	* gdb.base/fixsection.exp: New file.
	* gdb.base/fixsection0.c: New file.
	* gdb.base/fixsection1.c: New file.

2008-05-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.base/annota1.exp: Accept printf@... in place of printf.
	* gdb.base/annota3.exp: Likewise.

2008-05-13  Nathan Froyd  <froydnj@codesourcery.com>

	* gdb.base/watch_thread_num.exp: Don't run tests that require
	watchpoints if the target doesn't support them.

2008-05-12  Doug Evans  <dje@google.com>

	* lib/gdbserver-support.exp (find_gdbserver): Use $GDBSERVER if set.

2008-05-09  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/assign_1.exp: New testcase.

2008-05-09  Doug Evans  <dje@google.com>

	* gdb.base/find.exp: New file.
	* gdb.base/find.c: New file.

2008-05-08  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/commands.exp (watchpoint_command_test): Handle
	gdb,no_hardware_watchpoints.
	* gdb.base/float.exp: Allow ARM targets without floating point.
	* gdb.base/step-test.exp: Allow callee@plt when stepping in.

2008-05-06  Jerome Guitton  <guitton@adacore.com>
	    Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/lang_switch: New test program.
	* gdb.ada/lang_switch.exp: New testcase.

2008-05-05  Doug Evans  <dje@google.com>

	* gdb.base/help.exp (disassemble): Update expected help text.

2008-05-04  Pedro Alves  <pedro@codesourcery.com>

	* gdb.base/longjmp.c, gdb.base/longjmp.exp: New files.

2008-05-04  Pedro Alves  <pedro@codesourcery.com>

	* gdb.cp/annota2.exp: Adjust to breakpoints invalidations at
	different times.

2008-05-04  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.dwarf2/dw2-ranges.S: Merge the secondary section with `.fini'.
	* gdb.dwarf2/dw2-ranges.exp: Compile also `dw2-ranges2.S' and
	`dw2-ranges3.S' and test also their MAIN2, FUNC2 and MAIN3 symbols.
	* gdb.dwarf2/dw2-ranges2.S, gdb.dwarf2/dw2-ranges3.S: New files.

2008-05-04  Vladimir Prus  <vladimir@codesourcery.com>

	* lib/mi-support.exp (mi_run_cmd): Allow for =thread-created
	notification to appear.

2008-05-04  Daniel Jacobowitz  <dan@debian.org>

	* gdb.base/fullname.c: New file.
	* gdb.base/fullname.exp: New file.
	* lib/gdb.exp (gdb_breakpoint): Support no-message option.

2008-05-03  Pedro Alves  <pedro@codesourcery.com>

	* gdb.base/macscp.exp, gdb.base/macscp1.c: Add test for printing
	expressions with macros.

2008-05-03  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/dfp-test.exp: Fix random FAIL risk on calling functions.

2008-05-02  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/completion.exp: Handle lack of other symbols beginning
	with "a".

	* gdb.base/varargs.exp: Correct quoting for options to gdb_compile.

2008-05-02  Jim Blandy  <jimb@codesourcery.com>

	* gdb.asm/asmsrc1.s: Add scratch space.

2008-05-01  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.threads/attach-into-signal.c, gdb.threads/attach-into-signal.exp,
	gdb.threads/attach-stopped.c, gdb.threads/attach-stopped.exp,
	gdb.threads/attachstop-mt.c, gdb.threads/attachstop-mt.exp: New.

2007-05-01  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.arch/thumb-prologue.exp: Do not expect a saved PC.

2008-05-01  Joel Brobecker  <brobecker@adacore.com>

	* gdb.base/info-target.exp: New testcase.

2008-04-30  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.cp/hang.exp: Use .cc instead of .C.
	* gdb.cp/hang1.cc, gdb.cp/hang2.cc, gdb.cp/hang3.cc: Renamed from ...
	* gdb.cp/hang1.C, gdb.cp/hang2.C, gdb.cp/hang3.C: ... here.

2008-04-30  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/gdb1250.exp: Remove perror.
	* lib/mi-support.exp (mi_delete_breakpoints): Match the prompt.

2008-04-30  Pedro Alves  <pedro@codesourcery.com>

	* gdb.dwarf2/dw2-strp.S: Replace .long by .4byte and .value by
	.2byte.

2008-04-25  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/macscp.exp: Enable kfails.  Compile with -g3 for GCC.
	(maybe_kfail): New.

2008-04-25  Pedro Alves  <pedro@codesourcery.com>

	* gdb.dwarf2/dw2-strp.S, gdb.dwarf2/dw2-strp.exp: New files.

2008-04-24  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.mi/mi-syn-frame.exp: Adjust for token disappearance.
	* gdb.mi/mi2-syn-frame.exp: Likewise.
	* lib/mi-support.exp: Likewise.

2008-04-24  Vladimir Prus  <vladimir@codesourcery.com>

	* lib/gdb.exp (gdb_continue_to_breakpoint): Allow the caller
	to specify regexp for the location to stop at.
	* gdb.base/break-always.c: New.
	* gdb.base/break-always.exp: New.

2008-04-24  Vladimir Prus  <vladimir@codesourcery.com>

	* lib/mi-support.exp (mi_runto_helper): Adjust
	for the original-location field.
	(mi_create_breakpoint, mi_list_breakpoints): New.
	* gdb.mi/mi-break.exp: Adjust.
	* gdb.mi/mi2-break.exp: Adjust.
	* gdb.mi/mi-pending.exp: Adjust.
	* gdb.mi/mi-simplerun.exp: Adjust.
	* gdb.mi/mi2-simplerun.exp: Adjust.
	* gdb.mi/mi-syn-frame.exp: Adjust.
	* gdb.mi/mi2-syn-frame.exp: Adjust.
	* gdb.mi/mi-until.exp: Adjust.
	* gdb.mi/mi2-until.exp: Adjust.
	* gdb.mi/mi-var-display.exp: Adjust.
	* gdb.mi/mi2-var-display.exp: Adjust.
	* gdb.mi/mi-watch.exp: Adjust.
	* gdb.mi/mi2-watch.exp: Adjust.

2008-04-23  Paolo Bonzini  <bonzini@gnu.org>

	* aclocal.m4: Add override.m4.
	* configure: Regenerate.

2008-04-19  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.mi/var-cmd.c (do_at_tests): Verify that
	'-var-update --all-values' reports new value even the type
	of a variable object has changed.

2008-04-18  Craig Silverstein  <csilvers@google.com>

	* gdb.dwarf2/dw2-compressed.S, gdb.dwarf2/dw2-compressed.exp: New
	files.

2008-04-18  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/atomic_enum: New test program.
	* gdb.ada/atomic_enum.exp: New testcase.

2008-04-17  Doug Evans  <dje@google.com>

	* gdb.opt/Makefile.in: Fix whitespace.

2008-04-17  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.threads/linux-dp.exp: Continue after unrecognized lines.

2008-04-17  Doug Evans  <dje@google.com>

	* gdb.base/hashline1.exp: New testcase.
	* gdb.base/hashline2.exp: New testcase.
	* gdb.base/hashline2.exp: New testcase.

2008-04-17  Pedro Alves  <pedro@codesourcery.com>

	* gdb.base/step-break.exp, gdb.base/step-break.c: New files.

2008-04-15  Aleksandar Ristovski  <aristovski@qnx.com>

	* gdb.base/attach.exp (do_attach_tests): Matching pattern for
	temporary breakpoint to match "Temporary breakpoint".
	* gdb.base/break.exp (delete_breakpoints): Likewise.
	* gdb.base/call-ar-st.exp (get_debug_format): Likewise.
	* gdb.base/commands.exp (temporary_breakpoint_commands): Likewise.
	* gdb.base/display.exp: Likewise.
	* gdb.base/foll-exec.exp (do_exec_tests): Likewise.
	* gdb.base/foll-fork.exp (catch_fork_child_follow): Likewise.
	* gdb.base/restore.exp (restore_tests): Likewise.
	* gdb.base/sepdebug.exp: Likewise.
	* gdb.base/watchpoint.exp: Likewise.
	* gdb.mi/mi-cli.exp: Added argument for new "disp" field.
	* gdb.mi/mi-pending.exp: Likewise.
	* gdb.mi/mi-simplerun.exp (test_running_the_program): Likewise.
	* gdb.mi/mi-until.exp (test_runnint_to_foo): Likewise.
	* gdb.mi/mi-var-cmd.exp: Likewise.
	* gdb.mi/mi-var-display.exp: Likewise.
	* gdb.mi/mi2-cli.exp: Likewise.
	* gdb.mi/mi2-simplerun.exp (test_running_the_program): Likewise.
	* gdb.mi/mi2-until.exp (test_running_to_foo): Likewise.
	* gdb.mi/mi2-var-display.exp: Likewise.
	* lib/gdb.exp (gdb_breakpoint): Pattern for temporary breakpoint.
	* lib/mi-support.exp (mi_runto_helper): Use "after_reason" argument for
	new "disp" field.
	(mi_expect_stop): Move after_reason argument to be really after
	reason. This is to support fix for PR2424.

2008-04-15  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.dwarf2/dw2-ranges.S: New stub `.file' directive.

2008-04-13  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.mi/mi-var-cmd.exp: Adjust for appearance of type_changed
	field.  Add more floating varobj tests.
	* gdb.mi/mi2-var-cmd.exp: Adjust for appearance of type_changed
	field.
	* gdb.mi/var-cmd.c (do_at_tests_callee, do_at_tests): New.
	(main): Call do_at_tests.
	* lib/mi-support.exp (mi_create_floating_varobj)
	(mi_varobj_update_with_type_change): New.

2008-04-09  Marc Khouzam  <marc.khouzam@ericsson.com>

	* gdb.mi/mi2-var-display.exp: Added tests for the new -f
	option of -var-evaluate-expression.
	* gdb.mi/mi2-var-display.exp: Likewise.

2008-04-07  Vladimir Prus  <vladimir@codesourcery.com>

	Introduce test setup helpers.
	* lib/gdb.exp (build_executable, clean_restart)
	(prepare_for_testing): New.
	* gdb.base/break.exp: Use prepare_for_testing, and clean_restart.
	* gdb.base/return.exp: Likewise.
	* gdb.base/ending-run.exp: Likewise.

2008-04-07  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.mi/mi-async.exp: New test for asynchronous Machine
	Interface (MI) responses.

2008-04-06  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.cp/breakpoint.cc: New code to test conditions involving
	member variables.
	* gdb.cp/breakpoint.exp: Test condition involving member
	variables.

2008-04-05  Vladimir Prus  <vladimir@codesourcery.com>

	* lib/mi-support.exp (mi_expect_stop): New.
	(mi_run_cmd): Change the
	token.  Use mi_send_resuming_command, use
	mi_expect_stop.
	(mi_execute_to_helper): Rename to mi_execute_to.
	(mi_send_resuming_command): Add more error patterns.
	(mi_wait_for_stop): Renamed to...
	(mi_get_stop_line): ...this.
	(mi_run_inline_test): Adjust.

	* gdb.mi/mi-cli.exp: Use mi_execute_to/mi_expect_stop.
	* gdb.mi/mi-console.exp: Likewise.
	* gdb.mi/mi-pending.exp: Likewise.
	* gdb.mi/mi-simplerun.exp: Likewise.
	* gdb.mi/mi-stack.exp: Likewise.
	* gdb.mi/mi-stepi.exp: Likewise.
	* gdb.mi/mi-syn-frame.exp: Add comment.
	* gdb.mi/mi-until.exp: Likewise.
	* gdb.mi/mi-var-display.exp: Likewise.
	* gdb.mi/mi-watch.exp: Likewise.
	* gdb.mi/mi2-cli.exp: Likewise.
	* gdb.mi/mi2-console.exp: Likewise.
	* gdb.mi/mi2-simplerun.exp: Likewise.
	* gdb.mi/mi2-stack.exp: Likewise.
	* gdb.mi/mi2-stepi.exp: Likewise.
	* gdb.mi/mi2-until.exp: Likewise.
	* gdb.mi/mi2-var-display.exp: Likewise.
	* gdb.mi/mi2-watch.exp: Likewise.

2008-04-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.base/watch_thread_num.exp: Use gdb_compile_pthreads.

	* gdb.cp/mb-templates.exp: Skip test on spu*-*-* targets.

2008-04-04  Pedro Alves  <pedro@codesourcery.com>

	* gdb.mi/mi-disassemble.exp, gdb.mi/mi-stack.exp,
	gdb.mi/mi-syn-frame.exp, gdb.mi/mi-var-block.exp,
	gdb.mi/mi-var-cmd.exp, gdb.mi/mi-var-display.exp,
	gdb.mi/mi2-disassemble.exp, gdb.mi/mi2-stack.exp,
	gdb.mi/mi2-syn-frame.exp, gdb.mi/mi2-var-block.exp,
	gdb.mi/mi2-var-cmd.exp, gdb.mi/mi2-var-display.exp: Update to not
	expect an mi error duplicated in stderr.

2008-04-03  Joel Brobecker  <brobecker@adacore.com>

	* gdb.cp/ovldbreak.cc: Add missing bodies for methods foo::foofunc.
	* gdb.cp/ovldbreak.exp: Set multiple-symbols to "ask".
	Add a couple of tests that verify the behavior when the new setting
	is set to "cancel" and "all".
	* gdb.cp/method2.exp, gdb.cp/templates.exp: Set multiple-symbols to
	"ask" before we start the testing.

2008-04-01  Aleksandar Ristovski  <aristovski@qnx.com>

	* gdb.cp/casts.cc: Add class reference variables.
	* gdb.cp/casts.exp: New test cases for up/down casting references.

2008-04-01  Marc Khouzam  <marc.khouzam@ericsson.com>

	* gdb.mi/mi-var-display.exp: Stop at end of do_special_tests
	instead of beginning to make an extra test pass.
	* gdb.mi/mi2-var-display.exp: Likewise.

2008-03-31  Maciej W. Rozycki  <macro@mips.com>

	* gdb.base/break.exp: Mark failures as such.  Fix formatting.

2008-03-31  Markus Deuling  <deuling@de.ibm.com>
	    Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.arch/spu-info.exp (info spu mailbox): Check for correct initial
	value.  Add xfail for older kernels.

2008-03-28  Aleksandar Ristovski  <aristovski@qnx.com>

	Bring mi-support in line with gdb.exp.
	* lib/mi-support.exp (default_mi_gdb_start): Rename from mi_gdb_start.
	(mi_gdb_start): New function.

2008-03-28  Maciej W. Rozycki  <macro@mips.com>

	* gdb.mi/mi-var-cmd.exp: Fix a typo.

2008-03-26  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.mi/mi-var-display.exp: Remove obsolete xfail.
	* gdb.mi/mi2-var-display.exp: Likewise.

2008-03-26  Vladimir Prus  <vladimir@codesourcery.com>

	* lib/mi-support.exp (mi_create_varobj_checked): New.
	(mi_list_varobj_children): Allow to check for a
	value.
	(mi_list_array_varobj_children): New.

	* gdb.mi/mi-var-child.exp: Use mi_create_varobj
	and mi_list_varobj_children, as opposed to hardcoding
	expected strings.
	* gdb.mi/gdb701.exp: Likewise.
	* gdb.mi/gdb792.exp: Likewise.
	* gdb.mi/mi-var-block.exp: Likewise.
	* gdb.mi/mi-var-cmd.exp: Likewise.
	* gdb.mi/mi-var-invalidate.exp: Likewise.
	* gdb.mi/mi2-var-block.exp: Likewise.
	* gdb.mi/mi2-var-child.exp: Likewise.
	* gdb.mi/mi2-var-cmd.exp: Likewise.
	* gdb.mi/mi2-var-display.exp: Likewise.

2008-03-24  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix random false FAILs on i386.
	* gdb.base/prelink.exp: Use `--no-exec-shield' for prelink.

2008-03-23  Daniel Jacobowitz  <dan@codesourcery.com>

	PR gdb/544
	* gdb.cp/annota2.exp, gdb.cp/annota3.exp: Reapply 2008-03-21 changes.

2008-03-23  Daniel Jacobowitz  <dan@codesourcery.com>

	PR gdb/544
	* gdb.cp/annota2.exp, gdb.cp/annota3.exp: Revert 2008-03-21 changes.

2008-03-21  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.cp/annota2.exp, gdb.cp/annota3.exp: Remove KFAIL for
	fixed PR gdb/544.

2008-03-21  Pedro Alves  <pedro@codesourcery.com>

	* gdb.threads/fork-child-threads.exp: Test next over fork.

2008-03-21  Chris Demetriou  <cgd@google.com>

	* gdb.base/break.exp (rbreak junk): New test for rbreak
	"Junk at end of arguments" issue.

2008-03-21  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/printcmds.exp (test_print_array_constants): Do not expect
	*& to work on created array elements.
	(Top level): Test print $pc with a file.  Test string operations
	without a target.
	* gdb.base/ptype.exp: Do not expect *& to work on created array
	elements.

2008-03-21  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.threads/killed.exp, gdb.threads/manythreads.exp,
	gdb.threads/staticthreads.exp: Update exit query.

2008-03-07  Sandra Loosemore  <sandra@codesourcery.com>

	* lib/gdb.exp (gdb_load_cmd): Fix $args typo in timeout error message.

2008-03-03  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/watchpoint.c (global_ptr, func4): New.
	(main): Call func4.
	* gdb.base/watchpoint.exp: Call test_inaccessible_watchpoint.
	(test_inaccessible_watchpoint): New.

2008-02-29  Maciej W. Rozycki  <macro@mips.com>

	* lib/gdb.exp (gdb_expect): Of all the timeouts provided always
	select the largest.

2008-02-28  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/annota1.exp, gdb.cp/annota2.exp: Update for fewer
	frames-invalid annotations.

2008-02-28  Pierre Muller  <muller@ics.u-strasbg.fr>

	* gdb.base/assign.exp: avoid same output for different tests.

2008-02-27  Doug Evans  <dje@google.com>

	* gdb.base/sigstep.exp (breakpoint_to_handler): Remove setup_kfail
	for bug 1738.
	(breakpoint_to_handler_entry): Ditto.

2008-02-27  Joel Brobecker  <brobecker@adacore.com>

	* gdb.base/ending-run.exp: Use the first line of code inside
	function body to test breakpoints.
	* gdb.mi/mi-break.exp, gdb.mi/mi2-break.exp: Adjust the actual
	location where the breakpoint is inserted when using the line
	where a function is declared. Fix typo in the description of
	one of the tests.
	* gdb.mi/mi-simplerun.exp, gdb.mi/mi2-simplerun.exp: Likewise.

2008-02-27  Pierre Muller  <muller@ics.u-strasbg.fr>

	* gdb.arch/i386-sse.exp: avoid same output for two breakpoint setting
	tests.

2008-02-27  Pierre Muller  <muller@ics.u-strasbg.fr>

	* gdb.base/args.exp: avoid same output for tests
	with single quotes.

2008-02-26  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.base/annota1.exp: Adjust for 'info break'
	format changes.
	* gdb.base/annota3.exp: Likewise.
	* gdb.base/break.exp: Likewise.
	* gdb.base/condbreak.exp: Likewise.
	* gdb.base/pending.exp: Likewise.
	* gdb.base/sepdebug.exp: Likewise.
	* gdb.base/unload.exp: Likewise.
	* gdb.cp/ovldbreak.exp: Likewise.
	* gdb.mi/mi-pending.exp: Likewise.

2008-02-07  Doug Evans  <dje@google.com>

	* gdb.cp/mb-inline.exp: New.
	* gdb.cp/mb-inline.h: New.
	* gdb.cp/mb-inline1.cc: New.
	* gdb.cp/mb-inline2.cc: New.

2008-02-06  Pierre Muller  <muller@ics.u-strasbg.fr>

	* gdb.pascal/floats.pas: New test program.
	* gdb.pascal/floats.exp: New testcase.

2008-02-06  Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* gdb.base/callfuncs.c (t_float_many_args): New function.
	(t_double_many_args): New function.
	* gdb.base/callfuncs.exp: Add tests for exceeding float
	and double parameters passed through the stack.

2008-02-05  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/complete/pck.ads, gdb.ada/complete/pck.adb,
	gdb.ada/complete/foo.adb: New files.
	* gdb.ada/complete.exp: New testcase.

2008-02-03  Doug Evans  <dje@google.com>

	* gdb.base/whatis-exp.exp: Fix expected result of whatis x+y, x-y, x*y.

	* gdb.cp/gdb2384.exp: New file.
	* gdb.cp/gdb2384.cc: New file.
	* gdb.cp/gdb2384-base.h: New file.
	* gdb.cp/gdb2384-base.cc: New file.

2008-02-02  Doug Evans  <dje@google.com>

	* gdb.base/sigall.c (main): Ensure all signals aren't blocked.

2007-02-01  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/sym_print_name: New test program.
	* gdb.ada/sym_print_name.exp: New testcase.

2007-02-01  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/nested/hello.adb: New file.
	* gdb.ada/nested.exp: New testcase.
	* gdb.ada/Makefile.in (EXECUTABLES): Update list.

2008-02-01  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.mi/basic.c (return_1): New function.
	* gdb.mi/mi-break.exp: Make sure that failed -break-insert
	don't cause future evaluations of function to report
	creation of internal breakpoints.

2008-02-01  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.mi/mi-break.exp (test_error): New.
	Call it.

2008-01-31  Luis Machado  <luisgpm@br.ibm.com>

	* gdb.arch/ppc64-atomic-inst.c: New testcase source file.
	* gdb.arch/ppc64-atomic-inst.exp: New testcase expect file.

2008-01-31  Pierre Muller  <muller@ics.u-strasbg.fr>

	* gdb.pascal/integers.pas: New test program.
	* gdb.pascal/integers.exp: New testcase.

2008-01-31  Pierre Muller  <muller@ics.u-strasbg.fr>

	* gdb.pascal/hello.exp (binfile): Add ${EXEEXT}.

2008-01-30  Luis Machado  <luisgpm@br.ibm.com>

	* gdb.arch/powerpc-d128-regs.exp: New testcase expect file.
	* gdb.arch/powerpc-d128-regs.c: New testcase source file.

2008-01-30  Paul Hilfinger  <hilfinger@adacore.com>

	* gdb.ada/formatted_ref: New test program.
	* gdb.ada/formatted_ref.exp: New testcase.

	* gdb.cp/formatted-ref.cc: New file.
	* gdb.cp/formatted-ref.exp: New testcase.

2008-01-30  Joel Brobecker  <brobecker@adacore.com>

	* gdb.base/ptype.exp: Add testing of "ptype $pc".

2008-01-30  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.mi/mi-file.exp, gdb.mi/mi2-file.exp
	(test_file_list_exec_source_file): Update to new macro-info field.

2008-01-30  Paul N. Hilfinger  <hilfinger@adacore.com>

	* gdb.ada/exprs: New test program.
	* gdb.ada/exprs.exp: New testcase.

2008-01-30  Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* dfp-test.c (DELTA, DELTA_B): New definitions.
	(double_val1, double_val2, double_val3, double_val4, double_val5,
	double_val6, double_val7, double_val8, double_val9, double_val10,
	double_val11, double_val12, double_val13, double_val14, dec32_val1,
	dec32_val2, dec32_val3, dec32_val4, dec32_val5, dec32_val6, dec32_val7,
	dec32_val8, dec32_val9, dec32_val10, dec32_val11, dec32_val12,
	dec32_val13, dec32_val14, dec32_val15, dec32_val16, dec64_val1,
	dec64_val2, dec64_val3, dec64_val4, dec64_val5, dec64_val6, dec64_val7,
	dec64_val8, dec64_val9, dec64_val10, dec64_val11, dec64_val12,
	dec64_val13, dec64_val14, dec64_val15, dec64_val16, dec128_val1,
	dec128_val2, dec128_val3, dec128_val4, dec128_val5, dec128_val6,
	dec128_val7, dec128_val8, dec128_val9, dec128_val10, dec128_val11,
	dec128_val12, dec128_val13, dec128_val14, dec128_val15,
	dec128_val16): New global variables.
	(decimal_dec128_align): New function.
	(decimal_mixed): Likewise.
	(decimal_many_args_dec32): Likewise.
	(decimal_many_args_dec64): Likewise.
	(decimal_many_args_dec128): Likewise.
	(decimal_many_args_mixed): Likewise.
	* dfp-test.exp: Add tests calling new inferior functions.

2008-01-29  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.server/ext-attach.c, gdb.server/ext-attach.exp,
	gdb.server/ext-run.exp: New files.
	* lib/gdbserver-support.exp (gdbserver_download): New.
	(gdbserver_start): New.  Update gdbserver expected
	output.
	(gdbserver_spawn): Use them.
	(gdbserver_start_extended): New.

2008-01-29  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/foll-exec.exp: Update header.  Skip on remote targets.
	Run on GNU/Linux.
	(do_exec_tests): Check for systems which do not support catchpoints.
	Do not match START.
	* gdb.base/foll-fork.exp: Update header.  Skip on remote targets.
	Run on GNU/Linux.  Enable verbose output.
	(check_fork_catchpoints): New.
	(explicit_fork_child_follow, catch_fork_child_follow)
	(tcatch_fork_parent_follow): Update expected messages.
	(do_fork_tests): Use check_fork_catchpoints.
	* gdb.base/foll-vfork.exp: Update header.  Skip on remote targets.
	Run on GNU/Linux.  Enable verbose output.
	(check_vfork_catchpoints): New.
	(vfork_parent_follow_to_bp, tcatch_vfork_then_child_follow): Update
	expected messages.
	(do_vfork_and_exec_tests): Use check_fork_catchpoints.

2008-01-29  Jim Blandy  <jimb@red-bean.com>

	* lib/gdbserver-support.exp (gdb_target_cmd): Recognize 'unknown
	host' errors.
	* lib/mi-support.exp (mi_gdb_target_cmd): Same.

2008-01-29  Jim Blandy  <jimb@red-bean.com>

	* gdb.threads/sigthread.c: Use barriers to ensure that
	child_thread and child_thread_two are always initialized before we
	start to use them.

2008-01-29  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.base/watchpoint-solib.exp: New.
	* gdb.base/watchpoint-solib.c: New.
	* gdb.base/watchpoint-solib-shr.c: New.

2008-01-29  Pierre Muller  <muller@ics.u-strasbg.fr>

	* gdb.base/gdb1056.exp: Add unsigned integer test.

2008-01-28  Doug Evans  <dje@google.com>

	* gdb.base/maint.exp: Tighten patterns looking for .text/.data/.bss.

2008-01-27  Jim Blandy  <jimb@codesourcery.com>

	* gdb.base/expand-psymtabs.exp: Doc fix to the doc fix.

	* gdb.base/expand-psymtabs.exp: Doc fix.

2008-01-26  Mark Kettenis  <kettenis@gnu.org>

	* gdb.gdb/selftest.exp (do_steps_and_nexts): Add more matches.

2008-01-24  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.mi/mi2-var-display.exp: Add value field to tests for output of
	-var-set-format.

2008-01-23  Chris Demetriou  <cgd@google.com>

	* gdb.threads/thread_events.c: New testcase source file.
	* gdb.threads/thread_events.exp: New testcase expect file.

2008-01-23  Nick Roberts  <nickrob@snap.net.nz>

	* lib/gdb.exp: Add the variable octal.

	* gdb.mi/mi-var-display.exp: Add value field to tests for output of
	-var-set-format.

2008-01-22  Daniel Jacobowitz  <dan@codesourcery.com>
	    Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.base/float.exp: Allow missing floating point for m68k and
	PowerPC.

2008-01-22  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.mi/basics.c: Setup for testing breakpoints
	ignore count.
	* gdb.mi/mi-break.exp: Test for breakpoint ignore count.
	* gdb.mi/mi-cli.exp: Adjust.
	* gdb.mi/mi2-cli.exp: Adjust.

2008-01-17  Pedro Alves  <pedro@codesourcery.com>

	* gdb.mi/mi-var-child.c (do_children_tests): Add 'dummy' integer
	and 'dummy_ptr' integer pointer.  Initialize struct_declarations
	with dummy_ptr's address.
	* gdb.mi/var-cmd.c (do_children_tests): Likewise.
	* gdb.mi/mi-var-child.exp: int_ptr_ptr is now always "editable" on
	all targets.
	* gdb.mi/mi2-var-child.exp: Likewise.

2008-01-09  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/null_array: New test program.
	* gdb.ada/null_array.exp: New testcase.

2008-01-09  Luis Machado  <luisgpm@br.ibm.com>

	* gdb.base/printcmds.exp (test_printf_with_dfp): Update printf calls
	with required float modifiers.

2008-01-08  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/funcall_param: New test program.
	* gdb.ada/funcall_param.exp: New testcase.

2008-01-08  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/arrayparam: New test program.
	* gdb.ada/arrayparam.exp: New testcase.

2008-01-08  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/print_pc.exp: Add verification of where gdb_start_cmd
	landed.  Should also fix random failures in the test following it.

2008-01-07  Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* gdb.base/dfp-exprs.exp (test_dfp_arithmetic_expressions): Add tests
	for expressions with decimal float values.
	(test_dfp_conversions): New function to test casts to and from
	decimal float types.
	Call test_dfp_conversions.
	* gdb.base/dfp-test.c (struct decstruct): Add float4 and double8
	elements.
	(main): Initialize ds.float4 and ds.double8 elements.
	* gdb.base/dfp-test.exp (d32_set_tests): Fix typo.  Adjust expect
	string to new error message.
	(d64_set_tests): Likewise.
	(d128_set_tests): Likewise.
	Add tests for expressions with decimal float variables.  Add tests for
	conversions to and from decimal float types.

2008-01-05  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/packed_tagged/comp_bug.adb: New file.
	* gdb.ada/packed_tagged.exp: New testcase.

2008-01-04  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/homonym/homonym.ads, gdb.ada/homonym/homonym.adb,
	gdb.ada/homonym/homonym_main.adb: New files.
	* gdb.ada/homonym.exp: New testcase.

2008-01-04  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/packed_array.exp: Add testing of references to
	a packed array.

2008-01-04  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/type_coercion/ident.adb, gdb.ada/type_coercion/assign.adb:
	New files.
	* gdb.ada/type_coercion.exp: New testcase.

2008-01-04  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/tagged/pck.ads, gdb.ada/tagged/pck.adb,
	gdb.ada/tagged/foo.adb: New file.
	* gdb.ada/tagged.exp: New testcase.

2008-01-04  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/ptype_field/pck.ads, gdb.ada/ptype_field/pck.adb,
	gdb.ada/ptype_field/foo.adb: New files.
	* gdb.ada/ptype_field.exp: New testcase.

2008-01-03  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/print_pc.exp: New testcase.

2008-01-03  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/taft_type/pck.ads, gdb.ada/taft_type/pck.adb,
	gdb.ada/taft_type/p.adb: New files.
	* gdb.ada/taft_type.exp: New testcase.

2008-01-03  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/array_bounds/bar.adb: New file.
	* gdb.ada/array_bounds.exp: New testcase.

2008-01-03  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/arrayptr/pck.ads, gdb.ada/arrayptr/pck.adb,
	gdb.ada/arrayptr/foo.adb: New files.
	* gdb.ada/arrayptr.exp: New testcase.

2008-01-03  Joel Brobecker  <brobecker@adacore.com>

	* gdb.base/set-lang-auto.exp: New testcase.

2008-01-03  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/fun_addr/foo.adb: New file.
	* gdb.ada/fun_addr.exp: New testcase.

2008-01-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.threads/fork-child-threads.exp, gdb.threads/fork-child-threads.c:
	New files

2008-01-02  Joel Brobecker  <brobecker@adacore.com>

	* array_subscript_addr/p.adb: New file.
	* array_subscript_addr.exp: New testcase.

2008-01-02  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/str_cmp_ref/pck.ads, gdb.ada/str_cmp_ref/foo.adb:
	New files.
	* gdb.ada/str_cmp_ref.exp: New testcase.

2008-01-01  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/fun_in_declare/pck.ads, gdb.ada/fun_in_declare/pck.adb,
	gdb.ada/fun_in_declare/foo.adb: New files.
	* gdb.ada/fun_in_declare.exp: New testcase.

2008-01-01  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/ref_param/foo.adb, gdb.ada/ref_param/pck.adb,
	gdb.ada/ref_param/pck.ads: New files.
	* gdb.ada/ref_param.exp: New testcase.

2008-01-01  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/interface/types.ads, gdb.ada/interface/types.adb,
	gdb.ada/interface/foo.adb: New files.
	* gdb.ada/interface.exp: New testcase.

2007-12-31  Jim Blandy  <jimb@codesourcery.com>

	* gdb.base/multi-forks.exp: Consume all output from child
	processes before proceeding to next test.

2007-12-29  Jim Blandy  <jimb@codesourcery.com>

	* configure: Regenerated.

2007-12-27  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/fixed_cmp/pck.ads, gdb.ada/fixed_cmp/pck.adb,
	gdb.ada/fixed_cmp/fixed.adb: New files.
	* gdb.ada/fixed_cmp.exp: New testcase.

2007-12-27  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/boolean_expr.exp: New testcase.

2007-12-26  Jim Blandy  <jimb@codesourcery.com>

	* gdb.base/multi-forks.exp: Doc fix.

2007-12-26  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/Makefile.in (EXECUTABLES): Update list.
	* gdb.ada/char_param.exp: Do not compile our test program with
	-gnata, this is unnecessary.
	* gdb.ada/char_param/pck.ads: Remove unnecessary "with".

2007-12-24  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/print_chars/pck.ads, gdb.ada/print_chars/pck.adb,
	gdb.ada/print_chars/foo.adb: New files.
	* gdb.ada/print_chars.exp: New testcase.

2007-12-24  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/char_param/pck.ads, gdb.ada/char_param/pck.adb,
	gdb.ada/char_param/foo.adb: New files.
	* gdb.ada/char_param.exp: New testcase.

2007-12-22  Jim Blandy  <jimb@codesourcery.com>

	* gdb.asm/asm-source.exp: Use gdb_get_line_number, instead of
	hard-coding source line numbers into the test.
	* gdb.asm/asmsrc1.s, gdb.asm/asmsrc2.s: Add comments for
	gdb_get_line_number to find.

2007-12-22  Joel Brobecker  <brobecker@adacore.com>

	* gdb.base/ptype.c (highest): New struct type.
	(the_highest): New variable of that type.
	(main): Add dummy assignment to a field of variable the_highest.
	* gdb.base/ptype.exp: Test type printing of our new variable.

2007-12-19  Pierre Muller  <muller@ics-u-strasbg.fr>

	* (gdb.base/watch_thread_num.exp): Add breakpoint at thread_function
	and record first explicitly generated thread number.
	Use that thread number for thread specific watchpoint test.
	Add iteration number to repetitive tests.

2007-12-16  Carlos Eduardo Seo  <cseo@linux.vnet.ibm.com>
	    Jim Blandy  <jimb@codesourcery.com>

	* gdb.base/expand-psymtabs.c: New testcase
	source file.
	* gdb.base/expand-psymtabs.exp: New testcase
	expect file.

2007-12-17  Luis Machado  <luisgpm@br.ibm.com>

	* testsuite/gdb.base/watch_thread_num.c: New testcase source file.
	* testsuite/gdb.base/watch_thread_num.exp: New testcase expect file.

2007-12-17  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/frame_args/foo.adb: New file.
	* gdb.ada/frame_args/pck.ads: New file.
	* gdb.ada/frame_args/pck.adb: New file.
	* gdb.ada/frame_args.exp: New testcase.

2007-12-17  Joel Brobecker  <brobecker@adacore.com>

	* gdb.base/frame-args.c: New file.
	* gdb.base/frame-args.exp: New testcase.

2007-12-16  Daniel Jacobowitz  <dan@codesourcery.com>
	    Joseph Myers  <joseph@codesourcery.com>

	* gdb.base/siginfo-addr.exp, gdb.base/siginfo-addr.c: New.

2007-12-14  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.mi/mi-pending.exp: New.
	* gdb.mi/mi-pending.c: New.
	* gdb.mi/mi-pendshr.c: New.

2007-12-06  Jim Blandy  <jimb@codesourcery.com>

	* gdb.base/default.exp: Update expected output for 'info catch'.

2007-12-10  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* lib/gdb.exp (build_id_debug_filename_get): OBJCOPY pipe being read
	must be set to binary.

2007-12-09  Pedro Alves  <pedro_alves@portugalmail.pt>

	* lib/gdb.exp (gdb_gnu_strip_debug): Remove debug format test.

2007-11-30  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.server/file-transfer.exp, gdb.server/transfer.txt,
	gdb.mi/mi-file-transfer.exp: New.

2007-11-25  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.dwarf2/dw2-ranges.S, gdb.dwarf2/dw2-ranges.exp: New files.

2007-11-22  Maciej W. Rozycki  <macro@mips.com>

	* gdb.trace/backtrace.exp: Fix a typo.
	* gdb.trace/circ.exp: Likewise.
	* gdb.trace/collection.exp: Likewise.
	* gdb.trace/limits.exp: Likewise.
	* gdb.trace/report.exp: Likewise.
	* gdb.trace/tfind.exp: Likewise.
	* gdb.trace/while-dyn.exp: Likewise.

2007-11-21  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.mi/mi2-var-child.exp, gdb.mi/mi-var-child.exp: Variables
	objects of pointers that can't be dereferenced are now
	"noneditable".

2007-11-17  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* Makefile.in (Makefile): Do not depend on target_makefile_frag.
	(target_cpu): Remove.

2007-10-15  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.base/ending-run.exp: Expect the list of cleared
	breakpoint to come in natural order, not the reversed one.

2007-11-07  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.mi/mi-var-child.c (do_child_deletion): New.
	* gdb.mi/mi-var-child.exp: Run child_deletion tests.

2007-11-05  Luis Machado  <luisgpm@br.ibm.com>

	* gdb.base/printcmds.exp: New function
	test_printf_with_dfp.

2007-11-02  Doug Evans  <dje@google.com>

	* gdb.disasm/t01_mov.s: Remove carriage returns.
	* gdb.disasm/t02_mova.s: Ditto.
	* gdb.disasm/t03_add.s: Ditto.
	* gdb.disasm/t04_sub.s: Ditto.
	* gdb.disasm/t05_cmp.s: Ditto.
	* gdb.disasm/t06_ari2.s: Ditto.
	* gdb.disasm/t07_ari3.s: Ditto.
	* gdb.disasm/t08_or.s: Ditto.
	* gdb.disasm/t09_xor.s: Ditto.
	* gdb.disasm/t10_and.s: Ditto.
	* gdb.disasm/t11_logs.s: Ditto.
	* gdb.disasm/t12_bit.s: Ditto.
	* gdb.disasm/t13_otr.s: Ditto.

2007-11-01  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.cp/arg-reference.exp, gdb.cp/arg-reference.c: New files.

2007-10-30  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.base/dfp-test.exp: Fail gracefully if toolchain does not
	provide DFP support.

2007-10-30  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.arch/altivec-abi.exp: Run multiple times for GCC on GNU/Linux.
	Test "set powerpc vector-abi".  Skip auto-detection tests for old
	toolchains.

2007-10-30  Pedro Alves  <pedro_alves@portugalmail.pt>

	* lib/gdb.exp, gdb.base/sepdebug.exp: Replace usage of eq and ne
	with [string compare].

2007-10-30  Pedro Alves  <pedro_alves@portugalmail.pt>

	* gdb.base/sepdebug.exp (binfile): Add ${EXEEXT}.
	* gdb.base/sepsymtab.exp (binfile): Add ${EXEEXT}.

2007-10-25  Luis Machado  <luisgpm@br.ibm.com>

	* gdb.opt/clobbered-registers-O2.c: New testcase source file.
	* gdb.opt/clobbered-registers-O2.exp: New testcase expect file.
	* gdb.opt/Makefile.in: New makefile.
	* Makefile.in: Create new directory "gdb.opt".
	* configure.ac: Add "gdb.opt" directory.
	* configure: Regenerated.

2007-10-25  Doug Evans  <dje@google.com>

	* gdb.cp/mb-ctor.exp: Check skip_cplus_tests.
	* gdb.cp/mb-templates.exp: Check skip_cplus_tests.

2007-10-15  Wu Zhou  <woodzltc@cn.ibm.com>
	    Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* gdb.base/dfp-exprs.exp: new file adding tests for Decimal
	Floating Point expressions.
	* gdb.base/dfp-test.exp: new file adding tests for Decimal
	Floating Point variables.
	* gdb.base/dfp-test.c: new file containing program with Decimal
	Floating variables, used by gdb.base/dfp-test.exp.

2007-10-23  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.threads/multi-create.c, gdb.threads/multi-create.exp: New.

2007-10-21  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.arch/altivec-abi.exp (compile_flags): Use -mabi=altivec when
	compiling test case with GCC.
	* gdb.arch/altivec-regs.exp (compile_flags): Likewise.

2007-10-21  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.arch/altivec-regs.exp (decimal_vector): Adjust for output
	format changes.

2007-10-18  Michael Snyder  <msnyder@specifix.com>

	* gdb.base/dbx.exp: Add missing "-re " operator.

2007-10-16  Gaius Mulley  <gaius@glam.ac.uk>

	* configure.ac: Added gdb.modula2/Makefile to AC_OUTPUT.
	* configure.ac: Removed trailing spaces after backslash.
	* gdb.modula2: New directory.
	* gdb.modula2/Makefile.in: New file.
	* gdb.modula2/unbounded-array.exp: New file.
	* gdb.modula2/unbounded1.c: New file.

2007-10-15  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.xml/tdesc-regs.exp: Add PowerPC support.

2007-10-15  Pierre Muller  <muller@ics.u-strasbg.fr>

	* gdb.base/sigstep.c (main): Add checks for
	return values for setitimer call.
	Call setitimer again with itimer = ITIMER_REAL
	if first call to setitimer fails.

2007-10-11  Kazu Hirata  <kazu@codesourcery.com>

	* lib/gdb.exp (gdb_load_cmd): Print out $loadtimeout instead
	of $timeout.

2007-10-09  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.server/server-run.exp: Test for dynamic linker symbols.

2007-10-09  Pierre Muller  <muller@ics.u-strasbg.fr>

	* lib/gdb.exp (gdb_run_cmd): Move comment outside
	of gdb_expect call, to avoid interruption.

2007-10-09  Pedro Alves  <pedro_alves@portugalmail.pt>

	* gdb.base/whatis.c (v_long_long, v_signed_long_long)
	(v_unsigned_long_long, v_long_long_array)
	(v_signed_long_long_array, v_unsigned_long_long_array)
	(slong_long_addr, a_slong_long_addr, v_long_long_pointer)
	(v_signed_long_long_pointer, v_unsigned_long_long_pointer)
	[!NO_LONG_LONG]: New.
	(t_struct, v_struct2, t_union, v_union2) [!NO_LONG_LONG]: Add
	v_long_long_member.

	(v_long_long_func, v_signed_long_long_func)
	(v_unsigned_long_long_func) [!NO_LONG_LONG]: New.
	(main) [!NO_LONG_LONG]: Initialize long long variants.

	* gdb.base/whatis.exp: If board file requests no_long_long, build
	test with NO_LONG_LONG defined.  Test long long, signed long long,
	and unsigned long long variants but only if board file doesn't
	disable it.

2007-10-08  Pierre Muller  <muller@ics.u-strasbg.fr>
	    Daniel Jacobowitz  <dan@codesourcery.com>

	* Makefile.in (ALL_SUBDIRS): Add gdb.pascal.
	* configure.ac (AC_OUTPUT): Add gdb.pascal/Makefile.
	* configure: Regenerated.
	* gdb.pascal/Makefile.in, gdb.pascal/hello.exp, gdb.pascal/hello.pas,
	gdb.pascal/types.exp, lib/pascal.exp: New files.

2007-10-02  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.cp/classes.exp (do_tests): Always step to the line after the
	call.
	* gdb.mi/mi-simplerun.exp (test_controlled_execution): Allow finish
	to return to the call.
	* gdb.mi/mi2-simplerun.exp (test_controlled_execution): Likewise.
	* gdb.mi/mi-return.exp (test_return_simple): Likewise.
	* gdb.mi/mi2-return.exp (test_return_simple): Likewise.
	* gdb.mi/mi-until.exp (test_until): Likewise.
	* gdb.mi/mi2-until.exp (test_until): Likewise.

2007-10-01  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.mi/var-cmd.c (do_locals_tests): Define lcharacter as a
	two-char array.
	* gdb.mi/mi-var-cmd.exp, gdb.mi/mi2-var-cmd.exp: Use lcharacter[0].

2007-09-30  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.threads/watchthreads.c (thread_function): Sleep between
	iterations.
	* gdb.threads/watchthreads.exp: Allow two watchpoints to trigger
	at once for S/390.  Generate matching fails and passes.

2007-09-27  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.mi/var-cmd.c (do_children_tests): Initialize
	the 'struct_declarations' variable to zeros.

2007-09-24  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.cp/mb-ctor.cc: New.
	* gdb.cp/mb-ctor.exp: New.
	* gdb.cp/mb-templates.cc: New.
	* gdb.cp/mb-templates.exp: New.

2007-09-23  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.cp/pass-by-ref.cc, gdb.cp/pass-by-ref.exp: New files.

2007-09-23  Pedro Alves  <pedro_alves@portugalmail.pt>

	* configure.ac: Do gdb.stabs tests by default on Cygwin and MinGW
	targets.
	* configure: Regenerate.

2007-09-23  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.base/annota1.exp: Adjust for 'info break'
	format changes.
	* gdb.base/annota3.exp: Likewise.
	* gdb.base/break.exp: Likewise.
	* gdb.base/condbreak.exp: Likewise.
	* gdb.base/pending.exp: Likewise.
	* gdb.base/sepdebug.exp: Likewise.
	* gdb.base/unload.exp: Likewise.
	* gdb.base/ovldbreak.exp: Likewise.

2007-09-22  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.base/pending.exp: No longer expect "Pending breakpoint resolved"
	messages.
	* gdb.base/chng-syms.exp: Likewise.
	* gdb.base/unload.exp: Likewise.

2007-09-21  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/sepdebug.exp (test_different_dir): Append to pf_prefix.

2007-09-17  Daniel Jacobowitz  <dan@codesourcery.com>

	* schedlock.c (NUM): Change to 1.
	(main): Use args[0] for the main thread.
	* schedlock.exp: Only expect two threads.  Only issue one pass or fail
	regardless of the number of threads.

2007-09-14  Maciej W. Rozycki  <macro@mips.com>

	* gdb.mi/mi-watch.exp (test_watchpoint_all): Pass the watchpoint
	type down.
	(test_watchpoint_triggering): XFAIL the sw watchpoint scope
	test.
	* gdb.mi/mi2-watch.exp (test_watchpoint_all): Pass the
	watchpoint type down.
	(test_watchpoint_triggering): XFAIL the sw watchpoint scope
	test.

2007-09-14  Maciej W. Rozycki  <macro@mips.com>

	* gdb.mi/mi-watch.exp (test_watchpoint_all): New function.
	Move all the tests here and run them twice, once using software
	watchpoints and once using hardware watchpoints.
	* gdb.mi/mi2-watch.exp (test_watchpoint_all): Likewise.

2007-09-12  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/solib-weak.exp (do_test): Adjust the file names for each
	test.

2007-09-10  Mark Kettenis  <kettenis@gnu.org>

	* lib/gdb.exp (build_id_debug_filename_get): Improve check for
	build-id.

	* lib/gdb.exp (gdb_compile): OpenBSD doesn't need -dl, and doesn't
	know about $ORIGIN.  Calculate output dir from $dest instead of
	using ${objdir}/{$subdir}.

2007-09-09  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/gcore-buffer-overflow.exp: Check whether gdb supports
	gcore, before continuing with the test.

2007-09-06  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.mi/mi2-watch.exp: Set can-use-hw-watchpoints to 0 if required.
	* gdb.mi/mi-watch.exp: Likewise.

2007-09-04  Daniel Jacobowitz  <dan@codesourcery.com>
	    Jim Blandy  <jimb@codesourcery.com>

	* gdb.arch/i386-sse.exp: Do not expect character constants.
	* gdb.base/charsign.c, gdb.base/charsign.exp: Delete.
	* gdb.base/display.exp: Allow print/s.
	* gdb.base/printcmds.exp, gdb.base/setvar.exp: Revert signed
	and unsigned char array changes.

2007-09-04  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/display.exp: Add tests for printf %p.

2007-09-03  Pedro Alves  <pedro_alves@portugalmail.pt>

	* gdb.base/unload.c (dlopen, dlsym): Use the TEXT macro to convert
	the dll name to unicode.

2007-09-03  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/default.exp (show version): Update the version text.
	* gdb.gdb/selftest.exp (xgdb is at prompt): Likewise.

2007-09-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/gcore-buffer-overflow.c, gdb.base/gcore-buffer-overflow.exp:
	New files.

2007-09-01  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* lib/gdb.exp (build_id_debug_filename_get): New function.
	* gdb.base/sepdebug.exp: Reflect the changes in the heading comment.
	Remove the generate DEBUG file for the future testcase runs.
	New testcase for the NT_GNU_BUILD_ID retrieval.
	Move the final testing step to ...
	(test_different_dir): ... a new function.
	New parameter XFAIL to XFAIL all the tests performed.
	New parameter TEST_DIFFERENT_DIR parametrizing the directory.
	New parameter TYPE to PF_PREFIX all the tests performed.

2007-08-31  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.mi/mi-var-cp.cc (path_expression): New
	function.
	* gdb.mi/mi-var-cp.exp: Run path exression tests.

2007-08-27  Markus Deuling  <deuling@de.ibm.com>

	* gdb.cp/cp-relocate.exp (add-symbol-file): Change addresses
	to fit into SPU Local Store memory.

2007-08-23  Joel Brobecker  <brobecker@adacore.com>

	* gdb.base/default.exp: Adjust the expected output of "info
	warranty" after the switch to GPLv3.

2007-08-23  Joel Brobecker  <brobecker@adacore.com>

	* lib/gdb.exp (default_gdb_init): Increase expect buffer size
	to 30000 (from 20000).

2007-08-23  Joel Brobecker  <brobecker@adacore.com>

	Switch the license of all .exp files to GPLv3.
	Switch the license of all .f and .f90 files to GPLv3.
	Switch the license of all .s and .S files to GPLv3.

2007-08-23  Joel Brobecker  <brobecker@adacore.com>

	* configure.ac: Switch license to GPLv3.

2007-08-23  Joel Brobecker  <brobecker@adacore.com>

	Switch the licensing to GPLv3 for all .ads and .adb files.

2007-08-22  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/callfuncs.exp (do_function_calls): Use t_double_int
	and t_int_double.
	* gdb.base/callfuncs.c (t_double_int, t_int_double): New.

2007-08-17  Joel Brobecker  <brobecker@adacore.com>

	* gdb.base/step-line.c: Switch license to GPL version 3, and
	update copyright year.
	* gdb.base/step-line.inp: Likewise.

2007-08-17  Joel Brobecker  <brobecker@adacore.com>

	* gdb.base/gdb1555.exp: Make expected output immune to formatting
	changes inside gdb1555.c.
	* gdb.base/pending.exp: Likewise.

2007-08-13  Daniel Jacobowitz  <dan@codesourcery.com>

	* config/default.exp: New file.

2007-07-31  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/prologue.c, gdb.base/prologue.exp: New.
	* lib/gdb.exp (gdb_breakpoint): Handle "temporary".

2007-07-30  Maciej W. Rozycki  <macro@mips.com>

	* gdb.base/dump.exp: Force the correct endianness for binary
	formats not carrying this information.

2007-07-27  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.threads/staticthreads.exp: Match .*sem_post.

2007-07-27  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/readline.exp (operate_and_get_next): Match the final
	prompt.

2007-07-23  Kevin Buettner  <kevinb@redhat.com>

	* lib/mi-support.exp (mi_gdb_target_load): Do a "kill" prior
	to restarting SID.

2007-07-18  Kevin Buettner  <kevinb@redhat.com>

	* gdb.cp/ref-params.exp (gdb_start_again): Invoke `gdb_exit'
	prior to `gdb_start'.

2007-07-18  Kevin Buettner  <kevinb@redhat.com>

	* config/sid.exp (gdb_load): Add test for empty argument.  Adjust
	return value to be compatible with gdb_run_cmd in lib/gdb.exp.
	Remove call to gdb_unload.

2007-07-17  Pedro Alves  <pedro_alves@portugalmail.pt>
	    Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/unload.c (dlopen, dlsym, dlclose, dlerror): Define
	for __WIN32__.
	(SHLIB_NAME): Delete definition.  Always pass dlerror to fprintf.
	* gdb.base/unload.exp: Use shared library test routines.

2007-07-03  Markus Deuling  <deuling@de.ibm.com>

	* gdb.base/solib-symbol.exp: New file (testcase multiple symbol lookup).
	* gdb.base/solib-symbol-lib.c: Likewise.
	* gdb.base/solib-symbol-main.c: Likewise.

2007-07-02  Daniel Jacobowitz  <dan@codesourcery.com>

	* config/gdbserver.exp (gdb_reconnect): New.
	* gdb.base/so-disc-shr.c, gdb.base/solib-disc.c,
	gdb.base/solib-disc.exp: New files.
	* lib/gdb.exp (gdb_test_multiple): Allow tests to match "Ending
	remote debugging".
	(gdb_compile): Add shlib_load flag.
	* lib/gdbserver-support.exp (gdbserver_run): Save the protocol and
	port.
	(gdbserver_reconnect): New.

2007-07-01  Nick Roberts  <nickrob@snap.net.nz>
	    Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/annota3.exp: Test for if construct.

2007-06-26  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/chng-syms.exp: Handle glibc's __GI_exit.

2007-06-21  Chris Dearman  <chris@mips.com>
	    Maciej W. Rozycki  <macro@mips.com>

	* gdb.base/display.exp: Allow a newline after display/i.
	* gdb.base/pc-fp.exp: Likewise.
	* gdb.base/sigbpt.exp: Likewise.

2007-06-13  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.xml/tdesc-regs.exp: Add MIPS support.  Allow multiple
	required features to be included.

2007-06-12  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.threads/manythreads.exp: Prevent expect buffer overflow
	in info threads output.

2007-06-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
	    Markus Deuling  <deuling@de.ibm.com>

	* gdb.arch/spu-info.exp: New testcase.
	* gdb.arch/spu-info.c: New file.

2007-06-05  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.arch/thumb-prologue.c: Record the breakpoint address in
	tpcs_offset.  Restore lr after the call.
	* gdb.arch/thumb-prologue.exp: Use tpcs_offset.

2007-05-23  Daniel Jacobowitz  <dan@codesourcery.com>

	* lib/gdbserver-support.exp (gdbserver_spawn): Only match full_buffer.
	(gdbserver_run): Kill any running gdbserver.
	* lib/mi-support.exp (mi_gdb_target_load): Likewise.

2007-05-17  Maciej W. Rozycki  <macro@mips.com>

	* gdb.base/sigbpt.exp: Preset segv_addr.

2007-05-16  Daniel Jacobowitz  <dan@codesourcery.com>

	* lib/gdb.exp (gdb_compile): Add support for Windows DLLs.
	(gdb_compile_shlib): Likewise.
	(skip_shlib_tests, gdb_download, gdb_load_shlibs): New.
	(default_gdb_init): Clear cleanfiles.
	(gdb_finish): Delete recorded cleanfiles.
	* lib/gdbserver-support.exp (gdbserver_spawn): Use gdb_download.

	* gdb.base/gdb1555.exp: Use skip_shlib_tests and gdb_load_shlibs.
	Do not use isnative.
	* gdb.base/pending.exp, gdb.base/shlib-call.exp, gdb.base/shreloc.exp,
	gdb.base/so-impl-ld.exp: Likewise.
	* gdb.base/solib-weak.exp: Likewise.  Skip for DLL targets.
	* gdb.base/unload.exp: Likewise.  Do not pass empty option to
	gdb_compile.

2007-05-15  Vladimir Prus  <vladimir@codesourcery.com>

	* config/unknown.exp: Remove.

2007-05-15  Markus Deuling  <deuling@de.ibm.com>

	* gdb.base/info-proc.exp: Check is_remote.

2007-05-14  Markus Deuling  <deuling@de.ibm.com>

	* gdb.base/gcore.exp: Initialize variable core_supported.

2007-05-14  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.threads/linux-dp.exp: Allow non-hexadecimal IDs also.

2007-05-14  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.threads/linux-dp.exp: Expect hexadecimal thread IDs.
	* gdb.threads/print-threads.exp (test_all_threads): Allow
	negative and hexadecimal thread IDs.

2007-05-14  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.java/jprint.java (public): Avoid invalid call to static
	method.

2007-05-14  Denis Pilat  <denis.pilat@st.com>

	* gdb.mi/mi-console.exp, gdb.mi/gdb669.exp, gdb.mi/mi-cli.exp,
	gdb.mi/mi-regs.exp, gdb.mi/mi-stepi.exp, gdb.mi/mi-syn-frame.exp,
	gdb.mi/mi2-cli.exp, gdb.mi/mi2-console.exp, gdb.mi/mi2-disassemble.exp,
	gdb.mi/mi2-regs.exp, gdb.mi/mi2-stepi.exp, gdb.mi/mi-disassemble.exp,
	gdb.mi/mi2-syn-frame.exp: Remove commands already run in mi_run_to_main.

2007-05-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.base/overlays.exp: Add support for targets with only code
	overlay support, not data overlay.  Support spu-*-* target in
	this mode.
	* gdb.base/ovlymgr.c: Provide stubs for spu target.
	* gdb.base/spu.ld: New file.

2007-05-07  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.cp/virtfunc.exp (proc do_tests): Test stepping through a thunk.

2007-05-06  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.fortran/complex.exp, gdb.fortran/complex.f: New files.

2007-04-29  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.java/jmain.exp: Handle demangled names with and without method
	signatures.

2007-04-29  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.mi/mi-syn-frame.c (main, foo, bar)
	(have_a_very_merry_interrupt): Remove calls to puts.
	* gdb.mi/mi-syn-frame.exp, gdb.mi/mi2-syn-frame.exp: Do not expect
	inferior output.
	* lib/mi-support.exp (mi_gdb_test): Check gdb,noinferiorio.  Correct
	test names.

2007-04-29  Markus Deuling  <deuling@de.ibm.com>
	    Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/auxv.exp (core_works): Also check is_remote.
	* gdb.base/checkpoint.exp, gdb.base/multi-forks.exp: Likewise.

2007-04-25  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.base/sigaltstack.exp: Use 'srcfile' in error
	message, not the undefined 'module' variable.
	* gdb.base/siginfo.exp: Likewise.
	* gdb.base/sigstep.exp: Likewise.
	* lib/gdbserver-support.exp (gdb_target_cmd): Quote
	serialport.
	* lib/mi-support.exp (mi_gdb_target_cmd): Likewise.

2007-04-25  Corinna Vinschen <vinschen@redhat.com>

	* config/sim.exp (gdb_target_sim): Just return with -1 when setting
	target sim fails.  Return 0 otherwise.
	(gdb_load): Return prematurely if gdb_target_sim fails.

2007-04-16  Denis Pilat  <denis.pilat@st.com>

	* gdb.base/setshow.exp: Reset height after having set it to 100.

2007-04-16  Denis Pilat  <denis.pilat@st.com>

	* gdb.mi/mi2-stack.exp: update from mi-stack.exp.

2007-04-16  Denis Pilat  <denis.pilat@st.com>

	* gdb.mi/mi2-var-display.exp: Test for the fullname field.

2007-04-14  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.mi/mi-var-cmd.exp: Delete varobjs left by previous
	tests. Run the frozen varobjs test.
	* gdb.mi/var-cmd.c (do_frozen_tests): New.
	* lib/mi-support.exp (mi_varobj_update): Fix thinko.

2007-04-11  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/type-opaque-lib.c, gdb.base/type-opaque-main.c,
	gdb.base/type-opaque.exp: New files.

2007-04-01  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.mi/mi-var-child.c
	(do_children_tests): User char[2] instead of
	char so that automatic printing of pointers to char
	don't give unpredicable result.
	* gdb.mi/var-cmd.c (do_locals_test): Initialize
	local variables.
	* gdb.mi/mi-var-child.exp: Step to right line
	of do_children_tests.
	* gdb.mi/mi2-var-child.exp: Likewise.
	* gdb.mi/mi-var-cmd.exp: Step to right line of
	do_locals_tests.
	(do_children_tests): User char[2] instead of
	char so that automatic printing of pointers to char
	don't give unpredicable result.
	* gdb.mi/mi2-var-cmd.exp: Likewise.
	* lib/mi-support.exp (mi_continue_to_line):
	Pass test name to mi_wait_for_stop.

2007-03-30  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.asm/asm-source.exp: Remove d10v case.
	* lib/gdb.exp (skip_cplus_tests): Likewise.
	* gdb.asm/d10v.inc: Deleted.

2007-03-30  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/infnan.c, gdb.base/infnan.exp: New files.

2007-03-30  Daniel Jacobowitz  <dan@codesourcery.com>

	* config/netware.exp: Delete file.

2007-03-29  Joel Brobecker  <brobecker@adacore.com>

	* gdb.dwarf2/dw2-noloc.S: New file.
	* gdb.dwarf2/dw2-noloc.exp: New file.

2007-03-28  Pedro Alves  <pedro_alves@portugalmail.pt>

	* gdb.cp/method2.cc: New test.
	* gdb.cp/method2.exp: New test.
	* gdb.cp/Makefile.in (EXECUTABLES): Add method2.

2007-03-27  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.ada/exec_changed.exp: Avoid "set confirm off".

2007-03-27  Brooks Moses  <brooks.moses@codesourcery.com>

	* Makefile.in: Add dummy "pdf" and "install-pdf" targets.

2007-03-27  Daniel Jacobowitz  <dan@codesourcery.com>

	* config/gdbserver.exp (gdbserver_gdb_load): Update argument list.
	(gdb_load): Delete, replace with...
	(gdb_reload): ...this.
	* gdb.server/server-run.exp: Use gdb_load and gdbserver_run.
	* gdb.server/server-mon.exp: Likewise.
	* lib/gdb.exp (gdb_run_cmd): Use gdb_reload.
	(gdb_start_cmd): New.
	(gdb_file_cmd): Save the last loaded file.
	(gdb_reload): New.
	(gdb_gnu_strip_debug): Use transform.
	* lib/gdbserver-support.exp (gdbserver_spawn): Move file download
	support here.  Use new $last_loaded_file.  Check mtime.
	(gdb_target_cmd): Handle ObjC failure case.
	(infer_host_exec): Delete.
	(gdbserver_load): Rename to...
	(gdbserver_run): ...this.  Simplify.
	* lib/mi-support.exp (mi_gdb_file_cmd): Set last_loaded_file.
	(mi_gdb_load): Move most contents to a new function...
	(mi_gdb_target_load): ...here.  Simplify call to gdbserver_gdb_load.
	(mi_run_cmd): Use mi_gdb_target_load.
	* gdb.base/break.exp, gdb.base/ending-run.exp, gdb.base/pending.exp,
	gdb.base/sepdebug.exp, gdb.base/unload.exp, gdb.objc/objcdecode.exp:
	Use gdb_run_cmd.
	* gdb.base/charsign.exp: Remove incorrect comment.
	* gdb.base/dbx.exp (gdb_file_cmd): Set last_loaded_file.
	* gdb.ada/exec_changed.exp, gdb.ada/null_record.exp, gdb.ada/start.exp,
	gdb.base/start.exp: Use gdb_start_cmd.

2007-03-23  Nigel Stephens  <nigel@mips.com>
	    Maciej W. Rozycki  <macro@mips.com>

	* gdb.base/sigbpt.exp: Fix the message when skipping test.
	* gdb.base/signull.exp: Similarly.

2007-03-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* lib/gdb.exp (gdb_run_cmd): Use -notransfer to make start-up
	messages available to test cases (like chng-sym.exp).

2007-03-14  Andreas Schwab  <schwab@suse.de>

	* gdb.arch/altivec-regs.exp (decimal_vector): Adjust for output
	format changes.

2007-03-13  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.arch/powerpc-prologue.c (optimized_1_marker, gdb2029_marker)
	(optimized_1): New.
	(main): Call optimized_1.
	(gdb2029): Correct typos.  Call gdb2029_marker.
	* gdb.arch/powerpc-prologue.exp: Run new test.  Use a breakpoint
	for gdb2029.

2007-03-12  Mark Kettenis  <kettenis@gnu.org>

	* gdb.gdb/selftest.exp (do_steps_and_nexts): Match spaces as well
	as tabs.  Remove redundant test pattern.

2007-03-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.base/long_long.exp: Accept optional symbol name in <...>
	for /a format output.

2007-03-09  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/checkpoint.exp: Rewrite 600 checkpoint test to
	collect output incrementally.

2007-03-08  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.mi/mi-var-cmd.exp: Allow value without "..." string
	for -var-create lpcharacter test.
	* gdb.mi/mi2-var-cmd.exp: Likewise.

2007-03-08  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.mi/mi-var-cmd.exp: Allow -var-update null_ptr test to
	pass on targets where address zero is readable.

2007-03-08  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.xml/tdesc-arch.exp: Test is unsupported on target with
	just a single architecture.

2007-03-08  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.base/callfuncs.exp (do_get_all_registers): Remove.
	(fetch_all_registers): New function, uses gdb_test_multiple and
	exp_continue to fetch inferior output line-by-line.
	Replace all uses of do_get_all_registers by fetch_all_registers.

2007-03-08  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.base/relativedebug.exp: Skip test if gdb,nosignals is set
	in target_info.

2007-03-02  Michael Snyder  <michael.snyder@palmsource.com>

	* gdb.threads/manythreads.exp: Use $message string for
	consistancy; add a default (timeout) case.

2007-03-02  Michael Snyder  <michael.snyder@palmsource.com>

	* gdb.base/watchpoint.exp: Fix truncated comment.

2007-03-02  Michael Snyder  <michael.snyder@palmsource.com>

	* Makefile.in: Remove spurious single-quotes from sed command.

2007-02-28  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.mi/mi-var-cmd.exp: Correct test name.  Allow any value for
	func.
	* gdb.mi/mi2-var-cmd.exp: Likewise.

2007-02-27  Joel Brobecker  <brobecker@adacore.com>

	* gdb.dwarf2/dw2-producer.S: New file.
	* gdb.dwarf2/dw2-producer.exp: New testcase.

2007-02-27  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.mi/mi-var-block.exp, gdb.mi/mi2-var-block.exp
	* gdb.mi/mi-var-child.exp, gdb.mi/mi2-var-child.exp
	* gdb.mi/mi-var-child-f.exp, gdb.mi/mi-var-cmd.exp
	* gdb.mi/mi2-var-cmd.exp, gdb.mi/mi-var-display.exp
	* gdb.mi/mi2-var-display.exp, gdb.mi/gdb701.exp
	Revert tests to use mi_gdb_test and include value field in output
	of -var-create.

2007-02-27  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.arch/i386-signal.c, gdb.arch/i386-signal.exp: New files.

2007-02-27  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/maint.exp: Remove full paths from test names.
	* gdb.base/prelink.exp, gdb.cp/cp-relocate.exp,
	gdb.xml/tdesc-errors.exp, gdb.xml/tdesc-xinclude.exp: Likewise.

2007-02-27  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/catch_ex.exp: Fix a couple of copy/paste typos.

2007-02-26  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.server/server-mon.exp: New test.

2007-02-26  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.cp/cp-relocate.cc, gdb.cp/cp-relocate.exp: New.

2007-02-26  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.arch/iwmmxt-regs.c, gdb.arch/iwmmxt-regs.exp: Update
	register capitalization.

2007-02-13  Denis Pilat  <denis.pilat@st.com>

	* gdb.mi/mi-var-invalidate.exp: New file.

2007-02-08  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.arch/iwmmxt-regs.c, gdb.arch/iwmmxt-regs.exp: New.

2007-02-08  Daniel Jacobowitz  <dan@codesourcery.com>

	* tdesc-arch.exp (set_arch): Add KFAIL for missing OS ABI handlers.

2007-02-08  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.xml/single-reg.xml, gdb.xml/tdesc-regs.exp,
	gdb.xml/core-only.xml, gdb.xml/extra-regs.xml: New files.

2007-02-08  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.mi/mi-var-block.exp, gdb.mi/mi2-var-block.exp
	* gdb.mi/mi-var-child.exp, gdb.mi/mi2-var-child.exp
	* gdb.mi/mi-var-child-f.exp, gdb.mi/mi-var-cmd.exp
	* gdb.mi/mi2-var-cmd.exp, gdb.mi/mi-var-display.exp
	* gdb.mi/mi2-var-display.exp, gdb.mi/gdb701.exp
	* gdb.mi/gdb792.exp, lib/mi-support.exp:
	Update tests to include value field in output of -var-create.

2007-02-08  Andreas Schwab  <schwab@suse.de>

	* gdb.mi/mi-var-child.exp: Fix matching display of function value.

2007-02-07  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.xml/bad-include.xml, gdb.xml/inc-2.xml, gdb.xml/inc-body.xml,
	gdb.xml/includes.xml, gdb.xml/tdesc-xinclude.exp: New files.

2007-02-02  Denis Pilat  <denis.pilat@st.com>

	* gdb.threads/threadapply.exp: check that frame is not changed by
	the thread apply all command.

2007-01-31  Andreas Schwab  <schwab@suse.de>

	* gdb.gdb/selftest.exp (do_steps_and_nexts): Add more matches.

	* gdb.dwarf2/dup-psym.S: Use .2byte/.4byte instead of .short/.int
	in the dwarf sections.
	* gdb.dwarf2/mac-fileno.S: Likewise.

	* gdb.base/callfuncs.exp (do_get_all_registers): Filter out
	bspstore register on ia64.

2007-01-29  Andreas Schwab  <schwab@suse.de>

	* gdb.cp/annota3.exp ("watch triggered on a.x"): Match optional
	"frame-begin" annotation.

	* gdb.cp/annota2.exp ("watch triggered on a.x"): Allow arbitrary
	number of "frames-invalid" annotations.

2007-01-29  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/commands.exp: Call if_commands_test.
	(gdb_test_no_prompt, if_commands_test): New.

2007-01-28  Mark Kettenis  <kettenis@gnu.org>

	* gdb.threads/sigthread.c (NSIGS): Make bigger.

2007-01-27  Andreas Schwab  <schwab@suse.de>

	* gdb.dwarf2/dw2-basic.S: Use .2byte/.4byte/.8byte instead of
	.short/.int/.quad in the dwarf sections.
	* gdb.dwarf2/dw2-intercu.S: Likewise.
	* gdb.dwarf2/dw2-intermix.S: Likewise.

2007-01-25  Jan Kratochvil <jan.kratochvil@redhat.com>

	* gdb.base/charsign.exp, gdb.base/charsign.c: New files.
	* gdb.arch/i386-sse.exp: Check $xmm.v16_int8 printing as a number
	array.
	* gdb.base/printcmds.exp: Sign-provided CHARs now became arrays.
	* gdb.base/setvar.exp: Likewise.

2007-01-26  Andreas Schwab  <schwab@suse.de>

	* gdb.base/corefile.exp: Allow non-empty argument list in reinit
	test.

	* gdb.base/multi-forks.exp ("restart $i"): Also match
	__kernel_syscall_via_break.

2007-01-24  Vladimir Prus  <vladimir@codesourcery.com>

	* lib/mi-support.exp (mi_delete_varobj): New.
	* gdb.mi/mi-var-cp.exp: Run the reference_to_struct
	testcase.
	* gdb.mi/mi-var-cp.cc (reference_to_struct): New function.
	(main): Call the above.
	(reference_update_test, base_in_reference_test)
	(reference_to_pointer): Delete the created varobjs.

2007-01-23  Daniel Jacobowitz  <dan@codesourcery.com>

	* Makefile.in (ALL_SUBDIRS): Add gdb.xml.
	* configure: Regenerated.
	* configure.ac (AC_OUTPUT): Add gdb.xml/Makefile.
	* gdb.xml/Makefile.in, gdb.xml/tdesc-arch.exp,
	gdb.xml/tdesc-bogus.xml, gdb.xml/tdesc-errors.exp,
	gdb.xml/trivial.xml, gdb.xml/tdesc-unknown.xml: New files.
	* lib/gdb.exp (gdb_skip_xml_test): New function.

2007-01-23  Nick Hudson  <nick.hudson@dsl.pipex.com>

	* gdb.base/sigrepeat.exp: Correct error message.

2007-01-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.arch/i386-gnu-cfi.exp, gdb.arch/i386-gnu-cfi.c,
	gdb.arch/i386-gnu-cfi-asm.S: New files.

2007-01-14  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* lib/gdb.exp: Abort on missing `site.exp'.

2007-01-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/included.c, gdb.base/included.exp,
	gdb.base/included.h: New files.

2007-01-20  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/bigcore.c (RLIMIT_CAP): Define.
	(maximize_rlimit): Reduce limits on 64-bit systems.

2007-01-19  Mark Kettenis  <kettenis@gnu.org>

	From Marcus Deuling <deuling@de.ibm.com>:
	* gdb.arch/altivec-regs.exp: Initialise variable endianness in
	every case.

2007-01-13  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.mi/mi-basics.exp, gdb.mi/mi2-basics.exp (test_dir_specification)
	(test_path_specification): Use objdir instead of srcdir to always
	get an absolute filename.

2007-01-12  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.cp/member-ptr.cc (class Padding): Make contents public.

2007-01-11  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.mi/mi-var-cp.cc (reference_update_tests):
	Make sure the variable we're using is in scope.
	(reference_to_pointer): Likewise.

2007-01-09  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.ada/catch_ex.exp: Call unsupported and stop if the runtime
	has no debug information.

2007-01-09  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/annota1.exp: Remove extra send_gdb.

2007-01-09  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/relativedebug.c, gdb.base/relativedebug.exp: New files.

2007-01-09  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.arch/i386-size-overlap.c, gdb.arch/i386-size-overlap.exp: New.

2007-01-08  Nick Roberts  <nickrob@snap.net.nz>
	    Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.mi/mi-var-cmd.exp: Expect lpcharacter to update when
	lcharacter or linteger change.  Correct duplicated test name.
	* gdb.mi/mi2-var-cmd.exp: Likewise.

2007-01-08  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.threads/sigthread.c, gdb.threads/sigthread.exp: New.

2007-01-05  Joel Brobecker  <brobecker@adacore.com>

	* gdb.base/nofield.c: New file.
	* gdb.base/nofield.exp: New testcase.

2007-01-05  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.mi/mi-var-cp.exp: New test for references to pointers.

	* gdb.mi/mi-var-cp.cc: (reference_to_pointer): New procedure for above
	 test.

2007-01-04  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.mi/mi-var-cmd.exp: Add tests for unreadable varobjs.

2007-01-04  Daniel Jacobowitz  <dan@codesourcery.com>

	* lib/mi-support.exp (mi_runto_helper): Expect two prompts
	when continuing.

2007-01-04  Pedro Alves  <pedro_alves@portugalmail.pt>

	* gdb.base/annota3.exp ($binfile): Append $EXEEXT.
	Expect ".exe" extension.

2007-01-04  Pedro Alves  <pedro_alves@portugalmail.pt>

	* gdb.base/charset.exp: Add explicit filename to break.
	* gdb.base/dbx.exp: Add explicit filename to breaks.

2007-01-04  Pedro Alves  <pedro_alves@portugalmail.pt>

	* gdb.mi/mi-file.exp: Use mi_gdb_file_cmd instead of mi_gdb_load.
	* gdb.mi/mi2-file.exp: Likewise.

2007-01-04  Vladimir Prus  <vladimir@codesourcery.com>

	Implement specification of MI tests as comments
	in C and C++ sources.
	* lib/mi-support.exp (mi_autotest_data): New variable.
	(mi_autotest_source): New variable.
	(count_newlines, mi_prepare_inline_tests)
	(mi_get_inline_test, mi_continue_to_line)
	(mi_run_inline_test, mi_tbreak)
	(mi_send_resuming_command, mi_wait_for_stop): New functions.
	* gdb.mi/mi-var-cp.exp: Move most content to the C file.
	Run inline tests.
	* gdb.mi/mi-var-cp.cc: Define tests here.

2007-01-04  Vladimir Prus  <vladimir@codesourcery.com>

	Simplify usage of mi_continue_to.
	* lib/mi-support.exp (mi_runto_helper): Renamed
	from mi_runto, added new parameter 'run_or_continue'.
	(mi_runto): Use mi_runto_helper.
	(mi_continue_to): Accept just function name as parameter.
	Use mi_runto_helper.
	* gdb.mi/mi-var-cmd.exp: Adjust to changes.
	* gdb.mi/mi2-var-cmd.exp: Likewise.

2006-01-04  Joel Brobecker  <brobecker@adacore.com>

	Make this testcase a bit more realistic. The current code
	is too simplistic, and allows the compiler to optimize out
	some of the entities we need for this testcase.
	* gdb.ada/null_record/bar.ads (Void_Star): New type.
	(Do_Nothing): Add extra parameter.
	* gdb.ada/null_record/bar.adb (Do_Nothing): Likewise.
	* gdb.ada/null_record/null_record.adb: Fake use of type Empty
	by using a variable of type Void_Star.

2006-01-04  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/catch_ex/foo.adb: New file.
	* gdb.ada/catch_ex.exp: New testcase.

2007-01-03  Pedro Alves  <pedro_alves@portugalmail.pt>

	* gdb.base/shreloc.exp: Use ldflags instead of additional_flags to
	pass --image-base to linker.

2007-01-03  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/readline.exp: Set $TERM.  Test arrow keys in
	secondary prompts.

2007-01-03  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.cp/classes.exp (test_pointers_to_class_members): Update expected
	output.  Test the types of members and member pointers.
	* gdb.cp/inherit.exp (test_print_mi_member_types): Remove KFAILs for
	gdb/2092.
	* gdb.cp/member-ptr.exp: Search for a comment instead of a
	statement.  Enable for GCC.  Update expected output for some tests
	and add new tests.  Remove obsolete GCC KFAILs.  Allow GCC's class
	layout.
	* gdb.cp/member-ptr.cc (Padding, Padding::vspacer, Base, Base::get_x)
	(Base::vget_base, Left, Left::vget, Right, Right::vget, Diamond)
	(Diamond::vget_base): New.
	(main): Add new tests.
	* gdb.cp/printmethod.exp: Update expected output for member functions.
	* gdb.cp/virtfunc.exp (test_virtual_calls): Add a KFAIL for
	print pEe->D::vg().

2007-01-03  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.threads/tls.exp: Allow stops in sem_post.

2006-12-31  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/annota1.exp: Allow .*printf in backtraces.
	* gdb.base/annota3.exp: Likewise.
	* gdb.base/sigstep.exp (advancei): Fail if we hit the breakpoint
	again (instead of timing out).
	* gdb.gdb/selftest.exp (do_steps_and_nexts): Add an XFAIL for
	GCC bug 26475.
	* gdb.java/jmisc.exp: Adjust to work with method signatures including
	return types.  Add kfails for GDB bugs 2214 and 2215.  Move exit
	test from jmisc1.exp.
	* gdb.java/jmisc1.exp: Delete.
	* gdb.java/jprint.exp: Adjust to work with method signatures including
	return types.
	* gdb.objc/basicclass.exp: Update for gobjc 4.1 debug info.
	* gdb.threads/linux-dp.exp: Don't be confused by program output.
	* lib/java.exp (compile_java_from_source): Pass the correct type
	to target_compile.

2006-12-31  Joel Brobecker  <brobecker@adacore.com>

	* gdb.arch/i386-prologue.c (stack_align_ecx): Renamed from stack_align.
	(stack_align_edx): New function.
	(stack_align_eax): New function.
	(main): Add calls to stack_align_edx and stack_align_eax.
	* gdb.arch/i386-prologue.exp: Replace stack_align with stack_align_ecx.
	Add testing for the cases where the register used during a stack
	realignment is edx. Same for eax.

2006-12-30  Pedro Alves  <pedro_alves@portugalmail.pt>

	* lib/gdb.exp: Don't pass -fpic to gcc on Cygwin, MinGW
	and generic PE targets.

2006-12-29  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/array_return.exp: Update copyright date list.

2006-12-27  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/array_return/pck.ads (Small_Float_Vector): New type.
	(Create_Small_Float_Vector): New function.
	* gdb.ada/array_return/pck.adb (Create_Small_Float_Vector): Add
	function body.
	* gdb.ada/array_return/p.adb: Use new type and function from
	package Pck.
	* gdb.ada/array_return.exp: Add a test verifying that GDB is
	able to print the value returned by a function returning an
	array of float.

2006-12-20  Joel Brobecker  <brobecker@adacore.com>

	* gdb.arch/i386-prologue.exp: Remove calls to setup_kfail.
	The associated tests should be PASSing.

2006-12-08  Vladimir Prus  <vladimir@codesourcery.com>

	Test for base in references.
	* gdb.mi/mi-var-cp.cc: Add test code.
	* gdb.mi/mi-var-cp.exp: Test for bases in references.
	* gdb.mi/mi-watch.exp: Adjust to mi_runto changes.
	* gdb.mi/mi2-watch.exp: Likewise.
	* lib/mi-support.exp (mi_runto): Use temporary breakpoint.
	(mi_list_varobj_children): New function.

2006-12-08  Vladimir Prus  <vladimir@codesourcery.com>

	* lib/mi-support.exp
	(mi_runto): Accept "()" after function name.
	(mi_create_varobj): New function.
	(mi_varobj_update): New function.
	(mi_Check_varobj_value): New function.
	* gdb.mi/mi-var-cp.exp: New file.
	* gdb.mi/mi-var-cp.cc: New file.

2006-12-01  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/solib-weak.c, gdb.base/solib-weak.exp, gdb.base/weaklib1.c,
	gdb.base/weaklib2.c: New files.

2006-11-29  Nathan Sidwell  <nathan@codesourcery.com>

	* gdb.threads/linux-dp.exp: Adjust regexps used to scan thread
	info.  Adjust test names.

	* gdb.base/break.c (main): Move position of malloc.
	* gdb.base/break.exp: Revert mistaken checkin.

2006-11-28  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.mi/mi-var-cmd.exp: Check -var-update after
	assignement of arrays and function pointers.
	* gdb.mi/var-cmd.c: Add declaration necessary for above
	tests.

2006-11-27  Nathan Sidwell  <nathan@codesourcery.com>

	* gdb.base/break.c (main): Call malloc.

	* gdb.threads/linux-dp.exp: Read thread table before and after
	creating each philosopher and verify it.

2006-11-27  Nathan Sidwell  <nathan@codesourcery.com>
	    Paul Brook  <paul@codesourcery.com>
	    Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/ending-run.exp: Flatten expect script stepping out of
	main to remove duplication.  Add start function of the form
	'_*start[1-9]*'. Add RVDS start function.

2006-11-22  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.arch/thumb-prologue.c, gdb.arch/thumb-prologue.exp: New files.

2006-11-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.asm/asm-source.exp: Add "spu*-*-*" target.
	* gdb.asm/spu.inc: New file.
	* gdb.base/term.exp: Disable if [target_info exists noargs].
	* gdb.gdb/complaints.exp: Disable if ![isnative].
	* gdb.gdb/selftest.exp: Likewise.
	* gdb.gdb/observer.exp: Likewise.
	* gdb.gdb/xfullpath.exp: Likewise.
	* gdb.base/attach.exp: Disable on SPU target.
	* gdb.cp/bs145503.exp: Likewise.
	* gdb.cp/exception.exp: Likewise.
	* gdb.cp/userdef.exp: Likewise.

2006-11-22  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.stabs/weird.exp (print_weird_var): Don't send extra \n.

2006-11-10  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.base/completion.exp: Fix completion tests for
	'info' and 'info '.
	* gdb.base/help.exp (help_test_raw, test_class_help)
	(test_prefix_command_help): Move...
	* lib/gdb.exp: Here.
	* gdb.base/main.exp: Adjust.
	* gdb.cp/maint.exp: Adjust.
	* gdb.trace/tracecmd.exp: Use test_help_class.

2006-11-09  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.stabs/weird.exp (print_weird_var): Use
	gdb_test_multiple instead of gdb_expect.

2006-11-09  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.base/help.exp (help_test_raw): New.
	(test_class_help): New.
	(test_prefix_command_help): New.
	Adjust testcases.

2006-11-09  Christophe Lyon  <christophe.lyon@st.com>

	* gdb.base/constvars.c (main): Write to crass and crips, so that
	they are allocated by the compiler.

2006-10-27  Andreas Schwab  <schwab@suse.de>

	* gdb.base/multi-forks.exp: Use "detach fork" instead of
	"detach-fork".

2006-10-18  Daniel Jacobowitz  <dan@codesoucery.com>

	* lib/gdbserver-support.exp (gdb_target_cmd): Anchor the ends
	of patterns.

2006-10-17  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/sepdebug.exp: Remove debug format test.
	* lib/gdb.exp (gdb_gnu_strip_debug): Perform debug format test.
	Handle no-symtab.
	* gdb.base/sepsymtab.c, gdb.base/sepsymtab.exp: New.

2006-10-17  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.threads/manythreads.c (thread_function, main): Don't cast
	int to pointer or pointer to int.
	* gdb.threads/manythreads.exp: Don't expect the string "LWP".

2006-10-12  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/annota1.exp, gdb.base/maint.exp: Use string_to_regexp.

2006-10-09  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.threads/tls-nodebug.c, gdb.threads/tls-nodebug.exp: New test.

2006-10-09  Daniel Jacobowitz  <dan@codesourcery.com>

	PR c++/2116
	* gdb.cp/call-c.cc, gdb.cp/call-c.exp, gdb.cp/call-c-1.c: New.

2006-10-06  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/arrayidx.exp: Remove calls to setup_kfail now that
	the corresponding bug has been fixed in GDB (PR/2018).

2006-10-06  Joel Brobecker  <brobecker@adacore.com>

	* gdb.base/subst.exp: New testcase.

2006-10-06  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/array_return/pck.ads: Add copyright notice.
	* gdb.ada/array_return/pck.adb: Likewise.
	* gdb.ada/array_return/p.adb: Likewise.
	* gdb.ada/exec_changed/first.adb: Likewise.
	* gdb.ada/exec_changed/second.adb: Likewise.

2006-10-06  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/watch_arg/watch.adb: New file.
	* gdb.ada/watch_arg.exp: New testcase.

2006-10-02  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.mi/mi-basics.exp (test_path_specification): Pass orig_path
	via string_to_regexp.
	* gdb.mi/mi2-basics.exp: Likewise.

2006-09-20  Michael Snyder  <michael.snyder@palmsource.com>

	* abug.exp, cpu32bug.exp, est.exp hmsirom.exp, nind.exp:
	Remove unused / obsolete files.

2006-09-19  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.base/multi-forks.exp: Include __kernel_vsyscall in regexp.

2006-09-17  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.mi/mi-stack.exp (test_stack_args_listing): Test that
	HIGH_FRAME argument to -stack-list-arguments can be larger than
	the number of frames.

2006-09-15  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/args.c (main): Add breakpoint marker.
	* gdb.base/args.exp: Use args_test for tests.  Add new tests which
	really test empty arguments.
	(args_load): Delete.
	(args_test): New.

2006-09-13  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.mi/mi-file.exp (test_file_list_exec_source_files): Just
	check for one file.

2006-09-07  Vladimir Prus  <ghost@vladimir@codesourcery.com>

	* gdb.mi/mi-stack.exp (test_stack_frame_listing): Test that
	HIGH_FRAME argument to -stack-list-locals can be larger than
	the number of frames.

2006-08-18  Fred Fish  <fnf@specifix.com>

	* lib/gdb.exp (skip_altivec_tests): Fix apparent typo,
	'$' in front of skip_vmx_tests_saved when setting that.

2006-08-10  Andrew Stubbs  <andrew.stubbs@st.com>

	* gdb.base/trace-commands.exp: New file.

2006-08-10  Joel Brobecker  <brobecker@adacore.com>
	    Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/step-bt.exp: Make hexadecimal address optional in
	expected output of the backtrace commands.

2006-08-09  Joel Brobecker  <brobecker@adacore.com>

	* gdb.arch/altivec-abi.exp: Replace gdb_suppress_entire_file with
	untested followed by return combination.
	* gdb.arch/altivec-regs.exp: Likewise.
	* gdb.arch/e500-abi.exp: Likewise.
	* gdb.arch/e500-regs.exp: Likewise.
	* gdb.arch/gdb1291.exp: Likewise.
	* gdb.arch/gdb1431.exp: Likewise.
	* gdb.arch/gdb1558.exp: Likewise.
	* gdb.arch/i386-prologue.exp: Likewise.
	* gdb.arch/i386-unwind.exp: Likewise.
	* gdb.asm/asm-source.exp: Likewise.
	* gdb.base/a2-run.exp: Likewise.
	* gdb.base/advance.exp: Likewise.
	* gdb.base/all-bin.exp: Likewise.
	* gdb.base/annota1.exp: Likewise.
	* gdb.base/annota3.exp: Likewise.
	* gdb.base/args.exp: Likewise.
	* gdb.base/arithmet.exp: Likewise.
	* gdb.base/assign.exp: Likewise.
	* gdb.base/async.exp: Likewise.
	* gdb.base/attach.exp: Likewise.
	* gdb.base/bang.exp: Likewise.
	* gdb.base/bigcore.exp: Likewise.
	* gdb.base/bitfields.exp: Likewise.
	* gdb.base/bitfields2.exp: Likewise.
	* gdb.base/break.exp: Likewise.
	* gdb.base/call-sc.exp: Likewise.
	* gdb.base/call-strs.exp: Likewise.
	* gdb.base/callfuncs.exp: Likewise.
	* gdb.base/checkpoint.exp: Likewise.
	* gdb.base/chng-syms.exp: Likewise.
	* gdb.base/code-expr.exp: Likewise.
	* gdb.base/commands.exp: Likewise.
	* gdb.base/completion.exp: Likewise.
	* gdb.base/cond-expr.exp: Likewise.
	* gdb.base/condbreak.exp: Likewise.
	* gdb.base/consecutive.exp: Likewise.
	* gdb.base/constvars.exp: Likewise.
	* gdb.base/corefile.exp: Likewise.
	* gdb.base/cvexpr.exp: Likewise.
	* gdb.base/dbx.exp: Likewise.
	* gdb.base/define.exp: Likewise.
	* gdb.base/detach.exp: Likewise.
	* gdb.base/display.exp: Likewise.
	* gdb.base/dump.exp: Likewise.
	* gdb.base/ena-dis-br.exp: Likewise.
	* gdb.base/ending-run.exp: Likewise.
	* gdb.base/environ.exp: Likewise.
	* gdb.base/eval-skip.exp: Likewise.
	* gdb.base/exprs.exp: Likewise.
	* gdb.base/fileio.exp: Likewise.
	* gdb.base/finish.exp: Likewise.
	* gdb.base/float.exp: Likewise.
	* gdb.base/foll-exec.exp: Likewise.
	* gdb.base/foll-fork.exp: Likewise.
	* gdb.base/foll-vfork.exp: Likewise.
	* gdb.base/freebpcmd.exp: Likewise.
	* gdb.base/funcargs.exp: Likewise.
	* gdb.base/gcore.exp: Likewise.
	* gdb.base/gdb1090.exp: Likewise.
	* gdb.base/gdb1250.exp: Likewise.
	* gdb.base/huge.exp: Likewise.
	* gdb.base/info-proc.exp: Likewise.
	* gdb.base/interrupt.exp: Likewise.
	* gdb.base/jump.exp: Likewise.
	* gdb.base/langs.exp: Likewise.
	* gdb.base/lineinc.exp: Likewise.
	* gdb.base/list.exp: Likewise.
	* gdb.base/logical.exp: Likewise.
	* gdb.base/long_long.exp: Likewise.
	* gdb.base/macscp.exp: Likewise.
	* gdb.base/maint.exp: Likewise.
	* gdb.base/mips_pro.exp: Likewise.
	* gdb.base/miscexprs.exp: Likewise.
	* gdb.base/multi-forks.exp: Likewise.
	* gdb.base/opaque.exp: Likewise.
	* gdb.base/overlays.exp: Likewise.
	* gdb.base/pc-fp.exp: Likewise.
	* gdb.base/pointers.exp: Likewise.
	* gdb.base/printcmds.exp: Likewise.
	* gdb.base/psymtab.exp: Likewise.
	* gdb.base/ptype.exp: Likewise.
	* gdb.base/recurse.exp: Likewise.
	* gdb.base/relational.exp: Likewise.
	* gdb.base/relocate.exp: Likewise.
	* gdb.base/remote.exp: Likewise.
	* gdb.base/reread.exp: Likewise.
	* gdb.base/restore.exp: Likewise.
	* gdb.base/return.exp: Likewise.
	* gdb.base/return2.exp: Likewise.
	* gdb.base/scope.exp: Likewise.
	* gdb.base/sect-cmd.exp: Likewise.
	* gdb.base/sep.exp: Likewise.
	* gdb.base/sepdebug.exp: Likewise.
	* gdb.base/setshow.exp: Likewise.
	* gdb.base/setvar.exp: Likewise.
	* gdb.base/sigall.exp: Likewise.
	* gdb.base/sigbpt.exp: Likewise.
	* gdb.base/signals.exp: Likewise.
	* gdb.base/signull.exp: Likewise.
	* gdb.base/sizeof.exp: Likewise.
	* gdb.base/solib.exp: Likewise.
	* gdb.base/step-line.exp: Likewise.
	* gdb.base/step-test.exp: Likewise.
	* gdb.base/structs.exp: Likewise.
	* gdb.base/structs2.exp: Likewise.
	* gdb.base/term.exp: Likewise.
	* gdb.base/twice.exp: Likewise.
	* gdb.base/until.exp: Likewise.
	* gdb.base/varargs.exp: Likewise.
	* gdb.base/volatile.exp: Likewise.
	* gdb.base/watchpoint.exp: Likewise.
	* gdb.base/whatis-exp.exp: Likewise.
	* gdb.base/whatis.exp: Likewise.
	* gdb.cp/ambiguous.exp: Likewise.
	* gdb.cp/annota2.exp: Likewise.
	* gdb.cp/annota3.exp: Likewise.
	* gdb.cp/bool.exp: Likewise.
	* gdb.cp/breakpoint.exp: Likewise.
	* gdb.cp/casts.exp: Likewise.
	* gdb.cp/class2.exp: Likewise.
	* gdb.cp/classes.exp: Likewise.
	* gdb.cp/cplusfuncs.exp: Likewise.
	* gdb.cp/ctti.exp: Likewise.
	* gdb.cp/derivation.exp: Likewise.
	* gdb.cp/exception.exp: Likewise.
	* gdb.cp/gdb1355.exp: Likewise.
	* gdb.cp/hang.exp: Likewise.
	* gdb.cp/inherit.exp: Likewise.
	* gdb.cp/local.exp: Likewise.
	* gdb.cp/m-data.exp: Likewise.
	* gdb.cp/m-static.exp: Likewise.
	* gdb.cp/member-ptr.exp: Likewise.
	* gdb.cp/method.exp: Likewise.
	* gdb.cp/misc.exp: Likewise.
	* gdb.cp/namespace.exp: Likewise.
	* gdb.cp/overload.exp: Likewise.
	* gdb.cp/ovldbreak.exp: Likewise.
	* gdb.cp/pr-1023.exp: Likewise.
	* gdb.cp/pr-1210.exp: Likewise.
	* gdb.cp/pr-574.exp: Likewise.
	* gdb.cp/printmethod.exp: Likewise.
	* gdb.cp/psmang.exp: Likewise.
	* gdb.cp/ref-params.exp: Likewise.
	* gdb.cp/ref-types.exp: Likewise.
	* gdb.cp/rtti.exp: Likewise.
	* gdb.cp/templates.exp: Likewise.
	* gdb.cp/try_catch.exp: Likewise.
	* gdb.cp/userdef.exp: Likewise.
	* gdb.cp/virtfunc.exp: Likewise.
	* gdb.disasm/am33.exp: Likewise.
	* gdb.disasm/h8300s.exp: Likewise.
	* gdb.disasm/mn10300.exp: Likewise.
	* gdb.disasm/sh3.exp: Likewise.
	* gdb.disasm/t01_mov.exp: Likewise.
	* gdb.disasm/t02_mova.exp: Likewise.
	* gdb.disasm/t03_add.exp: Likewise.
	* gdb.disasm/t04_sub.exp: Likewise.
	* gdb.disasm/t05_cmp.exp: Likewise.
	* gdb.disasm/t06_ari2.exp: Likewise.
	* gdb.disasm/t07_ari3.exp: Likewise.
	* gdb.disasm/t08_or.exp: Likewise.
	* gdb.disasm/t09_xor.exp: Likewise.
	* gdb.disasm/t10_and.exp: Likewise.
	* gdb.disasm/t11_logs.exp: Likewise.
	* gdb.disasm/t12_bit.exp: Likewise.
	* gdb.disasm/t13_otr.exp: Likewise.
	* gdb.hp/gdb.aCC/optimize.exp: Likewise.
	* gdb.hp/gdb.aCC/watch-cmd.exp: Likewise.
	* gdb.hp/gdb.base-hp/callfwmall.exp: Likewise.
	* gdb.hp/gdb.base-hp/dollar.exp: Likewise.
	* gdb.hp/gdb.base-hp/hwwatchbus.exp: Likewise.
	* gdb.hp/gdb.base-hp/pxdb.exp: Likewise.
	* gdb.hp/gdb.base-hp/reg-pa64.exp: Likewise.
	* gdb.hp/gdb.base-hp/reg.exp: Likewise.
	* gdb.hp/gdb.base-hp/sized-enum.exp: Likewise.
	* gdb.hp/gdb.compat/xdb1.exp: Likewise.
	* gdb.hp/gdb.compat/xdb3.exp: Likewise.
	* gdb.hp/gdb.objdbg/objdbg01.exp: Likewise.
	* gdb.hp/gdb.objdbg/objdbg02.exp: Likewise.
	* gdb.hp/gdb.objdbg/objdbg03.exp: Likewise.
	* gdb.hp/gdb.objdbg/objdbg04.exp: Likewise.
	* gdb.mi/gdb701.exp: Likewise.
	* gdb.mi/gdb792.exp: Likewise.
	* gdb.mi/mi-basics.exp: Likewise.
	* gdb.mi/mi-break.exp: Likewise.
	* gdb.mi/mi-cli.exp: Likewise.
	* gdb.mi/mi-console.exp: Likewise.
	* gdb.mi/mi-disassemble.exp: Likewise.
	* gdb.mi/mi-eval.exp: Likewise.
	* gdb.mi/mi-file.exp: Likewise.
	* gdb.mi/mi-read-memory.exp: Likewise.
	* gdb.mi/mi-regs.exp: Likewise.
	* gdb.mi/mi-return.exp: Likewise.
	* gdb.mi/mi-simplerun.exp: Likewise.
	* gdb.mi/mi-stack.exp: Likewise.
	* gdb.mi/mi-stepi.exp: Likewise.
	* gdb.mi/mi-syn-frame.exp: Likewise.
	* gdb.mi/mi-until.exp: Likewise.
	* gdb.mi/mi-var-block.exp: Likewise.
	* gdb.mi/mi-var-child.exp: Likewise.
	* gdb.mi/mi-var-cmd.exp: Likewise.
	* gdb.mi/mi-var-display.exp: Likewise.
	* gdb.mi/mi-watch.exp: Likewise.
	* gdb.mi/mi2-basics.exp: Likewise.
	* gdb.mi/mi2-break.exp: Likewise.
	* gdb.mi/mi2-cli.exp: Likewise.
	* gdb.mi/mi2-console.exp: Likewise.
	* gdb.mi/mi2-disassemble.exp: Likewise.
	* gdb.mi/mi2-eval.exp: Likewise.
	* gdb.mi/mi2-file.exp: Likewise.
	* gdb.mi/mi2-read-memory.exp: Likewise.
	* gdb.mi/mi2-regs.exp: Likewise.
	* gdb.mi/mi2-return.exp: Likewise.
	* gdb.mi/mi2-simplerun.exp: Likewise.
	* gdb.mi/mi2-stack.exp: Likewise.
	* gdb.mi/mi2-stepi.exp: Likewise.
	* gdb.mi/mi2-syn-frame.exp: Likewise.
	* gdb.mi/mi2-until.exp: Likewise.
	* gdb.mi/mi2-var-block.exp: Likewise.
	* gdb.mi/mi2-var-child.exp: Likewise.
	* gdb.mi/mi2-var-cmd.exp: Likewise.
	* gdb.mi/mi2-var-display.exp: Likewise.
	* gdb.mi/mi2-watch.exp: Likewise.
	* gdb.stabs/exclfwd.exp: Likewise.
	* gdb.stabs/weird.exp: Likewise.
	* gdb.threads/gcore-thread.exp: Likewise.
	* gdb.trace/actions.exp: Likewise.
	* gdb.trace/backtrace.exp: Likewise.
	* gdb.trace/circ.exp: Likewise.
	* gdb.trace/collection.exp: Likewise.
	* gdb.trace/deltrace.exp: Likewise.
	* gdb.trace/infotrace.exp: Likewise.
	* gdb.trace/limits.exp: Likewise.
	* gdb.trace/packetlen.exp: Likewise.
	* gdb.trace/passc-dyn.exp: Likewise.
	* gdb.trace/passcount.exp: Likewise.
	* gdb.trace/report.exp: Likewise.
	* gdb.trace/save-trace.exp: Likewise.
	* gdb.trace/tfind.exp: Likewise.
	* gdb.trace/tracecmd.exp: Likewise.
	* gdb.trace/while-dyn.exp: Likewise.
	* gdb.trace/while-stepping.exp: Likewise.

2006-08-08  Joel Brobecker  <brobecker@adacore.com>

	* gdb.base/step-bt.c: New file.
	* gdb.base/step-bt.exp: New testcase.

2006-08-08  Daniel Jacobowitz  <dan@codesourcery.com>

	* config/monitor.exp (gdb_load): Remove support for obsolete
	download-write-size.
	* gdb.base/remote.exp: Likewise.  Update all callers of
	gdb_timed_load.

2006-08-02  Daniel Jacobowitz  <dan@codesourcery.com>

	* cursal.exp: Pass binfile to gdb_load.

2006-08-01  Nathan Sidwell  <nathan@codesourcery.com>

	* gdb.base/cursal.exp: Add "" to gdb_load call.

2006-07-29  Mark Kettenis  <kettenis@gnu.org>

	* gdb.asm/asm-source.exp: Add alpha-*-netbsd* to the list of
	NetBSD/ELF targets.

2006-07-25  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.cp/userdef.cc, gdb.cp/userdef.exp: New tests for unary
	operator*.

2006-07-24  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/completion.exp: Update for change in "file" behavior.
	* gdb.stabs/weird.exp: Likewise.
	* lib/mi-support.exp (mi_gdb_file_cmd): Likewise.
	* lib/gdb.exp (gdb_file_cmd): Likewise.  Kill the program explicitly.

2006-07-24  Nathan Sidwell  <nathan@codesourcery.com>

	* gdb.base/auxv.exp: Skip on non-linux, non-solaris targets.
	* gdb.base/cursal.exp: Use gdb_file_cmd first, then separate gdb_load.

2006-07-21  Andrew Stubbs  <andrew.stubbs@st.com>

	* gdb.base/default.exp: Update source command error message.
	* gdb.base/help.exp: Update 'help source' message.

2006-07-20  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.cp/bs15503.exp: Update comment for no longer crashing
	test.

2006-07-19  Andrew Stubbs  <andrew.stubbs@st.com>

	* gdb.base/ifelse.exp: Remove troublesome 'got here' messages.

2006-07-18  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.arch/i386-size.c, gdb.arch/i386-size.exp: New files.

2006-07-18  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.threads/print-threads.exp: Use gdb_breakpoint.

2006-07-17  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/long_long.exp (gdb_test_long_long): Exclude
	*-*-openbsd* from targets for wich we expect ARM FPA floating
	point format.

2006-07-17  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.cp/annota3.exp: Expect frame-begin annotation.

2006-07-17  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/annota3.exp: Expect frame-begin annotation.

2006-07-14  Joel Brobecker  <brobecker@adacore.com>

	* gdb.base/help.exp: Adjust "help unset" test to accept
	any list of unset commands.

2006-07-13  Paul N. Hilfinger  <Hilfinger@adacore.com>
	    Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.cp/ref-params.exp: New test.
	* gdb.cp/ref-params.cc: New source file.
	* gdb.cp/Makefile.in (EXECUTABLES): Add ref-params.

2006-07-08  Mark Kettenis  <kettenis@gnu.org>

	* gdb.arch/alpha-step.exp (test_stepi): Do not include trailing
	spaces/tabs in regular expressions since they might not be there.

2006-07-07  Andrew Stubbs  <andrew.stubbs@st.com>

	* gdb.base/ifelse.exp: New file.

2006-07-04  Nathan Sidwell  <nathan@codesourcery.com>

	* gdb.base/huge.c: Allow CRASH_GDB to be set from command
	line.
	* gdb.base/huge.exp: Loop over compilation to find a size that
	is acceptable.
	* gdb.base/remote.exp: Correct expected strings.
	* gdb.dwarf2/mac-fileno.S: Avoid # comments.

2006-06-22  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/store.exp: Don't use gdb_suppress_entire_file.

2006-06-22  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/gdb1555.exp: Use gdb_compile_shlib.  Skip if not
	native.

2006-06-22  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.stabs/exclfwd.exp: Skip the test if configure did not
	enable stabs testing.

2006-06-22  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/auxv.exp: Intercept undefined command messages before
	gdb_test_multiple does.

2006-06-22  Daniel Jacobowitz  <dan@codesourcery.com>

	* Makefile.in (host_alias): Remove.
	(target_alias): Use @target_noncanonical@.
	(site.exp): Don't set host_alias.
	* aclocal.m4: Remove contents.  Include acx.m4.
	* configure: Regenerated.
	* configure.ac: Use ACX_NONCANONICAL_TARGET.

2006-06-13  Nathan Sidwell  <nathan@codesourcery.com>

	* lib/gdb.exp (gdb_load_cmd): New.

	* gdb.base/fileio.c: Add system(NULL) test.
	* gdb.base/fileio.exp: Check it.

	* gdb.base/break.c: Add 10a breakpoint at }
	* gdb.base/break.exp: Add test for breakpoint at }
	* gdb.cp/anon-union.cc: Add code at end of function.
	* gdb.cp/anon-union.exp: Adjust end of function breakpoint.
	* gdb.mi/var-cmd.c: Add code at end of function.
	* gdb.mi/mi-var-display.exp: Adjust end of next.
	* gdb.mi/mi2-var-display.exp: Likewise.
	* gdb.base/fileio.c: Add stop function and insert calls at
	stopping places.
	* gdb.base/fileio.exp: Breakpoint stop function and remove
	explicit line number references.

2006-05-19  Joel Brobecker  <brobecker@adacore.com>

	* gdb.base/del.exp (test_delete_alias): New function.
	Now check that both "del" and "d" work as aliases for "delete".

2006-05-18  Fred Fish  <fnf@specifix.com>

	* gdb.base/a2-run.exp: Allow part of test to run when args aren't
	required.  Check for spurious output after program exits normally.

2006-05-17  Fred Fish  <fnf@specifix.com>

	* gdb.base/relocate.exp: Use gdb_file_cmd rather than
	gdb_load, so it works in the simulator.

2006-05-11  Fred Fish  <fnf@specifix.com>

	* gdb.base/bang.exp: Ignore unexpected output between the
	"program exited normally" and the gdb prompt, as many other
	tests do.

2006-05-07  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/help.exp: Make "delete checkpoint" part option for
	"help d" and "help delete" tests.

2006-05-06  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.mi/mi-basics.exp: Add missing serial number to
	expected output in some mi_gdb_test statements.
	* gdb.mi/mi2-basics.exp: Likewise.

2006-05-05  Joel Brobecker  <brobecker@adacore.com>

	* gdb.base/del.c: New file.
	* gdb.base/del.exp: New testcase.

2006-05-05  David S. Miller  <davem@sunset.davemloft.net>

	* gdb.base/break.exp: Do not assume a breakpoint on
	main will actually be in $srcfile when optimizing.
	* gdb.base/savedregs.exp: Do not require that the dummy
	frame location match up to a symbol and source file location.
	* gdb.mi/mi-regs.exp (111-data-list-register-values x): "No registers"
	will get printed without a mi_cmd_data_list_register_values prefix.
	(*-data-list-register-*): Correct regular expressions to expect the new
	pseudo d? floating point registers.
	* gdb.mi/mi2-regs.exp: Likewise.

2006-05-05  Christophe Lyon  <christophe.lyon@st.com>

	* gdb.cp/m-static.h (class gnu_obj_4): Add dummy member.
	* gdb.cp/m-static.cc (main): Write to test4.dummy, so that test4
	is allocated by the compiler.
	* gdb.mi/var-cmd.c: (do_special_tests): Write to u, anonu, s,
	anons, e, anone to force their allocation by the compiler.

2006-05-05  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/help.exp: Update expected text for help d and
	help delete.

2006-05-02  Mark Kettenis  <kettenis@gnu.org>

	* gdb.asm/asm-source.exp: Add powerpc-*-netbsd* to the list of
	NetBSD/ELF targets.

2006-04-30  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/sigbpt.exp (stepi_out): FAIL when inserting a
	single-step breakpoint fails; make this a KFAIL on
	sparc*-*-openbsd*.
	* gdb.base/siginfo.exp: Likewise.
	* gdb.base/sigstep.exp (advance, advancei): Likewise.

2006-04-26  Michael Snyder  <msnyder@redhat.com>

	* gdb.base/multi-forks.exp: Modify patterns for "run to exit",
	which may have to consume output from other forks.
	Add tests to make sure that "delete fork" succeeded.

2006-04-20  Michael Snyder  <msnyder@redhat.com>

	* 2006-03-22  Jim Blandy  <jimb@redhat.com>
	Add support for the Renesas M32C and M16C.

	* gdb.asm/asm-source.exp: Add m32c target.
	* gdb.asm/m32c.inc: Support for m32c target.

2006-04-07  Andrew Stubbs  <andrew.stubbs@st.com>

	* gdb.base/commands.exp (recursive_source_test): New test.

2006-04-04  David S. Miller  <davem@sunset.davemloft.net>

	* gdb.base/float.exp: Add pattern for sparc targets.

2006-03-30  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/commands.exp (stray_arg0_test): New test.

2006-03-30  Paul Brook  <paul@codesourcery.com>

	* gdb.mi/mi-until.exp: kfail broken until command.
	* gdb.mi/mi2-until.exp: Ditto.

2006-03-27  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.mi/mi-var-child-f.exp, gdb.mi/array.f: New files.

2006-03-08  Alexandre Oliva  <aoliva@redhat.com>

	* gdb.base/prelink.exp: Anchor tested-for regular expression
	on gdb prompt.

2006-03-07  Paul Brook  <paul@codesourcery.com>

	* gdb.base/assign.exp: Correct fail message.

2006-03-07  Paul Brook  <paul@codesourcery.com>

	* lib/compiler.c: Extract armcc version number.
	* lib/compiler.cc: Ditto.

2006-03-07  Paul Brook  <paul@codesourcery.com>

	* gdb.arch/altivec-abi.exp: Use nowarnings instead of
	additional_flags=-w.
	* gdb.arch/altivec-regs.exp: Ditto.
	* gdb.arch/e500-abi.exp: Ditto.
	* gdb.arch/e500-regs.exp: Ditto.
	* gdb.base/all-bin.exp: Ditto.
	* gdb.base/annota1.exp: Ditto.
	* gdb.base/annota3.exp: Ditto.
	* gdb.base/args.exp: Ditto.
	* gdb.base/arithmet.exp: Ditto.
	* gdb.base/assign.exp: Ditto.
	* gdb.base/async.exp: Ditto.
	* gdb.base/bang.exp: Ditto.
	* gdb.base/break.exp: Ditto.
	* gdb.base/call-rt-st.exp: Ditto.
	* gdb.base/completion.exp: Ditto.
	* gdb.base/cond-expr.exp: Ditto.
	* gdb.base/condbreak.exp: Ditto.
	* gdb.base/consecutive.exp: Ditto.
	* gdb.base/define.exp: Ditto.
	* gdb.base/display.exp: Ditto.
	* gdb.base/ena-dis-br.exp: Ditto.
	* gdb.base/environ.exp: Ditto.
	* gdb.base/eval-skip.exp: Ditto.
	* gdb.base/info-proc.exp: Ditto.
	* gdb.base/jump.exp: Ditto.
	* gdb.base/logical.exp: Ditto.
	* gdb.base/long_long.exp: Ditto.
	* gdb.base/maint.exp: Ditto.
	* gdb.base/miscexprs.exp: Ditto.
	* gdb.base/pc-fp.exp: Ditto.
	* gdb.base/pointers.exp: Ditto.
	* gdb.base/relational.exp: Ditto.
	* gdb.base/reread.exp: Ditto.
	* gdb.base/sect-cmd.exp: Ditto.
	* gdb.base/sep.exp: Ditto.
	* gdb.base/sepdebug.exp: Ditto.
	* gdb.base/until.exp: Ditto.
	* gdb.base/whatis-exp.exp: Ditto.
	* gdb.cp/annota2.exp: Ditto.
	* gdb.cp/annota3.exp: Ditto.
	* gdb.trace/actions.exp: Ditto.
	* gdb.trace/backtrace.exp: Ditto.
	* gdb.trace/circ.exp: Ditto.
	* gdb.trace/collection.exp: Ditto.
	* gdb.trace/deltrace.exp: Ditto.
	* gdb.trace/infotrace.exp: Ditto.
	* gdb.trace/limits.exp: Ditto.
	* gdb.trace/packetlen.exp: Ditto.
	* gdb.trace/passc-dyn.exp: Ditto.
	* gdb.trace/passcount.exp: Ditto.
	* gdb.trace/report.exp: Ditto.
	* gdb.trace/save-trace.exp: Ditto.
	* gdb.trace/tfind.exp: Ditto.
	* gdb.trace/tracecmd.exp: Ditto.
	* gdb.trace/while-dyn.exp: Ditto.
	* gdb.trace/while-stepping.exp: Ditto.
	* lib/gdb.exp: Ditto.
	(gdb_compile): Handle nowarning option.

2006-03-07  Alexandre Oliva  <aoliva@redhat.com>

	* gdb.base/prelink.c, gdb.base/prelink-lib.c: Update FSF address.
	* gdb.base/prelink.exp: Likewise.  Add -q to prelink runs.
	Rename executable to prelinkt.  Don't re-prelink if we didn't
	get a core file.  Test prelink -u exit status to tell whether
	prelinking failed.  Use gdb_test_multiple.

2006-03-01  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.cp/inherit.exp (test_print_mi_member_types): New function.
	(do_tests): Call it.

2006-02-28  Alexandre Oliva  <aoliva@redhat.com>

	* gdb.base/prelink.exp: New test.
	* gdb.base/prelink.c, gdb.base/prelink-lib.c: New sources.

2006-02-24  Wu Zhou  <woodzltc@cn.ibm.com>

	* gdb.fortran/derived-type.f90: New file.
	* gdb.fortran/derived-type.exp: New testcase.

2006-02-23  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/default.exp: Allow ';' as a directory separator.

2006-02-21  Andrew Stubbs  <andrew.stubbs@st.com>

	* gdb.base/help.exp (help add-symbol-file): Update.

2006-02-21  Andrew Stubbs  <andrew.stubbs@st.com>

	* gdb.base/help.exp (help load): Update expected results.

2006-02-19  Fred Fish  <fnf@specifix.com>

	* gdb.base/pc-fp.exp (get_valueofx): Don't print environment
	specifix hex value as part of results.
	* gdb.base/shreloc.exp (get_msym_addrs): Ditto.

2006-02-16  Fred Fish  <fnf@specifix.com>

	* gdb.base/whatis.c: Define variables using typedefs char_addr,
	ushort_addr, and slong_addr, so the typedefs are not optimized
	away.
	* gdb.base/whatis.exp: Add tests using type name for struct type,
	union type, enum type, and typedef.

2006-02-13  Mark Kettenis  <kettenis@gnu.org>

	* gdb.arch/i386-prologue.exp: Add testcase for PR breakpoints/2080.

2006-02-13  Jim Blandy  <jimb@redhat.com>

	* gdb.base/scope.exp (test_at_main): Remove logic to handle the
	case where it takes two "next" commands to skip past the init
	call.

2006-02-12  Fred Fish  <fnf@specifix.com>

	* gdb.base/scope.exp (test_at_main): Use gdb_test_multiple
	to handle cases where it takes two "next" commands to skip
	past the init call.

2006-02-07  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/array_return.exp: Mark the last test as expected to fail
	on hppa32 targets.

2006-02-06  Vladimir Prus  <ghost@cs.msu.su>

	* gdb.mi/mi-break.exp, gdb.mi/mi2-break.exp: Test for the fullname
	field.

2006-01-29  Mark Kettenis  <kettenis@gnu.org>

	* gdb.cp/bool.cc, gdb.cp/bool.exp: New files.

2006-01-22  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.arch/powerpc-prologue.c, gdb.arch/powerpc-prologue.exp: New
	files.

2006-01-20  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.cp/maint.exp: Set complaints to a positive value.

2006-01-15  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/multi-forks.c: Add copyright notice.  Include <stdlib.h>.
	* gdb.base/multi-forks.exp: Use a loop.  Allow "fork" as a stopped
	function name.

2006-01-15  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/checkpoint.c: Update copyright notice.  Include
	<stdlib.h>.

2006-01-04  Jim Blandy  <jimb@redhat.com>

	* gdb.asm/asm-source.exp: Independently provide default values for
	asm-flags and debug-flags.  Use 'string equal' to do the
	comparison, not the implicit expr's '==' operator.  Remove
	now-unneeded assignments to asm-flags.  In h8300 case, place
	"-gdwarf-2", not "-gdwarf2", in debug-flags, not asm-flags.

2006-01-04  Michael Snyder  <msnyder@redhat.com>

	* gdb.base/checkpoint.c: New file.
	* gdb.base/checkpoint.exp: New file.
	* gdb.base/multi-fork.c: New file.
	* gdb.base/multi-fork.exp: New file.
	* gdb.base/pi.txt: New file (data for checkpoint.c test).

2006-01-04  Fred Fish  <fnf@specifix.com>

	* gdb.base/ptype.c (foo): Add typedef.
	(intfoo): Add function.
	* gdb.base/ptype1.c: New file.
	* gdb.base/ptype.exp: Handle compilation and linking with two
	source files.  Test that proper type for "foo" is found based
	on source context rather than first match found in symtabs.

2005-12-28  Mark Kettenis  <kettenis@gnu.org>

	* gdb.asm/asm-source.exp (hppa-*-openbsd*): New.
	* gdb.asm/openbsd.inc: Indent commands.

2005-12-26  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/freebpcmd.exp: Increase timeout.

	* gdb.gdb/selftest.exp (test_with_self): Update copyright check.

2005-12-17  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/default.exp: Update check for "show version".

2005-12-09  Randolph Chung  <tausq@debian.org>

	* gdb.asm/asm-source.exp (hppa64-*-hpux*): New.
	* gdb.asm/pa64.inc: New file.

2005-12-09  Randolph Chung  <tausq@debian.org>

	* gdb.asm/common.inc: Indent commands.
	* gdb.asm/asmsrc1.s: Likewise.
	* gdb.asm/asmsrc2.s: Likewise.

2005-12-09  Randolph Chung  <tausq@debian.org>

	* gdb.arch/pa-nullify.exp: Handle hppa64-*-* targets.
	(get_addr_of_sym): Remove duplicate print.
	(gen_core): xfail hppa*-*-hpux*, update expected output.
	* gdb.arch/pa-nullify.s: Reformat to also work on HPUX.
	* gdb.arch/pa64-nullify.s: New file.

2005-12-09  Randolph Chung  <tausq@debian.org>

	* gdb.base/dump.exp: Mark hppa64-*-* as 64-bit target.

2005-12-07  Christophe Lyon  <christophe.lyon@st.com>

	* gdb.cp/printmethod.cc (main): Call virt and nonvirt, to force
	code generation for these functions.
	* gdb.cp/printmethod.exp: Expect "&A::nonvirt()" instead of an
	error message.

2005-12-02  Andrew Stubbs  <andrew.stubbs@st.com>

	* gdb.base/help.exp (help b, help br, help bre, help brea)
	(help break): Update the expected message.

2005-11-11  Stephane Carrez  <stcarrez@nerim.fr>

	* gdb.asm/m68hc11.inc: Setup the data section.
	* gdb.asm/asm-source.exp (m6811-*-*): Don't use the target board linker
	script for this test.
	(m6812-*-*): Likewise.

2005-11-09  Randolph Chung <tausq@debian.org>

	* gdb.base/structs2.exp: Update xfail to only trigger for gcc-3.x.

2005-11-09  Wu Zhou  <woodzltc@cn.ibm.com>

	* gdb.base/break.exp: Fix a comment typo.

2005-11-03  Jim Blandy  <jimb@redhat.com>

	Checked in by Elena Zannoni  <ezannoni@redhat.com>

	* gdb.dwarf2/mac-fileno.exp, gdb.dwarf2/mac-fileno.S: New tests.

2005-11-02  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.arch/gdb1558.c: Include stdio.h.

2005-10-31  Mark Kettenis  <kettenis@gnu.org>

	* gdb.asm/asm-source.exp: Use -e instead of --entry.

2005-10-31  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/bfp-test.exp: Properly anchor gdb_multiple_test usage.

2005-10-17  Paul Gilliam  <pgilliam@us.ibm.com>

	* gdb.arch/altivec-regs.exp: Adjust "info reg vrsave" and "info reg
	vscr" tests to better match output.

2005-10-12  Jim Blandy  <jimb@redhat.com>

	* gdb.base/structs.exp (any): New function.
	(test_struct_returns): Don't make any assumptions at all about
	what value the function returns when GDB can't set the return
	value.

2005-10-09  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/arrayidx/p.adb: New file.
	* gdb.ada/arrayidx.exp: New testcase

2005-10-09  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/array_return/pck.ads: New file.
	* gdb.ada/array_return/pck.adb: New file.
	* gdb.ada/array_return/p.adb: New file.
	* gdb.ada/array_return.exp: New testcase.

2005-10-03  Joel Brobecker  <brobecker@adacore.com>

	* gdb.base/arrayidx.c: New file.
	* gdb.base/arrayidx.exp: New testcase.

2005-09-29  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.base/annota3.exp, gdb.cp/annota3.exp: The annotations
	frames-invalid and breakpoints-invalid are no longer generated
	with level 3 so don't expect them in the output.

2005-09-27  Bob Rossi  <bob@brasko.net>

	* gdb.mi/mi-disassemble.exp, gdb.mi/mi2-disassemble.exp: Remove .*
	from test.  Escape the | in mi_gdb_test call.
	* gdb.mi/mi-basics.exp, gdb.mi/mi-cli.exp, gdb.mi/mi-disassemble.exp,
	gdb.mi/mi-pthreads.exp, gdb.mi/mi-stack.exp, gdb.mi/mi2-basics.exp,
	gdb.mi/mi2-cli.exp, gdb.mi/mi2-disassemble.exp,
	gdb.mi/mi2-pthreads.exp, gdb.mi/mi2-stack.exp: Add extra details to
	expected regex's in mi_gdb_test calls.
	* lib/mi-support.exp: Remove arbitrary .* from tests.
	(mi_gdb_test): Add string_regex variable. Add anchor to main -re.
	Fully anchor GDB/MI expected results in mi_gdb_test.
	* lib/gdb.exp (string_to_regexp): Escape the ] character.
	* gdb.base/sizeof.exp: Remove escape character. Correct test.

2005-09-26  Paul Brook  <paul@codesourcery.com>

	* long_long.exp: Exclude eabi targets from arm FPA float format test.

2005-09-20  Wu Zhou  <woodzltc@cn.ibm.com>

	* bfp-test.c: New file.
	* bfp-test.exp: New testcase.

2005-09-20  Wu Zhou  <woodzltc@cn.ibm.com>

	* gdb.fortran/subarray.exp: New testcase to test the evaluation
	of subarray and substring variable.
	* gdb.fortran/subarray.f: New source file for the test of subarray
	and substring variable evaluation.
	* gdb.fortran/exprs.exp: Add four tests for substring evaluation
	of string constant.

2005-09-19  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.arch/altivec-regs.exp, gdb.arch/altivec-abi.exp: Update
	copyright dates.

2005-09-19  Paul Gilliam  <pgilliam@us.ibm.com>

	* gdb.arch/altivec-regs.exp (info powerpc altivec): Replace the 'info
	powerpc altivec' test with an almost identical 'info vector' test.

2005-09-13  Paul Gilliam  <pgilliam@us.ibm.com>

	* gdb.arch/altivec-regs.exp: Adjust "info reg vrsave" and "info reg
	vscr" tests to match output.

2005-09-13  Paul Gilliam  <pgilliam@us.ibm.com>

	* gdb.arch/altivec-regs.exp: Adjust "print $vx<i>" tests to match
	output.

2005-09-11  Bob Rossi  <bob@brasko.net>

	* lib/mi-support.exp (mi_gdb_test): Change -re to not be anchored.
	* gdb.mi/mi-syn-frame.exp: Call mi_gdb_test twice instead of once for
	commands that return an MI output command and an asyncronous MI output
	command.
	* gdb.mi/mi-console.exp: Ditto.

2005-09-11  Bob Rossi  <bob@brasko.net>

	* gdb.mi/mi-var-child.c: Include <string.h>.

2005-09-10  Daniel Jacobowitz  <dan@codesourcery.com>

	* killed.exp: Correct gdb_expect syntax.

2005-08-09  Corinna Vinschen  <vinschen@redhat.com>

	* lib/mi-support.exp (mi_gdb_load): Fix typo.

2005-08-02  Bob Rossi  <bob@brasko.net>

	* gdb.mi/mi-basics.exp: Tell mi_gdb_start to use a PTY for inferior.
	(test_setshow_inferior_tty): Add global mi_inferior_tty_name to scope.
	Change tests to inferior-tty-set/show.
	* gdb.mi/mi-console.exp: Tell mi_gdb_start to use a PTY for inferior.
	(47-exec-next): Use mi_gdb_test to get GDB and Inferior output.
	* gdb.mi/mi-syn-frame.exp: Tell mi_gdb_start to use a PTY for
	inferior.  Use mi_gdb_test to get GDB and Inferior output.
	* lib/mi-support.exp (mi_inferior_spawn_id): Add inferior PTY
	descriptor.
	(mi_inferior_tty_name): Add inferior PTY file name.
	(mi_gdb_start): Add INFERIOR_PTY parameter.
	(mi_gdb_test): Add IPATTERN parameter.

2005-08-02   Bob Rossi  <bob@brasko.net>

	* gdb.mi/mi-syn-frame.exp, gdb.mi/mi2-syn-frame.exp: Add MESSAGE
	parameter to mi_gdb_test.
	* lib/mi-support.exp (mi_gdb_test): Make MESSAGE parameter necessary.

2005-07-31  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.mi/mi-var-child.c (do_children_tests): Initialize
	struct_declarations.
	* gdb.mi/mi-var-child.exp: Step over the initialization of
	struct_declarations.

2005-07-31  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.mi/basics.c, gdb.mi/var-cmd.c: Revert last change.
	* gdb.mi/mi-stack.c: New file, based on gdb.mi/basics.c.
	* gdb.mi/mi-var-child.c: New file, based on gdb.mi/var-cmd.c.
	* gdb.mi/mi-stack.exp: Update to use mi-stack.c as a source file.
	* gdb.mi/mi-var-child.exp: Update to use mi-var-child.c as a source
	file.

2005-07-27  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.mi/var-cmd.c: Give long_array in _struct_decl 12 elements.
	(do_children_tests): Assign values to the extra elements.

	* gdb.mi/mi-var-child.exp: Adapt tests for extra elements and use
	them for tests for "-var-update --no-values" and
	"-var-update --all-values".
	Add test for "-var-list-children --simple-values".

	* gdb.mi/basics.c (callee4): Add integer array D[3]...

	* gdb.mi/mi-stack.exp (test_stack_locals_listing): ...to test
	"-stack-list-locals --simple-values"  Improve doc strings and
	comments.

2005-07-18  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/sigaltstack.exp (finish_test): KFAIL gdb/1736 on
	*-*-openbsd*.
	* gdb.base/sigstep.exp (advancei): KFAIL gdb/1736 on *-*-openbsd*.

	* gdb.base/sigaltstack.c (main): Use stack_t instead of `struct
	sigaltsatck'.

2005-07-14  Bob Rossi  <bob@brasko.net>

	* gdb.base/default.exp (tty): Changed output of command.
	* gdb.base/help.exp (help tty): Ditto.

2005-07-12  Mark Kettenis  <kettenis@gnu.org>

	* gdb.arch/i386-sse.exp: Compile with -msse when using GCC.

2005-07-10  Mark Kettenis  <kettenis@gnu.org>

	* gdb.mi/mi2-stack.exp (test_stack_locals_listing): Remove test for
	-stack-select-frame without arguments.
	(test_stack_frame_listing): Add test for newly implemented command
	-stack-info-frame.

2005-07-06  Bob Rossi  <bob@brasko.net>

	* gdb.mi/mi-basics.exp (test_setshow_inferior_tty): Test MI tty
	command.
	(Copyright): Update copyright.

2005-07-06  Wu Zhou  <woodzltc@cn.ibm.com>

	* gdb.fortran/exprs.exp (test_arithmetic_expressions): Add five
	tests to evaluate exponentiation expression.

2005-06-29  Andreas Schwab  <schwab@suse.de>

	* gdb.base/sigrepeat.c: Include <stdlib.h> and add return type for
	main to avoid warnings.

	* gdb.base/sigrepeat.exp: Fix reference to undefined variable.

2005-06-20  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.mi/mi-stack.exp (test_stack_locals_listing): Remove test for
	-stack-select-frame without arguments.
	(test_stack_frame_listing): Add test for newly implemented command
	-stack-info-frame.

2005-06-17  Wu Zhou  <woodzltc@cn.ibm.com>

	* gdb.fortran/array-element.f: New file.
	* gdb.fortran/array-element.exp: New testcase.

2005-06-13  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/bigcore.exp: Correct checks for systems which can
	not dump a large core file.

2005-06-13  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/relocate.c: Add a copyright notice.
	(dummy): Remove.
	* gdb.base/relocate.exp: Test printing the values of variables
	from a relocatable file.

2005-06-12  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.mi/mi-syn-frame.exp, gdb.mi/mi2-syn-frame.exp: Don't expect
	excess MI output after an error.

2005-05-29  Joel Brobecker  <brobecker@adacore.com>

	* gdb.arch/alpha-step.c: New file.
	* gdb.arch/alpha-step.exp: New testcase.

2005-05-17  Daniel Jacobowitz  <dan@codesourcery.com>
	    Dennis Brueni  <dennis@slickedit.com>

	* gdb.mi/mi-cli.exp, gdb.mi/mi-return.exp, gdb.mi/mi-stack.exp,
	gdb.mi/mi-stepi.exp, gdb.mi/mi-syn-frame.exp, gdb.mi/mi-until.exp,
	gdb.mi/mi-var-display.exp, gdb.mi/mi-watch.exp, gdb.mi/mi2-cli.exp,
	gdb.mi/mi2-return.exp, gdb.mi/mi2-stack.exp,
	gdb.mi/mi2-syn-frame.exp, gdb.mi/mi2-until.exp,
	gdb.mi/mi2-var-display.exp: Expect fullname field in stack frames.
	* lib/mi-support.exp (mi_runto, mi_execute_to_helper): Likewise.

2005-05-17  Paul Gilliam  <pgilliam@us.ibm.com>
	    Wu Zhou  <woodzltc@cn.ibm.com>

	* gdb.base/shreloc.exp: Use gdb_compile_shlib.  Add support for
	IBM's xlc compiler.
	* gdb.base/shreloc1.c (fn_1): Reference variable static_var_1.
	* gdb.base/shreloc2.c (fn_2): Reference variable static_var_2.

2005-05-13  Jim Blandy  <jimb@redhat.com>

	* gdb.base/call-ar-st.exp: Call 'untested' and return -1 instead of
	calling gdb_suppress_entire_file.
	* gdb.base/charset.exp: Same.
	* gdb.base/call-rt-st.exp: Same.

2005-05-05  Bob Rossi  <bob_rossi@cox.net>

	* lib/gdb.exp (fullname_syntax): Added global regex.
	(fullname_syntax_POSIX): Ditto.
	(fullname_syntax_UNC): Ditto.
	(fullname_syntax_DOS_CASE): Ditto.
	(fullname_syntax_DOS): Ditto.
	* gdb.mi/mi-file.exp (test_file_list_exec_source_file): Added
	fullname_syntax variable to scope and use it.
	(test_file_list_exec_source_files): Ditto.
	* gdb.mi/mi2-file.exp (test_file_list_exec_source_file): Ditto.

2005-05-04  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.threads/linux-dp.exp: Check for *-*-linux-gnu*.

2004-05-02  Paul Gilliam  <pgilliam@us.ibm.com>

	* lib/gdb.exp (skip_altivec_tests): New function, based on
	check_vmx_hw_available from the GCC testsuite.
	* lib/gdb.arch/altivec-abi.exp: Use skip_altivec_tests.
	* lib/gdb.arch/altivec-regs.exp: Likewise.

2005-05-02  Jim Blandy  <jimb@redhat.com>

	* gdb.base/auxv.exp: Call 'untested' and return -1 instead of
	calling gdb_suppress_entire_file.

2005-04-30  Randolph Chung  <tausq@debian.org>

	* gdb.threads/staticthreads.exp: Override signal to check for hppa.
	Slightly relax "sem_post" name checking.

2005-04-29  Paul Gilliam  <pgilliam@us.ibm.com>

	* gdb.base/unload.exp: Use new shared library infrastructure.

2005-04-29  Paul Gilliam  <pgilliam@us.ibm.com>

	* gdb.base/so-impl-ld.exp: Use new shared library
	infrastructure.

2005-04-29  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.asm/asm-source.exp: Add h8300 to supported targets.
	* gdb.asm/h8300.inc: New file.

2005-04-28  Paul Gilliam  <pgilliam@us.ibm.com>

	* gdb.base/shlib-call.exp: Change to use new shared library
	infrastructure.

2005-04-28  Paul Gilliam  <pgilliam@us.ibm.com>

	* gdb.base/pending.exp: Change to use new shared library
	infrastructure.

2005-04-28  Paul Gilliam  <pgilliam@us.ibm.com>

	* gdb.base/nodebug.exp: Allow for compiling by IBM's xlc compiler,
	use test_compiler_info instead of gcc_compiled, and update copyright.

2005-04-27  Paul Gilliam  <pgilliam@us.ibm.com>

	* gdb.base/annota1.exp : Deal with messages caused by breakpoints in
	shared objects being adjusted and update copyright years.

2005-04-27  Daniel Jacobowitz  <dan@codesourcery.com>

	* ChangeLog: Correct some 2003-01-13 dates.
	* gdb.base/sigbpt.exp, gdb.base/signull.exp, gdb.cp/bs15503.exp,
	gdb.cp/exception.exp, gdb.cp/userdef.cc, gdb.cp/userdef.exp,
	gdb.mi/mi-console.exp, gdb.mi/mi2-console.exp,
	gdb.trace/collection.exp, gdb.trace/passc-dyn.exp,
	gdb.trace/tfind.exp: Update copyright years.

2005-04-14  Paul Gilliam  <pgilliam@us.ibm.com>
	    Daniel Jacobowitz  <dan@codesourcery.com>

	* lib/gdb.exp (gdb_compile): Handle shlib=.
	(gdb_compile_shlib): New function.

2005-04-12  Paul Gilliam  <pgilliam@us.ibm.com>

	* lib/gdb.exp (test_compiler_info): Give argument a default value.

2005-04-08  Daniel Jacobowitz  <dan@codesourcery.com>

	* Makefile.in (ALL_SUBDIRS): Replace gdb.gdbserver with
	gdb.server.
	* configure.ac: Likewise.
	* configure: Regenerated.
	* gdb.gdbserver/Makefile.in: Moved to...
	* gdb.server/Makefile.in: ... here.
	* gdb.gdbserver/server.c: Moved to...
	* gdb.server/server.c: ... here.
	* gdb.gdbserver/server-run.exp: Moved to...
	* gdb.server/server-run.exp: ... here.

2005-04-08  Daniel Jacobowitz  <dan@codesourcery.com>

	* Makefile.in (ALL_SUBDIRS): Add gdb.gdbserver.
	* configure.ac: Create gdb.gdbserver/Makefile.
	* configure: Regenerated.
	* lib/gdbserver-support.exp: New file, derived from
	config/gdbserver.exp.
	* config/gdbserver.exp: Use gdbserver-support.exp.
	* gdb.gdbserver/Makefile.in: New file.
	* gdb.gdbserver/server.c: New file.
	* gdb.gdbserver/server-run.exp: New file.

2005-04-06  Paul Gilliam  <pgilliam@us.ibm.com>

	* lib/gdb.exp (test_compiler_info): Return compiler_info
	if no arguments are given.

2005-04-01  Paul Gilliam  <pgilliam@us.ibm.com>

	* gdb.arch/altivec-abi.exp: Check for compiler and set
	use altivec' flag accordingly.
	* gdb.arch/altivec-regs.exp: Likewise.

2005-03-29  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/ptr-typedef.exp, gdb.base/ptr-typedef.c: New files.

2005-03-27  Andreas Schwab  <schwab@suse.de>

	* gdb.base/bigcore.c (main): Add missing mode argument in open
	call.

2005-03-25  Daniel Jacobowitz  <dan@codesourcery.com>

	* lib/mi-support.exp (mi_gdb_load): Use /tmp for gdbserver
	downloads.
	* config/gdbserver.exp (gdb_load): Likewise.

2005-03-14  Paul Brook  <paul@codesourcery.com>

	* lib/mi-support.exp: Use mi_gdb_target_cmd to connect to remote
	targets.

2005-03-09  Joel Brobecker  <brobecker@adacore.com>

	* gdb.dwarf2/dup-psym.S: New file.
	* gdb.dwarf2/dup-psym.exp: New testcase.

2005-03-09  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/exec_changed/first.adb: New file.
	* gdb.ada/exec_changed/second.adb: New file.
	* gdb.ada/exec_changed.exp: New testcase.

2005-03-08  Nathan Sidwell  <nathan@codesourcery.com>

	* gdb.cp/userdef.cc (A1::operator+): New unary plus.
	(A2): New class.
	(main): Test operator+.
	* gdb.cp/userdef.exp: Test unary plus.  Use A2::operator+ for
	breakpoint test.

	* gdb.base/sigbpt.exp: Disable if gdb,nosignals.
	* gdb.base/signull.exp: Disable if gdb,nosignals.
	* gdb.cp/bs15503.exp: Disable if skip_cplus_tests
	* gdb.cp/exception.exp: Disable if skip_cplus_tests.
	* gdb.mi/mi-console.exp: Disable hello test if gdb,noinferiorio.
	* gdb.mi/mi2-console.exp: Likewise.
	* gdb.trace/collection.exp (run_trace_experiment): Consume the
	continue output at start.
	(gdb_collect_locals_test): Robustify regexp.
	* gdb.trace/passc-dyn.exp: Fix comment typo.
	* gdb.trace/tfind.exp: Don't enable optimization. Remove stray ']'.

2005-03-08  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.asm/asm-source.exp: Add iq2000 case.
	* gdb.asm/iq2000.inc: New file.

2005-03-07  Manoj Iyer <manjo@austin.ibm.com>

	* gdb.base/command.exp: Change hardcoded value to regular expression.
	* gdb.base/float.exp: Add powerpc to the list of targets checked.

2005-03-07  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.asm/alpha.inc, gdb.asm/frv.inc, gdb.asm/i386.inc,
	gdb.asm/ia64.inc, gdb.asm/m68hc11.inc, gdb.asm/m68k.inc,
	gdb.asm/mips.inc, gdb.asm/pa.inc, gdb.asm/powerpc.inc,
	gdb.asm/s390.inc, gdb.asm/s390x.inc, gdb.asm/sh.inc,
	gdb.asm/x86_64.inc: Use .purgem before redefining macros.

2005-03-05  Mark Kettenis  <kettenis@gnu.org>

	* gdb.cp/ovldbreak.exp: Adjust regular expression for recent
	changes.

2004-03-03  Paul Gilliam  <pgilliam@us.ibm.com>

	* lib/compiler.c: Add test for IBM's xlc compiler.
	* lib/compiler.cc: Likewise.

2004-02-24  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/fixed_points.exp: Create compilation object directory
	before running the test.
	* gdb.ada/null_record.exp: Likewise.
	* gdb.ada/packed_array.exp: Likewise.
	* gdb.ada/start.exp: Likewise.

2005-02-15  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/packed_array/pa.adb: New file.
	* gdb.ada/packed_array.exp: New testcase.

2005-02-10  Mark Kettenis  <kettenis@gnu.org>

	* gdb.dwarf2/dw2-intermix.exp, gdb.dwarf2/dw2-intermix.S: New
	files.

	* gdb.dwarf2/dw2-basic.exp, gdb.dwarf2/dw2-intercu.exp: Run tests
	on *-*-openbsd*.  Correctly match whitespace in regukar
	expressions.

2005-02-10  Daniel Jacobowitz  <dan@debian.org>

	From Ramana Radhakrishnan <ramana.radhakrishnan@codito.com>:
	PR exp/1821
	* gdb.base/gdb1821.c: New test file.
	* gdb.base/gdb1821.exp: New test file.

2005-02-09  Joel Brobecker  <brobecker@adacore.com>

	* gdb.base/start.c: New file.
	* gdb.base/start.exp: New testcase.

2005-02-09  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/start/dummy.adb: New file.
	* gdb.ada/start.exp: New testcase.

2005-02-09  Corinna Vinschen  <vinschen@redhat.com>

	* maint.exp: Raise timeout to give Cygwin targeted GDBs more time
	for printing symbols and statistics.
	Add test for using relative pathnames in "maint print msymbols" test.
	Mark "maint info sections DATA" XFAIL on Cygwin.
	Remove Cygwin XFAIL mark on "help maint dump-me" and "maint dump-me"
	tests.

2005-02-09  Andreas Schwab  <schwab@suse.de>

	Committed by Andrew Cagney  <cagney@gnu.org>
	* gdb.base/remotetimeout.exp: New file.

2005-02-07  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/interp.exp: Remove trailing \n in gdb_test commands.

2005-02-03  Joel Brobecker  <brobecker@adacore.com>

	* gdb.ada/gnat_ada.gpr: New file.
	* gdb.ada/gnat_ada.gin: Delete, no longer used.
	* lib/ada.exp (gdb_compile_ada): Minor adaptation to new project file.
	* configure.ac: No longer generate gnat_ada.gpr.
	* configure: Regenerate.
	* gdb.ada/Makefile.in: Minor adaptations due to new project file.
	* gdb.ada/null_record/null_record.adb: Moved here from gdb.ada.
	* gdb.ada/null_record/bar.ads: Likewise.
	* gdb.ada/null_record/bar.adb: Likewise.
	* gdb.ada/fixed_points/fixed_points.adb: Likewise.
	* gdb.ada/null_record.exp (testdir): New variable.
	(testfile): executable is now in testdir subdirectory.
	(srcfile): Use full path to the main compilation unit.
	* gdb.ada/fixed_points.exp: Same changes as above.

2005-02-03  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.base/interp.exp: New test.

2005-01-24  Andrew Cagney  <cagney@gnu.org>

	* gdb.base/sigrepeat.exp, gdb.base/sigrepeat.c: New test.

2005-01-19  Andrew Cagney  <cagney@gnu.org>

	* gdb.stabs/Makefile.in (Makefile): Update dependencies -
	configure.ac not configure.in.

	* gdb.base/scope.exp (test_at_main): Delete any XFAIL and/or KFAIL
	of powerpc*-*-*.
	* gdb.hp/gdb.base-hp/callfwmall.exp (do_function_calls): Ditto.
	* gdb.base/list.exp (test_list_function)
	(test_list_filename_and_function): Ditto.
	* gdb.base/callfuncs.exp (do_function_calls): Ditto.

2005-01-16  Andrew Cagney  <cagney@gnu.org>

	* gdb.base/source.exp: Delete KFAIL gdb/1846, simplify.

	* gdb.base/source-error.gdb, gdb.base/source.exp: New files.

2005-01-14  Andrew Cagney  <cagney@gnu.org>

	* gdb.mi/mi-var-cmd.exp: Adjust "create int" test to match output.
	* gdb.mi/mi2-var-cmd.exp: Ditto.

2005-01-10  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.base/fileio.c: Include unistd.h as required for lseek(2).

2005-01-07  Andrew Cagney  <cagney@gnu.org>

	* configure.ac: Rename configure.in, require autoconf 2.59.
	* configure: Re-generate.
	* gdb.stabs/configure.ac: Rename configure.in, require autoconf 2.59.
	* gdb.stabs/configure: Re-generate.
	* gdb.hp/configure.ac: Rename configure.in, require autoconf 2.59.
	* gdb.hp/configure: Re-generate.
	* gdb.hp/gdb.objdbg/configure.ac: Rename configure.in, require
	autoconf 2.59.
	* gdb.hp/gdb.objdbg/configure: Re-generate.
	* gdb.hp/gdb.defects/configure.ac: Rename configure.in, require
	autoconf 2.59.
	* gdb.hp/gdb.defects/configure: Re-generate.
	* gdb.hp/gdb.compat/configure.ac: Rename configure.in, require
	autoconf 2.59.
	* gdb.hp/gdb.compat/configure: Re-generate.
	* gdb.hp/gdb.base-hp/configure.ac: Rename configure.in, require
	autoconf 2.59.
	* gdb.hp/gdb.base-hp/configure: Re-generate.
	* gdb.hp/gdb.aCC/configure.ac: Rename configure.in, require
	autoconf 2.59.
	* gdb.hp/gdb.aCC/configure: Re-generate.

2004-12-15  Jim Blandy  <jimb@redhat.com>

	* gdb.threads/linux-dp.exp: Fix output regexp to handle output
	under NPTL when there is debugging info available for libpthread.

2004-12-13  Jerome Guitton  <guitton@gnat.com>

	* gdb.ada/fixed_points.c: New file.
	* gdb.ada/fixed_points.exp: New file.

2004-12-03  Randolph Chung  <tausq@debian.org>

	* gdb.arch/pa-nullify.exp: New file.
	* gdb.arch/pa-nullify.s: New file.

2004-11-30  Randolph Chung  <tausq@debian.org>

	* gdb.threads/thread_check.exp: Use ${srcfile} for test program name
	instead of "tbug".  Fix regexp to work properly with gdb_test.

2004-11-29  Paul Hilfinger  <Hilfinger@gnat.com>

	* gdb.base/bitfields2.exp: New test.
	* gdb.base/bitfields2.c: New file.

2004-11-28  Richard Earnshaw  <rearnsha@arm.com>

	* config/sim.exp (gdb_load): Return 0 on success, -1 on failure.

2004-11-16  Randolph Chung  <tausq@debian.org>

	* gdb.base/unload.exp: Pass relative path to gdb_get_line_number.

2004-11-14  Daniel Jacobowitz  <dan@debian.org>

	* gdb.threads/threadapply.exp: Correct "macro details" test.

2004-11-11  Jeff Johnston  <jjohnstn@redhat.com>

	* gdb.threads/threadapply.exp: New test.
	* gdb.threads/threadapply.c: New file.

2004-11-07  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/savedregs.exp: Correct pattern used for sigtramp
	frames.

2004-11-05  Felix Lee  <felix+log1@specifixinc.com>

	* gdb.base/cursal.exp: New file.
	* gdb.base/cursal.c: New file.

2004-11-03  Andrew Cagney  <cagney@gnu.org>

	* gdb.base/savedregs.exp, gdb.base/savedregs.c: New files.

2004-10-30  Mark Kettenis  <kettenis@gnu.org>

	* gdb.asm/asm-source.exp: Add mips*-*-netbsd* to the list of
	NetBSD/ELF targets.

2004-10-29  Joel Brobecker  <brobecker@gnat.com>

	* gdb.threads/bp_in_thread.c: New file, copied from
	pthread_cond_wait.c.
	* gdb.threads/bp_in_thread.c: Use bp_in_thread.c as the source
	file, rather than reusing the .c file from another testcase.

2004-10-20  Joel Brobecker  <brobecker@gnat.com>

	* gdb.ada/null_record.exp: Check where we stopped after
	sending the start command, instead of where the associated
	temporary breakpoint was inserted.

2004-10-14  Andrew Cagney  <cagney@gnu.org>

	* gdb.mi/gdb701.c (main): Return 0.

2004-10-13  Daniel Jacobowitz  <dan@debian.org>

	* gdb.dwarf2/dw2-intercu.S, gdb.dwarf2/dw2-intercu.exp: New files.

2004-10-12  Jeff Johnston  <jjohnstn@redhat.com>

	* gdb.threads/schedlock.c: Add comment markers to use to find
	line numbers.
	* gdb.threads/schedlock.exp: Adjust regex to handle the new
	comments.
	* gdb.threads/watchthreads.exp: Use gdb_get_line_number to find
	breakpoint lines.

2004-10-12  Daniel Jacobowitz  <dan@debian.org>

	* gdb.dwarf2/dw2-basic.exp: Run on Hurd also.

2004-10-12  Daniel Jacobowitz  <dan@debian.org>

	* configure.in: Add gdb.dwarf2.
	* configure: Regenerated.
	* Makefile.in: Add gdb.dwarf2.
	* gdb.dwarf2/Makefile.in, gdb.dwarf2/dw2-basic.S,
	gdb.dwarf2/dw2-basic.exp, gdb.dwarf2/main.c,
	gdb.dwarf2/file1.txt: New files.

2004-10-11  Orjan Friberg  <orjanf@axis.com>

	* gdb.threads/bp_in_thread.exp: Use runto_main and "continue" instead
	of "run", since the latter doesn't work with remote targets.  Adjust
	the breakpoint numbering accordingly.
	* gdb.threads/pthread_cond_wait.exp: Ditto.

2004-10-08  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.base/overlays.exp: Update copyright years.

2004-10-08  Kei Sakamoto  <sakamoto.kei@renesas.com>

	* gdb.base/overlays.exp: Disable if target is Linux.

2004-10-06  Felix Lee  <felix+log1@specifixinc.com>

	* config/gdbserver.exp (gdb_load): Use right filename on remote.

2004-10-05  Kei Sakamoto  <sakamoto.kei@renesas.com>

	* gdb.asm/asm-source.exp: Add m32r-linux target.
	* gdb.asm/m32r-linux.inc: New file.

2004-09-24  Andrew Cagney  <cagney@redhat.com>
	    David Anderson <anderson@redhat.com>

	* gdb.base/bigcore.exp (extract_heap): If the expect "file size"
	command fails, assume things will work.
	* gdb.base/bigcore.c: Include <sys/stat.h> and <fcntl.h>.
	(_GNU_SOURCE): Define.
	(print_unsigned, print_hex): Change parameter to "long long".
	(print_byte_count): New function, use to print byte counts.
	(large_off_t, large_lseek, O_LARGEFILE): Define dependant on
	O_LARGEFILE.
	(main): Compute an upper bound on a corefile in max_core_size.
	Limit memory chunk size to max_core_size.  Limit total memory
	allocated to max_core_size.

2004-09-23  Andrew Cagney  <cagney@gnu.org>

	* gdb.base/bigcore.exp: Replace the code that creates a corefile
	from a separate process with code that creates a corefile by
	making the inferior dump core.

2004-09-23  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/sigstep.exp: Avoid comments withing gdb_test_multiple
	block.

2004-09-23  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.base/constvars.exp (local_compiler_xfail_check_2):
	New proc.  Accept both gcc 3.x.x and gcc 4.x.x.
	* gdb.base/volatile.exp (local_compiler_xfail_check_2):
	Likewise.

2004-09-20  Jeff Johnston  <jjohnstn@redhat.com>

	* gdb.java/jprint.exp: New test case for java inferior call.
	* gdb.java/jprint.java: Ditto.

2004-09-15  Joel Brobecker  <brobecker@gnat.com>

	* gdb.base/bigcore.exp: Deactivate on IRIX targets.

2004-09-14  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.threads/killed.c: Include <stdlib.h>.
	* gdb.threads/pthreads.c: Likewise.

2004-09-14  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.threads/killed.c: Add copyright notice.

2004-09-10  Jason Molenda  (jmolenda@apple.com)

	* gdb.base/define.exp: Two new tests to verify zero space chars
	after 'if' and 'while' commands in a user-defined command is correctly
	parsed.

2004-09-08  Andrew Cagney  <cagney@gnu.org>

	* gdb.base/signals.exp (signal_tests_1): Delete.  Merge signal
	delivery test with duplicate at end of file.

2004-09-06  Mark Kettenis  <kettenis@jive.nl>

	* gdb.base/unload.exp: Link with -dl on *-*-solaris*.

2004-09-05  Michael Chastain  <mec.gnu@mindspring.com>

	* config/hppro.exp: Removed.

2004-09-05  Michael Chastain  <mec.gnu@mindspring.com>

	* config/sparclet.exp: Removed.

2004-09-05  Michael Chastain  <mec.gnu@mindspring.com>

	* config/udi.exp: Removed.

2004-09-02  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.base/sigstep.exp (advance): Use "-continue_timer" option
	of "exp_continue".
	(advancei): Likewise.

2004-09-01  Jeff Johnston  <jjohnstn@redhat.com>

	* gdb.base/unload.exp: Fix so messages aren't duplicated.

2004-09-01  Manoj Iyer  <manjo@austin.ibm.com>

	* gdb.gdb/complaints.exp (setup_test): Use new gdb.exp functionality
	to check for nodebug in executable.
	* gdb.gdb/observer.exp (setup_test): Likewise.
	* gdb.gdb/selftest.exp (test_with_self): Likewise.
	* gdb.gdb/xfullpath.exp (setup_test): Likewise.

2004-09-01  Andrew Cagney  <cagney@gnu.org>

	* gdb.threads/staticthreads.c, gdb.threads/staticthreads.exp: New
	files.

2004-09-01  Jeff Johnston  <jjohnstn@redhat.com>

	* gdb.base/unload.exp: Fix expected warning message to match
	latest format.

2004-09-01  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.base/call-rt-st.exp: Fix typos.

2004-08-31  Manoj Iyer  <manjo@austin.ibm.com>

	* gdb.threads/thread_check.exp: New testcase.
	* gdb.threads/thread_check.c: New testcase.

2004-08-31  Andrew Cagney  <cagney@gnu.org>

	* gdb.base/sigstep.exp (breakpoint_to_handler_entry)
	(skip_to_handler_entry): New procedures.  Test stepping into a
	handler when the breakpoint is at the handler's entry point.

2004-08-30  Andrew Cagney  <cagney@gnu.org>

	* gdb.base/sigstep.exp (breakpoint_over_handler): Remove kfail
	gdb/1757.

2004-08-27  Michael Chastain  <mec.gnu@mindspring.com>

	With code from Manoj Iyer <manjo@austin.ibm.com>:
	* lib/gdb.exp (gdb_file_cmd): Return more information in the
	return value.  Add an arm for "no debugging symbols found".
	Change a stray "error" to "perror".
	(gdb_run_cmd): Adapt to new return value.
	* gdb.base/remote.exp: Adapt to new return value.
	* gdb.gdb/complaints.exp: Likewise.
	* gdb.gdb/observer.exp: Likewise.
	* gdb.gdb/selftest.exp: Likewise.
	* gdb.gdb/xfullpath.exp: Likewise.

2004-08-27  Joel Brobecker  <brobecker@gnat.com>

	* gdb.threads/bp_in_thread.exp: New testcase.

2004-08-27  Michael Chastain  <mec.gnu@mindspring.com>

	Fix PR testsuite/1735.
	* gdb.threads/schedlock.c (thread_function): Add a cast
	to suppress a gcc warning.
	* gdb.threads/thread-specific.c (thread_function): Likewise.

2004-08-26  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.base/unload.c: Include <stdlib.h>.

2004-08-26  Michael Chastain  <mec.gnu@mindspring.com>

	From Paul Gilliam <pgilliam@us.ibm.com>:
	* gdb.base/call-sc.exp (test_scalar_returns): Make sure PC is
	synchronized after the "return".

2004-08-26  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.mi/basics.c: Include <stdio.h>.
	* gdb.mi/pthreads.c: Include <stdlib.h>.
	* gdb.mi/var-cmd.c: Include <stdlib.h>.

2004-08-26  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.threads/schedlock.c: Add copyright notice.

2004-08-25  Andrew Cagney  <cagney@gnu.org>

	* gdb.base/sigstep.exp (breakpoint_to_handler, skip_to_handler)
	(skip_over_handler, breakpoint_over_hander): New test procedures.
	(advance, advancei): Add a proper prefix, do not use
	rerun_to_main.
	* gdb.base/sigstep.c (main): Change to use an infinite loop.

2004-08-24  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.mi/basics.c: Add copyright notice.
	* gdb.mi/var-cmd.c: Add copyright notice.

2004-08-23  Michael Chastain  <mec.gnu@mindspring.com>

	* lib/gdb.exp: Remove signed_keyword_not_used.
	* lib/compiler.c: Likewise.
	* lib/compiler.cc: Likewise.

2004-08-23  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.base/whatis.c: Remove conditional disabling of "signed".
	* gdb.base/whatis.exp: Remove signed_keyword_not_used.

2004-08-23  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.base/whatis.c: Add copyright notice.

2004-08-20  Mark Kettenis  <kettenis@gnu.org>

	* gdb.arch/i386-prologue.exp (skip_breakpoint): New function.  Use
	it to skip the breakpoints encoded in the inline assembly.

2004-08-20  Michael Chastain  <mec.gnu@mindspring.com>

	* Makefile.in: Add gdb.fortran.

2004-08-20  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.base/call-sc.exp (test_scalar_returns):
	Fix cut-and-paste glitch in "Make fun return now".

2004-08-17  Michael Chastain  <mec.gnu@mindspring.com>

	* configure.in: Add gdb.fortran.
	* configure: Regenerate.
	* gdb.fortran/Makefile.in: New file.
	* lib/gdb.exp (skip_fortran_tests): New procedure.

2004-08-17  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.mi/mi-var-block.exp: Use gdb_get_line_number.  Remove
	reference to bug-gnu@prep.ai.mit.edu.
	* gdb.mi/mi-var-child.exp: Likewise.
	* gdb.mi/mi-var-cmd.exp: Likewise.
	* gdb.mi/mi-var-display.exp: Likewise.
	* gdb.mi/mi2-var-block.exp: Likewise.
	* gdb.mi/mi2-var-child.exp: Likewise.
	* gdb.mi/mi2-var-cmd.exp: Likewise.
	* gdb.mi/mi2-var-display.exp: Likewise.

2004-08-15  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/unload.c (main): Make local variable msg const.

2004-08-15  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.mi/mi-cli.exp: Use gdb_get_line_number.  Remove reference
	to bug-gnu@prep.ai.mit.edu.
	* gdb.mi/mi-disassemble.exp: Likewise.
	* gdb.mi/mi-eval.exp: Likewise.
	* gdb.mi/mi-file.exp: Likewise.  Also, add comment about the
	default line number.
	* gdb.mi/mi-return.exp: Likewise.
	* gdb.mi/mi-simplerun.exp: Likewise.
	* gdb.mi/mi-stack.exp: Likewise.
	* gdb.mi/mi-stepi.exp: Likewise.  Also, replace wildcarded line
	number with explicit range test.
	* gdb.mi/mi-watch.exp: Likewise.
	* gdb.mi/mi2-break.exp: Likewise.
	* gdb.mi/mi2-cli.exp: Likewise.
	* gdb.mi/mi2-disassemble.exp: Likewise.
	* gdb.mi/mi2-eval.exp: Likewise.
	* gdb.mi/mi2-file.exp: Likewise.  Also, add comment about the
	default line number.
	* gdb.mi/mi2-return.exp: Likewise.
	* gdb.mi/mi2-simplerun.exp: Likewise.
	* gdb.mi/mi2-stack.exp: Likewise.
	* gdb.mi/mi2-stepi.exp: Likewise.  Also, replace wildcarded line
	number with explicit range test.
	* gdb.mi/mi2-watch.exp: Likewise.

2004-08-15  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/ctti.exp: Tweak srcfile and objfile to have no slashes.
	* gdb.cp/m-static.exp: Likewise.
	* gdb.cp/rtti.exp: Likewise.

2004-08-14  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/bigcore.c: Include <sys/types.h> and <sys/time.h>.

2004-08-14  Eli Zaretskii  <eliz@gnu.org>

	* ChangeLog: Prefix Local Variables with semi-colons and indent
	the reference to older ChangeLog files, to fix fontification in
	Emacs.

2004-08-13  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.mi/mi-break.exp: Use gdb_get_line_number.
	* gdb.mi/mi2-break.exp: Likewise.

2004-08-13  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.gdb/selftest.exp: Revert removal of call to init_malloc.

2004-08-13  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/inherit.exp: Use cp_test_ptype_class.

2004-08-13  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/classes.exp: Remove unused declarations.  Just let
	test names default instead of providing special names.  Remove
	extraneous demangler test.

2004-08-12  Jeff Johnston  <jjohnstn@redhat.com>

	* gdb.base/unload.exp: New test for breakpoints in dynamically
	loaded libraries.
	* gdb.base/unload.c: Ditto.
	* gdb.base/unloadshr.c: Ditto.

2004-08-12  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/classes.exp (test_ptype_class_objects): Call
	cp_test_ptype_class.
	(test_enums): Likewise.

2004-08-10  Andrew Cagney  <cagney@gnu.org>

	* gdb.threads/staticthreads.c, gdb.threads/staticthreads.exp: New
	files.

2004-08-10  Andrew Cagney  <cagney@gnu.org>

	* gdb.gdb/selftest.exp (do_steps_and_nexts): Remove code to skip
	init_malloc call.

2004-08-10  Michael Chastain  <mec.gnu@mindspring.com>

	* ChangeLog: Add copyright notice.  The notice is copied
	from emacs 21.3 top level ChangeLog.

2004-08-09  Michael Chastain  <mec.gnu@mindspring.com>

	* lib/cp-support.exp: New file.
	* lib/cp-support.exp (cp_test_type_class): New function.
	* gdb.cp/derivation.exp: Use cp_test_ptype_class.
	* gdb.cp/virtfunc.exp (test_one_ptype): Removed.
	* gdb.cp/virtfunc.exp (test_ptype_of_classes): Use
	cp_test_ptype_class.

2004-08-09  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.mi/mi2-basics.exp, gdb.mi/mi2-break.exp,
	gdb.mi/mi2-console.exp, gdb.mi/mi2-disassemble.exp,
	gdb.mi/mi2-eval.exp, gdb.mi/mi2-file.exp, gdb.mi/mi2-hack-cli.exp,
	gdb.mi/mi2-read-memory.exp, gdb.mi/mi2-regs.exp,
	gdb.mi/mi2-return.exp, gdb.mi/mi2-simplerun.exp,
	gdb.mi/mi2-stack.exp, gdb.mi/mi2-stepi.exp, gdb.mi/mi2-until.exp,
	gdb.mi/mi2-var-block.exp, gdb.mi/mi2-var-child.exp,
	gdb.mi/mi2-var-cmd.exp, gdb.mi/mi2-var-display.exp,
	gdb.mi/mi2-watch.exp: Update copyright years.

2004-08-09  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/sigaltstack.exp: Provide proper anchoring.

2004-08-09  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.mi/gdb792.exp, gdb.mi/mi-basics.exp, gdb.mi/mi-break.exp,
	gdb.mi/mi-console.exp, gdb.mi/mi-disassemble.exp,
	gdb.mi/mi-eval.exp, gdb.mi/mi-file.exp, gdb.mi/mi-hack-cli.exp,
	gdb.mi/mi-read-memory.exp, gdb.mi/mi-regs.exp,
	gdb.mi/mi-return.exp, gdb.mi/mi-simplerun.exp,
	gdb.mi/mi-stack.exp, gdb.mi/mi-stepi.exp, gdb.mi/mi-until.exp,
	gdb.mi/mi-var-block.exp, gdb.mi/mi-var-child.exp,
	gdb.mi/mi-var-cmd.exp, gdb.mi/mi-var-display.exp,
	gdb.mi/mi-watch.exp: Update copyright years.

2004-08-08  Daniel Jacobowitz  <dan@debian.org>

	PR gdb/1738
	* gdb.base/signals.exp (signal_tests_1): KFAIL bug in continuing
	from a breakpoint with a pending signal.

2004-08-08  Daniel Jacobowitz  <dan@debian.org>

	PR gdb/1736
	* lib/gdb.exp (gdb_test_multiple): Handle return -code return.
	* gdb.base/sigaltstack.exp (finish_test): Consume output until
	the prompt.
	* gdb.base/sigstep.exp: Add KFAIL for gdb/1736.

2004-08-08  Daniel Jacobowitz  <dan@debian.org>

	* gdb.cp/templates.exp: Handle (char)115 for template argument 's'.

2004-08-08  Daniel Jacobowitz  <dan@debian.org>

	PR gdb/1736
	* gdb.base/sigaltstack.exp (finish_test): New procedure.  KFAIL
	for i?86-*-linux*.

2004-08-08  Daniel Jacobowitz  <dan@debian.org>

	* gdb.arch/i386-prologue.exp: Compile without debug information.

2004-08-08  Michael Chastain  <mec.gnu@mindspring.com>

	* lib/gdb.exp (gdb_get_line_number): Rewrite with native tcl
	rather than asking gdb to search.

2004-08-05  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.base/gcore.c: Include <string.h>.

2004-08-05  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.base/gcore.c: Add copyright notice.

2004-08-05  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.base/freebpcmd.c: Include <stdio.h>.
	* gdb.base/long_long.c: Include <string.h>.
	* gdb.base/sigaltstack.c: Include <stdlib.h> <string.h>.
	* gdb.base/siginfo.c: Include <string.h>.
	* gdb.base/sigstep.c: Include <string.h>.

2004-08-04  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.base/complex.c: Include <stdlib.h>.

2004-08-04  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.base/complex.c: Add copyright notice.

2004-08-04  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.base/charset.c: Include <stdlib.h>.

2004-08-04  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.base/auxv.c: Include <stdlib.h>.

2004-08-04  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.base/auxv.c: Add copyright notice.

2004-08-04  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.base/coremaker.c: Add copyright notice.
	* gdb.base/coremaker2.c: Add copyright notice.

2004-08-04  Andrew Cagney  <cagney@gnu.org>

	* gdb.base/store.exp: Update copyright.
	(check_set, up_set, check_struct, up_struct): Add a prefix to test
	names, do not import gdb_prompt.

2004-08-01  Andrew Cagney  <cagney@gnu.org>

	Fix PR testsuite/1729.
	* gdb.base/dump.exp: Add test name to callers of capture_value, do
	not use capture_value with value 4.
	(capture_value): Add optional test name parameter.
	(test_reload_saved_value, test_restore_saved_value): Use $msg as
	the prefix, pass to capture_value.

2004-08-01  Mark Kettenis  <kettenis@gnu.org>

	* gdb.arch/i386-prologue.exp: Add testcase for standard prolgue.
	* gdb.arch/i386-prologue.c (standard): New prototype and function.
	(main): Call new function.

2004-07-31  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/namespace.exp: Accept more varieties of ptype output.

2004-07-31  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/virtfunc.exp: Accept more varieties of ptype output.

2004-07-31  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/inherit.exp: Accept more varieties of ptype output.
	Accept more values of vtbl pointer.  Remove some messages
	about "obsolete gcc or gdb".

2004-07-30  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/classes.exp: Accept more varieties of ptype output.

2004-07-30  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.base/asm-source.exp: Properly convert target board
	debug flags from gcc format to binutils format.

2004-07-28  Mark Kettenis  <kettenis@gnu.org>

	* gdb.arch/i386-prologue.exp: Remove KFAIL of "backtrace in
	gdb1718".  PR backtrace/1718 partially fixed.

2004-07-27  Jeff Johnston  <jjohnstn@redhat.com>

	* gdb.threads/watchthreads.exp: New test for threaded watchpoints.

2004-07-26  Nick Clifton  <nickc@redhat.com>

	* gdb.asm/asm-source.exp (debug-flags): New variable.  If a known
	good default value for a specific architecture is available then
	set it to that value.  Otherwise default to the -gstabs switch.
	Remove the -g... switches from the asm-flags variable.  Allow the
	target board info to override the value if it wants to.  Pass the
	switch on the assembler command line.

2004-07-23  Mark Kettenis  <kettenis@gnu.org>

	* gdb.arch/i386-prologue.exp: Add testcase for PR backtrace/1718.
	* gdb.arch/i386-prologue.c (gdb1718): New prototype and function.
	(main): Call new function.

2004-07-22  Michael Chastain  <mec.gnu@mindspring.com>

	Test for PR exp/1715.
	* gdb.base/radix.exp: Refactor common procedures.  Make all
	test names unique.  Change XFAIL to KFAIL.

2004-07-20  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.ada/gnat_ada.gpr.in: Rename from here ...
	* gdb.ada/gnat_ada.gin: ... to here.
	* configure.in: Use gnat_ada.gin.
	* configure: Regenerate.

2004-07-20  Andrew Cagney  <cagney@gnu.org>

	* gdb.base/signals.exp: Replace send_gdb and gdb_expect with
	gdb_test and gdb_test_multiple.  Delete bash_bug.  Delete suspect
	XFAILs.  Clean up test messages and comments.  Check backtraces.
	Delete re-sync code.

2004-07-19  Michael Chastain  <mec.gnu@mindspring.com>

	Fix PR cli/740.
	* gdb.base/annota1.exp: Honor gdb,nosignals.
	* gdb.base/annota3.exp: Likewise.

2004-07-19  Michael Chastain  <mec.gnu@mindspring.com>

	* lib/java.exp: Update copyright notice.

2004-07-19  Andrew Cagney  <cagney@gnu.org>

	* gdb.base/selftest.exp: Copy file from here ...
	* gdb.gdb/selftest.exp: ... to here.

2004-07-16  Andrew Cagney  <cagney@redhat.com>

	* lib/insight-support.exp: Delete file.
	* lib/java.exp (java_init): Fix copyright.

2004-07-16  Andrew Cagney  <cagney@gnu.org>

	* gdb.base/restore.c: Append "prologue" to comments marking the a
	function's prologue.
	* gdb.base/restore.exp: Update copyright, re-indent.
	(restore_tests): Use gdb_test_multiple.  Add "calleeN calls
	callerN" prefix where needed.  Update patterns that match a
	function's prologue.

2004-07-16  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.base/restore.c: Add copyright notice.

2004-07-16  Andrew Cagney  <cagney@gnu.org>

	* gdb.base/logical.exp: Update copyright.
	(evaluate): New procedure.  Use to re-implement tests using
	several tables.

2004-07-14  Martin Hunt  <hunt@redhat.com>

	* lib/insight-support.exp (gdbtk_start): Unset TCL_LIBRARY
	which fixes some problems where init.tcl was not found.

2004-07-13  Andrew Cagney  <cagney@gnu.org>

	* gdb.base/sizeof.exp: Skip test when no inferior I/O.
	(check_sizeof, check_valueof): Do not include the output in the
	test name.  Use gdb_test.
	(get_valueof): Use gdb_test_multiple.

	* gdb.base/step-test.exp: Update copyright.  Use
	gdb_test_multiple.  Ensure that test names do not include
	architecture dependent output.

	* gdb.gdb/observer.exp: Update copyright.
	(setup_test): Use gdb_test_multiple.
	(attach_first_observer, attach_second_observer)
	(attach_third_observer, detach_first_observer)
	(detach_second_observer, detach_third_observer)
	(reset_counters, check_counters): Make $message a prefix.
	(test_normal_stop_notifications): Add "args" parameter - a list of
	init functions to be called.  Make $message a prefix,
	(test_observer_normal_stop): Change the message prefixes so that
	they are unique, pass the attach / detach procedures to
	test_normal_stop_notifications.

	* gdb.base/signull.exp (test_segv): Prefix all tests with
	"${name}".  Clean up test messages.

	* gdb.base/annota3.exp, gdb.base/annota1.exp: Update copyright.

	* gdb.base/ena-dis-br.exp: Update copyright.
	(break_at): New function.  Replace send_gdb with gdb_test,
	break_at, and gdb_test_multiple.  Replace XFAIL of "continue with
	ignore count, not stopped at bpt", with KFAIL.

2004-07-13  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.base/attach.exp: Remove cleanupfile handling.

2004-07-12  Andrew Cagney  <cagney@gnu.org>

	* gdb.base/annota1.exp: Cleanup corefile test name.
	* gdb.base/annota3.exp: Ditto.

2004-07-12  Andrew Cagney  <cagney@gnu.org>

	* gdb.base/signals.exp: Clean up copyright, re-indent.

	* gdb.base/attach.exp: Replace send_gdb and gdb_expect with
	gdb_test and gdb_test_multiple.

2004-07-08  Jeff Johnston  <jjohnstn@redhat.com>

	* gdb.java/jmain.exp: Fix expected line number for main to
	break at.  Set XFAIL for break at main test since gcj does not
	provide line number info for first statement in main.

2004-07-08  Andrew Cagney  <cagney@gnu.org>

	* gdb.base/attach.exp: Cleanup copyright.  Re-indent.

	* gdb.base/sigbpt.exp: Make the common part of each test name a
	prefix instead of suffix.

2004-07-07  Bob Rossi  <bob_rossi@cox.net>

	* gdb.mi/mi2-file.exp: Revert to version 1.1, except changed name of
	test from test_tbreak_creation_and_listing to
	test_file_list_exec_source_file
	* gdb.mi/mi-file.exp: Add test for -file-list-exec-source-files
	Changed name of test from test_tbreak_creation_and_listing to
	test_file_list_exec_source_file

2004-07-07  Jeff Johnston  <jjohnstn@redhat.com>

	* gdb.java/jmisc.exp: Fix expected output of ptype to look for
	the jmisc() constructor instead of <init>.
	* gdb.java/jmisc1.exp: Ditto.

2004-07-07  Andrew Cagney  <cagney@gnu.org>

	* gdb.base/sigbpt.exp (stepi_out): Check for a single step
	corrupting the PC.

2004-07-06  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/templates.exp: Accept whitespace change in demangler
	output.

2004-07-06  Andrew Cagney  <cagney@gnu.org>

	* gdb.base/sigbpt.exp, gdb.base/sigbpt.c: New test.

2004-07-02  Michael Chastain  <mec.gnu@mindspring.com>

	* lib/compiler.c: Accept __HP_CXD_SPP for old hp ansi c compiler.
	* lib/compiler.cc: Likewise.

2004-06-30  Michael Chastain   <mec.gnu@mindspring.com>

	* lib/compiler.cc: Work around string preprocessing problem
	with old hp c++ compiler.
	* lib/compiler.c: Likewise.

2004-06-29  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.arch/i386-prologue.c: Add copyright header.  Use preprocessor
	directives to conditionalize symbol prefixing.
	* gdb.arch/i386-prologue.exp: Allow symbol prefixing by adding
	additional_flags handling.  Add underscore prefix for Cygwin.
	* gdb.arch/i386-unwind.c: Use preprocessor directives to
	conditionalize symbol prefixing.
	* gdb.arch/i386-unwind.exp: Allow symbol prefixing by adding
	additional_flags handling.  Add underscore prefix for Cygwin.

2004-06-29  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.base/bigcore.exp: Skip test on Cygwin.

2004-06-28  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.hp/gdb.base-hp/reg.exp: Accept both old and new gdb output
	formats for "info register".  Use gdb_test_multiple.  Fix
	the "invalid register" test.

2004-06-28  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.base/attach.exp: Fix copyright date.  Set testpid to Windows
	PID for Cygwin.  Add Cygwin specific strings to check for in some
	tests.
	(do_attach_tests): Add a test for user interaction when attaching
	to a process with no matching symbol table already loaded.

2004-06-26  Andrew Cagney  <cagney@gnu.org>

	Test PR java/1567 and PR java/1565.
	* gdb.java/jmain.exp, gdb.java/jmain.java: New files.
	* gdb.java/jmisc2.exp: Delete file.

2004-06-26  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.hp/gdb.base-hp/reg.exp: Update copyright notice.

2004-06-25  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.base/attach.exp (do_attach_tests): Don't forget to kill second
	attach process.

2004-06-23  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/pr-1553.exp: Remove.

2004-06-22  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/pr-1553.cc: Remove.
	* gdb.cp/pr-1553.exp: Disable this test.

2004-06-20  Jim Blandy  <jimb@redhat.com>

	Fix PR testsuite/1680.
	* gdb.arch/i386-sse.exp: Properly quote curly braces in
	regular expressions.

2004-06-19  Michael Chastain  <mec.gnu@mindspring.com>

	Fix PR testsuite/1679.
	* gdb.arch/i386-sse.exp: Do not call gdb_suppress_entire_file.
	Issue an UNSUPPORTED result instead.

2004-06-18  Jim Blandy  <jimb@redhat.com>

	* gdb.base/charset.exp: Only send a control-C if we see a new
	prompt and incomplete command.

2004-06-18  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/pr-574.cc: Add copyright notice.

2004-06-17  Jim Blandy  <jimb@redhat.com>

	* gdb.base/charset.exp: Don't refer to $expect_out(1,string) in
	cases where the regexp has no groups; this grabs random text from
	the previous test suite, whatever that was.

2004-06-17  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/printmethod.cc: Add copyright notice.

2004-06-16  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/psmang1.cc, gdb.cp/psmang2.cc: Add copyright notice.

2004-06-16  Andrew Cagney  <cagney@gnu.org>

	* gdb.base/signull.c: Update copyright.  Include <string.h>.
	(bowler): Replace data_pointer with data_read
	and data_write cases.  Add code_descriptor case.
	(zero, desc): New array and pointer.
	(data, code): Change to simple pointers.
	* gdb.base/signull.exp: Fix probe pattern matching a function
	descriptor SIGSEGV.  Replace data_pointer with data_read and
	data_write tests.

2004-06-16  Andrew Cagney  <cagney@gnu.org>

	* gdb.base/long_long.exp, gdb.base/long_long.c: Rewrite.

2004-06-15  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.base/long_long.c: Add copyright notice.

2004-06-15  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.base/long_long.exp: Remove reference to
	bug-gdb@prep.ai.mit.edu.  Change line-number-specific breakpoint
	to gdb_breakpoint and gdb_continue_to_breakpoint.

2004-06-14  Jim Blandy  <jimb@redhat.com>

	* gdb.arch/e500-regs.exp: Fix up 'print' pattern for the little-
	endian case.

2004-06-14  Andrew Cagney  <cagney@gnu.org>

	* gdb.base/gcore.exp (capture_command_output): Delete the always
	passing tests containing inferior values.
	* gdb.base/ending-run.exp: Do not include the breakpoint address
	in the test message.  Update copyright.
	* gdb.base/sizeof.exp (check_sizeof): Do not include the type's
	size in the test name, use gdb_test_multiple.  Update copyright.

2004-06-14  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/ref-types.cc: Add copyright notice.

2004-06-14  Michael Chastain  <mec.gnu@mindspring.com>

	* lib/compiler.c: Remove gcc_compiled, hp_cc_compiler,
	hp_aCC_compiler.
	* lib/compiler.cc: Likewise.
	* lib/gdb.exp (get_compiler_info): Eval lines only if they are
	'set' commands.  Log diagnostics for other lines.  Set
	gcc_compiled, hp_cc_compiler, and hp_aCC_compiler.

2004-06-13  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/try_catch.cc: Add copyright notice.

2004-06-12  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/userdef.cc: Add copyright notice.

2004-06-11  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/virtfunc.cc: Add copyright notice.

2004-06-11  Randolph Chung  <tausq@debian.org>

	* gdb.base/structs2.exp: Mark two tests as xfail because of a compiler
	problem.

2004-06-10  Andrew Cagney  <cagney@gnu.org>

	* lib/compiler.cc, lib/compiler.c: Append either
	__GNUC_PATCHLEVEL__, or "unknown" to the compiler_info.
	* gdb.base/structs.exp (test_struct_calls): Check for gcc-3-3-*
	instead of gcc-3-3.

2004-06-09  Andrew Cagney  <cagney@gnu.org>

	* gdb.base/structs.exp (test_struct_calls): Fix KFAIL for
	gdb/1455, bug is specific to "long long" and "double".

	* gdb.base/structs.exp (test_struct_returns, test_struct_returns)
	(test_struct_calls): Remove KFAIL of "long double" on i*86-*-*,
	x86_64-*-*, sparc64-*-*, and sparc*-*-solaris2*.  PR tdep/1447
	fixed.

2004-06-09  Andrew Cagney  <cagney@gnu.org>

	* gdb.base/structs.exp (test_struct_returns): Replace
	"return_value_unknown" and "finish_value_unknown" by
	"return_value_known" and "finish_value_known".  Instead of
	"return_value_unknown" iff "finish_value_unknown", check
	"return_value_known" implies "finish_value_known".

2004-06-08  Martin Hunt  <hunt@redhat.com>

	* gdb.base/float.exp: Add pattern for mips targets.

2004-06-08  Randolph Chung  <tausq@debian.org>

	* gdb.base/float.exp: Add pattern for hppa*-* target; make the failure
	message for unknown architectures more clear.

2004-06-08  Joel Brobecker  <brobecker@gnat.com>

	* gdb.ada/null_record.exp: Use "start" instead of "begin" to
	start the execution of the program.

2004-06-07  Jim Blandy  <jimb@redhat.com>

	* gdb.arch/i386-sse.exp, gdb.arch/i386-sse.c: New tests.
	* gdb.arch/i386-cpuid.h: New helper file.

2004-06-07  Randolph Chung  <tausq@debian.org>

	* gdb.base/shlib-call.exp: Allow breakpoint to be added after inferior
	has started.

2004-06-04  Roland McGrath  <roland@redhat.com>

	Fix PR gdb/1647.
	* gdb.base/auxv.exp (fetch_auxv): Revert last change and fix it
	differently to be robust to output buffering differences.

2004-06-04  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.threads/pthreads.exp: Update copyright years.
	(check_control_c): Change asynchronous 'after' to synchronous.

2004-06-04  Roland McGrath  <roland@redhat.com>

	* gdb.base/auxv.exp (fetch_auxv): Consume output fully through
	next gdb prompt.

2004-06-02  Michael Chastain  <mec.gnu@mindspring.com>

	Fix PR gdb/1636.
	* gdb.threads/manythreads.exp: Change asynchronous 'after'
	calls to synchronous.

2004-05-26  Jim Blandy  <jimb@redhat.com>

	* gdb.arch/e500-prologue.exp, gdb.arch/e500-prologue.c: New tests.

2004-05-24  Randolph Chung  <tausq@debian.org>

	* gdb.asm/asm-source.exp: Enable test for hppa-linux target.
	* gdb.asm/pa.inc: New file.

2004-05-22  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/signull.c: Use sigjmp_buf instead of jmp_buf.

2004-05-21  Joel Brobecker  <brobecker@gnat.com>
	    Daniel Jacobowitz  <drow@mvista.com>

	* lib/gdb.exp (gdb_test_multiple): Improve regexp matching the
	GDB prompt.

2004-05-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gdb.base/signull.c: Use sigsetjmp/siglongjmp instead of
	setjmp/longjmp.  Use sigaction instead of signal.

2004-05-19  J. Brobecker  <brobecker@gnat.com>
	    Michael Snyder  <msnyder@redhat.com>

	* gdb.threads/pthread_cond_wait.c: New file.
	* gdb.threads/pthread_cond_wait.exp: New testcase.

2004-05-13  Andrew Cagney  <cagney@redhat.com>

	* gdb.base/signull.exp, gdb.base/signull.c: New files.
	* gdb.base/gdb1476.c, gdb.base/gdb1476.exp: Delete files.

2004-05-11  Andrew Cagney  <cagney@redhat.com>

	* gdb.base/sigstep.exp (advancei): Update KFAILs.  gdb/1613 is
	fixed but revealed gdb/1639.

2004-05-10  Andrew Cagney  <cagney@redhat.com>

	* gdb.base/signals.exp (signal_tests_1): Simplify "continue to
	func1" and "next to 2nd alarm", kernel bug avoided.

2004-05-10  Daniel Jacobowitz  <dan@debian.org>

	PR external/1568
	* gdb.base/bigcore.exp: Check the size of the dumped core file.
	XFAIL if it is smaller than bytes_allocated.
	* gdb.base/bigcore.c (bytes_allocated): Make static and unsigned.
	(main): Make chunks_allocated unsigned.  Correct comment.

2004-05-07  Joel Brobecker  <brobecker@gnat.com>

	* gdb.arch/powerpc-aix-prologue.c: New file.
	* gdb.arch/powerpc-aix-prologue.exp: New file.

2004-05-07  Jim Blandy  <jimb@redhat.com>

	* gdb.base/lineinc.exp, gdb.base/lineinc1.h, gdb.base/lineinc2.h,
	gdb.base/lineinc3.h, gdb.base/lineinc.c: New tests.

2004-05-06  Joel Brobecker  <brobecker@gnat.com>

	* gdb.base/sep.exp: No longer setup_kfail when the program was
	built with dwarf2.

2004-05-05  Jim Ingham  <jingham@apple.com>

	* gdb.base/pending.exp: Make sure pending breakpoints
	preserve the ignore count.

2004-04-27  Jerome Guitton  <guitton@gnat.com>

	* i386-prologue.exp: Add testcase for jump instruction as first
	instruction of the real code.
	* i386-prologue.c (jump_at_beginning): New function.

2004-04-28  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/call-sc.exp: Remove patterns to KFAIL PR gdb/1624 on
	x86_64-*-*.

2004-04-28  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/call-sc.exp: Remove patterns to KFAIL PR gdb/1623 on
	i*86-*-*.

2004-04-25  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/call-sc.exp (start_scalars_test): Fix regular
	expression that checks the return type.

2004-04-23  Andrew Cagney  <cagney@redhat.com>

	* gdb.base/call-sc.exp: New test of scalar call/return values.
	* gdb.base/call-sc.c: Ditto.

2004-04-23  Ulrich Weigand <Ulrich.Weigand@de.ibm.com>

	* gdb.threads/manythreads.c: Reduce thread stack size.

2004-04-23  Jeff Johnston  <jjohnstn@redhat.com>

	* gdb.threads/manythreads.c: Add copyright notice.

2004-04-23  Andrew Cagney  <cagney@redhat.com>

	* gdb.base/siginfo.exp: Better handle step out of signal.
	* gdb.base/sigstep.exp: Ditto.

2004-04-22  Jeff Johnston  <jjohnstn@redhat.com>
	    Daniel Jacobowitz  <drow@mvista.com>

	* gdb.threads/manythreads.c: New testcase.
	* gdb.threads/manythreads.exp: Ditto.

2004-04-22  Jim Blandy  <jimb@redhat.com>

	* gdb.stabs/exclfwd.exp, gdb.stabs/exclfwd1.c,
	gdb.stabs/exclfwd2.c, gdb.stabs/exclfwd.h: New test.

2004-04-21  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.stabs/weird.exp: Accept full pathname for $binfile.

2004-04-21  Andrew Cagney  <cagney@redhat.com>

	* gdb.base/sigstep.c: New file.
	* gdb.base/sigstep.exp: New file.

2004-04-16  Joel Brobecker  <brobecker@gnat.com>

	* gdb.gdb/observer.exp (test_normal_stop_notifications): Update
	call to observer_notify_normal_stop.

2004-04-15  Andrew Cagney  <cagney@redhat.com>

	* gdb.base/siginfo.c: New file.
	* gdb.base/siginfo.exp: New file.

2004-04-12  J. Brobecker  <brobecker@gnat.com>

	* gdb.base/sep.exp: Fix typo in comment.

2004-04-12  J. Brobecker  <brobecker@gnat.com>

	* gdb.base/sep.c: New file.
	* gdb.base/sep-proc.c: New file.
	* gdb.base/sep.exp: New testcase.

2004-04-09  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/bigcore.exp: Disable on Solaris; no sparse core file
	support.

2004-04-05  Andrew Cagney  <cagney@redhat.com>

	* gdb.base/sigaltstack.c: New file.
	* gdb.base/sigaltstack.exp: New file.

2004-04-04  Joel Brobecker  <brobecker@gnat.com>

	* gdb.base/foll-fork.exp: Update the expected output for
	"help set follow-fork-mode", to match a change that was made
	to the help of this variable on 2004-01-13.

2004-04-01  Joel Brobecker  <brobecker@gnat.com>

	* lib/ada.exp: Add copyright notice.
	* bar.ads: Likewise.
	* bar.adb: Likewise.
	* null_record.adb: Likewise.
	* null_record.exp: Likewise.
	* gnat_ada.gpr.in: Likewise. Fix typo in a comment, clarify another.

2004-04-01  Joel Brobecker  <brobecker@gnat.com>

	* configure.in: Generate gdb.ada/Makefile and gdb.ada/gnat_ada.gpr.
	* configure: Regenerate.

2004-04-01  Joel Brobecker  <brobecker@gnat.com>

	* lib/ada.exp (gdb_compile_ada): Emit UNSUPPORTED if we failed
	to build the application. Remove the message printed when in
	verbose mode, redundant with the UNSUPPORTED message above.

2004-03-31  Joel Brobecker  <brobecker@gnat.com>

	* gdb.ada (bar.ads, bar.adb, null_record.adb): New files.
	* gdb.ada (null_record.exp): New testcase.

2004-03-31  Joel Brobecker  <brobecker@gnat.com>

	* Makefile.in (ALL_SUBDIRS) Add gdb.ada.

2004-03-31  Joel Brobecker  <brobecker@gnat.com>

	* gdb.ada: New subdirectory.
	* gdb.ada/Makefile.in: New file.
	* gdb.ada/gnat_ada.gpr.in: New file.

2004-03-31  Joel Brobecker  <brobecker@gnat.com>

	* lib/ada.exp: New file.

2004-03-24  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.base/gdb1250.exp: Use runto {allow-pending}.
	* lib/gdb.exp (runto, gdb_breakpoint): Support {allow-pending}.

2004-03-22  Andrew Cagney  <cagney@redhat.com>

	* gdb.base/watchpoint.exp (test_stepping): Delete bogus XFAILs
	hiding problems with DEPRECATED_CALL_DUMMY_BREAKPOINT_OFFSET.
	Problem identified by Ulrich Weigand.

2004-03-17  David Carlton  <carlton@kealia.com>

	* gdb.cp/classes.exp (test_enums): Refer to PR c++/1588 instead of
	PR c++/826.

2004-03-16  Roland McGrath  <roland@redhat.com>

	* gdb.base/auxv.exp: New file.
	* gdb.base/auxv.c: New file, copied verbatim from coremaker2.c.

2004-03-12  David Carlton  <carlton@kealia.com>

	* gdb.cp/pr-1553.exp: New.  Tests for PR c++/1553.
	* gdb.cp/pr-1553.cc: Ditto.
	* gdb.cp/local.exp (ptype NestedInnerLocal): Add comment, third
	pass branch.

2004-03-12  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/templates.exp: Accept more template types.

2004-03-09  Michael Chastain  <mec.gnu@mindspring.com>

	From Corinna Vinschen with modifications.
	* gdb.cp/classes.cc (enums1): Add a line to extend scope of
	local variable obj_with_enum.
	* gdb.cp/classes.exp (test_enums): Remove TODO note about FAIL
	results with obj_with_enum.

2004-03-09  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/classes.cc: New file, copied from misc.cc.
	* gdb.cp/classes.exp: Use classes.cc rather than misc.cc.

2004-03-09  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/misc.cc: Add copyright notice.

2004-03-05  David Carlton  <carlton@kealia.com>

	* gdb.cp/rtti.exp: Add 'print *obj3' test.
	* gdb.cp/rtti.h: Update copyright.
	(namespace n2::n3): New.
	* gdb.cp/rtti1.cc: (refer_to (n2::n3::C3 *)): New.
	(n2::n3::func3): New.
	(main): Call n2::n3::func3.
	* gdb.cp/rtti2.cc: Update copyright.
	(n2::create3): New.

2004-03-04  Mark Kettenis  <kettenis@gnu.org>

	* gdb.asm/openbsd.inc: Fix typo.

2004-03-03  Fred Fish  <fnf@redhat.com>

	* gdb.base/pc-fp.exp (get_valueofx): Fix apparent typo to now set
	"val" instead of unused "size".  Update copyright year.

2004-02-29  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.cp/ctti.exp: Handle unsigned char type.  Expect templates
	to use unsigned char.
	* gdb.cp/cttiadd.c, gdb.cp/cttiadd1.c, gdb.cp/cttiadd2.c,
	gdb.cp/cttiadd3.c: Change type of variable to unsigned char.

2004-02-29  Daniel Jacobowitz  <drow@mvista.com>

	* config/gdbserver.exp (gdbserver_gdb_load): Wait for a complete
	line of output.

2004-02-28  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.base/relocate.c (dummy): Initialize.

2004-02-28  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.base/chng-syms.exp: Anchor exit pattern.  Allow
	a breakpoint at exit.

2004-02-27  Fred Fish  <fnf@redhat.com>

	* gdb.base/chng-syms.exp: Add expect condition to match failing
	case that isn't a timeout.

2004-02-27  Andrew Cagney  <cagney@redhat.com>

	* gdb.base/bigcore.exp: Disable on HP/UX, no sparse corefile
	support.

2004-02-26  Fred Fish  <fnf@redhat.com>

	* gdb.arch/gdb1431.c: Remove.
	* gdb.arch/gdb1431.s: New file, copy of gdb1291.s
	* gdb.arch/gdb1431.exp: Use "advance" correctly instead
	of "until" incorrectly.

2004-02-26  J. Brobecker  <brobecker@gnat.com>

	* gdb.cp/class2.cc (empty): New class.
	(refer): New function.
	(main): Declare an object of type empty and use it.
	* gdb.cp/class2.exp: Print the value of an object of type empty.

2004-02-26  Jeff Johnston  <jjohnstn@redhat.com>

	* gdb.base/langs.exp: Update query string to match the
	new nquery format used for pending breakpoints.

2004-02-26  Andrew Cagney  <cagney@redhat.com>

	Fix PR i18n/1570.
	* gdb.base/charset.c: Update copyright notice.
	(main, init_string): Remove the escape character '\e' tests.
	* gdb.base/printcmds.exp (test_print_all_chars): Ditto.
	* gdb.base/charset.exp (valid_host_charset): Ditto.
	* gdb.base/setvar.exp: Ditto.

2004-02-24  Andrew Cagney  <cagney@redhat.com>

	* gdb.base/corefile.exp: Use gdb_test_multiple, make "accessing
	mmapped data in core file" PASS and FAIL messages consistent.

	* gdb.java/jmisc.exp: Use the fully quallified name of "main" when
	setting a breakpoint.  Work around PR java/1565.

2004-02-23  Jeff Johnston  <jjohnstn@redhat.com>

	* lib/gdb.exp (gdb_breakpoint): Update query string to match
	new nquery format.
	* gdb.base/pending.exp: Ditto.

2004-02-22  Mark Kettenis  <kettenis@gnu.org>

	* configure.in: Run stabs tests on *BSD.
	* configure: Regenerated.

2004-02-21  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/bigcore.exp: Bail out on *BSD instead of only NetBSD.

2004-02-20  Fred Fish  <fnf@redhat.com>

	* gdb.base/callfuncs.exp (do_function_calls): Remove extraneous
	blank in test for "returns short", for consistency with other
	"returns xxx" tests.  Update copyright year.

2004-02-19  Fred Fish  <fnf@redhat.com>

	New testcase for PR breakpoint/1558.
	* gdb.arch/gdb1558.exp: New file.
	* gdb.arch/gdb1558.c: New file.

2004-02-19  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.base/nodebug.exp: Fix typo.

2004-02-17  Ulrich Weigand <Ulrich.Weigand@de.ibm.com>

	Committed by Jim Blandy  <jimb@redhat.com>.

	* gdb.objc/basicclass.exp: Adapt to fixed return type of printHi.

	* gdb.base/dump.exp: Handle negative offsets in decimal, not hex.

	* gdb.base/float.exp: Support s390*-*-* targets.

2004-02-17  Adam Fedor  <fedor@gnu.org>

	* gdb.base/gdb1555.exp: New file.
	* gdb.base/gdb1555-main.c, gdb.base/gdb1555.c: New files.

2004-02-17  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.base/selftest.exp (do_steps_and_nexts): Add comment.

2004-02-16  Fred Fish  <fnf@redhat.com>

	* gdb.arch/gdb1291.c: Remove
	* gdb.arch/gdb1291.s: New test input file.
	* gdb.arch/gdb1291.exp: Expand test to check case that should not
	fail.  Test for correct result, known incorrect result, other
	failures and timeouts.

2004-02-16  Andrew Cagney  <cagney@redhat.com>

	* gdb.base/bigcore.exp: New file.
	* gdb.base/bigcore.c: New file.

2004-02-13  Andrew Cagney  <cagney@redhat.com>

	* gdb.mi/mi1-basics.exp, gdb.mi/mi1-break.exp: Delete file.
	* gdb.mi/mi1-console.exp, gdb.mi/mi1-disassemble.exp: Delete file.
	* gdb.mi/mi1-eval.exp, gdb.mi/mi1-hack-cli.exp: Delete file.
	* gdb.mi/mi1-pthreads.exp, gdb.mi/mi1-read-memory.exp: Delete file.
	* gdb.mi/mi1-regs.exp, gdb.mi/mi1-return.exp: Delete file.
	* gdb.mi/mi1-simplerun.exp, gdb.mi/mi1-stack.exp: Delete file.
	* gdb.mi/mi1-stepi.exp, gdb.mi/mi1-symbol.exp: Delete file.
	* gdb.mi/mi1-until.exp, gdb.mi/mi1-var-block.exp: Delete file.
	* gdb.mi/mi1-var-child.exp, gdb.mi/mi1-var-cmd.exp: Delete file.
	* gdb.mi/mi1-var-display.exp, gdb.mi/mi1-watch.exp: Delete file.

2004-02-11  Jeff Johnston  <jjohnstn@redhat.com>

	* gdb.asm/ia64.inc (gdbasm_startup): Make sure first instruction
	executed is an alloc instruction.

2004-02-11  David Carlton  <carlton@kealia.com>

	* gdb.cp/breakpoint.exp: New.
	* gdb.cp/breakpoint.cc: New.

2004-02-11  Michael Chastain  <mec.gnu@mindspring.com>

	Partial fix for PR gdb/1543.
	* gdb.cp/ambiguous.exp, gdb.cp/annota2.exp, gdb.cp/annota3.exp,
	gdb.cp/anon-union.exp, gdb.cp/casts.exp, gdb.cp/classes.exp,
	gdb.cp/cplusfuncs.exp, gdb.cp/ctti.exp, gdb.exp/demangle.exp,
	gdb.cp/derivation.exp, gdb.cp/exception.exp, gdb.cp/hang.exp,
	gdb.cp/inherit.exp, gdb.cp/local.exp, gdb.cp/maint.exp,
	gdb.cp/member-ptr.exp, gdb.cp/method.exp, gdb.cp/misc.exp,
	gdb.cp/namespace.exp, gdb.cp/overload.exp, gdb.cp/ovldbreak.exp,
	gdb.cp/psmang.exp, gdb.cp/ref-types.exp, gdb.cp/templates.exp,
	gdb.cp/userdef.exp, gdb.cp/virtfunc.exp: Remove reference
	to bug-gdb@prep.ai.mit.edu .
	* gdb.cp/bs15503.cc, gdb.cp/class2.cc, gdb.cp/cttiadd.cc,
	gdb.cp/cttiadd1.cc, gdb.cp/cttiadd2.cc, gdb.cp/cttiadd3.cc,
	gdb.cp/exception.cc, gdb.cp/member-ptr.cc, gdb.cp/namespace1.cc:
	Likewise.

2004-02-10  Andrew Cagney  <cagney@redhat.com>

	* lib/gdb.exp (gdb_expect_list): Recover from internal-errors
	using gdb_internal_error_resync.

2004-02-09  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.threads/thread-specific.exp: Stop early if no threads are
	found.

2004-02-09  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.base/pending.exp: Remove extra \n from gdb_test calls.

2004-02-08  Daniel Jacobowitz  <drow@mvista.com>

	* lib/gdb.exp (gdb_breakpoint): Fail on unexpected pending
	breakpoints.

2004-02-07  Daniel Jacobowitz  <drow@mvista.com>

	* config/sim.exp (gdb_load): Handle $arg == "".
	* lib/gdb.exp (gdb_run_cmd): Honor gdb,do_reload_on_run.
	* gdb.objc/basicclass.exp: Use gdb_run_cmd.

2004-02-07  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.base/maint.exp: Update test to reflect
	 obstack changes.

2004-02-04  Jeff Johnston  <jjohnstn@redhat.com>

	* gdb.base/pendshr.c (pendfunc): New function that calls
	pendfunc1.
	* gdb.base/pending.c: Call pendfunc instead of pendfunc1.

2004-02-04  Fred Fish  <fnf@redhat.com>

	* gdb.arch/gdb1431.c: Add underbar prefixed version of global
	function symbols and update copyright years.
	* gdb.arch/gdb1291.c: Ditto.

2004-02-03  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/virtfunc.exp: Accept both "ctor()" and "ctor(void)".

2004-02-03  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/inherit.exp: Accept both "ctor()" and "ctor(void)".

2004-02-03  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/inherit.exp: Accept output with gcc 3.2-7-rh.

2004-02-02  Fred Fish  <fnf@redhat.com>

	* gdb.base/bang.exp: Use gdb_run_cmd so this tests works with
	remote targets.  Update copyright years.

2004-02-02  Jeff Johnston  <jjohnstn@redhat.com>

	* lib/gdb.exp (gdb_breakpoint): Add pending breakpoint
	support.
	* gdb.base/langs.exp: Fix test which attempts to create
	breakpoint on non-existent function to handle new pending
	support.
	* gdb.base/shlib-call.exp: Use gdb_breakpoint to set
	a breakpoint.
	* gdb.base/pending.exp: New test.
	* gdb.base/pending.c: New file.
	* gdb.base/pendshr.c: Ditto.

2004-02-02  David Carlton  <carlton@kealia.com>

	* gdb.cp/overload.exp: Add overloadNamespace tests.
	* gdb.cp/overload.cc (dummyClass, dummyInstance): New.
	(overloadNamespace, XXX): New.
	(main): Call XXX::marker2.

2004-02-01  Fred Fish  <fnf@redhat.com>

	* gdb.base/dump.exp: Use runto_main instead of "runto main".
	* gdb.base/finish.exp: Ditto.
	* gdb.base/gcore.exp: Ditto.
	* gdb.base/huge.exp: Ditto.
	* gdb.base/info-proc.exp: Ditto.
	* gdb.base/return2.exp: Ditto.
	* gdb.threads/gcore-thread.exp: Ditto.

2004-02-01  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.threads/thread-specific.exp: Add missing anchor to regexp.

2004-02-01  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/fileio.c (test_open): Replace O_RDONLY with O_RDWR such
	that opening the file succeeds on OpenBSD.

2004-02-01  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.threads/thread-specific.c: New file.
	* gdb.threads/threads-specific.exp: New test script.
	* lib/gdb.exp (gdb_test_multiple): Allow user patterns access
	to expect_out.

2004-02-01  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/call-ar-st.exp: Call get_debug_format.  Remove xfail on
	sparc*-*-solaris* into a kfail PR gdb/1539 on sparc-*-* for stabs
	only on the "print_small_structs from print_long_arg_list" test.

2004-02-01  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.base/completion.exp: Kill a stray backslash.

	From Jim Ingham <jingham@apple.com>:
	* gdb.base/completion.exp: Test that "complete file ./gdb.base/compl"
	agrees with the result from sending a tab.

2004-01-31  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.base/chng-syms.exp: Remove stray newline.

2004-01-31  Mark Kettenis  <kettenis@gnu.org>

	* gdb.asm/asm-source.exp: Set asm-note to "openbsd" for
	*-*-openbsd*.
	* gdb.asm/openbsd.inc: New file.

2004-01-30  Mark Kettenis  <kettenis@gnu.org>

	* gdb.asm/asm-source.exp: Strip -Wl, from link-flags.  Don't
	append -static to link-flags for *-*-freebsd*, *-*netbsd* and
	*-*solaris2*.  Remove commented out default settings for
	asm-flags.  Replace gdb_compile with target_link.

2004-01-29  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/inherit.exp: Rewrite.  Use gdb_test_multiple and gdb
	for all tests.  Remove old hp-ux and cygnus xfail cases.

2004-01-29  Paul N. Hilfinger  <Hilfinger@gnat.com>

	* gdb.base/chng-syms.exp: New file.
	* gdb.base/chng-syms.c: New file.

2004-01-24  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/local.exp: Rewrite "ptype Local".  Add "ptype l".
	Provide arms for current output in all my configurations.

2004-01-24  Michael Chastain  <mec.gnu@mindspring.com>

	* lib/compiler.c: Add hp_cc_compiler and hp_aCC_compiler.
	* lib/compiler.cc: Likewise.
	* lib/gdb.exp (get_compiler_info): Always call gdb_compile to
	get the right preprocessor.  Eval the output directly.  Remove
	special tests for hp_cc_compiler and hp_aCC_compiler.  Remove
	hp_f77_compiler and hp_f90_compiler completely.
	(gdb_preprocess): Delete.
	(get_compiler): Delete.

2004-01-24  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/charset.c, gdb.base/dump.c, gdb.base/huge.c: Include
	<string.h>.

2004-01-24  Nick Roberts  <nick@nick.uklinux.net>

	* gdb.mi/mi-stack.exp: Update copyright.

2004-01-23  David Carlton  <carlton@kealia.com>

	* gdb.cp/rtti.exp: Don't include full path in ${srcfile}.  Add
	test for cp_lookup_transparent_type.
	* gdb.cp/rtti1.cc: Update copyright.  Add n2::func and refer_to;
	call them.

2004-01-23  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.mi/mi-var-child.exp: Update copyright year.  Move new test
	after -var-update.

2004-01-23  David Carlton  <carlton@kealia.com>

	* gdb.cp/namespace.cc (C::ensureRefs): New.
	* gdb.cp/namespace1.cc (C::ensureOtherRefs): New.

2004-01-20  Nick Roberts  <nick@nick.uklinux.net>

	* gdb.mi/mi-stack.exp (test_stack_locals_listing): Test for
	case "-stack-list-locals 2".
	* gdb.mi/mi-var-child.exp: Test for case
	"-var-list-children --all-values NAME".

2004-01-18  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/local.exp: Accept correct output for gcc v3 -gstabs+.

2004-01-18  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/fileio.exp: Add "$gdb_prompt $" anchors to patterns
	used with gdb_test_multiple.

	* gdb.base/gdb1476.exp: Accept alternat pattern for failed memory
	read at address 0.  This fixes PR testsuite/1504.

2004-01-18  Daniel Jacobowitz  <drow@mvista.com>

	* config/gdbserver.exp (gdbserver_gdb_load): Rename from gdb_load.
	Remove downloading, guessing the host executable, the calls to
	gdb_file_cmd and gdb_target_cmd, and "load" support.
	(infer_host_exec): New function broken out from gdb_load.
	(gdb_load): New wrapper for gdbserver_gdb_load.
	* lib/mi-support.exp (mi_gdb_target_cmd): New function, based on
	gdb_target_cmd.  Use -target-select.
	(mi_gdb_file_cmd): New function, broken out from mi_gdb_load.
	Download binaries to the host.  Clear last_mi_remote_file when
	we load a new binary.
	(mi_gdb_load): Call mi_gdb_file_cmd.  If gdbserver.exp is loaded,
	call gdbserver_gdb_load and mi_gdb_target_cmd.

2004-01-17  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/templates.exp: Accept more spaces with "<foo, ?bar>"
	type patterns.

2004-01-17  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/templates.exp: Fix typo in test name of
	"print Foo<volatile char*>::foo".

2004-01-15  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.base/setvar.exp: Remove setup_xfail for hppa*-*-*11*.

2004-01-16  Ben Elliston  <bje@wasabisystems.com>

	* gdb.arch/Makefile.in (MISCELLANEOUS): Remove.
	(clean mostlyclean): Remove empty rm.

2004-01-15  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.base/setvar.exp: Add copyright years.

2004-01-14  David Carlton  <carlton@bactrian.org>

	* gdb.cp/rtti.exp: Update copyright.  KFAIL test with repect to
	PR c++/1511 and update coment.
	* gdb.cp/templates.exp: Update patterns to match current output.
	If changes involve something other than whitespace, KFAIL
	w.r.t. PR c++/1512 or PR c++/931 as appropriate.

2004-01-14  David Carlton  <carlton@kealia.com>

	* gdb.cp/namespace.exp: Add tests involving classes defined within
	namespaces.
	* gdb.cp/namespace.cc (C::CClass): New.
	* gdb.cp/namespace1.cc (C::OtherFileClass): New.

2004-01-14  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.base/sepdebug.exp: Bail out of the test if we don't know
	what debug info we have. Print a better message if something goes
	wrong while producing the separate debug info file.

2004-01-14  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.base/callfuncs.c: Remove explicit declaration of malloc.

2004-01-14  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.base/callfuncs.c: Add copyright notice.

2004-01-13  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/derivation.exp: Add XFAIL for bug with protected
	inheritance.  PR gdb/1498, PR gcc/13539.

2004-01-13  Elena Zannoni  <ezannoni@redhat.com>

	 * gdb.threads/gcore-thread.exp: Prefix name of binary with
	 test specific name.
	 * gdb.mi/gdb669.exp: Ditto.
	 * gdb.mi/mi-pthreads.exp: Ditto.
	 * gdb.mi/mi1-pthreads.exp: Ditto.
	 * gdb.mi/mi2-pthreads.exp: Ditto.

2004-01-12  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/member-ptr.cc: Add copyright notice.

2004-01-12  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/member-ptr.exp: Use gdb_test, gdb_test_multiple.  Add
	some patterns for recent versions of gcc and hpacc.  Delete
	calls to setup_xfail for hppa*-*-*.  Delete redundant tests.
	Delete tests that access a NULL pointer-to-member-data.  This
	script is still disabled for gcc.

2004-01-12  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.mi/mi2-basics.exp: Make sure that full pathnames are
	escaped correctly.

2004-01-12  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.base/sepdebug.exp: New file.
	* gdb.base/sepdebug.c: New file.
	* lib/gdb.exp (separate_debug_filename): New procedure.
	(gdb_gnu_strip_debug): New procedure.

2004-01-12  Andrew Cagney  <cagney@redhat.com>

	* gdb.mi/ChangeLog: Delete file.  Renamed to ...
	* gdb.mi/ChangeLog-1999-2003: New file.

2004-01-12  Andrew Cagney  <cagney@redhat.com>

	* gdb.base/fileio.exp: Update copyright year.  On GNU/Linux, for
	"Renaming a directory to a non-empty directory returns ENOTEMPTY
	or EEXIST", treat EBUSY as an XFAIL.

2004-01-11  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.base/scope.exp: Remove obsolete setup_xfail for
	hp_cc_compiler.

2004-01-10  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/classes.exp: Remove old "(obsolescent gcc or gdb)"
	decorations.

2004-01-10  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/virtfunc.exp: Remove old "(obsolescent gcc or gdb)"
	and "(aCC)" decorations.  Remove obsolete doco about old
	test results.

2004-01-09  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/exception.exp: Fix typo in doco.

2004-01-09  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/gdb1476.exp: Fix typo.

2004-01-09  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.hp/gdb.aCC/exception.exp: Re-create as a nearly empty
	file.

2004-01-09  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/exception.cc: Change <iostream.h> to <iostream>.
	* gdb.cp/exception.exp: Use gdb test, gdb_test_multiple.
	Use gdb_compile.  Remove restriction on gcc.  Add some patterns
	for recent version of gdb.  Delete second half, which was a copy
	of the first half with different build flags.  This test is
	still disabled because it is still not ready for production.

2004-01-08  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/exception.cc: Add copyright notice.
	* gdb.cp/exception.exp: Add a notice that this file is broken
	because of line number changes caused by addition of copyright
	notice.

2004-01-08  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/exception.cc: Renamed from gdb.hp/gdb.aCC/exception.cc.
	* gdb.cp/exception.exp: Renamed from gdb.hp/gdb.aCC/exception.exp.

2004-01-08  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/classes.exp: Accept gnu abi 2.
	* gdb.cp/derivation.exp: Likewise.
	* gdb.cp/overload.exp: Likewise.
	* gdb.cp/virtfunc.exp: Likewise.

2004-01-08  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.mi/pthreads.c (done_making_threads): Remove extraneous
	semicolon after end of function.

2004-01-07  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/bs15503.cc: Include <iostream>, not <iostream.h>.
	* gdb.cp/bs15503.exp: Remove hp-only restriction.  Use modern
	boilerplate code for compiling and running the program under
	test.  Add some string method tests.

2004-01-07  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/bs15503.cc: Add copyright notice.
	* gdb.cp/bs15503.exp: Adjust line number.

2004-01-07  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.hp/gdb.defects/bs15503.exp: Renamed to gdb.cp/bs15503.exp.
	* gdb.hp/gdb.defects/bs15503.cc: Renamed to gdb.cp/bs15503.cc.

2004-01-07  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.base/funcargs.exp: Remove obsolete setup_xfail for
	hp_cc_compiler.

2004-01-07  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/cttiadd.c: Add a marker for gdb_get_line_number.
	* gdb.cp/ctti.exp: Use the marker instead of "next".
	With gcc, run further before bailing.

2004-01-07  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/cttiadd.cc: Add copyright notice.
	* gdb.cp/cttiadd1.cc: Likewise.
	* gdb.cp/cttiadd2.cc: Likewise.
	* gdb.cp/cttiadd3.cc: Likewise.

2004-01-07  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/ctti.exp: Partial rewrite.  Call gdb_compile properly.
	Use gdb_test, gdb_test_multiple.  Use floating-point values that
	have exact representations in IEEE-ish formats.

2004-01-07  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.base/constvars.exp: Do not force lang=c++ if using HP
	compilers.  Delete duplicate call to get_compiler_info.
	(local_compiler_xfail_check): setup_xfail if $hp_cc_compiler.
	* gdb.base/volatile.exp: Likewise.

2004-01-07  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/gdb1476.exp: Only run the tests if we can't read the
	memory at address 0.

2004-01-07  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.stabs/weird.exp: Use hp_cc_compiler and hp_aCC_compiler
	to test for hp-ux assembler.  Fix copyright years.

2004-01-07  Andrew Cagney  <cagney@redhat.com>

	* gdb.base/fileio.c (strerrno): Add "EBUSY".

2004-01-07  Andrew Cagney  <cagney@redhat.com>

	* gdb.base/fileio.c (test_open): Do not pass S_IWUSR to "open"
	when creating the read-only file.  From analysis by Roland McGrath
	and Elena Zannoni.

2004-01-06  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/namespace.exp: Call get_compiler_info with "c++".

2004-01-06  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.base/cvexpr.c: Be type-safe with function pointers and
	data pointers.

2004-01-06  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/m-static.exp: Compile one source file at a time.
	Delete unused call to get_compiler_info.

2004-01-06  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.base/call-ar-st.exp: Delete explicit reference to ${binfile}.ci.
	* gdb.base/call-rt-st.exp: Likewise.
	* gdb.base/nodebug.exp: Likewise.
	* gdb.base/volatile.exp: Likewise.
	* gdb.cp/ref-types.exp: Likewise.
	* gdb.cp/templates.exp: Likewise.

2004-01-05  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/gdb1476.exp, gdb.base/gdb1476.c: New files.

2004-01-05  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/funcargs.exp: Delete special timeout of 240 seconds for
	hppa*-hp-hpux*.

2004-01-04  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/structs.exp: Add patterns to kfail PR gdb/1447 for
	x86_64-*-*.

	* gdb.base/structs.exp: Add patterns to kfail PR gdb/1447 for
	sparc64-*-* and sparc*-solaris2*.

2004-01-04  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/structs.exp: Remove ${testfile} from "zed L<n> for
	return ${tests}" test.  The ${tests} already mentions the
	filename.

2004-01-02  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/local.exp: Accept gcc abi 2.

2004-01-02  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/templates.exp: Accept gcc abi 2.

2004-01-02  Michael Chastain  <mec.gnu@mindspring.com>

	* lib/compiler.cc: Remove supports_template_debugging.
	* gdb.cp/templates.exp: Do not test supports_template_debugging.

2004-01-01  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/namespace.exp: Accept gcc abi 2.

2004-01-01  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/method.exp: Accept gcc abi 2.

2004-01-01  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/classes.exp: Generate identical results as old version.
	* gdb.cp/derivation.exp: Likewise.
	* gdb.cp/overload.exp: Likewise.
	* gdb.cp/virtfunc.exp: Likewise.

2004-01-01  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/virtfunc.exp: Modify some patterns to avoid a
	mysterious bug with sourceware version of expect.

2004-01-01  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/overload.exp: Rewrite.  Clean up patterns to match
	current versions of gcc, including gcc abi 2.  Remove gratuitous
	restart of test program.  Use gdb_test_multiple and gdb_test for
	all tests.  Add patterns to xfail missing "const" in "const char *"
	and kfail PR gdb/1155.

2004-01-01  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/derivation.exp: Rewrite.  Clean up patterns to match
	current versions of gcc, including gcc abi 2.  Remove gratuitous
	restart of test program.  Use gdb_test_multiple and gdb_test for
	all tests.  Add patterns to kfail PR gdb/1498.

2003-12-31  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/virtfunc.exp: Rewrite.  Clean up patterns to match
	current versions of gcc, including gcc abi 2.  Use "breakpoint"
	and "continue" instead of restarting the target program.  Use
	gdb_test_multiple and gdb_test for all tests.

2004-01-01  Mark Kettenis  <kettenis@gnu.org>

	* gdb.asm/asm-source.exp: Update copyright year.  Link statically
	for *-*-solaris2*.

2003-12-31  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/classes.exp: Rewrite.  Clean up patterns to match
	current versions of gcc, including gcc abi 2.  Use "breakpoint"
	and "continue" instead of restarting the target program several
	times.  Use gdb_test_multiple and gdb_test for all tests.

2003-12-18  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.base/sect-cmd.exp: Handle compiling test case from multiple
	source files.

2003-12-16  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.base/environ.exp: Handle compiling test case from multiple
	source files.

2003-12-16  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.base/structs.exp: Call gdb_exit as well as gdb_start.

2003-12-17  Jim Blandy  <jimb@redhat.com>

	* gdb.base/freebpcmd.c: Add copyright notice.

	* gdb.base/freebpcmd.exp: Mark the interesting failure as known.

2003-12-16  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.base/maint.exp: Add generic FAIL patterns to prevent timeouts.

2003-12-13  Jim Blandy  <jimb@redhat.com>

	* gdb.base/freebpcmd.exp, gdb.base/freebpcmd.c: New test.

2003-12-12  Kevin Buettner  <kevinb@redhat.com>

	* gdb.asm/frv.inc: New file.
	* gdb.asm/asm-source.exp: Add frv-*-* as a supported target.

2003-12-09  Fred Fish  <fnf@redhat.com>

	* gdb.base/break.c (marker1, marker2, marker3, marker4): Move
	functions to break1.c and leave prototypes behind.  Add more
	"set breakpoint NN here" comments.
	* gdb.base/break1.c: New file.

	* gdb.base/break.exp: Handle compiling test case from multiple
	source files and change source file references as needed.
	* gdb.base/completion.exp: Ditto.
	* gdb.base/condbreak.exp: Ditto.
	* gdb.base/define.exp: Ditto.
	* gdb.base/ena-dis-br.exp: Ditto.
	* gdb.base/info-proc.exp: Ditto.
	* gdb.base/maint.exp: Ditto.
	* gdb.base/until.exp: Ditto.

	* gdb.base/condbreak.exp: Use bp_locationNN variables instead of
	hardcoded line numbers.
	* gdb.base/define.exp: Ditto.
	* gdb.base/ena-dis-br.exp: Ditto.
	* gdb.base/maint.exp: Ditto.
	* gdb.base/until.exp: Ditto.

	* gdb.base/completion.exp: Use "break1" for completion tests since
	"break" is no longer a unique prefix.

2003-12-06  Andrew Cagney  <cagney@redhat.com>

	* gdb.base/structs.exp (test_struct_returns): When applicable, set
	"return_value_unimplemented".  When an unimplemented struct return
	architecture, report incorrect values as a KFAIL

2003-12-05  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/rtti.exp: Accept new wording of warning from
	cp_lookup_rtti_type.

2003-12-05  Michael Chastain  <mec.gnu@mindspring.com>

	Partial fix for PR testsuite/1456.
	* gdb.base/scope.exp (test_at_main): Replace references to
	gcc_compiled with calls to test_compiler_info.
	(test_at_foo): Likewise.
	(test_at_bar): Likewise.

2003-12-04  Michael Chastain  <mec.gnu@mindspring.com>

	Partial fix for PR testsuite/1456.
	* gdb.base/so-impl-ld.exp: Replace reference to gcc_compiled with call
	to test_compiler_info.

2003-12-03  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.base/so-impl-ld.exp: Update copyright notice.

2003-12-02  Michael Chastain  <mec.gnu@mindspring.com>

	Partial fix for PR testsuite/1456.
	* gdb.base/mips_pro.exp: Replace references to gcc_compiled with calls
	to test_compiler_info.

2003-11-28  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.objc/objcdecode.exp: Match and KFAIL the output that comes
	from current versions of gdb.  Clean up regular expressions.
	Delete redundant timeout case.

2003-11-28  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.objc/nondebug.exp: Match and KFAIL the output that comes
	from current versions of gdb.  Clean up regular expressions.
	Delete redundant timeout case.

2003-12-01  Michael Chastain  <mec.gnu@mindspring.com>

	Partial fix for PR testsuite/1456.
	* gdb.base/callfuncs.exp (do_function_calls): Replace reference to
	gcc_compiled with call to test_compiler_info.

2003-11-30  Michael Chastain  <mec.gnu@mindspring.com>

	Partial fix for PR testsuite/1456.
	* gdb.base/list.exp (test_list_function): Delete unused declaration
	of gcc_compiled.

2003-11-29  Michael Chastain  <mec.gnu@mindspring.com>

	Partial fix for PR testsuite/1456.
	* gdb.base/complex.exp: Replace reference to gcc_compiled with
	call to test_compiler_info.

2003-11-29  Mark Kettenis  <kettenis@gnu.org>

	* gdb.asm/asm-source.exp: Initialize asm-note to "empty".  Set
	asm-note to "netbsd" for *-*-netbsdelf* and x86_64-*-netbsd*.  Use
	it to create the appropriate note.inc.
	* gdb.asm/asmsrc1.s: Include "note.inc".
	* gdb.asm/netbsd.inc: New file.
	* gdb.asm/empty.inc: New file.

2003-11-28  Michael Chastain  <mec.gnu@mindspring.com>

	Partial fix for PR testsuite/1456.
	* gdb.base/constvars.exp: Replace references to gcc_compiled with
	calls to test_compiler_info.

2003-11-27  Michael Chastain  <mec.gnu@mindspring.com>

	Partial fix for PR testsuite/1456.
	* gdb.base/volatile.exp: Replace references to gcc_compiled with
	calls to test_compiler_info.

2003-11-27  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/structs.exp: Use i*86-*-* instead of i686-*-* as a
	pattern for the KFAILs.

2003-11-25  Adam Fedor  <fedor@gnu.org>

	* gdb.objc/objcdecode.exp: Test for PR objc/1238.
	* gdb.objc/objcdecode.m: New file.

2003-11-25  Adam Fedor  <fedor@gnu.org>

	* gdb.objc/nondebug.exp: Test for PR objc/1236.
	* gdb.objc/nondebug.m: New file.

2003-11-26  Ben Elliston  <bje@wasabisystems.com>

	* gdb.asm/asm-source.exp: Make sure the final link succeeds on
	NetBSD as it does on FreeBSD.  Modelled on a similar change by
	Mark Kettenis on 2003-05-30.
	(link-flags): Set to "--entry _start" regardless of target.
	Special linker flags are to be appended to $link-flags.
	* gdb.asm/mips.inc (gdbasm_startup): Remove __start label.

2003-11-25  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/method.exp: Accept output of new demangler.

2003-11-25  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb/class2.exp: New file.
	* gdb/class2.cc: New file.

2003-11-25  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/templates.exp (test_ptype_of_templates): Accept output
	of new demangler.

2003-11-23  Mark Kettenis  <kettenis@gnu.org>

	* gdb.arch/i386-unwind.exp: Use gdb_run_cmd and gdb_expect instead
	of gdb_test "run".

2003-11-23  Mark Kettenis  <kettenis@gnu.org>

	* gdb.arch/i386-unwind.exp: Don't use runto_main.  Change
	"continue" into "run".

2003-11-23  Michael Chastain  <mec.gnu@mindspring.com>

	Partial fix for PR testsuite/1456.
	* gdb.cp/ambiguous.exp: Replace reference to gcc_compiled with
	call to test_compiler_info.
	* gdb.cp/ctti.exp: Likewise.
	* gdb.cp/derivation.exp: Likewise.
	* gdb.cp/member-ptr.exp: Likewise.
	* gdb.cp/virtfunc.exp (test_virtual_calls): Remove unused
	reference to gcc_compiled.

2003-11-23  Michael Chastain  <mec.gnu@mindspring.com>

	Fix PR testsuite/1463.
	* gdb.base/structs.exp (start_structs_test): Call
	get_debug_format before using the debug format.

2003-11-22  Andrew Cagney  <cagney@redhat.com>

	* lib/gdb.exp (gdb_test_multiple): Add simple example.
	* gdb.base/structs.exp: Use gdb_test_multiple.

2003-11-20  Andrew Cagney  <cagney@redhat.com>

	* gdb.base/structs.exp: Handle and recover from internal errors.
	Replace "foo${n}" with "foo<n>" in test messages.

	* gdb.base/structs.exp: Update copyright.  Rewrite.
	* gdb.base/structs.c: Update copyright.  Rewrite.

	* lib/gdb.exp (gdb_internal_error_resync): Issue a perror when the
	resync count exceeded.

	* gdb.base/maint.exp: Use gdb_internal_error_resync to recover
	from the internal error.
	* lib/gdb.exp (gdb_internal_error_resync): New procedure.
	Original from Jim Blandy.
	(gdb_test_multiple): Use gdb_internal_error_resync.

2003-11-19  Andrew Cagney  <cagney@redhat.com>

	* gdb.base/callfuncs.exp: Change the XFAILed descriptor test to a
	KFAIL.

2003-11-17  Mark Kettenis  <kettenis@gnu.org>

	New testcase for PR backtrace/1435.
	* gdb.arch/i386-unwind.exp: New file.
	* gdb.arch/i386-unwind.c: New file.

2003-11-17  Andrew Cagney  <cagney@redhat.com>

	* lib/gdb.exp (compiler_info): New global.
	(test_compiler_info): New function.
	(get_compiler_info): Set compiler_info.
	* lib/compiler.c, lib/compiler.cc: Add copyright.  When GNUC, set
	"compiler_info" to gcc-<major>-<minor>.

2003-11-15  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.trace/configure: Remove.

2003-11-13  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.base/break.c: Add comments to aid finding line numbers for
	breakpoints.
	* gdb.base/break.exp: Remove all references to explicit line
	numbers.

2003-11-11  Nick Clifton  <nickc@redhat.com>

	* gdb.base/shreloc.exp: Do not run for targets which do not
	support shared objects.

2003-11-10  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.base/fileio.exp: Drop tests for nointerrupts and noinferiorio.
	Don't run tests if nofileio flag is given.

2003-11-07  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.cp/annota3.exp: Make sure we can match 'Hardware watchpoint'
	as well as 'Watchpoint'.

2003-11-06  Elena Zannoni  <ezannoni@redhat.com>

	Reported by Jim Ingham <jingham@apple.com>:
	* gdb.base/annota1.exp: Match at least one occurrence of the
	signal handler annotation.

2003-11-06  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.cp/annota2.exp: Make sure we can match 'Hardware watchpoint'
	as well as 'Watchpoint'.

2003-11-05  Michael Chastain  <mec@shout.net>

	* gdb.mi/pthreads.c (routine): Handle early return from sleep.

2003-11-03  Kris Warkentin  <kewarken@qnx.com>

	* gdb.arch/gdb1291.c: New test file.
	* gdb.arch/gdb1291.exp: New test script.
	* gdb.arch/gdb1431.c: New test file.
	* gdb.arch/gdb1431.exp: New test script.

2003-10-22  Michael Chastain  <mec@shout.net>

	* gdb.mi/pthreads.c: Add copyright notice.

2003-10-22  Michael Chastain  <mec@shout.net>

	* gdb.threads/pthreads.c: Add copyright notice.

2003-10-20  Michael Chastain  <mec@shout.net>

	* gdb.base/gdb1056.exp: New test script.

2003-10-13  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.threads/killed.exp: Use gdb_run_cmd.

2003-10-13  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.base/gcore.exp: Issue an UNSUPPORTED and exit if we can't
	create a core file.
	* gdb.threads/gcore-thread.exp: Likewise.

2003-10-13  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.base/call-rt-st.c (struct bit_flags_char_t): New bitfield
	type, based on char type.
	(struct bit_flags_short_t): New bitfield type, based on short type.
	(init_bit_flags_char): New fuction.
	(init_bit_flags_short): Ditto.
	(print_bit_flags_char): Ditto.
	(print_bit_flags_short): Ditto.
	(main): Add handling for bit_flags_char_t and bit_flags_short_t.

2003-10-11  Michael Chastain  <mec@shout.net>

	* gdb.base/call-rt-st.exp: Update copyright year.

2003-10-10  Kei Sakamoto  <sakamoto.kei@renesas.com>

	* config/hmsirom.exp: Replace "Hitachi" with "Renesas".
	* gdb.disasm/sh3.s: Ditto.

2003-10-07  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.threads/switch-threads.exp: New test.
	* gdb.threads/switch-threads.c: New source file.

2003-10-07  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.base/ending-run.exp: Add sh specific case.

2003-10-06  Andrew Cagney  <cagney@redhat.com>

	* gdb.base/watchpoint.exp: Delete obsolete clear_xfail.
	* gdb.disasm/mn10200.exp: Delete obsolete file.

2003-09-29  Daniel Jacobowitz  <drow@mvista.com>

	* ChangeLog: Correct an entry command.exp -> commands.exp.
	* gdb.base/commands.exp (bp_deleted_in_command_test)
	(temporary_breakpoint_commands): Check noargs.

2003-09-25  David Carlton  <carlton@kealia.com>

	* gdb.cp/namespace.exp: Tweak comments.  Add non-quoted versions
	of some print tests, where appropriate.  Add tests for C::D::cd,
	E::ce, F::cXfX, G::XgX.
	* gdb.cp/namespace.cc: Add XgX, cXfX, ce.

2003-09-25  Richard Earnshaw  <rearnsha@arm.com>

	* lib/java.exp (java_init): Import target_alias before using it.

2003-09-25  David Carlton  <carlton@kealia.com>

	* gdb.base/corefile.exp: Delete obsolete setup_xfail.

2003-09-23  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.base/selftest.exp: Accomodate more instruction reordering
	weirdness.

2003-09-17  Michael Chastain  <mec@shout.net>

	* gdb.cp/gdb1355.exp: New file.
	* gdb.cp/gdb1355.c: New file.

2003-09-15  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.asm/asm-source.exp: Add sh*-*-* as supported target.
	* gdb.asm/sh.inc: New file.

2003-09-11  David Carlton  <carlton@kealia.com>

	* gdb.cp/namespace.exp: Add tests for namespace types.
	* gdb.cp/maint.exp (test_help): Test 'help maint cp namespace'.
	(test_namespace): New.

2003-09-11  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.base/relocate.exp: Handle new gdb output at startup.
	* gdb.stabs/weird.exp: Ditto.

2003-09-08  Michael Chastain  <mec@shout.net>

	* gdb.base/gdb1250.c: Rename 'gamma' to 'my_gamma'.

2003-09-07  Michael Chastain  <mec@shout.net>

	* gdb.cp/classes.exp: Accommodate both 'syntax error' and
	'parse error'.

2003-09-07  Mark Kettenis  <m.kettenis@osp.nl>

	* gdb.arch/i386-prologue.exp: Add checks for saved registers.

2003-08-30  Michael Chastain  <mec@shout.net>

	* gdb.base/selftest.exp: Remove support for m68k*-*-hpux.
	* gdb.gdb/observer.exp: Ditto.
	* gdb.gdb/xfullpath.exp: Ditto.

2003-08-29  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/interrupt.exp: XFAIL "call function when asleep" for
	*-*-*bsd*.

2003-08-28  Jeff Johnston  <jjohnstn@redhat.com>

	* gdb.base/dump.exp: Skip for ia64.

2003-08-25  Jeff Johnston  <jjohnstn@redhat.com>

	* gdb.asm/asm-source.exp: Add ia64 support.
	* gdb.asm/ia64.inc: New file.

2003-08-22  Michael Chastain  <mec@shout.net>

	* gdb.cp: New directory.
	* gdb.cp/*: Copy from gdb.c++/*.
	* gdb.c++/*: Remove.
	* Makefile.in: Change gdb.c++ to gdb.cp.
	* configure.in:  Ditto.
	* configure: Regnerate.

2003-08-18  Mark Kettenis  <kettenis@gnu.org>

	* gdb.arch/i386-prologue.exp: Add testcase for PR backtrace/1338.
	* gdb.arch/i386-prologue.c (gdb1338): Add function.

2003-08-17  Daniel Jacobowitz  <drow@mvista.com>

	* mi-var-display.exp (-var-list-children weird): Accept function
	pointers with argument types.
	* mi1-var-display.exp (-var-list-children weird): Likewise.
	* mi2-var-display.exp (-var-list-children weird): Likewise.

2003-08-17  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.base/annota3.exp: Add missing newline.

2003-08-06  Michael Chastain  <mec@shout.net>

	* gdb.java/jmisc1.exp: Add test for pr gdb/1322.

2003-08-12  Michael Snyder  <msnyder@redhat.com>

	* gdb.base/float.exp: Add test for SH.

2003-08-10  Mark Kettenis  <kettenis@gnu.org>

	* gdb.arch/i386-prologue.c, gdb.arch/i386-prologue.exp: New files.

2003-08-07  Elena Zannoni  <ezannoni@redhat.com>

       * gdb.base/completion.exp: Remove reduntant completion test
       on filename.

2003-08-07  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.base/attach.exp, gdb.base/detach.exp, gdb.base/gcore.exp,
	gdb.mi/mi-basics.exp, gdb.threads/gcore-thread.exp,
	gdb.trace/save-trace.exp: Make sure that full pathnames are
	escaped correctly.

2003-08-07  Elena Zannoni  <ezannoni@redhat.com>

	* configure.in: Don't generate config.h from config.hin.
	* configure: Regenerate.
	* config.hin: Remove file.
	* gdb.mi/pthreads.c: Remove include of config.h, and other ifdefs.
	* gdb.threads/pthreads.c: Ditto.

2003-08-07  Daniel Jacobowitz  <drow@mvista.com>

	From Kei Sakamoto <sakamoto.kei@renesas.com>:
	* gdb.asm/asm-source.exp : Add -lgloss to link-flags.
	* gdb.asm/m32r.inc : Remove an illegal nop after bl instruction.
	Replace ld24 with seth/add3.

2003-08-02  Andrew Cagney  <cagney@redhat.com>

	* gdb.base/annota3.exp: New file.
	* gdb.base/annota3.c: New file.
	* gdb.c++/annota3.exp: New file.
	* gdb.c++/annota3.cc: New file.

2003-07-29  Michael Chastain  <mec@shout.net>

	* gdb.threads/tls.c (spin): Check errno only if sem_wait
	actually failed.
	(do_pass): Likewise.
	* gdb.threads/tls.exp: Always initialize no_of_threads.

2003-07-27  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.threads/print-threads.exp (test_all_threads): Loosen KFAIL
	pattern.
	* gdb.threads/tls-shared.exp: Don't use gdb_suppress_entire_file.
	* gdb.threads/tls.exp: Recognize one case of the host library not
	supporting TLS.

2003-07-27  Andrew Cagney  <cagney@redhat.com>

	* gdb.base/fileio.exp: Use SH when running commands using
	remote_exec.

2003-07-24  Daniel Jacobowitz  <drow@mvista.com>

	From Kei Sakamoto <sakamoto.kei@renesas.com>:
	* gdb.base/relocate.c (dummy): New padding array.

2003-07-22  Michael Snyder  <msnyder@redhat.com>

	* gdb.disasm/8300s.s: Fix syntax of bsr insn.

	* gdb.disasm/h8300s.exp : Minor changes in disassembler output require
	patterns to be more general, accepting old and new output.
	Some output chars (such as '+') also must be quoted.
	Some addresses are displayed numerically instead of
	symbolically.

2003-07-23  Michael Snyder  <msnyder@redhat.com>

	* gdb.base/return2.exp: Don't test long-long return.

	* gdb.disasm/t01_mov.s: New file, h8300sx disassembly tests.
	* gdb.disasm/t01_mov.exp: Ditto.
	* gdb.disasm/t02_mova.s: Ditto.
	* gdb.disasm/t02_mova.exp: Ditto.
	* gdb.disasm/t03_add.s: Ditto.
	* gdb.disasm/t03_add.exp: Ditto.
	* gdb.disasm/t04_sub.s: Ditto.
	* gdb.disasm/t04_sub.exp: Ditto.
	* gdb.disasm/t05_cmp.s: Ditto.
	* gdb.disasm/t05_cmp.exp: Ditto.
	* gdb.disasm/t06_ari2.s: Ditto.
	* gdb.disasm/t06_ari2.exp: Ditto.
	* gdb.disasm/t07_ari3.s: Ditto.
	* gdb.disasm/t07_ari3.exp: Ditto.
	* gdb.disasm/t08_or.s: Ditto.
	* gdb.disasm/t08_or.exp: Ditto.
	* gdb.disasm/t09_xor.s: Ditto.
	* gdb.disasm/t09_xor.exp: Ditto.
	* gdb.disasm/t10_and.s: Ditto.
	* gdb.disasm/t10_and.exp: Ditto.
	* gdb.disasm/t11_logs.s: Ditto.
	* gdb.disasm/t11_logs.exp: Ditto.
	* gdb.disasm/t12_bit.s: Ditto.
	* gdb.disasm/t12_bit.exp: Ditto.
	* gdb.disasm/t13_otr.s: Ditto.
	* gdb.disasm/t13_otr.exp: Ditto.

2003-07-22  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.threads/tls.exp :Add kfail for 'info address' case.

2003-07-22  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.threads/tls.c : New file.
	* gdb.threads/tls.exp : New file.
	* gdb.threads/tls-main.c : New file.
	* gdb.threads/tls-shared.c : New file.
	* gdb.threads/tls-shared.exp : New file.

2003-07-22  Andreas Schwab  <schwab@suse.de>

	* gdb.asm/powerpc.inc (gdbasm_startup): Force alignment.

2003-07-20  Andreas Schwab  <schwab@suse.de>

	* gdb.base/selftest.exp (do_steps_and_nexts): Add more patterns
	due to insn reordering.

2003-07-15  Andrew Cagney  <cagney@redhat.com>

	* gdb.asm/asm-source.exp: Do not allow "start" in the backtrace.

2003-07-15  Michael Chastain  <mec@shout.net>

	* gdb.base/gdb1250.exp: New file.
	* gdb.base/gdb1250.c: New file.

2003-07-09  Michal Ludvig  <mludvig@suse.cz>

	* gdb.c++/templates.exp (test_ptype_of_templates): Recognize
	expansion of size_t to 'unsigned long', not only to 'unsigned'.

2003-07-09  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.threads/tls.c: New file.
	* gdb.threads/tls.exp: New file.
	* gdb.threads/tls-main.c: New file.
	* gdb.threads/tls-shared.c: New file.
	* gdb.threads/tls-shared.exp: New file.

2003-07-09  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.base/annota1.exp: Make sure that we properly escape the
	full path of the source file. Xfail more permissive patterns,
	due to a compiler debug info problem.

2003-07-07  Andreas Schwab  <schwab@suse.de>

	* gdb.asm/m68k.inc: New file.
	* gdb.asm/asm-source.exp: Use it for m68k-*-*.

	* gdb.objc/basicclass.exp ("Call an Objective-C method with no
	arguments"): Also match negative number.

	* gdb.base/float.exp ("info float"): Add test for m68k-*-*.

2003-07-03  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.base/store.c (charest): New typedef.
	(add_char): Rename to add_charest, update.
	(wack_char): Rename to wack_charest, update types.  Return l + r
	to keep r live across the call.
	(wack_short, wack_int, wack_long, wack_longest, wack_float)
	(wack_double, wack_doublest): Return l + r to keep r live across
	the call.
	* gdb.base/store.exp: Accomodate store.c changes.

2003-06-30  David Carlton  <carlton@kealia.com>

	* gdb.c++/maint.exp (test_invalid_name): New.
	(test_first_component): Add tests for invalid names.

2003-06-29  Michael Chastain  <mec@shout.net>

	* gdb.c++/inherit.exp (test_print_svi_classes): Accept gdb
	output of '<VTT for class>' for virtual base classes.

2003-06-29  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.base/completion.exp: Tab-complete "complet" instead of
	"compl".
	* gdb.base/complex.exp, gdb.base/complex.c: New files.

2003-06-29  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.base/constvars.exp: Remove most xfails for GCC 3.x.
	* gdb.base/volatile.exp: Likewise.

2003-06-29  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.threads/print-threads.exp (test_all_threads): Add kfail for
	gdb/1265.

2003-06-28  Michael Chastain  <mec@shout.net>
	    Daniel Jacobowitz  <drow@mvista.com>

	* gdb.base/selftest.exp (do_steps_and_nexts): Increase maximum
	initial line count of 'captured_main' from 26 to 32.
	(test_with_self): Allow xmalloc call to be interleaved with the
	preceding two lines.

2003-06-24  Joel Brobecker  <brobecker@gnat.com>

	* gdb.base/bang.exp: New testcase.

2003-06-23  Joel Brobecker  <brobecker@gnat.com>

	* gdb.base/langs.exp: Add some tests for the "minimal" language
	support.

2003-06-23  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.objc/basicclass.exp: Return -1 if we cannot compile
	the testcase.

2003-06-22  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.base/relocate.exp: Test add-symbol-file with a variable
	offset.

2003-06-22  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.c++/pr-1210.cc: New file.
	* gdb.c++/pr-1210.exp: New file.

2003-06-21  Daniel Jacobowitz  <drow@mvista.com>

	* lib/mi-support.exp (mi_run_cmd): Expect an MI response to
	000-exec-continue.

2003-06-15  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/attach.exp: Use -1 for the ID of a nonexistent process
	on *-*-*bsd* instead of *-*-freebsd*.

2003-06-14  Andrew Cagney  <cagney@redhat.com>

	* gdb.base/store.exp: Test longest and doublest.  Test all
	parameters.  Weaken return statement match.
	* gdb.base/store.c: Add longest and doublest - aka long long and
	long double functions.  Put all parameters into local register
	variables.  Use negative values.

2003-06-14  Andrew Cagney  <cagney@redhat.com>

	* gdb.base/fileio.c: Include <errno.h>, and <sys/wait.h>.  Gag
	-Wformat errors.  Add lost line.  Use WEXITSTATUS to get system
	exit status.
	* gdb.base/fileio.exp: Disable target when nointerrupts and
	noinferiorio, instead of limiting it to remote.  Use remote_exec
	instead of system.

2003-06-12  Jeff Johnston  <jjohnstn@redhat.com>

	* gdb.base/float.exp: Add ia64 support.

2003-06-12  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.base/fileio.exp: Run only on remote targets.

2003-06-10  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.base/fileio.c: New file, testing File-I/O.
	* gdb.base/fileio.exp: Ditto.

2003-06-09  Raoul Gough  <RaoulGough@yahoo.co.uk>

	* gdb.base/shreloc.exp: New file, check symbol values obtained from
	shared objects after relocation at load time (gdb PR/1132).
	* gdb.base/shreloc.c, gdb.base/shreloc1.c, gdb.base/shreloc2.c:
	as above, part of the shared object relocation test.

2003-06-08  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/readline.exp: Add tests for operate-and-get-next with a
	fully filled history list.
	* gdb.base/gdb_history: New file.

	* gdb.base/signals.exp: XFAIL "continue to func1" on
	i*86-*-freebsd*.

	* gdb.base/attach.exp: When trying to attach to a nonexistent
	process, make it possible to specify the PID based on the target,
	and do so for *-*-freebsd*.

2003-06-02  Richard Henderson  <rth@redhat.com>

	* gdb.base/float.exp: Add expected regexp for alpha-*-*.

2003-06-02  Richard Henderson  <rth@redhat.com>

	* gdb.base/selftest.exp: Next over lim_at_start initialization.

2003-06-02  Richard Henderson  <rth@redhat.com>

	* gdb.base/dump.exp [alpha*-*-*]: Add -taso linker switch.

2003-06-01  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.asm/asm-source.exp: Dissassemble from &globalvar instead
	of globalvar.

2003-06-01  Mark Kettenis  <kettenis@gnu.org>

	* gdb.asm/asm-source.exp: Check for memory read errors in
	disassembler test on *BSD too.

2003-06-01  Richard Henderson  <rth@redhat.com>

	* gdb.asm/alpha.inc (gdbasm_enter): Use numeric register names
	for .frame.
	(gdbasm_call): Lose ldgp.
	(gdbasm_startup): Add frame information.
	* gdb.asm/asm-source.exp (alpha*-*): Add -no-mdebug to asm-flags.

2003-05-31  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/float.exp: Expect similar output for x86_64-*-* as for
	i?86-*-*.

2003-05-30  Mark Kettenis  <kettenis@gnu.org>

	* gdb.asm/asm-source.exp: Make sure the final link succeeds on
	FreeBSD.

2003-05-29  Richard Henderson  <rth@redhat.com>

	* gdb.asm/alpha.inc: New file.
	* gdb.asm/asm-source.exp: Use it.

2003-05-29  Jim Blandy  <jimb@redhat.com>

	* gdb.base/corefile.exp: Find corefiles on Linux, which names them
	'core.PID'.

2003-05-22  Jim Blandy  <jimb@redhat.com>

	* gdb.base/corefile.exp: Tolerate stuff after argument parens in
	backtrace.

2003-05-20  David Carlton  <carlton@math.stanford.edu>

	* gdb.c++/namespace1.cc: Actually do 'cvs add' before committing
	this time.

2003-05-19  David Carlton  <carlton@bactrian.org>

	* gdb.c++/rtti.exp: New file, containing tests for PR c++/488.
	* gdb.c++/rtti.h, gdb.c++/rtti1.cc, gdb.c++/rtti2.cc: Ditto.

2003-05-19  David Carlton  <carlton@bactrian.org>

	* gdb.c++/namespace.exp: Add namespace scope and anonymous
	namespace tests.
	Bump copyright date.
	* gdb.c++/namespace.cc: Add anonymous namespace and namespace C.
	(main): Call C::D::marker2.
	* gdb.c++/namespace1.cc: New file.

2003-05-14  Jeff Johnston  <jjohnstn@redhat.com>

	Roland McGrath  <roland@redhat.com>
	* gdb.threads/linux-dp.exp: Account for fact that in nptl model
	there is no manager thread.

2003-05-08  Jeff Johnston  <jjohnstn@redhat.com>

	* gdb.threads/schedlock.exp: Remove assumption that all threads
	will run in a particular small time slice.  Also ensure we break
	in one of the child threads rather than the main thread.

2003-05-07  Jim Blandy  <jimb@redhat.com>

	Add support for assembly source testing on the s390x.
	* gdb.asm/asm-source.exp: Add a case for the s390x-*-*
	architecture.
	* gdb.asm/s390x.inc: New file.

	* gdb.asm/asm-source.exp: Use a 'switch -glob' statement, not a
	succession of 'if' statements.

2003-05-05  Andrew Cagney  <cagney@redhat.com>

	* gdb.base/maint.exp: Add tests for "maint print dummy-frames".

2003-05-05  Andrew Cagney  <cagney@redhat.com>

	* gdb.base/watchpoint.exp: Rename CALL_DUMMY_BREAKPOINT_OFFSET to
	DEPRECATED_CALL_DUMMY_BREAKPOINT_OFFSET in comments.

2003-05-02  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.base/charset.exp: Update based on new behavior of set/show
	charset commands.

2003-05-01  Andrew Cagney  <cagney@redhat.com>

	* gdb.asm/asm-source.exp: Check that "disassm" and "x/i" of a
	variable do not give memory errors.

2003-04-30  Adam Fedor  <fedor@gnu.org>

	* Makefile.in (ALL_SUBDIRS): Add gdb.objc
	* configure.in (AC_OUTPUT): Add gdb.objc/Makefile
	* gdb.objc/Makefile.in, gdb.objc/basicclass.exp,
	gdb.objc/basicclass.m: : New files

	* lib/gdb.exp (gdb_compile_objc): New procedure.

2003-04-27  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.base/signals.exp: Make backtrace tests more specific.

2003-04-23  David Carlton  <carlton@bactrian.org>

	* gdb.c++/maint.exp (test_first_component): Add tests for
	'operator' in more locations.

2003-04-16  Kevin Buettner  <kevinb@redhat.com>

	* gdb.base/args.exp: Invoke gdb_load for simulator targets.

2003-04-16  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.base/completion.exp: Make 'info func mark' complete on 'info
	func marke' instead. Update test name.

2003-04-15  David Carlton  <carlton@math.stanford.edu>

	* gdb.c++/maint.exp: New file.

2003-04-14  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.threads/schedlock.c: Change type of thread function argument
	to long, to avoid warnings on 64-bit platforms.

2003-04-14  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.base/attach.exp: Add new message from ptrace in case of
	attaching to nonexistent process.

2003-04-11  Jim Blandy  <jimb@redhat.com>

	* gdb.c++/derivation.exp, gdb.c++/overload.exp,
	gdb.c++/userdef.cc: Place comments on the lines to which the
	marker function might return.
	* gdb.c++/derivation.exp, gdb.c++/overload.exp,
	gdb.c++/userdef.exp: Look for those comments to check that we've
	returned to the right place, instead of checking line numbers.

2003-04-11  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.threads/pthreads.exp (test_startup): When setting a breakpoint
	match on sourcefile name, instead of directory name.

2003-04-10  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.base/completion.exp: Use string_to_regexp to match the
	working directory name.

2003-04-09  Jim Blandy  <jimb@redhat.com>

	* gdb.c++/derivation.exp, gdb.c++/overload.exp,
	gdb.c++/userdef.exp: If GDB fails to restore the selected frame
	after an inferior function call, report the failure, but allow the
	test to continue.

2003-04-05  Stephane Carrez  <stcarrez@nerim.fr>

	* gdb.base/break.exp: marker4() is defined at line 46 when compiled
	with -DPROTOTYPES.

2003-04-05  Stephane Carrez  <stcarrez@nerim.fr>

	* gdb.base/break.exp: Revert last patch.

2003-04-04  Stephane Carrez  <stcarrez@nerim.fr>

	* gdb.base/break.exp: marker4() is defined at line 46 when compiled
	with -DPROTOTYPES.

2003-04-02  Andrew Cagney  <cagney@redhat.com>

	* gdb.base/callfuncs.exp: Make "print add" messages unique.
	* gdb.base/ending-run.exp: Put spaces around "breakpoint" to stop
	matching directories by the name breakpoint.
	* gdb.base/pointers.exp: Make "ptype pppC" message consistent.
	Make "continue to marker1" consistent.
	* gdb.base/call-rt-st.exp: Make "finish out from loop_count"
	message consistent.
	* lib/gdb.exp: Put "the program is no longer running", and "the
	program exited" in parenthesis.
	* lib/mi-support.exp: Ditto.

2003-04-02  Bob Rossi  <bob_rossi@cox.net>

	* gdb.mi/mi-file.exp: New file for -file-list-exec-source-file.

2003-03-29  Andrew Cagney  <cagney@redhat.com>

	* gdb.base/sizeof.c (main): Print the value of '\377'.
	* gdb.base/sizeof.exp: Check the sign of '\377'.

2003-03-27  Michael Chastain  <mec@shout.net>

	* gdb.base/gdb1090.exp: New file.
	* gdb.base/gdb1090.cc: New file.

2003-03-27  J. Brobecker  <brobecker@gnat.com>

	* gdb.gdb/observer.exp: New regression test.

2003-03-27  Michael Chastain  <mec@shout.net>

	* gdb.base/list.exp: Remove setup_xfail_format for DWARF 1.
	* gdb.base/ptype.exp: Likewise.

2003-03-27  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.c++/casts.exp: Fix startup to run also on embedded targets.

2003-03-26  Michael Chastain  <mec@shout.net>

	* gdb.base/ptype.exp: Actually use some typedef'd types.

2003-03-21  Stephane Carrez  <stcarrez@nerim.fr>

	* gdb.asm/asm-source.exp: Set asm-arch for m6811 and m6812.
	* gdb.asm/m68hc11.inc: New file for HC11/HC12 macros.

2003-03-20  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.base/default.exp: Fix regular expression.

2003-03-20  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.base/args.exp: Fix regular expression.

2003-03-20  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.base/help.exp: Allow Win32 child process.

2003-03-20  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.base/ending-run.exp: Check for Cygwin specific wrapper function
	when stepping out of main().

2003-03-20  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.base/default.exp: Check for win32 specific message when calling
	"run" without executable.

2003-03-20  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.base/args.exp: Expect .exe in output.

2003-03-20  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.asm/asm-source.exp: Add appropriate --entry linker flag for
	Cygwin native.

2003-03-17  Andrew Cagney  <cagney@redhat.com>

	From Elena Zannoni <ezannoni@redhat.com>.  Test e500 abi and
	vector registes.
	* gdb.arch/e500-regs.c, gdb.arch/e500-regs.exp: New files.
	* gdb.arch/e500-abi.c, gdb.arch/e500-abi.exp: New files.

2003-03-17  David Carlton  <carlton@math.stanford.edu>

	* gdb.base/watchpoint.exp (test_watchpoint_and_breakpoint): New
	test, for PR breakpoints/38.
	Call test_watchpoint_and_breakpoint.
	* gdb.base/watchpoint.c (func3): New function.
	(main): Call func3.

2003-03-04  David Carlton  <carlton@math.stanford.edu>

	* gdb.c++/templates.exp (do_tests): Accept valid const in "print
	Garply<Garply<char> >:: garply".
	(test_ptype_of_templates): KFAIL "ptype T5<int>" and "ptype t5i"
	with respect to PR c++/1111; note also PR c++/1113.
	(test_template_breakpoints): KFAIL "constructor breakpoint" with
	respect to PR c++/1062.
	KFAIL "destructor breakpoint" with respect to PR c++/1112.

2003-03-03  David Carlton  <carlton@math.stanford.edu>

	* gdb.c++/classes.exp (test_enums): KFAIL "ptype obj_with_enum"
	with respect to PR c++/57.
	KFAIL "print (ClassWithEnum::PrivEnum) 42" with respect to PR
	c++/826.
	Create "print ('ClassWithEnum::PrivEnum') 42"; KFAIL it with
	respect to PR c++/57.

2003-03-03  David Carlton  <carlton@math.stanford.edu>

	* gdb.c++/templates.exp (do_tests): Convert the KFAILs with
	respect to PR c++/33 into FAILs.

2003-03-03  Michael Chastain  <mec@shout.net>

	* configure.in: Update copyright years.

2003-03-03  Michael Chastain  <mec@shout.net>

	* Makefile.in: Update copyright years.

2003-02-28  David Carlton  <carlton@math.stanford.edu>

	* gdb.c++/classes.exp (test_ptype_class_objects): Accept it if we
	print class instead of struct and/or superfluous protection
	specifiers, as long as the resulting output is equivalent to the
	source code.
	Delete FIXME from end of messages on tests that don't need
	fixing.

2003-02-28  David Carlton  <carlton@math.stanford.edu>

	* gdb.c++/templates.exp (do_tests): Allow const in the two
	Foo<volatile char *>::foo tests.

2003-02-27  Michael Snyder  <msnyder@redhat.com>

	* gdb.base/restore.c (main): Return zero, so exit code
	will be consistant.

2003-02-26  David Carlton  <carlton@math.stanford.edu>

	* gdb.c++/templates.exp (do_tests): KFAIL the "print Foo<volatile
	char *>::foo" test with respect to PR c++/33.  Create a new test
	which is identical to that one except that it doesn't put the
	space between the "char" and the "*"; KFAIL it, too.

2003-02-26  David Carlton  <carlton@math.stanford.edu>

	* gdb.c++/templates.exp (do_tests): Convert XFAILs about printing
	template types into either PASSes or KFAILs (corresponding to PR
	c++/57).  Tweak indentation.  Update copyright.

2003-02-23  Stephane Carrez  <stcarrez@nerim.fr>

	* lib/gdb.exp: Don't execute C++ tests on m6811/m6812 targets.

2003-02-13  Michael Chastain  <mec@shout.net>

	* gdb.base/exprs.exp: Remove i960 remnants.
	* gdb.base/funcargs.exp: Likewise.
	* gdb.base/list.exp: Likewise.
	* gdb.base/ptype.exp: Likewise.

2003-02-14  David Carlton  <carlton@math.stanford.edu>

	* gdb.c++/virtfunc.exp (test_virtual_calls): Change 'print
	pEe->D::vg()" from XFAIL to KFAIL.

2003-02-13  Jason Molenda  (jmolenda@apple.com)

	* gdb.base/maint.exp: Update maint print statistics regexp to include
	new entries.

2003-02-13  Michael Chastain  <mec@shout.net>

	* gdb.c++/inherit.exp: Remove call to get_debug_format.

2003-02-12  Michael Chastain  <mec@shout.net>

	* gdb.c++/classes.exp: Remove setup_xfail_format for DWARF 1.
	* gdb.c++/inherit.exp: Likewise.
	* gdb.c++/cplusfuncs.exp: Remove suppression logic for DWARF 1.
	* gdb.c++/templates.exp: Likewise.
	* gdb.c++/virtfunc.exp: Likewise.

2003-02-06  Jason Molenda  (jason-cl@molenda.com)

	* gdb.mi/mi-syn-frame.c (subroutine): Add a comment explaining
	why the code is written that way.

2003-02-05  Michael Chastain  <mec@shout.net>

	* gdb.base/dump.exp: Add missing copyright line.

2003-02-05  Jason Molenda  (jason-cl@molenda.com)

	* gdb.mi/mi-syn-frame.c (subroutine): Add an extra statement
	at the beginning so the breakpoint doesn't get set on the loop.

2003-02-05  Michael Chastain  <mec@shout.net>

	* gdb.c++/local.exp: Relax the test for PR gdb/825 to accept
	output for configurations with gcc 2.95.3.

2003-02-05  Keith Seitz  <keiths@redhat.com>
	    Andrew Cagney  <ac131313@redhat.com>

	* gdb.mi/mi-cli.exp: New file.

2003-02-04  Michael Chastain  <mec@shout.net>

	* gdb.c++/anon-union.exp: Do not call gdb_suppress_entire_file.
	Call perror and then continue.

2003-02-03  Michael Chastain  <mec@shout.net>

	* gdb.c++/pr-1023.cc: New file.
	* gdb.c++/pr-1023.exp: New file.

2003-02-05  Jim Blandy  <jimb@redhat.com>

	* gdb.c++/local.exp: Don't expect Local to be in scope in main;
	it's local to foobar.  Check for it there, and check that it's not
	present in main.
	* gdb.c++/local.cc (marker2): New function.
	(foobar): Call marker1.
	(main): Call marker2 instead of marker1.

2003-02-04  Andrew Cagney  <ac131313@redhat.com>

	* gdb.disasm/mn10200.exp: Obsolete file.
	* gdb.trace/Makefile.in (clean mostlyclean): Remove mn10200.
	* gdb.disasm/Makefile.in (clean mostlyclean): Remove mn10200.
	* gdb.base/watchpoint.exp: Mark the mn10200 xfails as obsolete.

2003-02-04  David Carlton  <carlton@math.stanford.edu>

	* gdb.c++/overload.exp: Test intToChar(1).
	* gdb.c++/overload.cc (intToChar): New.
	(main): Call intToChar.

2003-02-03  David Carlton  <carlton@math.stanford.edu>

	* gdb.c++/ovldbreak.exp (continue_to_bp_overloaded): Add
	'might_kfail' arg.
	KFAIL some of the continue_to_bp_overloaded calls, according to
	PR c++/1025.

2003-02-01  Michael Chastain  <mec@shout.net>

	* gdb.base/advance.c (marker1): New marker function.
	* gdb.base/advance.exp: When the 'advance' command lands on the
	return breakpoint, it can legitimately stop on either the
	current line or the next line.  Accommodate both outcomes.
	* gdb.base/until.exp: Likewise.

2003-02-02  Andrew Cagney  <ac131313@redhat.com>

	2002-11-10 Jason Molenda (jason-cl@molenda.com):
	* gdb.mi/mi-var-child.exp: -var-list-children's CHILDREN field is
	now a list, not a tuple.
	* gdb.mi/mi-var-display.exp: Ditto.
	* gdb.mi/gdb792.exp: Ditto.

2003-02-01  Andrew Cagney  <ac131313@redhat.com>

	From 2002-11-09 Jason Molenda (jason-cl@molenda.com):
	* gdb.mi/mi-syn-frame.exp: New tests for synthetic frames in
	stack backtraces.
	* gdb.mi/mi-syn-frame.c: Part of same.

2003-02-01  Mark Kettenis  <kettenis@gnu.org>

	* gdb.mi/gdb669.exp, gdb.mi/mi-pthreads.exp,
	gdb.mi/mi1-pthreads.exp: Return instead of calling
	gdb_suppress_entire_file.

2003-02-01  Mark Salter  <msalter@redhat.com>

	* gdb.asm/arm.inc (gdbasm_startup): Clear frame pointer, not sp.

2003-01-31  Mark Salter  <msalter@redhat.com>

	* lib/mi-support.exp (mi_gdb_load): Support remote targets.
	Support empty arg.

2003-01-30  Michael Chastain  <mec@shout.net>

	* lib/gdb.exp: Revert patch of 2003-01-06, which set LC_ALL.
	This was a workaround for a UTF-8 bug in readline 4.3.  The bug
	has been fixed in gdb/readline on 2003-01-09.

2003-01-29  Michael Snyder  <msnyder@redhat.com>

	* gdb.base/maint.exp: Allow for leading underscore in symbol.
	* gdb.base/display.exp: Allow for leading underscore in symbol.
	* gdb.base/args.exp: Skip if target does not support args passing.

2003-01-22  Daniel Jacobowitz  <drow@mvista.com>

	* lib/gdb.exp (gdb_test_multiple): New function, cloned from
	gdb_test.  Accept a list of expect arguments as the third
	parameter.
	(gdb_test): Use it.

2003-01-20  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.arch/altivec-abi.exp: Set variable 'srcfile' differently, to
	allow for different test tree configurations.  Update some
	tescases accordingly.
	* gdb.arch/altivec-regs.exp: Ditto.
	* gdb.asm/asm-source.exp: Ditto.
	* gdb.base/advance.exp: Ditto.
	* gdb.base/display.exp: Ditto.
	* gdb.base/long_long.exp: Ditto.
	* gdb.base/mips_pro.exp: Ditto.
	* gdb.base/overlays.exp: Ditto.
	* gdb.base/relocate.exp: Ditto.
	* gdb.base/setshow.exp: Ditto.
	* gdb.base/step-line.exp: Ditto.
	* gdb.base/step-test.exp: Ditto.
	* gdb.base/until.exp: Ditto.
	* gdb.c++/virtfunc.exp: Get rid of variable 'src'.

2003-01-17  David Carlton  <carlton@math.stanford.edu>

	* gdb.c++/demangle.exp (test_lucid_style_demangling): KFAIL test
	corresponding to PR c++/945.
	Update copyright.

2003-01-17  David Carlton  <carlton@math.stanford.edu>

	* gdb.c++/inherit.exp (test_print_mi_members): KFAIL tests
	corresponding to PR c++/68.

2003-01-17  David Carlton  <carlton@math.stanford.edu>

	* gdb.c++/cplusfuncs.exp (print_addr_2_kfail): New procedure.
	(test_paddr_hairy_functions): Call print_addr_2_kfail for
	hairyfunc5 through hairyfunc7.  KFAIL for PR c++/19.

2003-01-15  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.base/break.exp: Fix change of default location, because of
	removal of until tests.
	* gdb.base/help.exp: Update test for new 'until' help message.
	Add test for help on 'advance'.
	* gdb.base/args.exp: Fix foobar with GDBFLAGS global.

2003-01-15  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/default.exp: Adapt "info float" test for recent changes
	to that command.  Add test for "info vector".
	* gdb.base/float.exp: New file.  Add test for "info float" that
	resembles the old test in gdb.base/default.exp.

2003-01-15  David Carlton  <carlton@math.stanford.edu>

	* gdb.base/selftest.exp (do_steps_and_nexts): Allow gdb_sysroot.

2003-01-15  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.base/break.exp: Move the tests of until command from here...
	* gdb.base/until.exp: ... to here. New file. Add other tests.
	* gdb.base/advance.c: New file.
	* gdb.base/advance.exp: New file.

2003-01-14  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.base/args.c: New file.
	* gdb.base/args.exp: New file.

2003-01-14  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.c++/virtfunc.exp: Remove fixed XFAIL.

2003-01-14  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.threads/killed.exp: Use KFAIL for gdb/568.

2003-01-14  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.base/constvars.exp: Remove two extra XFAILs.  Update copyright
	dates.

2003-01-13  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.c++/printmethod.exp (print virtual method): Accept "(void)".

2003-01-13  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.base/printcmds.exp: Enable setup_kfail for gdb/538
	(ptype &*"foo").
	* gdb.c++/local.exp: Enable setup_kfail for gdb/482.

2003-01-13  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.mi/mi-console.exp: Remove extra "(known bug)".
	* gdb.mi/mi1-console.exp: Likewise.

2003-01-13  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.mi/mi-console.exp: Add KFAIL for "Hello message (known bug)".
	* gdb.mi/mi1-console.exp: Likewise.

2003-01-13  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.c++/overload.exp: Remove some fixed XFAILs.

2003-01-09  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.base/detach.exp: New test.

2003-01-09  Daniel Jacobowitz  <drow@mvista.com>

	* Makefile.in (ALL_SUBDIRS): New variable.
	(subdirs, clean, distclean): Use it.
	* gdb.arch/Makefile.in: Clean up Makefile.  Remove rules for
	regenerating Makefile, since it is generated from the top level.
	* gdb.asm/Makefile.in: Likewise.
	* gdb.base/Makefile.in: Likewise.
	* gdb.c++/Makefile.in: Likewise.
	* gdb.disasm/Makefile.in: Likewise.
	* gdb.java/Makefile.in: Likewise.
	* gdb.mi/Makefile.in: Likewise.
	* gdb.threads/Makefile.in: Likewise.
	* gdb.trace/Makefile.in: Likewise.

2003-01-09  David Carlton  <carlton@math.stanford.edu>

	* gdb.c++/annota2.exp: KFAIL "watch triggered on a.x".
	Add copyright year 2003.

2003-01-06  Michael Chastain  <mec@shout.net>

	* gdb.mi/mi-pthreads.exp (check_mi_thread_command_set):
	When selecting a thread, 'line' and 'file' are optional.
	* gdb.mi/mi1-pthreads.exp: Likewise.

2003-01-06  Andreas Schwab  <schwab@suse.de>

	* lib/gdb.exp: Set LC_ALL to "C" to avoid spurious testsuite
	failures.

2003-01-04  Daniel Jacobowitz  <drow@mvista.com>

	Fix PR gdb/844
	* lib/gdb.exp (gdb_compile): Handle "quiet" option.
	(gdb_compile_pthreads): Pass "quiet" to gdb_compile.

	* gdb.threads/gcore-thread.exp: Use gdb_compile_pthreads.  Return
	instead of calling gdb_suppress_entire_file.
	* gdb.threads/print-threads.exp: Likewise.
	* gdb.threads/schedlock.exp: Likewise.

	* gdb.threads/killed.exp: Return instead of calling
	gdb_suppress_entire_file.
	* gdb.threads/linux-dp.exp: Likewise.
	* gdb.threads/pthreads.exp: Likewise.

2003-01-04  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.base/callfuncs.exp: Don't XFAIL unprototyped functions for
	stabs.
	* gdb.base/completion.exp: Allow marker1(void) as well as marker1().
	* gdb.base/whatis.exp: Always allow (void) after function names.

2003-01-04  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.c++/casts.exp: Correct regexp.

2003-01-04  Mark Kettenis  <kettenis@gnu.org>

	* configure.in: Call AC_CONFIG_HEADER.  Don't call
	AC_CONFIG_SUBDIRS on gdb.arch, gdb.asm, gdb.base gdb.c++ gdb.java,
	gdb.disasm, gdb.mi, gdb.threads and gdb.trace.  Call
	AC_CHECK_HEADERS on pthread.h.  Put Makefiles in the
	aforementioned directories in the AC_OUPUT call.
	* config.hin: New file.
	* gdb.mi/gdb669.exp, gdb.mi/mi-pthreads.exp,
	gdb.mi/mi1-pthreads.exp, gdb.threads/gcore-thread.exp,
	gdb.threads/killed.exp, gdb.threads/print-threads.exp,
	gdb.threads/pthreads.exp, gdb.threads/schedlock.exp: Make sure we
	pass -I$objdir instead of -I$objdir/$subdir in compilation.
	* gdb.arch/configure.in, gdb.arch/configure, gdb.asm/configure.in,
	gdb.asm/configure, gdb.base/configure.in, gdb.base/configure,
	gdb.c++/configure.in, gdb.c++/configure, gdb.disasm/configure.in,
	gdb.disasm/configure, gdb.java/configure.in, gdb.java/configure,
	gdb.mi/configure.in, gdb.mi/configure, gdb.mi/config.in,
	gdb.threads/configure.in, gdb.threads/configure,
	gdb.threads/config.in, gdb.trace/configure.in,
	gdb.trace/configure: Removed.

2003-01-03  Michael Chastain  <mec@shout.net>

	* gdb.base/miscexprs.c: Fix PR gdb/697, "buglet in
	testsuite/gdb.base/miscexprs.c, off-by-1 array reference".

2003-01-03  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.base/store.exp: Fix regular expressions.

2002-12-28  Mark Kettenis  <kettenis@gnu.org>

	* configure.in: Rewrite.
	* configure: Regenerated.

2003-01-03  David Carlton  <carlton@math.stanford.edu>

	* gdb.base/psymtab.exp: New file.
	* gdb.base/psymtab1.c: Ditto.
	* gdb.base/psymtab2.c: Ditto.

2002-12-23  Adam Fedor  <fedor@gnu.org>

	* gdb.base/maint.exp: Update expect output to include 'ObjC'.

2002-12-23  David Carlton  <carlton@math.stanford.edu>

	* gdb.base/selftest.exp (do_steps_and_nexts): Allow initial brace
	and current_directory initialization.

2002-12-22  Jim Blandy  <jimb@redhat.com>

	* gdb.trace/tfind.exp: Pass '-O1' flag via the 'optimize' option,
	rather than as part of the output file name.

	* gdb.base/attach.exp: There's no need to copy the test program to
	/tmp; that was only ever necessary on HP/UX, and this test is
	entirely disabled there anyway.

2002-12-21  Jim Blandy  <jimb@redhat.com>

	* gdb.c++/psmang.exp: Doc fix.

	* gdb.c++/psmang.exp, gdb.c++/psmang1.cc, gdb.c++/psmang2.cc: New
	test.

2002-12-20  David Carlton  <carlton@math.stanford.edu>

	* gdb.c++/annota2.exp: KFAIL annotate-quit.

2002-12-18  Michael Chastain  <mec@shout.net>

	* gdb.c++/annota2.exp: Add copyright year 2002.

2002-12-17  David Carlton  <carlton@math.stanford.edu>

	* gdb.c++/try_catch.cc: Add marker comments.
	* gdb.c++/try_catch.exp: Get line numbers from marker comments.
	* gdb.c++/m-data.cc: Delete namespace __gnu_test.
	* gdb.c++/m-static.cc: Ditto.
	* gdb.c++/m-static1.cc: Ditto.
	* gdb.c++/try_catch.cc: Ditto.

2002-12-16  Jeff Johnston  <jjohnstn@redhat.com>

	* lib/mi-support.exp (mi_reinitialize_dir): Check mi level
	to see whether we are using the new -environment-directory
	command which resets via -r or the old version of the command
	which may prompt the user.  Part of fix for gdb/741.

2002-12-13  Andrew Cagney  <ac131313@redhat.com>

	* gdb.fortran/types.exp: Update obsolete comment.
	* gdb.fortran/exprs.exp: Ditto.
	* lib/gdb.exp: Delete obsolete code.
	* gdb.chill/ChangeLog, gdb.chill/Makefile.in: Delete.
	* gdb.chill/builtins.ch, gdb.chill/builtins.exp: Delete.
	* gdb.chill/callch.ch, gdb.chill/callch.exp: Delete.
	* gdb.chill/chexp.exp, gdb.chill/chillvars.ch: Delete.
	* gdb.chill/chillvars.exp, gdb.chill/configure: Delete.
	* gdb.chill/configure.in, gdb.chill/enum.ch: Delete.
	* gdb.chill/enum.exp, gdb.chill/func1.ch: Delete.
	* gdb.chill/gch1041.ch, gdb.chill/gch1041.exp: Delete.
	* gdb.chill/gch1272.ch, gdb.chill/gch1272.exp: Delete.
	* gdb.chill/gch1280.ch, gdb.chill/gch1280.exp: Delete.
	* gdb.chill/gch922.ch, gdb.chill/gch922.exp: Delete.
	* gdb.chill/gch981.ch, gdb.chill/gch981.exp: Delete.
	* gdb.chill/misc.ch, gdb.chill/misc.exp: Delete.
	* gdb.chill/powerset.ch, gdb.chill/powerset.exp: Delete.
	* gdb.chill/pr-4975-grt.ch, gdb.chill/pr-4975.ch: Delete.
	* gdb.chill/pr-4975.exp, gdb.chill/pr-5016.ch: Delete.
	* gdb.chill/pr-5016.exp, gdb.chill/pr-5020.ch: Delete.
	* gdb.chill/pr-5020.exp, gdb.chill/pr-5022.ch: Delete.
	* gdb.chill/pr-5022.exp, gdb.chill/pr-5646-grt.ch: Delete.
	* gdb.chill/pr-5646.ch, gdb.chill/pr-5646.exp: Delete.
	* gdb.chill/pr-5984.ch, gdb.chill/pr-5984.exp: Delete.
	* gdb.chill/pr-6292.ch, gdb.chill/pr-6292.exp: Delete.
	* gdb.chill/pr-6632-grt.ch, gdb.chill/pr-6632.ch: Delete.
	* gdb.chill/pr-6632.exp, gdb.chill/pr-8134.exp: Delete.
	* gdb.chill/pr-8136.ch, gdb.chill/pr-8136.exp: Delete.
	* gdb.chill/pr-8405.ch, gdb.chill/pr-8405.exp: Delete.
	* gdb.chill/pr-8742.ch, gdb.chill/pr-8742.exp: Delete.
	* gdb.chill/pr-8894-grt.ch, gdb.chill/pr-8894.ch: Delete.
	* gdb.chill/pr-8894.exp, gdb.chill/pr-9095.ch: Delete.
	* gdb.chill/pr-9095.exp, gdb.chill/pr-9946.ch: Delete.
	* gdb.chill/pr-9946.exp, gdb.chill/result.ch: Delete.
	* gdb.chill/result.exp, gdb.chill/string.ch: Delete.
	* gdb.chill/string.exp, gdb.chill/tests1.ch: Delete.
	* gdb.chill/tests1.exp, gdb.chill/tests2.ch: Delete.
	* gdb.chill/tests2.exp, gdb.chill/tuples.ch: Delete.
	* gdb.chill/tuples.exp, gdb.chill/xstruct-grt.ch: Delete.
	* gdb.chill/xstruct.ch, gdb.chill/xstruct.exp: Delete.

2002-12-11  David Carlton  <carlton@math.stanford.edu>

	* gdb.c++/m-data.exp: Add test for members that shadow global
	variables: see PR gdb/804.
	* gdb.c++/m-data.cc: Ditto.

2002-12-10  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.base/foll-vfork.exp: Re-enable test on HP/UX.

2002-12-06  David Carlton  <carlton@math.stanford.edu>

	* gdb.base/store.c: Don't declare functions static.

2002-12-04  Andrew Cagney  <ac131313@redhat.com>

	* gdb.base/store.exp, gdb.base/store.c: New files.

2002-12-03  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.base/selftest.exp: Update for current gdb.

2002-12-03  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.base/maint.exp: Only dump symbols from one source file
	or objfile.

2002-12-03  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.base/step-test.exp: Allow MIPS to return to the line of a
	function call.

2002-11-25  Jim Blandy  <jimb@redhat.com>

	* lib/mi-support.exp (mi_delete_breakpoints): Change name of
	function appearing in error message.

2002-11-21  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.base/maint.exp (help maint dump-me): Update with typo fix.

2002-11-08  Jeff Johnston  <jjohnstn@redhat.com>

	* lib/mi-support.exp (mi_gdb_start): Verify the startup message
	for mi1 and current mi is in correct format.  New mi startup message
	should be in mi console format.  This is part of fix for PR gdb/604.

2002-09-18  Fernando Nasser  <fnasser@redhat.com>

	* gdb.asm/asm-source.exp: Adjust patter to new disassembler routine
	which explicitly prints the zero offset as "+0".

2002-10-22  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.threads/schedlock.c (args): Make unsigned.

2002-10-21  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.asm/asm-source.exp: Add "mips*-*" pattern.  Update line
	numbers.  Allow "foo2|selected stack frame".
	* gdb.asm/asmsrc1.s: Use gdbasm_declare and gdbasm_end.
	* gdb.asm/asmsrc2.s: Likewise.
	* gdb.asm/common.inc: Define gdbasm_declare and gdbasm_end.  Update
	comments.
	* gdb.asm/mips.inc: New file.

2002-10-18  Adam Fedor  <fedor@gnu.org>

	* gdb.base/default.exp: Update expected output to include 'ObjC'.
	* gdb.base/help.exp: Likewise.

2002-10-17  Kevin Buettner  <kevinb@redhat.com>

	* gdb.base/constvars.c (struct crass, struct crisp): New structs.
	* gdb.base/constvars.exp (ptype crass, ptype crisp): New tests.

2002-10-02  Jim Blandy  <jimb@redhat.com>

	* gdb.c++/casts.cc, gdb.c++/casts.exp: New test.

2002-10-01  Andrew Cagney  <ac131313@redhat.com>

	* mi1-basics.exp: Copy of mi1-basics.exp MIFLAGS set "-i=mi1".
	* mi1-break.exp, mi1-console.exp, mi1-disassemble.exp: Ditto.
	* mi1-eval.exp, mi1-hack-cli.exp, mi1-pthreads.exp: Ditto.
	* mi1-read-memory.exp, mi1-regs.exp, mi1-return.exp: Ditto.
	* mi1-simplerun.exp, mi1-stack.exp, mi1-stepi.exp: Ditto.
	* mi1-until.exp, mi1-var-block.exp, mi1-var-child.exp: Ditto.
	* mi1-var-cmd.exp, mi1-var-display.exp, mi1-watch.exp: Ditto.

2002-09-29  Andrew Cagney  <ac131313@redhat.com>

	* mi0-basics.exp, mi0-break.exp, mi0-console.exp: Delete.
	* mi0-disassemble.exp, mi0-eval.exp: Delete.
	* mi0-hack-cli.exp, mi0-read-memory.exp: Delete.
	* mi0-regs.exp, mi0-return.exp, mi0-simplerun.exp: Delete.
	* mi0-stack.exp, mi0-stepi.exp, mi0-until.exp: Delete.
	* mi0-var-block.exp, mi0-var-child.exp: Delete.
	* mi0-var-cmd.exp, mi0-var-display.exp, mi0-watch.exp: Delete.

2002-09-27  Kevin Buettner  <kevinb@redhat.com>

	* gdb.base/annota1.exp (info break): Make directory components of
	path optional since not all compilers emit this debug information.

	* gdb.base/shlib-call.exp (step inside shr2): Don't fail if first
	step ends up stepping out of the function instead of stopping on
	the epilogue.

2002-09-26  Keith Seitz  <keiths@redhat.com>

	* lib/insight-support.exp (gdbtk_start): Figure out where
	the insight executable is based on where gdb is. Use this
	executable to start insight instead of gdb.

2002-09-25  Andrew Cagney  <cagney@redhat.com>

	* gdb.base/pc-fp.exp, gdb.base/pc-fp.c: New test.

2002-09-24  Andrew Cagney  <ac131313@redhat.com>

	* gdb.gdb/complaints.exp (test_initial_complaints): Rename
	test_isolated_complaints.
	(test_empty_complaint): New function.
	(test_empty_complaints): New function.  Check no output when no
	complaints.

2002-09-19  Jim Blandy  <jimb@redhat.com>

	* gdb.base/charset.exp, gdb.base/charset.c: New files.

2002-09-19  Andrew Cagney  <ac131313@redhat.com>

	* gdb.gdb/complaints.exp: New file.

2002-09-18  Andrew Cagney  <ac131313@redhat.com>

	* gdb.base/maint.exp: Check `help maint internal-warning'.

2002-09-18  David Carlton  <carlton@math.stanford.edu>

	* gdb.c++/m-static.exp: Remove breakpoints depending on line
	numbers, and replace them by a single breakpoint after the
	constructors are all finished.
	Add test 4.
	* gdb.c++/m-static.cc: Add test 4.
	* gdb.c++/m-static.h: New file.
	* gdb.c++/m-static1.cc: New file.

	* gdb.c++/printmethod.exp: New file.
	* gdb.c++/printmethod.cc: New file.

	* gdb.c++/pr-574.exp: New file.
	* gdb.c++/pr-574.cc: New file.

2002-09-18  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.base/ending-run.exp: Add handling of "step to end of run" for
	embedded targets which never actually exit.

2002-09-18  Fernando Nasser  <fnasser@redhat.com>

	* gdb.base/ending-run.exp: Properly mark "continue after exit" and
	"don't step after run" as unresolved or unsupported, instead of xfail.

2002-09-18  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.base/ending-run.exp: Fix expected string for _wrap_main to
	allow correct handling of #ifdef UNDERSCORES from dejagnu/testglue.c.
	Add newline to expected string in "step out of main (status wrapper)"
	case.

2002-09-18  Corinna Vinschen  <vinschen@redhat.com>

	* lib/gdb.exp (rerun_to_main): Allow restarting application.
	* gdb.base/ena-dis-br.exp (rerun_to_main): Eliminate.

2002-09-17  Tom Tromey  <tromey@redhat.com>

	* gdb.base/printcmds.exp (test_print_string_constants): Expect
	\000, not \0, in double-quoted string.

2002-09-14  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.base/commands.exp: Don't expect a "Program exited normally"
	string after running the commands execution on breakpoint tests.

2002-09-13  Corinna Vinschen  <vinschen@redhat.com>

	* lib/gdb.exp (gdb_continue_to_end): Fix typo in expected string.

2002-09-12  Joel Brobecker  <brobecker@gnat.com>

	* gdb.base/call-strs.exp: Fix a small typo in one of the comments.

2002-09-10  Keith Seitz  <keiths@redhat.com>

	* lib/mi-support.exp (mi_runto): New proc. Does the same as gdb's
	runto proc.
	(mi_run_to_main): Use mi_runto.
	(mi_execute_to): Renamed from mi_run_to. Changed all callers.

2002-09-10  Keith Seitz  <keiths@redhat.com>

	* lib/mi-support.exp: (mi_run_to_main): Allow anything to precede
	regexp for stopping at main. Could have multiple event notifications.
	Don't assume that main was declared with no parameters.
	(mi_next): Use mi_step_to.
	(mi_step): Use mi_next_to.

2002-09-09  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.base/default.exp: Fix expected string in `info float' test.

2002-09-09  Ben Elliston  <bje@redhat.com>

	* config/mips.exp: Update comments.
	* config/mips-idt.exp: Likewise.
	* config/nind.exp: Likewise.
	* config/slite.exp: Likewise.
	* config/sparclet.exp: Likewise.
	* config/udi.exp: Likewise.
	* config/vx.exp: Likewise.
	* config/vxworks29k.exp: Likewise.

2002-09-05  Jim Blandy  <jimb@redhat.com>

	* gdb.threads/killed.exp: Fix test failure message.

2002-09-04  Keith Seitz  <keiths@redhat.com>

	* lib/mi-support.exp: Update copyright.
	(mi_gdb_test): Increase the priority of the expected pattern
	so that it matches gdb_test.

2002-09-03  Keith Seitz  <keiths@redhat.com>

	* lib/gdb.exp (gdb_compile_pthreads): Fix "build_bin" typo.
	Use integer comparison instead of string comparison for testing
	whether binary was built.

2002-09-03  Jim Blandy  <jimb@redhat.com>

	* gdb.threads/killed.exp, gdb.threads/killed.c: New test.

2002-08-29  Jim Blandy  <jimb@redhat.com>

	* gdb.threads/pthreads.exp: Move the portable thread compilation
	code into a function in lib/gdb.exp, and call that from here.
	* lib/gdb.exp (gdb_compile_pthreads): New function.

2002-08-29  Keith Seitz  <keiths@redhat.com>

	* lib/mi-support.exp (mi_gdb_test): Add global declaration for
	expect_out so that callers can get at it.

2002-08-23  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.threads/print-threads.c: New file.
	* gdb.threads/print-threads.exp: New file.
	* gdb.threads/schedlock.c: New file.
	* gdb.threads/schedlock.exp: New file.

2002-08-22  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.arch/altivec-abi.exp: The source C file is altivec-abi.c,
	not altivec.c.

2002-08-17  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/return.exp: Remove i*86-*-* from list of xfail'ed
	targets.  The problem should be fixed now.

2002-08-15  Mark Kettenis  <kettenis@gnu.org>

	* gdb.java/jv-print.exp: Fix p '' and p ''' tests to deal with
	2002-07-24 change that removes final dots from error messages.

2002-08-13  Tom Tromey  <tromey@redhat.com>

	* gdb.base/readline.exp: New file.

2002-08-01  Andrew Cagney  <ac131313@redhat.com>

	* lib/gdb.exp (gdb_expect_list): Only print one pass, fail, or
	supress message.

2002-08-01  Andrew Cagney  <cagney@redhat.com>

	* Makefile.in (TARGET_FLAGS_TO_PASS): Remove CHILLFLAGS, CHILL,
	CHILL_FOR_TARGET and CHILL_LIB.
	* configure.in (configdirs): Remove gdb.chill.
	* configure: Regenerate.
	* lib/gdb.exp: Obsolete references to chill.
	* gdb.fortran/types.exp: Ditto.
	* gdb.fortran/exprs.exp: Ditto.

2002-07-30  Kevin Buettner  <kevinb@redhat.com>

	* gdb.base/shlib-call.exp (additional_flags): Conditionally
	set Irix-specific compile and link flags.

2002-07-29  Kevin Buettner  <kevinb@redhat.com>

	* lib/gdb.exp (mips*-*-irix*): Use alternate method for preprocessing
	source files.  The ``-o'' option doesn't work with the ``-E'' option
	when using the Irix compiler.

2002-07-19  Daniel Jacobowitz  <drow@mvista.com>

	* config/gdbserver.exp (gdb_load): Don't use TCL varargs.
	Improve support for reusing an exec file.  Copy exec file
	to target, and run gdbserver on the target instead of on the host.

2002-07-18  Jim Blandy  <jimb@redhat.com>

	* gdb.base/ending-run.exp: Don't expect to see the program end in
	some orderly fashion when we're running on a real stand-alone
	board.

	* gdb.base/interrupt.exp: Correct logic for skipping tests on
	targets that don't support interrupts.

2002-07-10  Paul N. Hilfinger  <hilfingr@otisco.mckusick.com>

	* gdb.base/attach.exp: Add patterns to match output from /proc-based
	systems.
	Move comments in expect statements to inside the actions, so that they
	don't get matched against.

2002-07-10  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/interrupt.exp: Setup xfail for all i386 BSD's on "call
	function when asleep" test.

2002-07-10  Andrew Cagney  <ac131313@redhat.com>

	* gdb.base/page.exp: Rewrite to handle problems with very long
	`info set' output.  Update copyright.

2002-06-26  Andrew Cagney  <ac131313@redhat.com>

	* gdb.hp/configure.in (AC_CONFIG_SUBDIRS): Do not try to configure
	gdb.threads-hp.
	* gdb.hp/configure: Regenerate.
	* gdb.hp/gdb.threads-hp/configure.in: Delete file.
	* gdb.hp/gdb.threads-hp/configure: Delete file.
	* gdb.hp/gdb.threads-hp/Makefile.in: Delete file.

2002-06-22  Andrew Cagney  <ac131313@redhat.com>

	* gdb.base/selftest.exp (do_stes_and_next): Skip calls to
	setlocale, bindtextdomain and textdomain.

2002-06-11  Jim Blandy  <jimb@redhat.com>

	* lib/gdb.exp (get_debug_format): Tolerate message saying whether
	preprocessor macro information is present.

	* macscp.exp, macscp1.c, macscp2.h, macscp3.h, macscp4.h: New
	tests.

2002-06-06  Michael Snyder  <msnyder@redhat.com>

	* gdb.base/overlays.exp: Record addresses of overlay
	functions in TCL variables rather than in GDB variables,
	to avoid having GDB convert them to pointers (with loss
	of information).

	* gdb.base/d10v.ld: Merge in several years worth of
	default linker script changes.
	* gdb.base/long_long.exp: Add check for sizeof (long double).

2002-06-06  Michal Ludvig  <mludvig@suse.cz>

	* gdb.asm/asm-source.exp: Add x86-64 target.
	* gdb.asm/x86_64.inc: New.

2002-05-30  Michael Chastain  <mec@shout.net>

	From Benjamin Kosnik <bkoz@redhat.com>:
	* gdb.c++/m-static.cc: New file.
	* gdb.c++/m-static.exp: New file.

2002-05-28  Michael Snyder  <msnyder@redhat.com>

	* gdb.base/call-ar-st.exp: Allow for reduced floating point
	precision.

2002-05-27  Michael Chastain  <mec@shout.net>

	From Benjamin Kosnik <bkoz@redhat.com>:
	* gdb.c++/m-data.cc: New file.
	* gdb.c++/m-data.exp: New file.

2002-05-27  Michael Chastain  <mec@shout.net>

	From Benjamin Kosnik <bkoz@redhat.com>:
	* gdb.c++/try_catch.cc: New file.
	* gdb.c++/try_catch.exp: New file.

2002-05-27  Michael Chastain  <mec@shout.net>

	* gdb.c++/local.exp: Accept more nested types in output.

2002-05-26  Michael Chastain  <mec@shout.net>

	* gdb.base/call-rt-st.exp: Fix typo in brace quoting.

2002-05-15  Nick Clifton  <nickc@cambridge.redhat.com>

	* lib/gdb.exp (gdb_wrapper_init): Just because
	gdb_wrapper_file exists, this does not mean that the file
	should not be rebuilt.  That is what gdb_wrapper_initialized
	is for.
	(default_gdb_init): Reset gdb_wrapper_initialized.

2002-05-23  Michael Snyder  <msnyder@redhat.com>

	* gdb.base/all-bin.exp: Revise previous patch by just reducing
	the precision of the floating point test results.
	* gdb.base/call-rt-st.exp: Ditto.

	* gdb.base/all-bin.exp: Allow for reduced floating point precision.
	* gdb.base/call-rt-st.exp: Ditto.

2002-05-19  Michael Chastain  <mec@shout.net>

	* gdb.c++/inherit.exp: Accept "VTT for ..." in output strings.

2002-05-19  Elena Zannoni  <ezannoni@redhat.com>

	* configure.in (configdirs): Add gdb.arch.
	* configure: Regenerate.

2002-05-17  Jim Blandy  <jimb@redhat.com>

	* gdb.base/completion.exp: Recognize the more detailed error
	messages produced by the macro expander's lexical analyzer.

2002-05-14  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.arch/altivec-abi.c: New file.
	* gdb.arch/altivec-abi.exp: New file.
	* gdb.arch/altivec-regs.c: New file.
	* gdb.arch/altivec-regs.exp: New file.

2002-05-14  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.base/maint.exp (maint print type): Update for new type
	structure.

2002-05-14  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.arch: New directory.
	* gdb.arch/configure.in: New file.
	* gdb.arch/configure: New file.
	* gdb.arch/Makefile.in: New file.

2002-05-13  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.asm/asm-source.exp: Add v850 as supported target.
	* gdb.asm/v850.inc: New file.

2002-05-13  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.c++/annota2.exp (annotate-quit): Add comment.

2002-05-12  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.base/break.exp: Check 'break "marker2"'.

2002-05-10  Michael Snyder  <msnyder@redhat.com>

	* gdb.base/long_long.exp: Fix typo.

2002-05-10  Jim Blandy  <jimb@redhat.com>

	* gdb.base/printcmds.exp: Don't xfail the ptype command.  This is
	a bug.

	* gdb.base/printcmds.exp (test_integer_literals_rejected):
	Recognize more detailed error message produced by the macro
	expander's lexical analyzer.
	* lib/gdb.exp (test_print_reject): Same.

2002-05-09  Mark Kettenis  <kettenis@gnu.org>

	* gdb.c++/method.exp: Fix typo.

2002-05-08  Michael Snyder  <msnyder@redhat.com>

	* gdb.mi/mi-var-child.exp: Accept (void) as well as ().
	* gdb.mi/mi0-var-child.exp: Accept (void) as well as ().
	* gdb.base/default.exp: Merge clauses for arm, strongarm, xscale.
	* gdb.base/long_long.exp: Merge clauses for arm and xscale.
	Add iftarget clause for strongarm.

2002-05-06  Michael Snyder  <msnyder@redhat.com>

	* lib/gdb.exp (gdb_test): Add case to allow for status wrapper.
	(gdb_continue_to_end): Accept output from status wrapper.
	* gdb.base/ending-run.exp: Add case for output from status wrapper.
	Clean up fail messages to match pass messages.

	Enable the "needs_status_wrapper" testsuite feature.
	* lib/gdb.exp (gdb_wrapper_init): New procedure.
	(gdb_compile): Conditionally call gdb_wrapper_init.
	* gdb.base/a2-run.exp: Recognize output from status wrapper.
	* gdb.c++/method.exp: Recognize output from status wrapper.

2002-05-06  Ben Elliston  <bje@redhat.com>
From Graydon Hoare  <graydon@redhat.com>

	* config/sid.exp: Include support for "rawsid" protocol.

2002-05-03  Jim Blandy  <jimb@redhat.com>

	* gdb.c++/hang.exp: Check for corruption of the cv_type chain.
	* gdb.c++/hang3.C: New file.

2002-05-04  Andrew Cagney  <ac131313@redhat.com>

	* gdb.base/default.exp: Remove obsolete code.
	* gdb.c++/misc.exp: Ditto.  Update copyright.
	* gdb.c++/cplusfuncs.exp: Ditto.  Update copyright.
	* gdb.base/whatis.exp: Ditto.  Update copyright.
	* gdb.base/scope.exp: Ditto.  Update copyright.
	* gdb.base/ptype.exp: Ditto.  Update copyright.
	* gdb.base/printcmds.exp: Ditto.  Update copyright.
	* gdb.base/opaque.exp: Ditto.  Update copyright.
	* gdb.base/list.exp: Ditto.
	* gdb.base/funcargs.exp: Ditto.  Update copyright.
	* gdb.hp/gdb.threads-hp/usrthbasic.c: Delete.
	* gdb.hp/gdb.threads-hp/usrthbasic.exp: Delete.
	* gdb.hp/gdb.threads-hp/usrthcore.c: Delete.
	* gdb.hp/gdb.threads-hp/usrthcore.exp: Delete.
	* gdb.hp/gdb.threads-hp/usrthfork.c: Delete.
	* gdb.hp/gdb.threads-hp/usrthfork.exp: Delete.

2002-05-02  Michael Snyder  <msnyder@redhat.com>

	* gdb.base/watchpoint.exp: Add xscale target.
	* gdb.base/long_long.exp: Add xscale target.
	* gdb.base/default.exp: Add xscale target.

2002-05-01  Jim Blandy  <jimb@redhat.com>

	* gdb.c++/hang1.C, gdb.c++/hang2.C, gdb.c++/hang.H,
	gdb.c++/hang.exp: New test.

2002-05-01  Fred Fish  <fnf@redhat.com>

	* gdb.base/completion.exp: Handle completions of "./Make" for
	more than one completion possibility, as is the case when we
	build and test in the source tree.

2002-04-29  Anthony Green  <green@redhat.com>

	* gdb.java/jmisc1.exp: New file.
	* gdb.java/jmisc2.exp: New file.

2002-04-24  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.threads/linux-dp.exp: Use 'unset' instead of 'array unset'.

2002-04-23  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.base/help.exp: Change 'help status' to allow for target
	dependent output differences.

2002-04-22  Michael Chastain  <mec@shout.net>

	* gdb.c++/local.exp: Add PR numbers: gdb/482, gdb/483.

2002-04-22  Michael Chastain  <mec@shout.net>

	* gdb.c++/method.exp: Fix syntax of reference to gdb/277.

2002-04-17  David S. Miller  <davem@redhat.com>

	* gdb.asm/sparc64.inc: New file.
	* gdb.asm/asm-source.exp: Handle sparc64-*-*.

2002-04-19  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.asm/asm-source.exp: Don't use a symlink, just copy the
	instruction file directly into the build tree.  Clean up at end of
	test.

2002-04-18  David S. Miller  <davem@redhat.com>

	* gdb.base/annota1.exp: Expect addresses as $hex + whitespace to
	handle 64-bit platforms correctly.
	* gdb.base/maint.exp: Likewise.

2002-04-18  Kevin Buettner  <kevinb@redhat.com>

	* gdb.base/shlib-call.exp (additional_flags): AIX doesn't need
	``-fpic'' when compiling files comprising a shared library, but
	it does need additional linker flags in order to find shared
	libraries at run time.

2002-04-18  Kevin Buettner  <kevinb@redhat.com>

	* gdb.base/cvexpr.c (use): New function.
	(main): Invoke use() on all global variables to prevent
	some linkers from deleting these otherwise unused symbols.

2002-04-17  Michael Chastain  <mec@shout.net>
From David S. Miller  <davem@redhat.com>

	* gdb.c++/ovldbreak.exp: Expect addresses as $hex + whitespace to
	handle 64-bit platforms correctly.

2002-04-12  Michael Snyder  <msnyder@redhat.com>
From Jim Blandy  <jimb@redhat.com>
	* gdb.base/foo.c (foox): Remove section attribute; the linker
	script can handle this instead.
	* gdb.base/bar.c (barx): Same.
	* gdb.base/baz.c (bazx): Same.
	* gdb.base/grbx.c (grbxx): Same.

	* gdb.base/overlays.exp: New test: check that GDB's manual overlay
	manager doesn't automatically unmap overlays unnecessarily.

2002-04-10  Martin M. Hunt  <hunt@redhat.com>

	* gdb.base/ending-run.exp: Fix pattern for Mips targets
	stepping out of main.

2002-04-09  Michael Chastain  <mec@shout.net>

	* gdb.c++/local.cc (main): Move call to marker1() inside nested
	scope so that the nested scope tests will make sense.
	* gdb.c++/local.exp: Write patterns that actually work with gcc
	(the HP patterns "were never known to work with gcc").
	Keep the old aCC patterns too.

2002-04-09  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.base/attach.exp: Correct target board test.

2002-04-08  Michael Chastain  <mec@shout.net>

	* gdb.c++/method.exp: Require "const ... A * ..." for "ptype this"
	in a const method.  Add some xfail and fail cases for configurations
	that do not emit the "const ...".

2002-04-07  Michael Chastain  <mec@shout.net>

	* gdb.c++/method.exp: Use gdb_test instead of send_gdb/gdb_expect.
	Accept "A * const" and "const A * const" as type of "this".
	Fix spelling of getFunky throughout.  Make messages uniform.

2002-04-07  Elena Zannoni  <ezannoni@redhat.com>

	Work around for PR gdb/285:
	* gdb.asm/asm-source.exp: Bail out if multilibs are detected.

2002-04-07  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.asm/asm-source.exp: Build symbolic link to arch specific
	instructions file at run time instead of configure time.
	Sometimes we run the test in a directory that is not the one we
	configured in.
	* gdb.asm/configure.in: Delete creation of symlink.
	* gdb.asm/configure: Regenerate.

2002-04-05  J. Brobecker  <brobecker@gnat.com>

	* gdb.gdb/xfullpath.exp: New test, to exercise the new
	xfullpath () function.

2002-04-04  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.asm/Makefile.in: Correct dependencies.

	* gdb.asm/powerpc.inc: New file.
	* gdb.asm/asm-source.exp: Add PowerPC.
	* gdb.asm/configure.in: Likewise.
	* gdb.asm/configure: Regenerated.

2002-04-04  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.base/relocate.exp: New file.
	* gdb.base/relocate.c: New file.

2002-04-04  Fred Fish  <fnf@redhat.com>

	* gdb.base/step-test.exp: Update comment regarding stopping in
	memcpy/bcopy calls inserted as part of the compiler runtime.

2002-04-04  Michael Snyder  <msnyder@redhat.com>

	* gdb.base/ovlymgr.c: Add overlay event breakpoint support.

2002-04-03  Daniel Jacobowitz  <drow@mvista.com>

	* lib/gdb.exp (gdb_test): Move -notransfer inside of gdb_expect.
	(gdb_expect): Remove $notransfer hack.

2002-04-02  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.c++/classes.exp ("calling method for small class"): Match
	updated register output.

2002-03-30  Daniel Jacobowitz  <drow@mvista.com>

	Fix PR gdb/452
	* gdb.base/dbx.exp: Restore old definition of gdb_file_cmd
	when finished.  Make gdb_file_cmd send "exec-file" when
	appropriate.

2002-03-30  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.base/attach.exp: Remove extra setup_xfail.

2002-03-26  Michael Snyder  <msnyder@redhat.com>

	* gdb.base/default.exp: Add tests for dump, append, and restore.
	* gdb.base/help.exp: Add tests for dump, append, and restore.
	* gdb.base/dump.exp: New file, test dump, append and restore.
	* gdb.base/dump.c: New file.

2002-03-27  Michael Snyder  <msnyder@redhat.com>

	* gdb.base/help.exp: Modify expect strings to reflect
	clean-ups in help messages.

2002-03-26  Fred Fish  <fnf@redhat.com>

	* gdb.base/step-test.exp: Accept stopping in memcpy/bcopy when we
	have debugging info for those functions and the compiler uses them
	internally to copy structs around.

2002-03-26  Fred Fish  <fnf@redhat.com>

	* gdb.base/list.exp: Revert the change made yesterday and add note
	about why we don't list the default lines for remote targets.

2002-03-25  Michael Snyder  <msnyder@redhat.com>

	* gdb.base/help.exp: Clean up unnecessary wild cards in regexps.

2002-03-25  Fred Fish  <fnf@redhat.com>

	* gdb.base/list.exp: This test works on remote targets so remove
	the short circuit for remote targets.  Update copyright.

2002-03-25  Fred Fish  <fnf@redhat.com>

	* gdb.base/attach.exp: Fix logic error that was suppressing this
	test for all non hppa*-*-hpux* targets, instead of the hp target.
	Move comments closer to the suppression point.  Also now need to
	check that we are running natively.

2002-03-22  Michael Snyder  <msnyder@redhat.com>

	* gdb.base/default.exp: Add test for gcore.  Update copyright.
	* gdb.base/help.exp: Add test for gcore.  Update copyright.

2002-03-06  Fred Fish  <fnf@redhat.com>

	* gdb.base/funcargs.c:  Remove extraneous ';' character.
	* gdb.trace/gdb_c_test.c: Remove extraneous ';' character.

2002-03-04  Michael Chastain  <mec@shout.net>

	* gdb.mi/mi-var-cmd.exp: In test "create local variable func",
	accommodate gcc v3 function signature.
	* gdb.mi/mi0-var-cmd-exp: Ditto.

2002-02-24  Andrew Cagney  <ac131313@redhat.com>

	* testsuite/gdb.base/huge.c: Replace ``Linux'' with either
	``GNU/Linux'' or ``Linux kernel''
	* testsuite/gdb.threads/pthreads.c: Ditto.

2002-02-24  Michael Chastain  <mec@shout.net>

	* gdb.threads/pthreads.c (thread1): Add a return statement.
	(thread2): Likewise.
	(foo): Likewise.

2002-02-23  Michael Chastain  <mec@shout.net>

	* gdb.threads/linux-dp.c (philosopher): Add a return statement
	to placate gcc.

2002-02-23  Michael Chastain  <mec@shout.net>

	* gdb.c++/templates.exp: Remove setup_xfail_format "stabs" on
	test "ptype bint".  The test passes on all my stabs configurations.

2002-02-21  Jim Blandy  <jimb@redhat.com>

	* gdb.asm/asm-source.exp: Parse the output from `info sources' one
	filename at a time, and watch for the ones we want to see.

	* gdb.base/ptype.exp, gdb.base/ptype.c: Add tests for printing
	types of pointers to prototyped functions.

2002-02-20  Andrew Cagney  <ac131313@redhat.com>

	* gdb.base/sizeof.c (main): Call fill_structs.  Print value of
	signed, unsigned and straight char.
	(padding_char, padding_short, padding_int, padding_long,
	padding_long_long, padding_float, padding_double,
	padding_long_double): New global variables.
	(fill, fill_structs): New functions.

	* gdb.base/sizeof.exp: Check for signed and unsigned char.  Check
	for correctly sized writes.  Update copyright.
	(get_valueof): New procedure.
	(get_sizeof): Call get_valueof.
	(check_valueof): New procedure.
	(check_padding): New procedure.

2002-02-20  Michael Chastain  <mec@shout.net>

	* gdb.c++/virtfunc.exp (test_virtual_calls): Remove obsolete calls
	to setup_xfail.  Document some of the remaining calls.

2002-02-18  Michael Chastain  <mec@shout.net>

	* gdb.c++/userdef.exp: Update copyright year.

2002-02-18  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.c++/userdef.exp: Test overloaded operators properly.
	Remove xfails.

2002-02-14  Michael Snyder  <msnyder@redhat.com>

	* gdb.base/gcore.exp: Relax recognition of function breakpoint.

2002-02-14  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.base/a2-run.exp: Check for a remote target properly.
	* gdb.base/annota1.exp: Likewise.
	* gdb.base/list.exp: Likewise.
	* gdb.base/reread.exp: Likewise.
	* gdb.base/scope.exp: Likewise.
	* gdb.base/shlib-call.exp: Likewise.
	* gdb.base/term.exp: Likewise.
	* gdb.c++/annota2.exp: Likewise.

2002-02-13  Richard Earnshaw  <rearnsha@arm.com>

	* gdb.base/watchpoint.exp: Restore previous timeout at end of test.

2002-02-10  Michael Chastain  <mec@shout.net>

	* gdb.base/funcargs.c (localvars_after_alloca): Fix return type.
	(call_after_alloca): Ditto.

2002-02-10  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.base/ending-run.exp: Guard "cont" test with
	gdb_skip_stdio_test.

2002-02-06  Jim Blandy  <jimb@redhat.com>

	* gdb.base/callfwmall.c, gdb.base/callfwmall.exp: Move these tests
	from here...
	* gdb.hp/gdb.base-hp/callfwmall.c, gdb.hp/gdb.base-hp/callfwmall.exp:
	To here.  Disable this test on non-HP platforms.  Add big comment.

2002-02-04  Michael Snyder  <msnyder@redhat.com>

	* gdb.base/ovlymgr.c  (ovly_copy): Generalize for targets
	  other than d10v and m32r.

2002-02-02  Richard Earnshaw  <rearnsha@arm.com>

	* gdb.base/default.exp: Rewrite test patterns to reduce time
	taken to match them.

2002-01-30  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.base/annota1.exp (backtrace from shlibrary): Fix spelling.
	Allow a start function above main.
	* gdb.threads/linux-dp.exp: Fix copyright date.

2002-01-30  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.threads/linux-dp.exp: Use 'array unset', not 'array set'.
	(check_philosopher_stack): Check for manager thread before checking
	for a just-starting thread.

2002-01-30  Daniel Jacobowitz  <drow@mvista.com>

	From Neil Booth <neil@daikokuya.demon.co.uk>:
	* gdb.base/bitfields.c: Correct assignments to bitfields to avoid
	warnings.

2002-01-21  Fred Fish  <fnf@redhat.com>

	* gdb.base/restore.exp (restore_tests): Fix obvious typo, callee
	not caller.

2002-01-21  Jim Blandy  <jimb@redhat.com>

	* gdb.base/reread.exp: Check that GDB properly re-reads the
	executable file when it changes while no inferior is running.

2002-01-21  Fred Fish  <fnf@redhat.com>

	* gdb.base/maint.exp: Simplify the "maint info breakpoints" test to
	optionally accept the "shlib events" variation.

2002-01-21  Jim Blandy  <jimb@redhat.com>

	* gdb.base/ending-run.c (main): Avoid messing with setvbuf; just
	call `fflush' after every `printf', so that the output is produced
	at predictable points, regardless of whatever buffering does (or
	doesn't) take place.
	* gdb.base/ending-run.exp: Adjust tests to expect output to appear
	at different points.

2002-01-20  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.c++/inherit.exp: Update copyright years.
	* gdb.c++/method.exp: Likewise.

2002-01-20  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.c++/classes.exp: Update for improved v3 support and skipping
	artificial methods/arguments.
	* gdb.c++/derivation.exp: Likewise.
	* gdb.c++/inherit.exp: Likewise.
	* gdb.c++/method.exp: Likewise.
	* gdb.c++/virtfunc.exp: Likewise.

2002-01-18  Andrew Cagney  <ac131313@redhat.com>

	* gdb.hp/gdb.threads-hp/usrthfork.exp: Mark as obsolete.
	* gdb.hp/gdb.threads-hp/usrthcore.exp: Ditto.
	* gdb.hp/gdb.threads-hp/usrthbasic.exp: Ditto.
	* gdb.hp/gdb.threads-hp/usrthfork.c: Ditto.
	* gdb.hp/gdb.threads-hp/usrthbasic.c: Ditto.
	* gdb.hp/gdb.threads-hp/usrthcore.c: Ditto.

2002-01-17  Jim Blandy  <jimb@redhat.com>

	* gdb.asm/asm-source.exp (info symbol): Take another shot at
	anchoring the pattern matching the entry point symbol's name.

2002-01-17  Andrew Cagney  <ac131313@redhat.com>

	* gdb.base/maint.exp: Update ``maint internal-error'' to match
	continue/quit query.  Update copyright.

2002-01-14  Michael Snyder  <msnyder@redhat.com>

	* gdb.base/gcore.exp: Remove extra debugging output.

2002-01-13  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.c++/demangle.exp: Accept slightly dubious v2 demangler result
	for slightly dubious v2 mangled string.

2002-01-13  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.base/completion.exp: Expand ${srcdir} to an absolute path.

2002-01-10  Jason Merrill  <jason@redhat.com>

	* gdb.c++/namespace.exp: Accept trailing const for 'this'.

	* gdb.c++/classes.exp: Accept 'A const' or 'const A' in copy
	constructors.
	* gdb.c++/derivation.exp: Likewise.
	* gdb.c++/templates.exp: Likewise.
	* gdb.c++/virtfunc.exp: Likewise.

2002-01-10  Michael Snyder  <msnyder@redhat.com>

	* gdb.c++/namespace.exp: Accept both '\0' and '\000'.

2002-01-08  Michael Snyder  <msnyder@redhat.com>

	* gdb.base/gcore.exp: New test for generate-core-file command.
	* gdb.base/gcore.c: Testcase for above.
	* gdb.threads/gcore-thread.exp: New test for gcore (threaded).

2002-01-08  Jason Merrill  <jason@redhat.com>

	* gdb.c++/userdef.cc: Use <iostream> instead of <iostream.h>.

2002-01-07  Fred Fish  <fnf@redhat.com>

	* gdb.c++/overload.exp: Remove unconditional xfails for:
	print foo_instance1.overloadargs(1)
	print foo_instance1.overloadargs(1, 2)
	print foo_instance1.overloadargs(1, 2, 3)
	print foo_instance1.overloadargs(1, 2, 3, 4)
	print foo_instance1.overloadargs(1, 2, 3, 4, 5)
	print foo_instance1.overloadargs(1, 2, 3, 4, 5, 6)
	print foo_instance1.overloadargs(1, 2, 3, 4, 5, 6, 7)
	print foo_instance1.overloadargs(1, 2, 3, 4, 5, 6, 7, 8)
	print foo_instance1.overloadargs(1, 2, 3, 4, 5, 6, 7, 8, 9)
	print foo_instance1.overloadargs(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
	print foo_instance1.overloadargs(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
	print foo_instance1.overload1arg()
	print foo_instance1.overload1arg((char)arg2)
	print foo_instance1.overload1arg((signed char)arg3)
	print foo_instance1.overload1arg((unsigned char)arg4)
	print foo_instance1.overload1arg((int)arg7)
	print foo_instance1.overload1arg((unsigned int)arg8)
	print foo_instance1.overload1arg((float)arg11)
	print foo_instance1.overload1arg((double)arg12)

2002-01-07  Michael Snyder  <msnyder@redhat.com>

	* gdb.base/huge.exp: New test.  Print a very large target data object.
	(skip_huge_test): New test variable.  Define if you want to skip this
	test.  The test reads an 8 megabyte data object from the target, so it
	might be very time consuming on remote targets with a slow connection.
	* gdb.base/huge.c: New file.  Test case for above.

2002-01-07  Fred Fish  <fnf@redhat.com>

	* gdb.c++/derivation.exp: Remove gcc xfails for g_instance.afoo,
	g_instance.bfoo, and g_instance.cfoo.

2002-01-07  Jeffrey A Law  <law@redhat.com>

	* gdb.base/break.c (multi_line_if_conditional): New function.
	(multi_ilne_while_conditional): Likewise.
	* gdb.base/break.exp: Verify that a breakpoint on a multi-line
	IF or WHILE condition puts the breakpoint at the start of
	the condition.

	* gdb.base/selftest.exp (backtrace through signal handler): Remove
	hppa*-*-hpux* expected failure.
	* gdb.base/structs.exp (do_function_calls): Similarly.

	* gdb.c++/annota2.exp (watch triggered on a.x): Handle hardware
	watchpoints.

2002-01-06  Andrew Cagney  <ac131313@redhat.com>

	Fix PR gdb/66.
	* gdb.base/structs.exp: Replace skip for a29k with skip for
	gdb,cannot_call_functions.
	* gdb.base/call-ar-st.exp: Remove references to a29k in comments.
	* gdb.base/callfuncs.exp: Ditto.
	* gdb.base/call-rt-st.exp: Ditto.
	* gdb.base/call-strs.exp: Ditto.
	* gdb.base/callfwmall.exp: Ditto.
	* gdb.base/scope.exp: Obsolete xfail a29k.
	* gdb.c++/misc.exp: Ditto.
	* gdb.c++/cplusfuncs.exp: Ditto.
	* gdb.base/ptype.exp: Ditto.
	* gdb.base/printcmds.exp: Ditto.
	* gdb.base/opaque.exp: Ditto.
	* gdb.base/list.exp: Ditto.
	* gdb.base/funcargs.exp: Ditto.
	* gdb.base/default.exp: Ditto.

2002-01-04  Michael Snyder  <msnyder@redhat.com>

	* gdb.base/info-proc.exp: New file, test for "info proc" cmd.
	* gdb.base/maint.exp: Add tests for maint info sections options.

Fri Dec 21 09:42:11 2001  Jeffrey A Law  (law@redhat.com)

	* gdb.base/default.exp: Remove bogus hppa*-hp-hpux* xfails.

2001-12-20  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.asm/arm.inc: New file.
	* gdb.asm/asm-source.exp: Add arm targets.
	* gdb.asm/configure.in: Ditto.
	* gdb.asm/configure: Recreated from configure.in.

Thu Dec 20 09:54:36 2001  Jeffrey A Law  (law@redhat.com)

	* gdb.hp/gdb.defects/bs15503.exp: Only run this test if compiling
	with HP's compiler.
	* gdb.hp/gdb.objdbg/objdbg01.exp: Likewise.
	* gdb.hp/gdb.objdbg/objdbg02.exp: Likewise.
	* gdb.hp/gdb.objdbg/objdbg03.exp: Likewise.
	* gdb.hp/gdb.objdbg/objdbg04.exp: Likewise.

	* gdb.hp/gdb.defects/solib-d.exp: Update to handle building with
	either HP's compilers or GCC.

	* gdb.hp/gdb.base-hp/hwwatchbus.exp: Allow inferior to get either
	a SIGBUS or SIGSEGV.

	* gdb.hp/gdb.base-hp/so-thresh.exp: Remove useless send_user command.

	* gdb.hp/gdb.defects/bs14602.exp: Revamp slightly so that test
	can be compiled with either HP's compiler or GCC.

	* gdb.hp/gdb.threads-hp/usrthbasic.exp: Disable completely.
	* gdb.hp/gdb.threads-hp/usrthcore.exp: Disable completely.
	* gdb.hp/gdb.threads-hp/usrthfork.exp: Disable completely.

	* gdb.hp/gdb.base-hp/so-thresh.exp: Update text in expect strings
	to match current gdb output.  Update due to using auto-solib-limit
	for limiting instead of overloading auto-solib-add.
	* gdb.hp/gdb.base-hp/so-thresh.mk: Always use "cc" to build the
	test program.

	* gdb.c++/templates.exp: Use "hppa64-*-*", not "hppa2.0w-*-*"
	* gdb.hp/gdb.base-hp/dollar.exp: Likewise
	* gdb.hp/gdb.base-hp/pxdb.exp: Likewise.
	* gdb.hp/gdb.base-hp/reg-pa64.exp: Likewise.
	* gdb.hp/gdb.base-hp/reg.exp: Likewise.
	* gdb.hp/gdb.compat/xdb3.exp: Likewise.
	* gdb.hp/gdb.defects/bs15503.exp: Likewise.
	* gdb.hp/gdb.objdbg/objdbg01.exp: Likewise
	* gdb.hp/gdb.objdbg/objdbg02.exp: Likewise
	* gdb.hp/gdb.objdbg/objdbg03.exp: Likewise
	* gdb.hp/gdb.threads-hp/usrthbasic.exp: Likewise.
	* gdb.hp/gdb.threads-hp/usrthcore.exp: Likewise.
	* gdb.hp/gdb.threads-hp/usrthfork.exp: Likewise.

	* gdb.base/annota1.exp: Expect failure for hpux11 when posting
	a SIGTRAP to the inferior.

2001-12-19  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.asm/asm-source.exp: Drop setting link-flags for xstormy16.
	Substitute call to target_link by call to gdb_compile.

Wed Dec 19 14:10:57 2001  Jeffrey A Law  (law@redhat.com)

	* gdb.base/break.exp: Fix HP specific search string when testing
	backtracing in a called function.

	* gdb.base/constvars.exp: Only set lang to C++ if we're
	compiling the test with HP's compilers.
	* gdb.base/volatile.exp: Similarly.

2001-12-19  Jim Blandy  <jimb@redhat.com>

	* gdb.base/printcmds.exp: Expect the null character to be printed
	as '\0', and the '\013' to be printed as '\v'.
	* gdb.base/callfuncs.exp ("backtrace at nested call level 4"): Same.
	* gdb.base/setvar.exp: Same.

2001-12-17  Jim Blandy  <jimb@redhat.com>

	* gdb.base/completion.exp: Rather than completing very long
	filenames, which can make the readline library produce output we
	don't recognize, cd to the directory first, and then complete
	using nice, short relative paths.

	* gdb.base/completion.exp: On some systems, there is, in fact, a
	variable named `b' in scope, since GDB treats all static
	variables as being in scope.  So use `no_var_named_this'
	instead of `b'.

	* gdb.base/corefile.exp: Recognize the message saying that GDB
	can't find the core file's registers as a failure.

2001-12-13  Jackie Smith Cashion  <jsmith@redhat.com>

	* gdb.base/commands.exp (user_defined_command_test): Make "show user"
	test expect string more specific.

2001-12-13  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.asm/asm-source.exp: Add support for xstormy16.
	* gdb.asm/configure.in: Ditto.
	* gdb.asm/configure: Rebuild.
	* gdb.asm/xstormy16.inc: New file.

2001-12-10  Fred Fish  <fnf@redhat.com>

	* gdb.base/maint.exp: Update to match changes in type dumping code.

2001-12-10  Jim Blandy  <jimb@redhat.com>

	* gdb.asm/asm-source.exp (info symbol): Anchor the pattern
	matching the entry point symbol's name at the beginning of the
	line.

2001-12-07  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.c++/classes.exp, gdb.c++/derivation.exp,
	gdb.c++/inherit.exp, gdb.c++/method.exp,
	gdb.c++/namespace.exp, gdb.c++/templates.exp,
	gdb.c++/userdef.exp, gdb.c++/virtfunc.exp: Updates for v3 demangler
	and class layout support.

2001-12-07  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.c++/classes.exp: Add test for static member function.
	* gdb.c++/misc.cc: Add class with static member function.

2001-12-07  Jim Blandy  <jimb@redhat.com>

	If GDB says it can't find the struct the function returned, report
	those tests as `unsupported'.
	* gdb.base/call-rt-st.exp (print_struct_call): New function.
	Rewrite subsequent tests to use it.

	If GDB says it can't find the struct the function returned, report
	those tests as `unsupported'.
	* gdb.base/structs.exp (call_struct_func): New function.
	(do_function_calls): Use call_struct_func to call the functions
	returning structs.

	* gdb.base/callfuncs.exp: The stabs generated by GCC don't tell us
	whether functions are prototyped or not, so we can't possibly pass
	arguments to t_float_values2 properly.

	* gdb.base/break.exp: (test_next_with_recursion): Don't change the
	value of `timeout' for targets other than the mips*tx39-*.

2001-12-06  Michael Snyder  <msnyder@redhat.com>

	* gdb.asm/asm-source.exp: Add tests for info target, info symbol,
	and detect whether the start symbol has a leading underscore.

2001-12-04  Jim Blandy  <jimb@redhat.com>

	* gdb.base/completion.exp: Clarify indentation.

2001-12-03  Jim Blandy  <jimb@redhat.com>

	* gdb.asm/s390.inc (gdbasm_datavar): Use `.long' to create `int'
	variables on the S/390, not `.word'.

2001-11-30  Jim Blandy  <jimb@redhat.com>

	Add assembly-source tests for s390-ibm-linux.
	* gdb.asm/s390.inc: New file.
	* gdb.asm/configure.in, gdb.asm/asm-source.exp: Add clauses for
	the S/390 architecture.
	* gdb.asm/configure: Regenerated.

2001-11-30  Michael Snyder  <msnyder@redhat.com>

	* gdb.asm/asm-source.exp: Add tests for list, search, finish, return,
	next, info source, info sources, info line, global and static
	variables, and static functions.
	* gdb.asm/common.inc: New macro gdbasm_datavar (default definition).
	* gdb.asm/i386.inc: Override default definition of gdbasm_datavar.
	* gdb.asm/asmsrc1.s: Add a static function and some variables.
	* gdb.asm/asmsrc2.s: Make foo2 call foo3 twice (to test 'next').
	* gdb.asm/d10v.inc (gdbasm_enter): Set up frame pointer.
	(gdbasm_leave): Restore frame pointer.
	(gdbasm_startup): Copy stack set-up from crt0.S.

2001-11-26  Fernando Nasser  <fnasser@redhat.com>

	From 2001-11-12 Jackie Smith Cashion  <jsmith@redhat.com>:
	* gdb.base/callfuncs.c (t_structs_a): Do not return a pointer
	to a local (non-static) variable. Copy tstruct.a to a static buffer
	and return a pointer to that buffer.
	* gdb.base/callfwmall.c (t_structs_a): Ditto.

2001-11-24  Mark Kettenis  <kettenis@gnu.org>

	* gdb.asm/configure.in: Fix recognition of ix86 target.
	* gdb.asm/configure: Regenerate.

2001-11-21  Michael Snyder  <msnyder@redhat.com>

	* gdb.asm/sparc.inc: New file.
	* gdb.asm/asm-source.exp: Recognize sparc target.
	* gdb.asm/configure.in: Recognize sparc target.
	* gdb.asm/configure: Regenerate.

2001-11-21  Michael Snyder  <msnyder@redhat.com>

	* gdb.asm/m32r.inc: New file.
	* gdb.asm/asm-source.exp: Recognize m32r target.
	* gdb.asm/configure.in: Recognize m32r target.
	* gdb.asm/configure: Regenerate.

2001-11-20  Michael Snyder  <msnyder@redhat.com>

	* gdb.asm/i386.inc: New file.
	* gdb.asm/asm-source.exp: Recognize ix86 target.
	* gdb.asm/configure.in: Recognize ix86 target.
	* gdb.asm/configure: Regenerate.

	* gdb.c++/namespace.exp: Fix quotes in output messages.

2001-11-14  Michael Snyder  <msnyder@redhat.com>

	* gdb.base/code-expr.exp: New file.  Tests use of the "@code"
	qualifier in a type cast expression, to designate an address
	in the instruction space (Harvard architecture).

2001-11-13  Michael Snyder  <msnyder@redhat.com>

	* gdb.base/cvexpr.c, gdb.base/cvexpr.exp: New files.
	Tests for expressions using 'const' and 'volatile'.

2001-11-13  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.asm/asm-sources.exp: Allow defining linker flags.

2001-11-12  Daniel Jacobowitz  <drow@mvista.com>

	* lib/mi-support.exp (mi_run_to_helper): Move comments
	outside of gdb_expect.

2001-11-11  Daniel Jacobowitz  <drow@mvista.com>

	* lib/mi-support.exp: (mi_run_to_helper, mi_run_to,
	mi_step_to, mi_next_to, mi_continue_to, mi_finish_to,
	mi0_step_to, mi0_next_to, mi0_continue_to, mi0_finish_to,
	mi0_run_to): New functions.
	* gdb.mi/mi-simplerun.exp: Use them.
	* gdb.mi/mi0-simplerun.exp: Likewise.
	* gdb.mi/mi-var-cmd.exp: Likewise.
	* gdb.mi/mi0-var-cmd.exp: Likewise.

2001-11-10  Andrew Cagney  <ac131313@redhat.com>

	* gdb.asm/asmsrc1.s: Add ``gdbasm_'' prefix to all macros.
	* gdb.asm/asmsrc2.s, gdb.asm/d10v.inc: Update.

2001-11-09  Andrew Cagney  <ac131313@redhat.com>

	* gdb.base/restore.exp: Include $expected value in restored test
	message.

2001-11-09  Andrew Cagney  <ac131313@redhat.com>

	* gdb.asm/asm-source.exp: Supress file, instead of skip, when not
	implemented.

2001-11-08  Michael Snyder  <msnyder@redhat.com>

	* gdb.base/callfuncs.exp: Add tests for nested call dummies.
	Add pass/fail message for stop at breakpoint in call dummy function.

2001-11-07  Michael Snyder  <msnyder@redhat.com>

	* gdb.c++/templates.exp (test_template_breakpoints):
	If we get an overload menu, but it does not match what
	we expect, we still need to issue the "cancel" command.
	* gdb.c++/templates.exp: Replace "void \\*" with "void ?\\*",
	making the whitespace optional.  Argument for "new" may be
	"unsigned" as well as "unsigned int/long".
	* gdb.c++/templates.exp: Replace "const &" with "const ?&",
	making the whitespace optional.  Also replace "(void) with
	"((void|)), making the keyword "void" optional.
	* gdb.c++/virtfunc.exp: Replace "const &" with "const ?&",
	making the whitespace optional.  Also replace "(void) with
	"((void|)), making the keyword "void" optional.
	* gdb.base/callfuncs.c (t_float_values): This function must
	_not_ be prototyped, and the following function (t_float_values2)
	must be prototyped (if the compiler supports it), so that GDB
	can be tested against both cases.  Usually one case involves
	promotion of float to double, while the other does not.
	* gdb.base/callfwmall.c: Ditto.
	* gdb.asm/asm-source.exp (bt ALL in foo2): Accept a backtrace that
	includes a stack frame for "start".

2001-11-05  Jim Blandy  <jimb@redhat.com>

	* gdb.stabs/weird.exp: Delete "p v_comb" test.  It assumes that
	pointers are 32 bits long, and that offsets of relocs are always
	stored in the data (REL-style), and not in the reloc entry itself
	(RELA-style).
	* gdb.stabs/weird.def (v_comb, v_comb_shared): Remove symbols and
	stabs.

2001-11-01  Michael Snyder  <msnyder@redhat.com>

	* gdb.c++/cplusfuncs.exp: Fix conflicts between operator names
	and regular expression operators by using quoting.

2001-10-31  Michael Snyder  <msnyder@redhat.com>

	* gdb.c++/overload.exp: Select overloadfnarg(void) or overloadfnarg(),
	depending on what the symbol table contains.
	* gdb.c++/derivation.exp: Accept both "foo(void)" and "foo()" in
	the output of the ptype command.  Similarly, accept both "const &"
	and "const&".

2001-10-31  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.base/miscexprs.c (main): Add usage of preprocessor
	symbol `STORAGE' to allow to choose the storage class of
	the local datastructures.
	* gdb.base/miscexprs.exp: Handle setting a `-DSTORAGE=...'
	compiler directive.

2001-10-30  Michael Snyder  <msnyder@redhat.com>

	* gdb.base/jump.exp: Allow it to run for all targets.

2001-10-29  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.base/call-ar-st.c (print_double_array): Match for loop
	with new double_array size.
	(main): Change storage class of all local variables to static.
	Reduce size of double_array to 9.
	* gdb.base/call-ar-st.exp:  Increase timeout value.
	Change expected output for double array to match new size in
	call-ar-st.c.

2001-10-29  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.base/ending-run.exp: Create identical output when passing
	`step to end of run' case.  Add regular expression branch satisfying
	Stormy16 target.

2001-10-28  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/interrupt.exp: Treat SIGILL similar to SIGSEGV such
	that we catch the expected failure under Linux/x86.

2001-10-29  Orjan Friberg  <orjanf@axis.com>

	* gdb.base/setvar.exp: Escape curly braces.
	* gdb.stabs/weird.exp: Ditto.

2001-10-27  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.mi/mi-hack-cli.exp: Remove excess newlines from test strings.
	* gdm.mi/mi0-hack-cli.exp: Likewise.

2001-10-25  Andrew Cagney  <ac131313@redhat.com>

	* gdb.stabs/weird.exp: Unify ``variable VAR printed properly''
	messages.

2001-10-21  Andrew Cagney  <ac131313@redhat.com>

	* lib/mi-support.exp (mi_gdb_start): Don't require MI_OUT when
	checking MI enabled.

2001-10-09  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.base/maint.exp: Treat $EXEEXT as optional in output.

2001-10-04  Frank Ch. Eigler  <fche@redhat.com>

	* lib/insight-support.exp (gdbtk_start): Don't exit dejagnu
	if gdb child process crashes, just signal an error.

2001-10-02  Jim Blandy  <jimb@redhat.com>

	* lib/gdb.exp (test_xfail_format): Simplify.

	* lib/gdb.exp (setup_xfail_format): Don't forget to put a `$' in
	front of the variable name `format'.  Simplify `if'.

2001-10-01  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.threads/pthreads.exp: Wait for output and delay
	before sending ^C.

2001-10-01  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.mi/mi-var-display.exp (continue to incr_a):  Recognize
	some incorrect output instead of timing out.
	* gdb.mi/mi-var-display.exp (continue to incr_a):  Likewise.

2001-09-28  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.base/volatile.exp (local_compiler_xfail_check): Change qux2
	check to allow additional `int'.

2001-09-27  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.base/completion.exp: Remove incorrect 'p "a' test.
	Add tests for 'p "break' (pass) and 'p "break.' (xfail).

2001-09-27  Michael Snyder  <msnyder@redhat.com>

	* lib/gdb.exp (test_debug_format): New proc.
	(setup_xfail_format): Use new proc test_debug_format.
	* gdb.base/constvars.exp (local_compiler_xfail_check): New
	proc; use new service proc test_debug_format.
	Replace all other "gcc_compiled" tests with this test.
	* gdb.base/volatile.exp (local_compiler_xfail_check): New
	proc; use new service proc test_debug_format.
	Replace all other "gcc_compiled" tests with this test.

2001-09-27  Michael Snyder  <msnyder@redhat.com>

	* gdb.base/cvexpr.exp: New file.
	* gdb.base/cvexpr.c: New file
	Test for expressions using const and volatile keywords.

2001-09-26  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.base/constvars.exp: Check for different orders of keywords
	and additional "int" strings in output.

2001-09-22  Andrew Cagney  <ac131313@redhat.com>

	* gdb.base/maint.exp: Add "maintenance set/show" to list of valid
	responses from "help maint".

2001-09-19  Frank Ch. Eigler  <fche@redhat.com>

	* lib/insight-support.exp (_gdbtk_xvfb_init): Set DISPLAY
	to localhost:NNN instead of :NNN, in case Xvfb is listening
	only on TCP.

2001-09-19  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.base/recurse.exp: When checking leaving the watchpoint
	scope, recognize when gdb is in function's epilogue and pass.

2001-09-18  Keith Seitz  <keiths@redhat.com>

	* lib/insight-support.exp (_gdbtk_export_target_info): Add
	support for running tests against sid targets.
	(gdbtk_done): Ditto.

2001-09-18  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.base/ending-run.c (main): Set stdout buffersize
	to the same reasonable value for any target.
	* gdb.base/ending-run.exp: Add a regular expression
	to make testsuite happy on Sanyo Stormy16 target.

2001-09-17  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.base/display.c (do_loops): Add float variable `f'.
	Increment f in loop.
	* gdb.base/display.exp: Increment timeout by 60 seconds.
	Change float display test to use variable `f'.

2001-09-17  Jim Blandy  <jimb@redhat.com>

	* gdb.base/restore.exp: Use temporary breakpoints, to avoid
	overflowing the limited breakpoint tables on some ROM monitors
	(like the ROM68K).

2001-09-15  Frank Ch. Eigler  <fche@redhat.com>

	* lib/insight-support.exp (_gdbtk_xvfb_init): Start Xvfb with
	the "-ac" (disable access control) flag.

2001-08-30  Jeff Holcomb  <jeffh@redhat.com>

	* gdb.base/remote.c: Use a small buffer for targets with 16-bit
	ints.

2001-08-30  Keith Seitz  <keiths@redhat.com>

	* lib/gdb.exp: Move all insight-related functionality into
	separate file.
	* lib/insight-support.exp: New file.

2001-08-29  Frank Ch. Eigler  <fche@redhat.com>

	* config/sid.exp (sid_start): Never set sid verbosity; disable
	expect_background {} that consumed its stdout; tolerate </dev/null.
	Attempt to set endianness override in "sid" protocol mode.  Cleanup.

2001-08-18  Andrew Cagney  <ac131313@redhat.com>

	* lib/mi-support.exp (mi_gdb_start): If a remote target, use the
	CLI jump command to start it.
	(mi_run_to_main): Fail immediatly when unexpected output.

2001-08-18  Andrew Cagney  <ac131313@redhat.com>

	* lib/mi-support.exp (mi_gdb_start): Move call to sid_start to
	beginning of function.  Fix PR gdb/191.

2001-08-16  Frank Ch. Eigler  <fche@redhat.com>

	* config/sid.exp (sid_start): Don't warn if we cannot figure out
	what to force sid endianness to.

2001-08-15  Keith Seitz  <keiths@redhat.com>

	* lib/gdb.exp (gdbtk_start): Don't set environment
	variables for TCL_LIBRARY and friends. Insight will
	now figure these out for itself.

2001-08-02  Michael Snyder  <msnyder@redhat.com>

	* gdb.base/completion.exp: Remove the symbol "a64l" from
	the expect string; this is target-specific, and not related
	to what is being tested.

2001-08-02  Dave Brolley  <brolley@redhat.com>

	* config/sid.exp: Rename gdb-socket to cpu-gdb-socket.

2001-07-25  Michael Snyder  <msnyder@redhat.com>

	* gdb.base/consecutive.exp: New file.  Test stepping over
	breakpoints on consecutive instructions.
	* gdb.base/consecutive.c: New file.

	* gdb.base/call-rt-st.exp: Use double-backslash to quote
	curly braces in regular expressions.

2001-07-25  Michael Snyder  <msnyder@redhat.com>

	* gdb.base/ending-run.exp: Accept "Program exited normally" as
	legitimate output from stepping out of main.

2001-07-22  Keith Seitz  <keiths@redhat.com>

	* lib/gdb.exp (_gdbtk_xvfb_init): If GDB_DISPLAY is
	the empty string, do not run the tests.

2001-07-17  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* gdb.base/long_long.exp: Detect size of pointer.  Take into
	account 2-byte pointers when testing for p/a results.

2001-07-17  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* gdb.base/remote.c (RANDOM_DATA_SIZE): New define, defaults to 48K
	and defined to 1K for m68hc11.
	(random_data): Reduce table to 1K for embedded platforms (68hc11).
	* gdb.base/remote.exp (get_sizeof): New function from sizeof.exp.
	(sizeof_random_data): New variable to tell the size of the data table;
	don't test past this size; always run to main.

2001-07-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* gdb.base/return2.exp: return of long long and double fails for
	68HC11; don't execute these tests on that platform.
	* gdb.base/return.exp: Return of a double fails for 68hc11.

2001-07-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* call-ar-st.exp: Use gdb_skip_float_test to avoid executing
	tests that print a float.
	* call-rt-st.exp: Likewise.

2001-07-12  Mark Kettenis  <kettenis@gnu.org>

	* gdb.base/so-impl-ld.exp: Remove stray space that prevented
	running this test on Linux.

2001-06-24  Michael Chastain  <chastain@redhat.com>

	* gdb.base/arithmet.exp: Remove some tests to make all test names
	unique.

2001-07-03  Michael Snyder  <msnyder@redhat.com>

	* gdb.c++/classes.exp: Accept both "foo(void)" and "foo()" in
	the output of the ptype command.

2001-07-02  Michael Snyder  <msnyder@redhat.com>

	* gdb.base/completion.exp: Don't assume that break.c is the only
	source file that may contain functions named "marker".
	* gdb.base/corefile.exp: Quote the curly braces in regexp.

2001-06-28  Andrew Cagney  <ac131313@redhat.com>

	* gdb.disasm/Makefile.in (clean mostlyclean): Add h8300s to list
	of files to delete.

	From 2000-06-15 Kazu Hirata <kazu@hxi.com>:
	* gdb.disasm/h8300s.exp: New file.
	gdb.disasm/h8300s.s: Likewise.

2001-06-27  Andrew Cagney  <ac131313@redhat.com>

	* lib/mi-support.exp (mi_delete_breakpoints): Accept mi1 format
	empty breakpoint tables.

2001-06-25  Andrew Cagney  <ac131313@redhat.com>

	* lib/mi-support.exp: Update args=... part of stop-reason
	patterns. Accept either a list or a tuple.

2001-06-23  Andrew Cagney  <ac131313@redhat.com>

	* lib/mi-support.exp: Remove local emacs variable defining
	change-log-default-name.

2001-06-22  Michael Chastain  <chastain@redhat.com>

	* gdb.base/arithmet.exp: Use gdb_test instead of send_gdb/gdb_expect.
	This is operationally compatible with the previous version.

2001-06-13  Jim Blandy  <jimb@redhat.com>

	* lib/gdb.exp (gdb_test): Doc fix.

2001-06-10  Michael Chastain  <chastain@redhat.com>

	* gdb.base/exprs.exp: Remove a duplicate test.

2001-06-06  Jim Blandy  <jimb@redhat.com>

	* gdb.base/return2.exp (main): Use values to test float and double
	returns that are not NaN's, to avoid being confused by IEEE
	comparison rules.

2001-06-04  Michael Snyder  <msnyder@redhat.com>

	* gdb.threads/pthreads.exp (check_control_c): Return 0 for success,
	non-zero if control_c fails.  Terminate the test on failure,
	rather than wait for 12 more tests to time out.

2001-06-06  Jim Blandy  <jimb@redhat.com>

	* gdb.base/exprs.exp ("sizeof (long long) > sizeof (long) (true)"):
	Don't forget to match the GDB prompt.

	* gdb.trace/gdb_c_test.c, actions.c: Fix misspellings.

2001-06-04  Jim Blandy  <jimb@redhat.com>

	* gdb.base/help.exp: Update pattern to exclude `print-load-map'
	command.

2001-05-31  Kevin Buettner  <kevinb@redhat.com>

	* gdb.base/annota1.exp (info break): Match four or more spaces
	after "Address".

2001-05-31  Michael Chastain  <chastain@redhat.com>

	* gdb.c++/cplusfuncs.cc (dm_type_char_star): Remove superfluous cast.
	(dm_type_int_star): Likewise.
	(dm_type_long_star): Likewise.
	(dm_type_void_star): Likewise.

2001-05-29  Kevin Buettner  <kevinb@redhat.com>

	* gdb.base/completion.exp (INPUTRC): Set this environment variable
	to a known value in order to get consistent results regardless
	of the setting of INPUTRC or the presence or contents of .inputrc.

2001-05-24  Michael Snyder  <msnyder@redhat.com>

	* gdb.threads/linux-dp.exp: Remove assumptions about thread ordering.
	Don't require that the main thread and the manager thread are the
	first in the list.

	* gdb.threads/pthreads.exp (test_startup): Relax test for thread
	debugging.  If test fails, issue an "unsupported" not a "fail".

2001-05-24  Jim Blandy  <jimb@redhat.com>

	Don't assume that short is shorter than int.
	* gdb.base/exprs.exp ("print unsigned short == (~0)"): Don't
	assume that shorts are smaller than ints.  On a 16-bit machine,
	this isn't true.
	("print unsigned char == (~0)"): Add test that verifies that ~0,
	an int, is not equal to ~0 stored in an unsigned char.  This tests
	the same thing that the previous test meant to, but works on
	16-bit machines, too.
	("print unsigned char != (~0)"): Same test, complemented.

2001-05-24  Michael Snyder  <msnyder@redhat.com>

	* gdb.threads/pthreads.exp (all_threads_running): Add an explicit
	test for (full_coverage == 0).  This makes the test run faster,
	and prevents dejagnu getting out of step.

2001-05-23  Kevin Buettner  <kevinb@redhat.com>

	* gdb.base/finish.exp (finish_void): Revise pattern for
	stopping on the call statement to not permit stopping at
	the start of the instructions comprising the call sequence.

2001-05-19  Michael Chastain  <chastain@redhat.com>

	* gdb.base/callfuncs.exp: Make all test names unique.
	* gdb.base/commands.exp: Make all test names unique.
	* gdb.base/condbreak.exp: Make all test names unique.
	* gdb.base/dbx.exp: Make all test names unique.
	* gdb.base/default.exp: Make all test names unique.
	* gdb.base/define.exp: Make all test names unique.  Conform some FAIL
	and TIMEOUT messages to their corresponding PASS message.
	* gdb.base/ending-run.exp: Make all test names unique.
	* gdb.base/long_long.exp: Remove duplicate test.

2001-05-21  Kevin Buettner  <kevinb@redhat.com>

	* gdb.base/finish.exp (finish_void): Allow "finish" command to
	stop on the call statement as well as the statement after the
	call.

2001-05-21  Michael Snyder  <msnyder@redhat.com>

	* gdb.base/long_long.exp: Allow for targets with 4-byte short.

2001-05-10  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.base/completion.exp: Revamp test. Make it execute on all
	platforms.

2001-05-10  Elena Zannoni  <ezannoni@redhat.com>

	* config/gdbserver.exp (gdb_load): Handle the case
	in which the arguments to gdbserver are given in the
	baseboard configuration file.
	Also handle the case in which the server needs to do a
	load.

2001-05-07  Keith Seitz <keiths@cygnus.com>

	* lib/gdb.exp (gdbtk_initialize_display): New proc which will
	set up the display for testing.
	(gdbtk_start): Convert all paths to paths that tcl will like.
	Export target information to environment.
	(_gdbtk_xvfb_init): New proc to start Xvfb if available and
	necessary.
	(_gdbtk_xvfb_exit): New proc to kill Xvfb if necessary.
	(to_tcl_path): New proc to convert a given pathname into
	a path acceptible as an argument to a tcl command.
	(_gdbtk_export_target_info): New proc to export target info
	into the environment for gdbtk testing.
	(gdbtk_done): New proc to signal end-of-test.

2001-05-06  Jim Blandy  <jimb@redhat.com>

	* restore.c: Make the code of caller0 correspond to its comment.

2001-05-03  Michael Snyder  <msnyder@redhat.com>

	* config/sid.exp (gdb_target_sid): Check for error messages.
	On error or timeout, don't make expect exit (which will terminate
	all subsequent tests); instead just make gdb exit.
	(gdb_load): Check for error messages.  On error or timeout,
	return a negative value.

2001-04-24  Jim Blandy  <jimb@redhat.com>

	* gdb.c++/templates.exp: If we see the prompt for the overload
	list, but we haven't recognized any of the longer patterns,
	arrange for this test to fail, not hang.

	* gdb.c++/classes.exp (ptype class A): Tolerate whitespace
	variations.

2001-04-22  Michael Chastain  <chastain@redhat.com>

	* gdb.c++/local.exp: Use the 'runto' library function.
	* gdb.c++/namespace.exp: Likewise.
	* gdb.c++/overload.exp: Likewise.

2001-03-26  Kevin Buettner  <kevinb@redhat.com>

	* gdb.base/Makefile.in (EXECUTABLES): Add step-line.
	* gdb.base/step-line.exp: New file.  Test step/next in presence of
	#line directives.
	* gdb.base/step-line.c: New file.  Test program for the above.
	* gdb.base/step-line.inp: New file.  We pretend that this file has
	been transformed by some other tool into step-line.c.

2001-03-21  Jim Blandy  <jimb@redhat.com>

	* gdb.c++/userdef.exp: Check that GDB tolerates whitespace in
	unmangled operator names.

2001-03-20  Jim Blandy  <jimb@redhat.com>

	* gdb.threads/linux-dp.exp: Recognize an additional message
	generated by GDB when it doesn't understand how to debug threads
	on the target system.

2001-03-19  Andrew Cagney  <ac131313@redhat.com>

	* gdb.mi/mi-console.exp: Document ``Hello'' as a known bug.

2001-03-12  Michael Chastain  <chastain@redhat.com>

	* gdb.c++/derivation.exp: Use the 'runto' library function.

2001-03-12  Michael Chastain  <chastain@redhat.com>

	* gdb.c++/annota2.exp: Fix regular expression for "post-query".

2001-02-24  Michael Chastain  <chastain@redhat.com>

	* gdb.c++/ref-types.exp: Change handwritten code to library
	function 'runto'.

2001-03-16  Orjan Friberg  <orjanf@axis.com>

	* gdb.base/signals.exp: Set count to 0 explicitly.

2001-03-15  Mark Salter  <msalter@redhat.com>

	* config/monitor.exp (gdb_target_cmd): Add explicit error return.
	(gdb_target_monitor): Add check of gdb_target_cmd return value.
	(gdb_load): Add support for additional target_info: gdb_download_size
	and gdb_load_timeout.

Thu Mar  8 16:06:00 2001  David Taylor  <taylor@redhat.com>

	* gdb.base/annota1.exp: Move test of isnative to earlier in the
	file -- to prevent failing when the compile fails but we have no
	intention of running the tests anyway.

	* gdb.base/long_long.exp: Test target_info for no_long_long, skip
	tests if set.

	* gdb.base/maint.exp: Support 2 byte integers as well as 4 byte
	integers.

	* gdb.c++/ctti.exp: Skip tests if skip_cplus_tests returns true.
	* gdb.c++/namespace.exp: Ditto.

2001-03-07  Orjan Friberg  <orjanf@axis.com>

	* gdb.base/pointers.c: Don't assume doubles are >= 8 bytes.
	* gdb.base/pointers.exp: Relax pattern match of decimals.

2001-03-06  Kevin Buettner  <kevinb@redhat.com>

	* Makefile.in, config/abug.exp, config/cfdbug.exp,
	config/cpu32bug.exp, config/dve.exp, config/est.exp,
	config/gdbserver.exp, config/hmsirom.exp, config/hppro.exp,
	config/i960.exp, config/m32r.exp, config/mn10300-eval.exp,
	config/monitor.exp, config/proelf.exp, config/rom68k.exp,
	config/sh.exp, config/sid.exp, config/slite.exp,
	config/sparclet.exp, config/udi.exp, config/unknown.exp,
	config/vr4300.exp, config/vr5000.exp, config/vx.exp,
	config/vxworks.exp, config/vxworks29k.exp,
	gdb.asm/asm-source.exp, gdb.base/a2-run.exp,
	gdb.base/all-bin.exp, gdb.base/annota1.exp,
	gdb.base/arithmet.exp, gdb.base/assign.exp,
	gdb.base/async.exp, gdb.base/attach.exp,
	gdb.base/bitfields.exp, gdb.base/bitops.exp,
	gdb.base/break.exp, gdb.base/call-ar-st.exp,
	gdb.base/call-rt-st.exp, gdb.base/call-strs.exp,
	gdb.base/callfuncs.exp, gdb.base/callfwmall.exp,
	gdb.base/commands.exp, gdb.base/completion.exp,
	gdb.base/cond-expr.exp, gdb.base/condbreak.exp,
	gdb.base/constvars.exp, gdb.base/corefile.exp,
	gdb.base/dbx.exp, gdb.base/default.exp, gdb.base/define.exp,
	gdb.base/display.exp, gdb.base/ena-dis-br.exp,
	gdb.base/ending-run.exp, gdb.base/environ.exp,
	gdb.base/eval-skip.exp, gdb.base/exprs.exp,
	gdb.base/finish.exp, gdb.base/foll-exec.exp,
	gdb.base/foll-fork.exp, gdb.base/foll-vfork.exp,
	gdb.base/funcargs.exp, gdb.base/help.exp,
	gdb.base/interrupt.exp, gdb.base/jump.exp, gdb.base/list.exp,
	gdb.base/logical.exp, gdb.base/long_long.exp,
	gdb.base/maint.exp, gdb.base/mips_pro.exp,
	gdb.base/miscexprs.exp, gdb.base/nodebug.exp,
	gdb.base/opaque.exp, gdb.base/overlays.exp, gdb.base/page.exp,
	gdb.base/pointers.exp, gdb.base/printcmds.exp,
	gdb.base/ptype.exp, gdb.base/radix.exp, gdb.base/recurse.exp,
	gdb.base/regs.exp, gdb.base/relational.exp,
	gdb.base/remote.exp, gdb.base/reread.exp,
	gdb.base/restore.exp, gdb.base/return2.exp,
	gdb.base/scope.exp, gdb.base/sect-cmd.exp,
	gdb.base/selftest.exp, gdb.base/setshow.exp,
	gdb.base/setvar.exp, gdb.base/shlib-call.exp,
	gdb.base/sigall.exp, gdb.base/signals.exp,
	gdb.base/sizeof.exp, gdb.base/so-impl-ld.exp,
	gdb.base/so-indr-cl.exp, gdb.base/solib.exp,
	gdb.base/step-test.exp, gdb.base/structs.c,
	gdb.base/structs.exp, gdb.base/structs2.exp,
	gdb.base/term.exp, gdb.base/twice.exp, gdb.base/varargs.exp,
	gdb.base/volatile.exp, gdb.base/watchpoint.exp,
	gdb.base/whatis-exp.exp, gdb.base/whatis.exp,
	gdb.c++/ambiguous.exp, gdb.c++/annota2.exp,
	gdb.c++/anon-union.exp, gdb.c++/classes.exp, gdb.c++/ctti.exp,
	gdb.c++/derivation.exp, gdb.c++/inherit.exp,
	gdb.c++/local.exp, gdb.c++/member-ptr.exp, gdb.c++/method.exp,
	gdb.c++/misc.exp, gdb.c++/namespace.exp, gdb.c++/overload.exp,
	gdb.c++/ref-types.exp, gdb.c++/templates.exp,
	gdb.c++/userdef.exp, gdb.c++/virtfunc.exp,
	gdb.disasm/am33.exp, gdb.disasm/hppa.exp,
	gdb.disasm/mn10200.exp, gdb.disasm/mn10300.exp,
	gdb.fortran/types.exp, gdb.java/jmisc.exp,
	gdb.java/jv-exp.exp, gdb.java/jv-print.exp,
	gdb.stabs/weird.exp, gdb.threads/linux-dp.exp,
	gdb.trace/actions.exp, gdb.trace/backtrace.exp,
	gdb.trace/circ.exp, gdb.trace/collection.exp,
	gdb.trace/deltrace.exp, gdb.trace/infotrace.exp,
	gdb.trace/limits.exp, gdb.trace/packetlen.exp,
	gdb.trace/passc-dyn.exp, gdb.trace/passcount.exp,
	gdb.trace/report.exp, gdb.trace/save-trace.exp,
	gdb.trace/tfind.exp, gdb.trace/tracecmd.exp,
	gdb.trace/while-dyn.exp, gdb.trace/while-stepping.exp,
	lib/gdb.exp, lib/mi-support.exp: Update/correct copyright
	notices.

2001-02-27  Michael Snyder  <msnyder@cygnus.com>

	* gdb.base/varargs.c (find_max_double): Fix printf format string:
	first arg is int not float.

2001-02-22  Michael Snyder  <msnyder@cygnus.com>

	* gdb.base/reread.exp: Unsupported for non-native targets;
	doesn't work for remote debugging.

2001-02-19  Fernando Nasser  <fnasser@redhat.com>

	From  Drew Moseley  <dmoseley@redhat.com>
	* gdb.base/ending-run.exp: Properly handle the BSP state when
	stepping past the end of main.

2001-02-19  John Moore  <jmoore@redhat.com>

	* gdb.base/commands.exp (infrun_breakpoint_command_test):
	Converted HPUX fix for non-expected items following multiple
	step commands into general solution for all platforms.

2001-02-18  Michael Chastain  <chastain@redhat.com>

	* gdb.c++/classes.exp (do_tests): Change runto statements
	from "runto 'foo(void)'" to "runto 'foo'".  This makes the
	statements demangler agnostic.
	* gdb.c++/virtfunc.exp (do_tests): Likewise.
	(gdb_virtfunc_restart): Likewise.

2001-02-14  Michael Chastain  <chastain@redhat.com>

	* gdb.c++/inherit.exp (do_tests): Change runto statements
	from "runto 'foo(void)'" to "runto 'foo'".  This makes the
	statements demangler agnostic.

Sun Feb  4 17:32:21 2001  Andrew Cagney  <cagney@redhat.com>

	* gdb.threads/pthreads.exp: Unify pass/fail messages for
	``continue to bkpt at common_routine in thread 2'' and ``stopped
	before calling common_routine 15 times'' tests.

2001-02-11  Michael Chastain  <chastain@redhat.com>

	* gdb.c++/cplusfuncs.cc (dm_type_char_star): New function.
	Helps the test script figure out which demangler is in use.
	(dm_type_foo_ref): Ditto.
	(dm_type_int_star): Ditto.
	(dm_type_long_star): Ditto.
	(dm_type_unsigned_int): Ditto.
	(dm_type_void): Ditto.
	(dm_type_void_star): Ditto.
	* gdb.base/cplusfuncs.exp (probe_demangler): New function.
	Probe the gdb demangler and set variables to accommodate
	formatting differences.
	(info_func_regexp): New function.  Same as info_func, but
	matches against a regexp.
	(info_func): Match against a literal string.
	(print_addr_2): New function.  Match against a literal string,
	which can be different from the input to gdb.
	(print_addr): Simply call print_addr_2 with the same argument twice.
	(test_lookup_operator_functions): Use demangler formatting variables.
	Blow away the xfails and workarounds for gnats gdb bug gdb/18.  Sort
	the tests in the same order as the C++ class declaration.
	(test_paddr_operator_functions): Ditto.
	(test_paddr_overloaded_functions): Ditto.
	(test_paddr_hairy_functions): Use demangler formatting variables.
	Add reference to gdb/19 for related tests.
	(do_tests): Call probe_demangler.

2001-01-30  Kevin Buettner  <kevinb@redhat.com>

	* gdb.c++/templates.cc (printf): Remove unused function definition.

2001-01-26  Felix Lee  <flee@redhat.com>

	* sid.exp (sid_exit): Pass host, not target, to remote_close.

2001-01-25  matthew green  <mrg@redhat.com>

	* config/sid.exp (sid_start): Call `remote_push_conn' after firing
	up sid.
	(sid_exit): Call `remote_pop_conn' after GDB is gone.

2001-01-25  matthew green  <mrg@redhat.com>

	* config/sid.exp (sid_start): Use `remote_spawn' instead of `spawn.'
	Deprecate $sid_spawn_id.
	(sid_exit): Remove code necessary only for `spawn.'

2001-01-25  matthew green  <mrg@redhat.com>

	* config/sid.exp (sid_start): Handle sim,protocol of `sid.'

2001-01-28  Michael Chastain  <chastain@redhat.com>

	* gdb.c++/ovldbreak.exp (take_gdb_out_of_choice_menu): New proc
	to call when tests fail.  It takes gdb out of the overloaded
	function choice menu back to the main prompt, so that the test
	program stays synchronized.
	(set_bp_overloaded): New proc to collect all the common
	code for setting a breakpoint on an overloaded name.  Calls
	take_gdb_out_of_choice_menu when needed.
	(menu_overload1arg): New variable to collect the repeated
	instances of the expected menu for an overloaded name.  Change
	the regular expression to handle changes in g++ type encoding:
	"void" can be either "void" or "", and "unsigned int" can be
	either "unsigned int" or "unsigned".
	(continue_to_bp_overloaded): Change regular expressions to handle
	changes in g++ type encoding.
	(no proc): Call take_gdb_out_of_choice_menu when needed.
	Remove redundant calls to "info break".  Accept either "canceled"
	or "cancelled".  Change regular expressions in "info break"
	calls to handle changes in g++ type encoding.  Give all tests
	unique strings.

2001-01-17  Ben Elliston  <bje@redhat.com>

	* config/sid.exp: New file.

Fri Jan 12 18:29:01 2001  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdb.base/callfuncs.exp: Add space after ``Value returned is''.

2000-12-21  Michael Snyder  <msnyder@cygnus.com>

	* gdb.base/finish.exp: Accept '1' instead of \001 from char_func.
	Add a RE to accept a non-ascii char if one is ever presented.

2000-12-20  Fernando Nasser  <fnasser@redhat.com>

	* lib/mi-support.exp (mi_gdb_start): Test for MI_OUT, not UI_OUT.

2000-12-18  Michael Snyder  <msnyder@cygnus.com>

	* gdb.base/setvar.exp: Use double '\\' to quote curly braces
	in regexp.  One '\' does not suffice on Linux.

2000-12-09  Michael Chastain  <chastain@redhat.com>

	* gdb.base/break.exp (test_clear_command): Use a marker function
	rather than 'main' for the test function.  Also move this
	test to an execution point where the marker function names are
	guaranteed to be bound to functions.  (Executing tests after a
	'finish' from main runs into name conflicts with local names
	in __libc_start_main).

2000-12-07  Michael Snyder  <msnyder@cygnus.com>

	* gdb.base/finish.exp: New test for gdb's "finish" command.
	* gdb.base/return2.exp: New test for gdb's "return" command.
	* gdb.base/return2.c: New source file for above.

2000-12-05  Michael Snyder  <msnyder@cygnus.com>

	* gdb.base/constvars.exp: Add a "pass" message if "up" succeeds.
	* gdb.base/miscexprs.exp: Ditto.
	* gdb.base/pointers.exp:  Ditto.
	* gdb.c++/derivation.exp: Ditto.
	* gdb.c++/local.exp:      Ditto.
	* gdb.c++/namespace.exp:  Ditto.
	* gdb.c++/overload.exp:   Ditto.
	* gdb.c++/ref-types.exp:  Ditto.

2000-12-05  Michael Snyder  <msnyder@cygnus.com>

	* gdb.base/constvars.exp: Test result of "up" command.
	* gdb.base/miscexprs.exp: Ditto.
	* gdb.base/pointers.exp:  Ditto.
	* gdb.base/scope.exp:     Ditto.
	* gdb.c++/derivation.exp: Ditto.
	* gdb.c++/local.exp:      Ditto.
	* gdb.c++/namespace.exp:  Ditto.
	* gdb.c++/overload.exp:   Ditto.
	* gdb.c++/ref-types.exp:  Ditto.

2000-11-22  Michael Chastain  <chastain@redhat.com>

	* mips_pro.exp: Accept either "middle -> top -> main" or
	"middle -> main" in the backtrace, because gcc can optimize
	tail calls to jumps.  Remove setup_xfail for the hppa case.
	Add a comment with the original warning messages from PR 3016,
	which was filed in 1993, to preserve them for posterity.

2000-11-17  Nick Duffek  <nsd@redhat.com>

	* lib/gdb.exp (gdb_test): Override timeout with board info.

2000-11-17  Nick Duffek  <nsd@redhat.com>

	* gdb.base/display.exp: Don't kill running stub.  Add "again" to
	the second kill and detach messages.

2000-11-17  Nick Duffek  <nsd@redhat.com>

	* configure.in: Add AC_EXEEXT.
	* configure: Regenerate.
	* Makefile.in (just-check): Export EXEEXT.
	* lib/gdb.exp ($EXEEXT): Import from environment.
	* gdb.base/maint.exp: Expect $EXEEXT in executable name.  Don't
	expect "maint dump-me" on Cygwin.
	* gdb.base/reread.exp ($binfile, $binfile1, $binfile2): Append
	$EXEEXT.

2000-11-17  Nick Duffek  <nsd@redhat.com>

	* gdb.base/break.exp: Test backtrace and finish from called
	function on all platforms, not just HP-UX.

2000-11-03  Michael Snyder  <msnyder@cygnus.com>

	* config/monitor.exp (gdb_target_cmd): Abstracts some of the
	code from gdb_target_monitor, so it can be used independantly
	for gdbserver.  Also comment out an unnecessary PUTS.

2000-11-03  Michael Snyder  <msnyder@cygnus.com>

	* gdb.base/a2-run.exp: Use gdb_skip_stdio_test.
	* gdb.base/corefile.exp: Expect the message "Program is being
	debugged already" when we send the "corefile" command, since
	the preceeding gdb_load may have connected gdb to a remote target.
	* gdb.base/display.exp: Disable hardware watchpoints if new
	board info variable "no_hardware_watchpoints" is true.
	Replace single-letter commands with more readable ones.
	* gdb.base/recurse.exp (recurse_tests): Disable hardware watchpoints
	if new board info variable "no_hardware_watchpoints" is true.
	* gdb.base/restore.exp (restore_tests): Call gdb_skip_stdio_tests
	to see if stdio (printf) testing is possible.
	* gdb.base/watchpoint.exp: Disable hardware watchpoints if new
	board info variable "no_hardware_watchpoints" is true.  Use new
	proc "gdb_skip_stdio_tests" to see if printf tests are possible.

2000-11-13  Fernando Nasser  <fnasser@redhat.com>

	From Orjan Friberg  <orjanf@axis.com>:
	* gdb.base/printcmds.exp: Escape curly braces followed by a number
	in array print pattern match.

2000-11-09  Fernando Nasser  <fnasser@redhat.com>

	* gdb.c++/templates.exp (test_template_breakpoints): Change Britsh
	spelling "cancelled" to U.S. spelling "canceled" to match changes
	made to gdb.
	* gdb.c++/ovldbreak.exp: Ditto.

2000-11-06  Peter Schauer  <pes@regent.e-technik.tu-muenchen.de>

	* gdb.base/callfuncs.c (main):  Moved to end of file, call
	t_double_values to initialize the FPU before inferior calls are made.
	* gdb.base/callfuncs.exp:  Test for register preservation after calling
	inferior functions.  Add tests for continuining, finishing and
	returning from a stop in a call dummy.

2000-10-24  Michael Snyder  <msnyder@cygnus.com>

	* gdb.base/commands.exp: Break up long lines, and re-indent.

2000-10-19  Michael Snyder  <msnyder@cygnus.com>

	* config/gdbserver.exp:  Rewritten from the ground up, to make it
	compatible with the current dejagnu tree, and to make it work with
	the new "gdbserver" in libremote.

2000-10-16  Michael Snyder  <msnyder@cygnus.com>

	* gdb.base/sizeof.exp (check_sizeof): Skip if no printf support.
	* gdb.base/varargs.exp: Skip entire test if no printf support.
	* gdb.base/ending-run.exp (Step to return): Skip if no printf supt.
	* gdb.base/shlib-call.exp: Skip several tests if no printf support.

2000-10-13  Michael Snyder  <msnyder@cygnus.com>

	* lib/gdb.exp (gdb_skip_float_test): New proc.  Skip test if
	no floating point support.
	(gdb_skip_stdio_test): New proc.  Skip test if no stdio support.
	* gdb.base/call-ar-st.exp: Use above procs to skip tests.
	* gdb.base/call-rt-st.exp: Ditto.
	* gdb.base/call-strs.exp: Ditto.

2000-08-02  Jimmy Guo  <guo@hpcleara.cup.hp.com>

	* gdb.base/sizeof.c: include <stdio.h>.

	* gdb.c++/classes.exp: Use gdb_test instead of send_gdb to
	'finish', otherwise uncaptured gdb_prompt would potentially
	throw remaining test points out of sync.

2000-07-26  Scott Bambrough <scottb@netwinder.org>

	* gdb.base/recurse.exp: Run tests for all targets.
	* gdb.base/so-impl-ld.exp: Added wildcard to handle the
	gnu-oldld case on ARM.
	* gdb.base/watchpoint.exp (test_stepping): Clear xfail
	for ARM targets.

Mon Jul 24 07:46:02 CDT 2000  Clinton Popetz  <cpopetz@cygnus.com>

	* gdb.java/configure.in (AC_INIT): Use jmisc.exp.
	* gdb.java/configure: Rebuild.

Sun Jul 23 21:42:34 2000  Anthony Green  <green@redhat.com>

	* gdb.java/jv-exp.exp: New file.

Sun Jul 23 21:02:42 2000  Anthony Green  <green@redhat.com>

	* configure: Rebuilt.
	* configure.in (configdirs): Add gdb.java.
	* gdb.java/jmisc.java: New file.
	* gdb.java/jmisc.exp: New file.
	* gdb.java/Makefile.in: New file.
	* gdb.java/configure: Rebuilt.
	* gdb.java/configure.in: New file.
	* lib/java.exp: New file.

Wed Jul 12 18:14:29 2000  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdb.base/exprs.exp: Test casts to a pointer including over and
	underflow.

Thu Jul 13 11:52:53 2000  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdb.base/sizeof.exp, gdb.base/sizeof.c: New files.  Compare GDB
	and the compilers sizes.

2000-07-09  Nick Duffek  <nsd@redhat.com>

	* gdb.c++/misc.cc (class ClassParam, class_param): Define.
	(use_methods): New function.
	(main): Call use_methods().
	* gdb.c++/classes.exp (test_method_param_class): New procedure.
	(do_tests): Call test_method_param_class.

2000-07-09  Nick Duffek  <nsd@redhat.com>

	* gdb.c++/classes.exp (test_nonexistant_members): Fix name
	spelling.
	(test_enums): New procedure.  Move enum tests from end of script
	to here.  Set breakpoint on function name instead of line number.
	* gdb.c++/misc.cc (ClassWithEnum): Move past Foo definitions.
	(enums2): New marker function.
	(enums1): New function.
	(main): Call enums1().  Move enum tests to enums1().

Tue Jul  4 03:43:49 2000  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdb.asm/asm-source.exp: Use raw AS/LD instead of CC to
	compile/link program.  Update line numbers.
	* gdb.asm/d10v.inc: Define ``startup''.
	* gdb.asm/asmsrc1.s: Add definition of _start.

Fri Jun 23 17:45:52 2000  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdb.base/call-ar-st.exp: More rewrites of multi-line patterns.

2000-06-18  Elena Zannoni  <ezannoni@kwikemart.cygnus.com>

	* gdb.base/maint.exp: Add 'maint print architecture' item to output
	of 'help maint print' command.

Fri Jun 16 18:22:05 2000  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdb.base/call-ar-st.exp: Rewrite all multi-line patterns so that
	they use gdb_expect_list.

Wed Jun  7 13:02:40 2000  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdb.base/commands.exp: Use ``set remote
	memory-read-packet-size'' instead of ``set endian big'' to test
	long commands.

2000-06-03  Daniel Berlin  <dan@cgsoftware.com>

	* gdb.c++/templates.exp (do_tests): Make all of these work under
	g++, and stop skipping them.

	* gdb.c++/namespace.exp: Move from gdb.hp/gdb.aCC to here, make it
	work under g++.

	* gdb.c++/misc.cc: Fix ambiguous initialization with correct
	initialization.

2000-06-02  Michael Snyder  <msnyder@cygnus.com>

	* gdb.base/annota1.exp (run until main breakpoint): Loosen up
	the regular expression: accept an (almost) arbitrary sequence of
	"frames-invalid" and "breakpoints-invalid" messages both before
	and after the "starting" message.

2000-06-02  Michael Snyder  <msnyder@cygnus.com>

	* gdb.c++/local.exp: This test has never been known to work with g++.

2000-05-18  Michael Snyder  <msnyder@cygnus.com>

	* gdb.base/annota1.exp (annotate-signal-handler-caller):
	Relax the regular expression a little, make it pass on Solaris 8.

2000-05-12  Kevin Buettner  <kevinb@redhat.com>

	* gdb.base/step-test.exp: On IA-64 targets, when stepping out of
	a call, do not require that gdb stop on the line after the call.
	Instead, it is permissible for gdb to stop on the line of the
	call itself.

2000-05-12  Michael Snyder  <msnyder@.cygnus.com>

	* gdb.base/break.exp (bp on small function, optimized file):
	Add a second pass pattern.  The behavior differs here between stabs
	and dwarf for one-line functions.  Stabs preserves two line symbols
	(one before the prologue and one after) with the same line number,
	but dwarf regards these as duplicates and discards one of them.
	Therefore the address after the prologue (where the breakpoint is)
	has no exactly matching line symbol, and GDB reports the breakpoint
	as if it were in the middle of a line rather than at the beginning.

2000-05-08  Michael Snyder  <msnyder@cygnus.com>

	* gdb.base/interrupt.exp: Make "pass" message say "send"
	rather than "send_gdb" (for consistancy).

Mon May  1 15:37:58 2000  Andrew Cagney  <cagney@b1.cygnus.com>

	From 2000-04-28 Andreas Jaeger  <aj@suse.de>:
	* gdb.c++/templates.cc: Properly check for GCC version number.
	* lib/compiler.cc: Likewise

2000-04-28  Michael Snyder  <msnyder@cygnus.com>

	* gdb.base/break.exp: When compiled with -O2 optimization,
	gdb may not stop at the first line of main, due to code motion.

2000-04-26  Michael Snyder  <msnyder@cygnus.com>

	* gdb.base/call-ar-st.exp: Bail out if target is sparclet.
	This test depends on parsing the printf output from the target.
	Since the sparclet stub doesn't do stdio, this will never work.
	* gdb.base/call-rt-st.exp: ditto.
	* gdb.base/call-strs: ditto.

2000-04-24  Michael Snyder  <msnyder@cygnus.com>

	* gdb.base/miscexprs.exp: make sizeof long array test portable.

	* gdb.base/ending-run.exp: After connecting to a remote target,
	but before running, the target will appear to be in a random
	location.  Specify both a file and a line for breakpoints.
	Also, the function that calls main may be called 'init'
	rather than 'start'.

2000-04-17  Elena Zannoni  <ezannoni@kwikemart.cygnus.com>

	* gdb.base/help.exp: Update output for add-symbol-file command.

2000-04-10  Fernando Nasser  <fnasser@cygnus.com>

	From Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
	* gdb.base/structs2.c: Support platforms defaulting to a unsigned char.

2000-04-07  J.T. Conklin  <jtc@redback.com>

	* gdb.base/call-ar-st.exp: Relax patterns matching tab characters.

	* gdb.base/funcargs.exp: Relax patterns matching pointers to char.

Thu Mar 30 13:26:19 2000  Philippe De Muyter  <phdm@macqel.be>

	* gdb.base/call-ar-st.c (init_small_structs, main): Use floating-point
	values that can be represented exactly.
	* gdb.base/call-ar-st.exp (print print_small_structs): Fixed to match
	above change, and to not check against the directory part of the source
	file name.
	(step into print_long_arg_list): Likewise.
	(print print_small_structs from print_long_arg_list): Likewise.
	(print print_long_arg_list): Likewise.

2000-03-27  Elena Zannoni  <ezannoni@kwikemart.cygnus.com>

	* gdb.base/printcmds.c: Terminate char array ctable2 with 0.

Mon Mar 27 14:46:37 2000  Andrew Cagney  <cagney@b1.cygnus.com>

	* ChangeLog, gdb.base/commands.exp: Revert whitespace changes.

2000-03-25  Daniel Berlin  <dan@cgsoftware.com>

	* gdb.base/commands.exp (deprecated_command_test): Add test for
	deprecate with no arguments.

2000-03-24  Jonathan Larmour  <jlarmour@redhat.co.uk>

	* gdb.base/break.exp: Add new test for setting breakpoints on
	optimized code so we can test breakpoints work even when function
	prologues may be optimized away

2000-03-23  Fernando Nasser  <fnasser@totem.to.cygnus.com>

	From David Whedon <dwhedon@gordian.com>
	* gdb.base/commands.exp : Added command deprecator tests.

2000-03-22  Daniel Berlin   <dan@cgsoftware.com>

       * gdb.base/help.exp: Added test for new apropos command.

2000-03-21  Kevin Buettner <kevinb@redhat.com>

	* gdb.base/pointers.c (usevar): New function.
	(main): Make sure that global variables v_int_pointer2, rptr,
	and y are all referenced someplace in the program by calling
	usevar() on them.  [Some linkers delete symbols which are
	never referenced.  The space remains, but there's no way to
	get a (symbolic) handle on the variable from the debugger.]

2000-03-14  Elena Zannoni  <ezannoni@kwikemart.cygnus.com>

	* gdb.base/printcmds.c: Add typedeffed arrays.

	* gdb.base/printcmds.exp (test_print_typedef_arrays): New
	procedure to test arrays that are typedef'd.

2000-03-13  James Ingham  <jingham@leda.cygnus.com>

	* lib/gdb.exp: Fix the gdbtk_start routine to correctly find all
	the library directories.

Mon Feb 21 13:05:36 2000  Andrew Cagney  <cagney@b1.cygnus.com>

	* configure.in (configdirs): Add sub directory gdb.mi.
	* configure: Re-generate.

	* gdb.mi: New directory.

2000-02-25  Scott Bambrough <scottb@netwinder.org>

	* gdb.base/long_long.exp: Correct test suite failure when printing
	a long long value as a double on ARM platforms.

2000-02-16  Jim Blandy  <jimb@redhat.com>

	* gdb.base/break.exp ("breakpoint line number"): Make sure the
	default source file is set properly before running this test.

2000-02-14  Elena Zannoni  <ezannoni@kwikemart.cygnus.com>

	* lib/gdb.exp: Tell the testsuite that now gdbtk is in the
	gdbtk/library directory, not in gdbtcl2.

2000-02-04  Jim Blandy  <jimb@redhat.com>

	* gdb.c++/templates.exp: ("ptype T5<int>"): Remove extraneous
	backslash from regexp pattern.

	* gdb.c++/ovldbreak.exp (continue_to_bp_overloaded): New
	procedure.  Use it to run all the "continue to bp overloaded"
	tests.  Note that this changes the names of the tests slightly.
	If the breakpoint hit message includes a hex PC value, because
	GCC's Dwarf 2 line info doesn't help us distinguish the prologue
	from the real source code, still consider that a pass.

	* gdb.base/condbreak.exp ("run until breakpoint at marker2"):
	XFAIL here if the breakpoint message contains a hex address.  Note
	similar change on 1999-11-02.

	* gdb.base/step-test.exp: Comment Fernando's change of 2000-02-02.

	* gdb.base/ptype.exp: Establish a default source file before
	calling get_debug_format.

2000-02-03  Fernando Nasser  <fnasser@totem.to.cygnus.com>

	* gdb.base/watchpoint.exp: Remove duplication of test messages.

2000-02-02  Fernando Nasser  <fnasser@totem.to.cygnus.com>

	* gdb.base/step-test.exp: Fix the steps to enter a callee by means
	of successive stepi commands -- while in the prologue we should see
	the function entry bracket.

2000-02-02  Fernando Nasser  <fnasser@totem.to.cygnus.com>

	* gdb.base/ending-run.exp: Add ARM in thumb mode case, where we
	reach __change_mode() when stepping through the end of main().

2000-01-17  Fernando Nasser  <fnasser@totem.to.cygnus.com>

	* gdb.base/default.exp: Fix expected pattern.
	* gdb.base/help.exp: Same.

2000-01-10  Elena Zannoni  <ezannoni@kwikemart.cygnus.com>

	* gdb.base/so-indr-cl.exp: Don't execute the test if not on HPUX.
	Don't use xfail's because that affects only the following test.

	* gdb.base/so-impl-ld.exp: Don't execute the tests if not on hpux,
	solaris or linux.

	* gdb.base/selftest.exp: Update to reflect changes to main.c.

2000-01-07  Michael Snyder  <msnyder@cygnus.com>

	* gdb.base/display.exp: Some yacc parsers like to say
	"A syntax error" rather than "A parse error".  Accept both.

2000-01-06  Fernando Nasser  <fnasser@totem.to.cygnus.com>

	* gdb.base/default.exp: Remove OS dependent string from "target
	remote" test.
	* gdb.base/help.exp: Same for "help target remote" test.

2000-01-04  Elena Zannoni  <ezannoni@kwikemart.cygnus.com>

	From Jim Kingdon <kingdon@redhat.com>:

	* gdb.c++/annota2.exp: Fix "delete bps" test to wait for the
	prompt (cleanup rather than necessity, but still might keep output
	from spilling to next test).

2000-01-02  Fred Fish  <fnf@cygnus.com>

	* gdb.base/ptype.c (FALSE, TRUE): #undef these to avoid clash on
	AIX, which defines them in <sys/types.h>.

1999-12-16  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.base/default.exp: Match arm* etc instead of arm in "info
	float" test.

1999-12-13 Fernando Nasser  <fnasser@totem.to.cygnus.com>

	* gdb.base/watchpoint.exp: Add missing "(timeout)" to test message.

	* gdb.base/break.exp: Add missing anchor to reg exp on "finish from
	outermost frame disallowed".

1999-12-09  Fernando Nasser  <fnasser@totem.to.cygnus.com>

	* gdb.base/setvar.exp: New tests for setting the value of a struct
	with a constant list.

1999-12-08  Fernando Nasser  <fnasser@totem.to.cygnus.com>

	* gdb.base/setvar.exp: Remove pair os tests that expected gdb to
	require the user to type a cast before setting the value of a struct.

1999-12-06  Jim Blandy  <jimb@cygnus.com>

	* gdb.base/default.exp: Expect the new 'info float' command on
	all i386 platforms.

	* gdb.threads/linux-dp.exp: Expand our ability to recognize
	LinuxThreads libraries that don't support debugging.

Sat Dec  4 15:21:18 1999  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdb.base/remote.c: Fill the buffer with truely random data.
	Change the buffer type to ``unsigned char'' to simplify size
	arithmetic.

	* gdb.base/remote.exp: Reduce download numbers by one.  Typical
	stub only handles 400-1 byte packets.  Verify that the download
	worked.

1999-11-30  Fernando Nasser  <fnasser@totem.to.cygnus.com>

	* lib/gdb.exp (gdb_expect_list): FAIL only once on multiple pattern
	tests, using UNRESOLVED for the untested cases.  Also, does not wait
	for a timeout if the prompt was received before a recognizable pattern.

1999-11-29  Fernando Nasser  <fnasser@totem.to.cygnus.com>

	* lib/gdb.exp (gdb_expect_list): Fix spelling.

1999-11-29  Elena Zannoni  <ezannoni@kwikemart.cygnus.com>

	* gdb.base/watchpoint.exp: Add tests cases for the hit count of
	watchpoints.

1999-11-24  Jason Merrill  <jason@casey.cygnus.com>

	* gdb.base/condbreak.exp: Add missing '$gdb_prompt $'.

	* gdb.c++/local.exp: Be more flexible in recognizing local class
	name mangling.  Don't allow horribly truncated method names.
	* gdb.c++/derivation.exp: Expect protected inheritance.
	* gdb.c++/inherit.exp: Be more flexible in recognizing vbase pointers.
	* gdb.c++/virtfunc.exp: Likewise.
	* gdb.c++/classes.exp: Likewise.  Don't require the enclosing scope
	when printing a nested enum.

1999-11-22  Jim Blandy  <jimb@cygnus.com>

	* gdb.base/step-test.exp: Properly await GDB's response to setting
	a breakpoint on the call to large_struct_by_value.

	* gdb.base/ending-run.exp ("step to end of run 1"): Don't fail
	just because we have debug info for the `start' function.

1999-11-19  Jim Blandy  <jimb@zenia.red-bean.com>

	* gdb.threads/linux-dp.exp ("create philosopher"): Recognize the
	"Unknown signal" messages, which indicate (on LinuxThreads) that
	GDB doesn't know how to debug threads on this system.  This is
	better than hanging while philosopher 0 dumps chatter into gdb.log.

1999-11-18  Tom Tromey  <tromey@cygnus.com>

	* gdb.trace/deltrace.exp: Updated test to reflect new error text.

1999-11-18  Fred Fish  <fnf@cygnus.com>

	* gdb.base/coremaker2.c: Add sample program for generating
	cores that is more self contained than coremaker.c.  Eventually
	I'll add more code to this and tie it into the testsuite.

1999-11-12  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.base/dollar.exp: Remove, now in gdb.hp.

1999-11-10  Jimmy Guo  <guo@cup.hp.com>

	* gdb.exp (get_compiler_info): pick up compiler.c and compiler.cc
	from $srcdir/lib/.
	* lib/compiler.c, lib/compiler.cc: New files, moved from gdb.base/
	and gdb.c++/.

	* gdb.c++/derivation.exp: remove redundant get compiler info code.

	* gdb.base/commands.exp: add '$gdb_prompt $' anchor to
	'continue with watch' test point.

1999-11-08  Jim Blandy  <jimb@zenia.red-bean.com>

	Merged from p2linux-990323-branch:

	* lib/gdb.exp (gdb_continue_to_breakpoint): New function.

Mon Nov  8 23:07:09 1999  Andrew Cagney  <cagney@amy.cygnus.com>

	* gdb.base/remote.exp: Test ``set remote memory-write-packet-sized
	{limit,fixed}''.  Test ``set download-write-size''.

Sun Nov  7 17:37:01 1999  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdb.base/funcargs.exp: Rewrite stack traceback checks using
	gdb_expect_list.

Fri Nov  5 18:40:52 1999  Andrew Cagney  <cagney@b1.cygnus.com>

	* lib/gdb.exp (gdb_expect_list): Return a success/fail indication.

1999-11-03  Mark Salter  <msalter@cygnus.com>

	* gdb.base/break.exp: Fix "stub continue" pattern.

1999-11-03  Jim Blandy  <jimb@zwingli.cygnus.com>

	* gdb.base/shlib-call.exp ("next to shr1"): Fix test name.

1999-11-02  Jim Blandy  <jimb@zwingli.cygnus.com>

	* gdb.base/display.exp ("finish"): Add timeout clause.

	* gdb.base/condbreak.exp ("run until breakpoint at marker1"): Add
	plain prompt clause, so this doesn't have to time out in order to
	fail.

	* gdb.base/condbreak.exp, gdb.base/ena-dis-br.exp: XFAIL if the
	breakpoint hit messages include an address.

	* gdb.base/display.exp: Don't forget to escape parens in regular
	expressions.  Unix regexp notatation sucks.

1999-11-02  Elena Zannoni  <ezannoni@kwikemart.cygnus.com>

	* gdb.base/annota1.exp: Test for annotate-signalled: change output
	order for 'signalled' message.

1999-11-01  Stan Shebs  <shebs@andros.cygnus.com>

	From Jimmy Guo  <guo@cup.hp.com>:
	* gdb.base/annota1.exp: Add tests for annotate ignore count change.
	* gdb.base/annota1.c: Add code for tests to work with.

1999-10-26  Frank Ch. Eigler  <fche@cygnus.com>

	* gdb.base/remote.exp: New test for remote downloading settings.
	* gdb.base/remote.c: New file with large .data.

1999-10-18  Jim Blandy  <jimb@zwingli.cygnus.com>

	* gdb.threads/linux-dp.c, gdb.threads/linux-dp.exp: New test suite
	for LinuxThreads support, merged from the Code Fusion branch.

Mon Oct 11 13:57:21 1999  Andrew Cagney  <cagney@amy.cygnus.com>

	* lib/gdb.exp (gdb_run_cmd): Break complicated gdb_expect
	containing exp_continue into a while within an expect.  Don't
	attempt a start more than three times.  Check return value from
	gdb_load.

Wed Oct  6 12:05:58 1999  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdb.base/watchpoint.exp: Match fail ``finish from marker1'' with
	a pass case.

1999-10-01  Kevin Buettner <kevinb@cygnus.com>

	* gdb.base/break.c (main): Added a statement that we can step
	off of.
	* gdb.base/break.exp: Added tests for setting a breakpoint
	at an offset and stepping onto a breakpoint.

1999-10-01  Fred Fish  <fnf@cygnus.com>

	* gdb.base/help.exp (help add-symbol-file): Update to match current
	gdb output.

1999-09-18  Jim Blandy  <jimb@cris.red-bean.com>

	* gdb.base/break.exp: Code locations are in hex, don't forget!
	(For HP-UX.)

1999-09-17  Stan Shebs  <shebs@andros.cygnus.com>

	* condbreak.exp: Use break.c as test program.
	* condbreak.c: Remove, redundant with break.c.

1999-09-15  Stan Shebs  <shebs@andros.cygnus.com>

	* config/monitor.exp (gdb_target_monitor): Disable X- and
	Z-packets if the target needs it.

1999-09-13  James Ingham  <jingham@leda.cygnus.com>

	* gdb.c++/overload.exp: Added tests for listing overloaded
	functions with function pointers in the arg, explicitly calling
	out the version you want.

1999-09-09  Stan Shebs  <shebs@andros.cygnus.com>

	* long_long.exp: Add variations of test cases that work for
	targets with 16-bit ints and 32-bit doubles.

1999-09-08  Stan Shebs  <shebs@andros.cygnus.com>

	* break.c (main): Compare a possibly-uninitialized argc with an
	unlikely value that fits in 16 bits.

1999-09-07  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.base/restore.c, gdb.base/restore.exp: Use 0x7eeb instead of
	0xfeeb, don't want negative numbers if ints are 16 bits.

	* lib/gdb.exp (skip_cplus_tests): New proc.
	* gdb.c++/ambiguous.exp, gdb.c++/annota2.exp,
	gdb.c++/anon-union.exp, gdb.c++/classes.exp,
	gdb.c++/cplusfuncs.exp, gdb.c++/ctti.exp, gdb.c++/demangle.exp,
	gdb.c++/derivation.exp, gdb.c++/inherit.exp, gdb.c++/local.exp,
	gdb.c++/member-ptr.exp, gdb.c++/method.exp, gdb.c++/misc.exp,
	gdb.c++/overload.exp, gdb.c++/ovldbreak.exp,
	gdb.c++/ref-types.exp, gdb.c++/templates.exp, gdb.c++/userdef.exp,
	gdb.c++/virtfunc.exp: Use it to skip over C++ tests.

	* gdb.c++/cplusfuncs.exp: Use get_compiler_info consistently.

Fri Sep  3 15:37:12 1999  Kevin Buettner  <kevinb@cygnus.com>

	* gdb.base/corefile.exp (up): Allow a parameter to appear
	in the frame that we're going up to.

	From Jim Blandy <jimb@cygnus.com>:

	* gdb.base/default.exp (info float): Expect some output now.

	* gdb.base/callfuncs.exp (do_function_calls): We no longer expect
	returning floating-point values to fail on the x86.
	* gdb.base/callfwmall.exp (do_function_calls): Same.

	* gdb.base/list.exp (test_listsize): Correct expectations for
	listing line 1 with listsize 2.  Also, listing a single line
	works now, as does listing three lines.  [Kevin's note: There
	were a number of other cases fixed too where the expectations
	differed...]

1999-09-02  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.base/selftest.exp: Add case for when version prints as
	constant string instead of char pointer.

1999-08-25  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.base/ending-run.exp: Add Solaris case for what happens when
	stepping out of main.

	* gdb.c++/derivation.exp: XFAIL inf fn calls for all configs, if
	G++ used.

	* gdb.c++/local.exp: Expect ptype NestedInnerLocal to succeed
	always, expect ptype InnerLocal::NestedInnerLocal to fail always.

	* gdb.c++/ovldbreak.exp: Update match string in test that
	includes a warning of multiple breakpoints.

1999-08-24  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.base/display.exp: Improve precision of step-after-finish
	added yesterday.

	* gdb.base/signals.exp: Add extra wildcard to "handle all print"
	test.

	* gdb.c++/classes.exp: XFAIL HP-compiler-only tests for all
	configs when using G++, not just hppa*.

1999-08-24  Elena Zannoni  <ezannoni@kwikemart.cygnus.com>

	* gdb.base/async.c: New file.
	* gdb.base/async.exp: New file.

Tue Aug 24 03:24:53 1999  Jeffrey A Law  (law@cygnus.com)

	* gdb.base/break.exp: Tweak PA specific tests to properly handle
	PA64.

Mon Aug 23 10:25:20 1999  Jeffrey A Law  (law@cygnus.com)

	* gdb.base/display.exp: "finish" can leave us mid-line on many
	targets, deal with it.  Add a small constant to main, instead of
	1000 since main+1000 may not be a valid address in the target.

	* gdb.base/dollar.exp: Do not run for PA processors in wide mode
	on hpux11.

	* gdb.base/attach.exp: Handle another hpux11 error message variant
	when attaching to a process that does not exist.

1999-08-19  J.T. Conklin  <jtc@redback.com>

	* gdb.base/call-ar-exp.exp: Fix pattern matching whitespace
	characters in 'continue to 1241' test.

1999-08-17  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.base/call-ar-st.exp: Add a shorter match case for the
	stop in print_long_arg_list, define and use a whitespace
	variable in print_small_structs test, add an XFAIL for Solaris.
	* gdb.base/dbx.exp: XFAIL func commands until somebody is
	interested enough to fix.

1999-08-13  Keith Seitz  <keiths@cygnus.com>

	* gdb.base/dbx.exp (dbx_gdb_file_cmd): Rename to gdb_file_cmd.
	(dbx_gdb_load): Remove. Use gdb_load instead, since that
	proc knows about targets other than the natives.
	(test_assign): Use "gdb_run_cmd" to "run" the target.
	Check that we've actually hit the breakpoint at main.
	When we attempt to assign a value to a local variable, check
	that the variable is in the current scope, i.e., don't use
	a test with an empty result.

Tue Aug 10 15:25:16 1999  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdb.base/maint.exp: Add test of ``maintenance internal-error''
	command.

1999-08-09  Stan Shebs  <shebs@andros.cygnus.com>

	From Jimmy Guo <guo@cup.hp.com> and others at HP:
	gdb.hp: Move tests into subdirectories gdb.aCC, gdb.base-hp,
	gdb.compat, gdb.threads-hp.
	gdb.hp/configure, gdb.hp/configure.in: New files.
	gdb.hp/Makefile.in: Recurse into new subdirs.
	gdb.hp/gdb.defects: New directory, tests for HP bug reports.
	gdb.hp/gdb.objdbg: New directory, tests for debugging info
	in object files.
	gdb.hp/tools: New directory, aux tools for HP-specific tests.

1999-08-05  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.base/display.exp: Help expect by putting a newline in the
	funky printf, remove a bogus p/a test.

1999-08-05  Elena Zannoni  <ezannoni@kwikemart.cygnus.com>

	* gdb.base/display.exp: Make sure that when we say 'run', we are
	connected to the target. This is necessary when running not
	natively.

1999-08-03  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.base/step-test.exp: Removed some extraneous messages.

	* gdb.base/long_long.exp: Don't run memory examination tests
	on little-endian targets (they will need a different set of
	results to match).

1999-08-02  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.c++/virtfunc.exp: Expect to fail the virtual call tests
	until somebody decides to fix GDB.

	* gdb.base/long_long.c: Stop compiler complaint by specifying long
	constant as "ULL".
	* gdb.base/long_long.exp: Loosen x/c test, add partial result
	matches for a couple x/2 commands.

1999-07-30  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.c++/ref-types.cc, gdb.c++/ref-types.exp: Appease doschk
	by merging in ref-types2 tests.
	* gdb.c++/ref-types2.cc, gdb.c++/ref-types2.exp: Remove.

	From Jimmy Guo <guo@cup.hp.com> and others at HP:
	* gdb.c++/Makefile.in: Add standard actions.
	(EXECUTABLES): Rename from PROGS, update list.
	* gdb.c++/ambiguous.cc, gdb.c++/ambiguous.exp: Move to here
	from gdb.hp.
	* gdb.c++/anon-union.cc: Don't use anonymous struct, make
	foo and bar locals.
	* gdb.c++/anon-union.exp: Fix tests to match.
	* gdb.c++/classes.exp: Run if HP compiler used, add extra
	expect matches to handle output variations.
	* gdb.c++/cplusfuncs.cc: Make operator -> return foo *.
	* gdb.c++/cplusfuncs.exp: Update to match, allow word "class" in
	output, add HP alternatives for new and delete prints.
	* gdb.c++/ctti.exp, gdb.c++/cttiadd.cc, gdb.c++/cttiadd1.cc,
	gdb.c++/cttiadd2.cc, gdb.c++/cttiadd3.cc: Move here from gdb.hp.
	* gdb.c++/demangle.exp: Use $style when reporting failure.
	* gdb.c++/derivation.exp: Add some xfails if GCC-compiled.
	* gdb.c++/inherit.exp: Run if HP compiler used, add some
	match alternatives.
	* gdb.c++/local.exp: Add match alternatives or xfails for HP
	compilers.
	* gdb.c++/member-ptr.exp: Add xfails for hppa*-*-*.
	* gdb.c++/method.exp: Add match alternatives.
	* gdb.c++/misc.cc: Add bool types.
	* gdb.c++/misc.exp: Add tests for bool types.
	* gdb.c++/overload.exp: Add xfails.
	* gdb.c++/templates.cc: Remove bogus arglist init, init fvpchar.
	* gdb.c++/templates.exp: Run if HP compiler used, add some xfails,
	add some more template parameter tests (only for HP currently).
	* gdb.c++/userdef.exp: Add xfails for hppa*-*-*.
	* gdb.c++/virtfunc.cc: Add return type and value for main.
	* gdb.c++/virtfunc.exp: Run if HP compiler used, add some
	match alternatives.

1999-07-30  Elena Zannoni  <ezannoni@kwikemart.cygnus.com>

	* gdb.base/display.exp: Fix output of 'p/a &&j' test.

1999-07-29  Jim Blandy  <jimb@savonarola.red-bean.com>

	* gdb.base/signals.exp: Don't expect getting a backtrace from
	within a signal handler to fail on Linux.

1999-07-29  Stan Shebs  <shebs@andros.cygnus.com>

	From Jimmy Guo <guo@cup.hp.com> and others at HP:
	* lib/gdb.exp: Remove some gratuitious semicolons.
	(delete_breakpoints): Increase timeout.
	(gdb_expect): Add -notransfer option.
	(gdb_test): Use -notransfer option.
	(get_compiler_info): Add f77 case.
	(get_compiler): New proc, split out from gdb_preprocess, add f77
	case.
	(gdb_preprocess): Call get_compiler.

	* gdb.base/Makefile.in (EXECUTABLES): Update the list.
	* gdb.base/attach.exp, gdb.base/display.exp,
	gdb.base/ending-run.exp, gdb.base/gdbvars.exp,
	gdb.base/long_long.exp, gdb.base/printcmds.exp,
	gdb.base/structs.exp, gdb.base/structs2.exp: Remove or fill in
	third arg to gdb_test.
	* gdb.base/call-ar-st.exp: Add HP-UX xfail for >10-arg functions.
	* gdb.base/callfuncs.exp, gdb.base/callfwmall.exp: Remove some
	HP-UX xfails, add others.
	* gdb.base/completion.exp: Reflect name change of self-test.
	* gdb.base/condbreak.exp, gdb.base/corefile.exp,
	gdb.base/foll-exec.exp, gdb.base/interrupt.exp,
	gdb.base/ptype.exp, gdb.base/scope.exp, gdb.base/setvar.exp: Note
	HP failure number.
	* gdb.base/foll-vfork.exp: Loosen matches slightly, remove
	useless HP-UX 10.30 references.
	* gdb.base/maint.exp: Loosen matches.
	* gdb.base/pointers.c (main): Declare more_code.
	* gdb.base/pointers.exp: Match on output of a `next'.
	* gdb.base/structs.c: Add prototypes.
	* gdb.base/watchpoint.exp: Remove HP-UX 10.30 reference.
	* gdb.base/whatis.exp: Fail for both HP-UX 10.20 and 11.

1999-07-29  Elena Zannoni  <ezannoni@kwikemart.cygnus.com>

	* gdb.base/list.exp: Add tests for repeating 'list <linenum>'
	command.

1999-07-27  Elena Zannoni  <ezannoni@kwikemart.cygnus.com>

	* gdb.c++/annota2.exp: Fix delete breakpoint query testcase.
	Fix run to main failures. Watchpoint can be hardware watchpoint.

	* gdb.base/annota1.exp: Clean up some more, in case printf has
	debug info.  Deal with lack of signal hanlder info in stack.

	From Jim Kingdon  <kingdon@redhat.com>:
	* gdb.base/annota1.exp: If printf has debug info, deal with it.

1999-07-19  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.base/foll-exec.exp, gdb.base/foll-fork.exp,
	gdb.base/foll-vfork.exp: Don't run for crosses.

Tue Jul 13 23:37:18 1999  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdb.base/configure.in: Check for gdbvars.exp instead of
	a1-selftest.exp.
	* gdb.base/configure: Re-generate.

1999-07-12  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.base/selftest.exp: Rename from a1-selftest.exp, no point
	in trying to run first and name is too long.

	* gdb.base/pointers.c, gdb.base/pointers.exp: Add contents of
	pointers2.c and pointers2.exp, respectively.
	* gdb.base/pointers2.c, gdb.base/pointers2.exp: Remove, makes
	doschk happier.

1999-07-08  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.base/callfwmall.c, gdb.base/callfwmall.exp: Renamed from
	callfuncs2.c and callfuncs2.exp.

	* gdb.base/list.exp: Remove mistaken xfails.
	* gdb.base/list0.h: Add optional prototypes.

Wed Jul  7 00:27:35 1999  Andrew Cagney  <cagney@amy.cygnus.com>

	* gdb.base/setvar.exp: Increase the time-out on tests indirectly
	calling malloc.
	* nodebug.exp, printcmds.exp, ptype.exp, setvar.exp: Ditto.
	* ptype.exp: Move test for get_debug_format to before its first
	use.

1999-07-06  Elena Zannoni  <ezannoni@kwikemart.cygnus.com>

	* gdb.base/Makefile.in (EXECUTABLES): Remove annota2 executable.
	* gdb.base/annota2.cc, annota2.exp: Move from here.
	* gdb.c++/annota2.cc, annota2.exp: To here.
	* gdb.c++/Makefile.in (PROGS): Add annota2 executable.

Tue Jun 29 11:56:06 1999  Andrew Cagney  <cagney@b1.cygnus.com>

	* lib/gdb.exp (gdb_expect_list): Output one message per pattern in
	a consistent format.

1999-06-25  Stan Shebs  <shebs@andros.cygnus.com>

	From Jimmy Guo <guo@cup.hp.com> and others at HP:
	* lib/gdb.exp (get_compiler_info): Add detection for assorted
	HP compilers, also set the globals $true and $false.

	* gdb.base/annota1.c, bitfields.c, break.c, call-ar-st.c,
	call-rt-st.c, call-strs.c, callfuncs.c, callfuncs2.c, condbreak.c,
	coremaker.c, ending-run.c, exprs.c, funcargs.c, interrupt.c,
	jump.c, langs0.c, langs1.c, langs2.c, list0.c, list1.c,
	long_long.c, mips_pro.c, nodebug.c, opaque0.c, opaque1.c,
	printcmds.c, ptype.c, recurse.c, restore.c, return.c, run.c,
	scope0.c, scope1.c, setshow.c, setvar.c, shmain.c, shr1.c, shr2.c,
	sigall.c, signals.c, so-impl-ld.c, so-indr-cl.c, solib.c,
	solib1.c, solib2.c, step-test.c, twice.c, varargs.c, watchpoint.c,
	whatis.c} Add C++ compatible function definitions and return
	types, add includes for library functions.
	* gdb.base/ptype.c (my_false, my_true): Use instead of false/true.
	* gdb.base/step-test.c (myglob): Rename from glob.
	* gdb.base/attach.c, attach2.c, average.c, execd-prog.c,
	foll-exec.c, foll-fork.c, foll-vfork.c, sum.c, vforked-prog.c: New
	files, move here from gdb.hp.
	* gdb.base/annota1.exp, break.exp, call-ar-st.exp, call-rt-st.exp,
	commands.exp, condbreak.exp, define.exp, ena-dis-br.exp,
	ending-run.exp, jump.exp. list.exp, long_long.exp, so-impl-ld.exp:
	Adjust line numbers in regexps.

	* gdb.base/all-bin.exp, eval-skip.exp, exprs.exp, logical.exp,
	miscexprs.exp, pointers.exp, relational.exp: Use $true and $false
	instead of 0/1.

	* gdb.base/attach.exp, dbx.exp, foll-exec.exp, foll-fork.exp,
	foll-vfork.exp: New files, move here from gdb.hp.
	* gdb.base/page.exp: New file, test of pagination command.

	* gdb.base/watchpoint.c (recurser): New function, for watchpoint
	recursion test.
	* gdb.base/watchpoint.exp: Add more test cases for watchpoints.

	* gdb.base/so-impl-ld.exp, gdb.base/so-indr-cl.exp,
	gdb.base/solib.exp: Fix compiler invocation process.

	* gdb.base/callfuncs.exp, gdb.base/callfuncs2.exp: Don't xfail for
	HP-UX 11, turn off overload resolution explicitly.
	* gdb.base/commands.exp: Set argument list explicitly, add
	watchpoint test.
	* gdb.base/completion.exp: Enable if HP-UX, tweak tests to make
	them work.
	* gdb.base/constvars.exp, gdb.base/volatile.exp: Escape the
	expressions properly.
	* gdb.base/corefile.exp: Loosen the match slightly.
	* gdb.base/default.exp: Allow "Error accessing memory" message
	also.
	* gdb.base/display.exp: Skip over x/0 j if PA64.
	* gdb.base/funcargs.exp: Add xfails for HP-UX.
	* gdb.base/interrupt.exp: Ditto.
	* gdb.base/langs.exp: Add symbolic matches governed by compiler
	in use.
	* gdb.base/list.exp: Add xfails for HP-UX.
	* gdb.base/long_long.exp: Refine some of the numeric matches.
	* gdb.base/mips_pro.exp: Xfail on HP-UX.
	* gdb.base/miscexprs.exp: Add PA2.0 case for array size test.
	* gdb.base/nodebug.exp: Succeed on more varieties of output.
	* gdb.base/opaque.exp: Remove some HP-UX xfails.
	* gdb.base/ptype.exp: Succeed on more varieties of output.
	* gdb.base/scope.exp: Add xfails for HP-UX.
	* gdb.base/sect-cmd.exp: Add more cases.
	* gdb.base/setvar.exp: Add xfails for HP-UX.
	* gdb.base/shlib-call.exp: Loosen some matches slightly.
	* gdb.base/signals.exp: Match on void symbolically.
	* gdb.base/step-test.exp: Add case for PA64.
	* gdb.base/term.exp: Add exit and restart.
	* gdb.base/twice.exp: Clean up after self.
	* gdb.base/varargs.exp: Disable overload resolution explicitly.
	* gdb.base/whatis.exp: Allow more ways to pass tests.

	* gdb.base/smoke.exp, gdb.base/smoke.c, gdb.base/smoke.cc: Remove,
	no longer useful.

Fri Jun 25 19:27:28 1999  Andrew Cagney  <cagney@b1.cygnus.com>

	* lib/gdb.exp (proc gdb_expect_list): New procedure.  Matches a
	list of patterns.
	* gdb.base/call-ar-st.exp: Use gdb_expect_list in "print
	print_double_array(double_array)", "continuing to breakpoint
	1018", "print print_double_array(array_d)" and "continuing to
	1034" tests.

1999-06-24  Jason Molenda  (jsm@bugshack.cygnus.com)

	* Makefile.in: Add empty html and install-html targets.

1999-06-24  Stan Shebs  <shebs@andros.cygnus.com>

	* config/mt-*: Remove, these haven't been used since 1996.

1999-06-22  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.base/call-strs.c, gdb.base/ending-run.c,
	gdb.base/step-test.c: Include stdlib.h and string.h as needed.
	* gdb.c++/member-ptr.exp: Skip over these tests if using G++.

1999-06-18  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.c++/overload.exp: XFAIL everything if using G++, add a
	simpler match case for the ptype of the big class.

1999-06-16  Fernando Nasser  <fnasser@totem.to.cygnus.com>

	* gdb.exp: Fix test for gdb_prompt existence.

1999-06-16  Fernando Nasser  <fnasser@totem.to.cygnus.com>

	* gdb.exp (gdb_test): Add fail after calls to perror.

1999-06-16  Fernando Nasser  <fnasser@totem.to.cygnus.com>

	* gdb.exp (gdb_test): Accept variations of Undefined command messages.

1999-06-16  Fernando Nasser  <fnasser@totem.to.cygnus.com>

	* gdb.exp (gdb_test): Fix anchors on gdb_expect statement.

Fri Jun 11 12:56:50 1999  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdb.base/call-strs.c (link_malloc): New function.  Ensure that
	malloc() is linked in.

1999-06-08  Fernando Nasser  <fnasser@totem.to.cygnus.com>

	* gdb.base/ending-run.exp: Make sure we fail and do not timeout at
	step at end.

	* gdb.base/annota1.exp: Increase match_max to prevent timeout.

1999-06-08  Jim Blandy  <jimb@zwingli.cygnus.com>

	* gdb.java/jv-print.exp: New file.  (Our first Java test!)

Fri Jun  4 10:47:46 1999  Jeffrey A Law  (law@cygnus.com)

	* gdb.base/a1-selftest.exp: Remove bogus hppa xfail.
	* gdb.base/mips_pro.exp: Likewise.

1999-06-02  Keith Seitz  <keiths@cygnus.com>

	* gdb.c++/templates.cc: Change all "new" operators to throw
	an exception.
	* gdb.c++/cplusfuncs.cc: Likewise.

	* gdb.base/Makefile.in (EXECUTABLES): Add smoke1, annota1, and annota2.

Wed Jun  2 17:37:05 1999  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdb.base/condbreak.exp: Use rerun_to_main to start the program.
	* gdb.base/ending-run.exp: When stepping out of main, accept a
	step into an arbitrary assembler file.

1999-05-20  Elena Zannoni  <ezannoni@kwikemart.cygnus.com>

	* gdb.base/annota1.exp: Allow any number of "frames-invalid" and
	"breakpoint-invalid" to be printed.
	* gdb.base/annota2.exp: Revise line number for main breakpoint. Allow any
	number of "frames-invalid" and "breakpoint-invalid" to be printed.
	* gdb.base/annota2.cc: Initialize a.x to 0.

1999-05-17  Keith Seitz  <keiths@cygnus.com>

	* gdb.base/call-ar-st.exp: Skip "print print_double_array (double_array)"
	when "skip_float_tests" set.
	Ditto for "print print_double_array(array_d)", "print print_small_structs",
	"print print_ten_doubles", and "step into print_long_arg_list".
	Don't assume we can step into "print_long_arg_list": we could step into memcpy.
	* gdb.base/call-rt-st.exp: Don't run float-related tests when "skip_float_tests"
	is set: "print print_one_double(*d1)" and "print print_two_floats(*f3)".
	* gdb.base/funcargs.exp: Don't run "float_and_integral_args" when
	"skip_float_tests" is set.
	* gdb.base/varargs.exp: Skip "print find_max_double(5,1.0,17.0,2.0,3.0,4.0)"
	when "skip_float_tests" set.

1999-05-06  Keith Seitz  <keiths@cygnus.com>

	* gdb.base/annota2.cc: Include stdio.h.

Wed May  5 17:44:31 1999  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.base/crossload.exp: Remove, this has been disabled ever
	since BFD stopped including all targets, and cross-GDB gets
	plenty of testing anyway.
	* gdb.base/i486-elf.u, gdb.base/m68k-aout.u, gdb.base/m68k-elf.u,
	gdb.base/sparc-aout.u, gdb.base/i860-elf.u, gdb.base/m68k-aout2.u,
	gdb.base/mips-ecoff.u, gdb.base/sparc-elf.u: Remove.
	* gdb.base/README: Remove, was doc for this.
	* gdb.base/Makefile.in (CROSS_EXECUTABLES): Remove, no longer
	needed.

1999-05-04  Elena Zannoni  <ezannoni@kwikemart.cygnus.com>

	* gdb.base/call-ar-st.exp: Fix one regular expression in test
	output.

	* gdb.base/annota1.exp: New file. Annotation level 2 tests.
	* gdb.base/annota2.exp: New file. More annotation tests.
	* gdb.base/annota1.c: New file. Source file for annota1.exp.
	* gdb.base/annota2.cc: New file. Source file for annota2.exp.

1999-04-23  Angela Marie Thomas <angela@cygnus.com>

	* config/cfdbug.exp: New file.

1999-04-20  Jim Blandy  <jimb@zwingli.cygnus.com>

	* gdb.c++/demangle.exp (test_gnu_style_demangling): Add tests for
	Marcus Daniel's and Dale Hawkins's demangler crashes.

	* gdb.c++/demangle.exp (test_gnu_style_demangling,
	test_lucid_style_demangling, test_arm_style_demangling,
	test_hp_style_demangling): Try Tom Tromey's core-dumping
	identifier under each demangling style.

1999-04-07  Jim Blandy  <jimb@zwingli.cygnus.com>

	* gdb.c++/demangle.exp: Include the current demangling style
	in all test names.
	(current_demangling_style): New global variable.
	(set_demangling_style, test_demangling_core, test_demangling,
	test_demangling_exact): New functions.
	(test_gnu_style_demangling, test_lucid_style_demangling,
	test_arm_style_demangling, test_hp_style_demangling): Use those,
	instead of calling gdb_test and gdb_test_exact directly.
	(catch_demangling_errors): New function, which reports errors
	signalled by the demangling test functions in an orderly way.
	(do_tests): Use catch_demangling_errors.

1999-04-06  Jim Blandy  <jimb@zwingli.cygnus.com>

	* gdb.base/signals.exp (test_handle_all_print): Use () for
	grouping in expressions, not {}.

	* gdb.base/smoke.exp: Test value of x, not y.  The latter isn't
	initialized yet.

1999-04-01  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.c++/derivation.exp: Pass ptype tests if synthesized methods
	are listed.

1999-03-26  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.stabs/weird.exp: Test for CC being defined before
	looking at its value.

1999-03-25  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.base/call-ar-st.exp: Remove stray '#'.
	* gdb.base/miscexprs.exp: Allow "short" and "long" as well as
	"short int" and "long int".
	* gdb.c++/overload.cc: Cast the string added in the previous
	change, to mollify finicky HP compiler.
	* gdb.hp/reg-test.exp (testfile): Fix file name.
	* gdb.stabs/weird.exp: Don't try to run if HP compiler in use.

	* gdb.c++/misc.cc (main): Initialize obj_with_enum.
	* gdb.c++/classes.exp: Fix test of obj_with_enum values, allow
	alternate form of enum ptype.

1999-03-23  Stan Shebs  <shebs@andros.cygnus.com>

	* lib/gdb.exp (skip_hp_tests): Remove gcc_used argument.
	* gdb.hp/*.exp: Change all to run compiler probe only after
	passing skip_hp_tests, so as not to waste time on guaranteed
	failure.

	* gdb.c++/overload.cc: Pass string instead of char addr, always
	init ccpfoo.
	* gdb.c++/templates.cc: Fix syntax error.

Tue Mar 23 14:56:36 1999  Elena Zannoni  <ezannoni@kwikemart.cygnus.com>

	* gdb.base/commands.exp: Add test for correct position of '>'
	when issuing the 'commands' command after a 'while' or 'if'
	command.

1999-03-18  James Ingham  <jingham@cygnus.com>

	* gdb.c++/ovldbreak.exp: Use gdb_continue_to_end

	* gdb.c++/method.exp: It was testing an uninitialized int on the
	stack and assuming it was positive.

	* gdb.base/watchpoint.exp: Use gdb_continue_to_end.

	* gdb.base/step-test.exp: Catch a case where finish is broken and
	keep it from killing the rest of the tests.
	Use gdb_continue_to_end.

	* gdb.base/sigall.exp: use gdb_continue_to_end.

	* gdb.base/ena-dis-br.exp: use gdb_continue_to_end.

	* gdb.base/display.exp: use runto_main, not run.

	* gdb.base/default.exp: Check for the current error message in the
	r abbreviation test.
	Add strongarm to the targets that know info float.

	* gdb.base/condbreak.exp: Use the gdb_run command rather than just
	run which doesn't work with monitors.

	* gdb.base/call-ar-st.exp: fixed bogus regexp in continuing to 1034 test.

	* gdb.base/break.exp: use the gdb_continue_to_end proc.

	* lib/gdb.exp: I had added gdb_continue_to_end used to run to the end of a
	program.  Traps the case (in Cygmon) when the program never really
	exits.  Same as Mark's continue_to_exit, but I had put it in a lot
	more places, so I used my name.  Sorry Mark...

	* config/monitor.exp (gdb_target_monitor): added another
	target_info parameter: remotebinarydownload.  This will set the
	remotebinarydownload flag if this is causing some boards trouble.

1999-03-18  Mark Salter  <msalter@cygnus.com>

	* lib/gdb.exp (continue_to_exit): New function.

	* gdb.base/ena-dis-br.exp: Clean up for remote targets.
	* gdb.base/ending-run.exp: Ditto.
	* gdb.base/step-test.exp: Ditto.

1999-03-16  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.base/miscexprs.c: Clean up file, clear cbig.c[0] explicitly
	(suggested by Art Haas <ahaas@neosoft.com>).

1999-03-16  Jim Blandy  <jimb@zwingli.cygnus.com>

	* gdb.base/signals.exp: Filter out *-*-linux* before matching *-*-gnu*.

Fri Mar 12 18:06:21 1999  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.c++/ref-types.exp, ref-types2.exp: Allow alternate
	descriptions of types (short unsigned int vs unsigned short, etc).

1999-03-12  Jim Blandy  <jimb@zwingli.cygnus.com>

	* gdb.base/call-strs.exp: Don't assume that `step' will step over
	a call to strlen; sometimes we do have sources.

1999-03-08  Jim Blandy  <jimb@zwingli.cygnus.com>

	* gdb.base/call-ar-st.c (main): Terminate char_array with a null
	character, so GDB won't print garbage after its end.

	* gdb.base/call-ar-st.exp: Don't step into sum_array_print; set a
	breakpoint there instead.  Sometimes GCC emits memcpy to handle
	the large structures being passed by value, so we step into that
	instead of sum_array_print, which obscures what we're really testing.
	* gdb.base/step-test.exp: However, we do want a test that notices
	the bizarre steps into memcpy, so do that here.	 Add check for
	stepping into function calls that pass large structures by value.
	("Is that a noun clause, or are you just happy to see me?")
	Remove all references to specific line numbers.
	* gdb.base/step-test.c (struct rhomboidal, large_struct_by_value):
	New type and function.
	(main): Call large_struct_by_value, passing it a large struct by value.
	* lib/gdb.exp (gdb_get_line_number): New function.

	* gdb.base/step-test.exp: Rewrite `stepi' and `nexti' tests to be
	more portable.

1999-03-08  Jim Blandy  <jimb@zwingli.cygnus.com>

	* lib/gdb.exp: Doc fixes.

1999-03-05  Nick Clifton  <nickc@cygnus.com>

	* gdb.base/a2-run.exp: Add expected fails for strongarm-coff.

1999-03-04  Jim Blandy  <jimb@zwingli.cygnus.com>

	* gdb.base/display.exp: Don't exercise the "detach" and "kill"
	commands.  They're not germane to this test, and they don't work
	that way on remote targets.

1999-03-01  James Ingham  <jingham@cygnus.com>

	* Changelog entries merged over from gdb development branch.

       Tue Jan  5 12:33:47 1999  Keith Seitz  <keiths@cygnus.com>

	       * lib/gdb.exp (gdbtk_analyze_results): Generic function
	       for outputting results of test run.

	1998-12-07  Martin M. Hunt  <hunt@cygnus.com>

	       * lib/gdb.exp (gdbtk_start): Fix path for itcl library.

1999-02-25  Felix Lee  <flee@cygnus.com>

	* lib/gdb.exp (debug_format): initialize

1999-02-25  Jason Molenda  (jsm@bugshack.cygnus.com)

	* gdb.base/call-ar-st.c: Include string.h, not strings.h.
	* gdb.base/call-rt-st.c: Ditto.

1999-02-13  Jim Blandy  <jimb@zwingli.cygnus.com>

	* gdb.threads/pthreads.exp (horiz): New variable.
	(test_startup): Fix regexps that capture thread numbers.

1999-02-10  Jason Molenda  (jsm@bugshack.cygnus.com)

	* gdb.base/smoke.exp: Disambiguate two test case names (both
	called ``print'').

Fri Feb  5 12:42:56 1999  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.base/volatile.exp: Use gdb_test, add xfails for GCC
	compilation.

1999-02-04  Jason Molenda  (jsm@bugshack.cygnus.com)

	* gdb.base/miscexprs.exp: Change patterns to match GDB's
	actual output formatting.
	* gdb.base/smoke.exp: GDB removes leading 0's.
	* gdb.base/volatile.exp: Don't check type of remuneration;
	that variable is no longer defined in constvars.c.
	* gdb.base/step-test.c (main): Exit with explicit exit code.
	* gdb.base/step-test.exp: Remove two nexti checks--they are
	not portable.

1999-02-04  Jason Molenda  (jsm@bugshack.cygnus.com)

	* gdb.base/help.exp ("help delete display"): Fix test to match
	gdb's output.

	* gdb.base/long_long.c (known_types): Initialize values to zero.
	* gdb.base/long_long.exp: Step one more line
	so 'dec' is initialized in "get to known place".  GDB removes
	leading zeros.  Explicitly ask for hex formatting.  Use
	unique test case names.

Tue Feb  2 10:16:08 1999  Elena Zannoni  <ezannoni@kwikemart.cygnus.com>

	* lib/gdb.exp (gdb_preprocess): Remove 'puts' statement.

	* gdb.c++/method.exp: Add missing close brace.

1999-01-30  Jim Blandy  <jimb@zwingli.cygnus.com>

	* gdb.base/maint.exp: Use 'set height 0' to disable page
	prompting, not 'set height 400'.

	Fix a bunch of timeouts.
	* gdb.base/maint.exp ("maint print objfiles"): Break this up into
	four separate tests, so expect doesn't take forever to match a ton
	of text against a regexp with lots of .* forms.
	("maint print psymbols", "maint print symbols"): Make some of
	these greps more selective, so that expect doesn't try to wade
	through huge piles of output and time out.

	* gdb.base/maint.exp ("maint print msymbols"): Fix pattern.

	* gdb.base/maint.exp ("maint info breakpoints"): Split into two
	tests: one which doesn't expect shlib events to be reported, and
	another which does, but is XFAIL for all platforms other than
	HP/UX.

	* gdb.base/break.exp: Teach the test suite that the `catch
	fork', `catch vfork', and `catch exec' commands produce error
	messages on platforms that don't provide these features.

Mon Jan 25 18:35:56 1999  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.hp/gen-so-thresh.c, so-thresh.sh, so-thresh.exp,
	so-thresh.linkopts, so-thresh.mk: Move to gdb.hp from gdb.base
	(shortening names from solib_threshold.exp etc), won't run on
	anything but HP-UX for the foreseeable future.
	* gdb.hp/Makefile.in, gdb.base/Makefile.in (clean): Adjust to
	reflect move.

Thu Jan 21 15:46:49 1999  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.base/Makefile.in, gdb.c++/Makefile.in,
	gdb.trace/Makefile.in (clean): Remove all test executables.

Tue Jan 19 17:20:09 1999  David Taylor  <taylor@texas.cygnus.com>

	* gdb.base/shlib-call.exp: add test cases to verify that gdb
	successfully re-sets breakpoints in shared libraries.
	* gdb.base/shmain.c (main): return 0, don't fall off the end.

Fri Jan 15 14:04:57 1999  Elena Zannoni  <ezannoni@kwikemart.cygnus.com>

	* gdb.hp/xdb3.exp: do not execute unless on hppa-hpux platform
	and compiled w/o GCC.

	* gdb.hp/watch-cmd.exp: ditto.

	* gdb.hp/watch-hp.exp: ditto.

	* gdb.hp/xdb1.exp: ditto.

	* gdb.hp/xdb2.exp: ditto.

	* gdb.hp/dbx.exp: ditto.

Thu Jan 14 18:36:48 1999  Stan Shebs  <shebs@andros.cygnus.com>

	* constvars.c: Remove C++-isms.
	* constvars.exp: Use gdb_test everywhere, add xfails if compiled
	with GCC.

Mon Jan 11 10:08:03 1999  David Taylor  <taylor@texas.cygnus.com>

	The following changes are part of the HP merge.

	* gdb.base/break.exp: new tests to verify that catchpoints for
	fork, vfork, and exec don't trigger inappropriately.

	* gdb.base/opaque.exp: compile one file at a time, then link.

	* gdb.base/signals.exp: be more restrictive about which hppa
	systems receive a setup_xfail.  new tests.

	* gdb.base/solib_threshold.build: new file.
	* gdb.base/solib_threshold.exp: new file.
	* gdb.base/solib_threshold.link_opts: new file.
	* gdb.base/solib_threshold.mk: new file.
	* gdb.base/gen_solib_threshold.c: new file.

	* gdb.c++/classes.exp: if on HPUX and not using gcc, skip the
	tests.  New tests for enums inside classes.

	* gdb.c++/compiler.cc: indicate support of template debugging.

	* gdb.c++/demangle.exp: run hp style demangling tests.

	* gdb.c++/inherit.exp: if on HPUX and not using gcc, skip the
	tests.

	* gdb.c++/misc.cc: changes to support new tests.

	* gdb.c++/templates.cc: changes to support HP's compiler; changes
	to support new tests.

	* gdb.c++/virtfunc.exp: if we are on HPUX and we are not using
	gcc, then skip these tests.

Sun Jan 10 23:44:11 1999  David Taylor  <taylor@texas.cygnus.com>

	The following files are part of the HP merge; some had longer
	names at HP, but have been renamed to be no more than 14
	characters in length.

	* gdb.hp/ambiguous.cc: new file.
	* gdb.hp/ambiguous.exp: new file.
	* gdb.hp/attach.exp: new file.
	* gdb.hp/attach2.exp: new file.
	* gdb.hp/classes-hp.exp: new file.
	* gdb.hp/ctti.exp: new file.
	* gdb.hp/ctti-add.cc: new file.
	* gdb.hp/ctti-add1.cc: new file.
	* gdb.hp/ctti-add2.cc: new file.
	* gdb.hp/ctti-add3.cc: new file.
	* gdb.hp/dbx.exp: new file.
	* gdb.hp/exception.cc: new file.
	* gdb.hp/exception.exp: new file.
	* gdb.hp/foll-exec.c: new file.
	* gdb.hp/foll-exec.exp: new file.
	* gdb.hp/foll-fork.c: new file.
	* gdb.hp/foll-fork.exp: new file.
	* gdb.hp/foll-vfork.c: new file.
	* gdb.hp/foll-vfork.exp: new file.
	* gdb.hp/inherit-hp.exp: new file.
	* gdb.hp/more-steps.exp: new file.
	* gdb.hp/namespace.cc: new file.
	* gdb.hp/namespace.exp: new file.
	* gdb.hp/optimize.exp: new file.
	* gdb.hp/pxdb.c: new file.
	* gdb.hp/pxdb.exp: new file.
	* gdb.hp/quicksort.exp: new file.
	* gdb.hp/reg-test.exp: new file.
	* gdb.hp/reg-test.s: new file.
	* gdb.hp/sized-enum.c: new file.
	* gdb.hp/sized-enum.exp: new file.
	* gdb.hp/start-stop.exp: new file.
	* gdb.hp/templ-hp.cc: new file.
	* gdb.hp/templ-hp.exp: new file.
	* gdb.hp/thr-lib.c: new file.
	* gdb.hp/thr-lib.exp: new file.
	* gdb.hp/thr-lib.h: new file.
	* gdb.hp/thr-liblib.c: new file.
	* gdb.hp/virtfun-hp.c: new file.
	* gdb.hp/virtfun-hp.exp: new file.
	* gdb.hp/watch-cmd.exp: new file.
	* gdb.hp/watch-hp.exp: new file.
	* gdb.hp/xdb1.exp: new file.
	* gdb.hp/xdb2.exp: new file.
	* gdb.hp/xdb3.exp: new file.

Wed Jan  6 18:41:15 1999  David Taylor  <taylor@texas.cygnus.com>

	The following files are part of the HP merge; some had longer
	names at HP, but have been renamed to be no more than 14
	characters in length.

	* gdb.base/ss.h: new file.
	* gdb.base/call-ar-st.c: new file.
	* gdb.base/call-ar-st.exp: new file.
	* gdb.base/call-rt-st.c: new file.
	* gdb.base/call-rt-st-exp: new file.
	* gdb.base/call-strs.exp: new file.
	* gdb.base/ena-dis-br.exp: new file.
	* gdb.base/environ.exp: new file.
	* gdb.base/long_long.exp: new file.
	* gdb.base/sect-cmd.exp: new file.
	* gdb.base/shlib-cl2.exp: new file.
	* gdb.base/smoke.exp: new file.
	* gdb.base/so-impl-ld.c: new file.
	* gdb.base/so-impl-ld.exp: new file.
	* gdb.base/so-indr-cl.c: new file.
	* gdb.base/so-indr-cl.exp: new file.
	* gdb.base/varargs.exp: new file.
	* gdb.base/volatile.exp: new file.
	* gdb.base/whatis-exp.exp: new file.
	* gdb.base/display.exp: new file.
	* gdb.c++/derivation.exp: new file.
	* gdb.c++/local.exp: new file.
	* gdb.c++/member-ptr.exp: new file.
	* gdb.c++/overload.exp: new file.
	* gdb.c++/ovldbreak.exp: new file.
	* gdb.c++/ref-types.exp: new file.
	* gdb.c++/ref-types2.exp: new file.
	* gdb.c++/userdef.exp: new file.

Wed Jan  6 13:50:57 1999  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.base/default.exp: Reflect wording change in remote.c.

Tue Jan  5 19:14:51 1999  Michael Snyder  <msnyder@cygnus.com>

	* gdb.base/help.exp: Update to reflect current text.

Tue Jan  5 13:05:32 1999  David Taylor  <taylor@texas.cygnus.com>

	* gdb.c++/anon-union.cc: make foo and bar global, otherwise
	they're stack variables and contain garbage.
	* gdb.c++/anon-union.exp: new file.

	The following changes were made by David Taylor
	<taylor@cygnus.com>, Elena Zannoni <ezannoni@cygnus.com>, and
	Edith Epstein <eepstein@cygnus.com> as part of a project to merge
	in changes by HP.

	* gdb.base/bitops.exp: new file.
	* gdb.base/default.exp: change expected messages for catch and
	info catch tests to reflect HP merge changes.
	* gdb.base/enable-disable-break.exp
	* gdb.base/ending-run.c: new file.
	* gdb.base/long_long.c: new file.
	* gdb.base/maint.exp: new file.
	* gdb.base/pointers2.exp: new file.
	* gdb.base/shlib-call2.exp: new file.
	* gdb.base/solib.exp: new file.
	* gdb.base/step-test.c: new file.
	* gdb.c++/anon-union.cc: new file.
	* gdb.c++/local.cc: new file.
	* gdb.c++/member-pointer.cc: new file.
	* gdb.c++/method.cc: new file.
	* gdb.c++/ref-types.cc: new file.
	* gdb.c++/ref-types2.cc: new file.
	* gdb.c++/userdef.cc: new file.

	* gdb.base/scope.exp: compile one file at a time, then link.
	* gdb.base/langs.exp: ditto.
	* gdb.base/list.exp: ditto.

Mon Jan  4 10:06:43 1999  David Taylor  <taylor@texas.cygnus.com>

	The following changes were made by David Taylor
	<taylor@cygnus.com>, Elena Zannoni <ezannoni@cygnus.com>, and
	Edith Epstein <eepstein@cygnus.com> as part of a project to merge
	in changes by HP.

	* gdb.c++/inherit.exp: if on hppa*-*-hpux* and not using gcc,
	skip tests.  When compiling pass c++ flag to gdb_compile.
	* gdb.c++/

	* lib/gdb.exp (get_compiler_info): new, optional argument -- args;
	test for on hppa*-*-hpux*; use args to see if c++ was specified.
	(skip_hp_tests): new function.
	(gdb_preprocess): new function.

	* configure.in (hpdir): decide whether to configure gdb.hp.
	* configure: regenerated.

	* gdb.base/Makefile.in (MISCELLANEOUS): new macros -- extra things
	to delete on clean.
	(EXECUTABLES): update to reflect new additions.
	* gdb.base/commands.exp: update message expected.
	* gdb.base/default.exp: add copyright notice.
	* gdb.base/funcargs.exp (timeout): if hpux, increase timeout.
	* gdb.base/help.exp: update messages to reflect current text.
	* gdb.base/recurse.exp: add hpppa*-*-bsd* to 'list' of enabled
	targets for recurse tests.
	* gdb.base/watchpoint.exp: if on hpux and not gcc compiled, then
	skip this file.

	* gdb.c++/Makefile.in (PROGS): update to reflect new executables.
	* gdb.c++/cplusfuncs.exp: tell gdb_compile that it's a c++
	compilation.
	* gdb.c++/misc.exp: ditto.
	* gdb.c++/templates.exp: if we're on hpux and it's not gcc, don't
	run the tests.  tell gdb_compile that it's a c++ compilation.

	* gdb.threads/pthreads.exp: fix typo in message.

	* gdb.base/all-bin.exp: new file.
	* gdb.base/arithmet.exp: new file.
	* gdb.base/assign.exp: new file.
	* gdb.base/completion.exp: new file.
	* gdb.base/cond-expr.exp: new file.
	* gdb.base/condbreak.exp: new file.
	* gdb.base/define.exp: new file.
	* gdb.base/dollar.exp: new file.
	* gdb.base/environment.exp: new file.
	* gdb.base/eval-skip.exp: new file.
	* gdb.base/jump.exp: new file.
	* gdb.base/logical.exp: new file.
	* gdb.base/pointers.exp: new file.
	* gdb.base/relational.exp: new file.
	* gdb.base/section_command.exp: new file.
	* gdb.base/whatis-expr.exp: new file.

	* gdb.base/all-types.c: new file.
	* gdb.base/call-array-struct.c: new file.
	* gdb.base/call-return-struct.c: new file.
	* gdb.base/call-strings.c: new file.
	* gdb.base/callfuncs2.c: new file.
	* gdb.base/condbreak.c: new file.
	* gdb.base/constvars.c: new file.
	* gdb.base/display.c: new file.
	* gdb.base/int-type.c: new file.
	* gdb.base/jump.c: new file.
	* gdb.base/miscexprs.c: new file.
	* gdb.base/pointers.c: new file.
	* gdb.base/pointers2.c: new file.
	* gdb.base/shmain.c: new file.
	* gdb.base/shr1.c: new file.
	* gdb.base/shr2.c: new file.
	* gdb.base/solib.c: new file.
	* gdb.base/solib1.c: new file.
	* gdb.base/solib2.c: new file.
	* gdb.base/varargs.c: new file.
	* gdb.c++/derivation.cc: new file.
	* gdb.c++/overload.cc: new file.
	* gdb.c++/ovldbreak.cc: new file.
	* gdb.hp/attach.c: new file.
	* gdb.hp/attach2.c: new file.
	* gdb.hp/average.c: new file.
	* gdb.hp/compiler.c: new file.
	* gdb.hp/compiler.cc: new file.
	* gdb.hp/execd-program.c: new file.
	* gdb.hp/follow-exec.c: new file.
	* gdb.hp/follow-fork.c: new file.
	* gdb.hp/follow-vfork-and-exec.c: new file.
	* gdb.hp/misc-hp.cc: new file.
	* gdb.hp/more-steps.c: new file.
	* gdb.hp/optimize.c: new file.
	* gdb.hp/quicksort.c: new file.
	* gdb.hp/run-hp.c: new file.
	* gdb.hp/start-stop.c: new file.
	* gdb.hp/sum.c: new file.
	* gdb.hp/templates-hp.cc: new file.
	* gdb.hp/thread-local-in-lib.c: new file.
	* gdb.hp/thread-local-in-lib.h: new file.
	* gdb.hp/thread-local-in-lib.lib.c: new file.
	* gdb.hp/vforked-program.c: new file.
	* gdb.hp/virtfunc-hp.cc: new file.
	* gdb.hp/watchpoint-hp.c: new file.
	* gdb.hp/xdb.c: new file.
	* gdb.hp/xdb0.c: new file.
	* gdb.hp/xdb0.h: new file.
	* gdb.hp/xdb1.c: new file.

Mon Dec 21 14:08:38 1998  David Taylor  <taylor@texas.cygnus.com>

	The following change was made by Edith Epstein
	<eepstein@cygnus.com> as part of a project to merge in changes
	originally made by HP; HP did not create ChangeLog entries.

	* gdb.c++/demangle.exp: changed the expected output for some
	ARM-style mangling -- removed second reference to datatype.
	For example, maint demangle __dt__11T1__pt__2_cFv
		     T1<char>::~T1<char>(void)
	becomes,
		     maint demangle __dt__11T1__pt__2_cFv
		     T1<char>::~T1(void)

	(test_hp_style_demangling): new hp specific demangling test cases.

Mon Dec 14 15:07:03 1998  Jeffrey A Law  (law@cygnus.com)

	* gdb.trace/actions.exp: Ignore compiler warnings compiling actions.c
	* gdb.trace/backtrace.exp: Likewise.
	* gdb.trace/circ.exp: Likewise.
	* gdb.trace/collection.exp: Likewise.
	* gdb.trace/deltrace.exp: Likewise.
	* gdb.trace/infotrace.exp: Likewise.
	* gdb.trace/limits.exp: Likewise.
	* gdb.trace/packetlen.exp: Likewise.
	* gdb.trace/passc-dyn.exp: Likewise.
	* gdb.trace/passcount.exp: Likewise.
	* gdb.trace/report.exp: Likewise.
	* gdb.trace/save-trace.exp: Likewise.
	* gdb.trace/tfind.exp: Likewise.
	* gdb.trace/tracecmd.exp: Likewise.
	* gdb.trace/while-dyn.exp: Likewise.
	* gdb.trace/while-stepping.exp: Likewise.

1998-12-07  Jim Blandy  <jimb@zwingli.cygnus.com>

	* gdb.base/restore.exp, gdb.base/restore.c: New tests.

Wed Dec  2 20:03:53 1998  Stan Shebs  <shebs@andros.cygnus.com>

	From Brendan Kehoe:
	* gdb.c++/cplusfuncs.cc, misc.cc, virtfunc.cc: Add now-required
	int return types.

Sat Oct 24 18:04:22 1998  Felix Lee  <flee@cygnus.com>

	* config/slite.exp (gdb_load): use gdb_file_cmd, so we can do
	remote dos host testing right.

Mon Oct 19 01:31:59 1998  Felix Lee  <flee@cygnus.com>

	* gdb.base/corefile.exp: remove some xfails.

Thu Oct 15 10:04:38 1998  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdb.base/reread.exp: Sleep 1 - ensures that the two executables
	have different timestamps.

Thu Oct  1 20:56:14 1998  Andrew Cagney  <cagney@b1.cygnus.com>

	* lib/gdb.exp, gdb.base/default.exp, config/monitor.exp,
	gdb.base/default.exp: Replace "exec" with "executable".

Tue Sep 29 15:06:29 1998  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdb.base/default.exp: Change else if to elseif from previous
	delta.

Mon Sep 28 13:21:43 1998  Nick Clifton  <nickc@cygnus.com>

	* gdb.base/default.exp: Add brace missing from previous delta.

Mon Sep 21 14:39:27 1998  Nick Clifton  <nickc@cygnus.com>

	* gdb.base/default.exp: Support test for info float for all
	varieties of arm toolchain.

Fri Sep 18 14:07:44 1998  Michael Snyder  <msnyder@cygnus.com>

	* gdb.trace/*.exp: remove "remote_download" command.

Wed Sep 16 11:38:21 1998  Michael Snyder  <msnyder@cygnus.com>

	* gdb.trace/*.exp: remove -gdwarf from compile.

Wed Sep 16 01:23:11 1998  Felix Lee  <flee@cygnus.com>

	* gdb.trace/configure.in(AC_INIT): typo
	* gdb.trace/configure: regenerated

Mon Sep 14 20:00:04 1998  Michael Snyder  <msnyder@cygnus.com>

	* config/m68k-emc.exp: New file.
	* lib/<emc-support.exp trace-support.exp}: New files.
	* configure.in: add new test directory gdb.trace.
	* gdb.trace/{configure configure.in Makefile.in}: New files.
	* gdb.trace/{actions.c actions.exp gdb_c_test.c}: New files.
	* gdb.trace/{circ.c circ.exp limits.c limits.exp}: New files.
	* gdb.trace/{collection.c collection.exp tfind.exp }: New files.
	* gdb.trace/{backtrace.exp deltrace.exp infotrace.exp}: New files.
	* gdb.trace/{packetlen.exp passc-dyn.exp passcount.exp}: New files.
	* gdb.trace/{report.exp save-trace.exp tracecmd.exp}: New files.
	* gdb.trace/{while-dyn.exp while-stepping.exp}: New files.

Fri Sep 11 13:58:02 1998  Michael Snyder  <msnyder@cygnus.com>

	* gdb.c++/classes.exp: Change all regular expressions to match
	arbitrary combinations of newline/carriage-return, so that they
	will work equally well on Unix and Windows.
	* gdb.c++/inherit.exp: ditto.
	* gdb.c++/virtfunc.exp: ditto.

1998-08-11 Dawn Perchik  <dawn@cygnus.com>

	* gdb.base/setshow.exp: Fix error introduced by call to runto_main.

Fri Jul 24 15:51:34 1998  Jeffrey A Law  (law@cygnus.com)

	* gdb.disasm/am33.s: Add tests for autoincrement instructions.
	* gdb.disasm/am33.exp: Run time.  Update tests which use r8-r15
	to use a0-a3/d0-d3 as needed.

Thu Jul 16 18:20:46 1998  Jeffrey A Law  (law@cygnus.com)

	* gdb.disasm/am33.s: Add 4 operand mul and mulu tests.
	* gdb.disasm/am33.exp: Corresponding changes.

1998-07-11  Felix Lee  <flee@cygnus.com>

	* gdb.base/callfuncs.exp: add cmp10 test.
	* gdb.base/callfuncs.c (cmp10): new function.

Thurs Jul 9 11:08:31 1998  Dawn Perchik  <dawn@cygnus.com>

	* gdb.base/commands.exp: Break up infrun_breakpoint_command_test
	into two parts to get around a synchronization problem in expect.

Fri Jun 26 14:27:13 1998  Keith Seitz  <keiths@cygnus.com>

	* lib/gdb.exp (gdbtk_start): Add startup for gdbtk.

	* configure.in: Add options for gdbtk testsuite.

	* configure: Regenerate.

	* gdb.gdbtk: New directory to hold gdbtk tests.

Fri Jun 26 14:52:47 1998  Peter Schauer  <pes@regent.e-technik.tu-muenchen.de>

	* gdb.fortran/types.exp:  Escape brackets in expect patterns
	for test_float_literal_types_accepted tests.
	* gdb.base/scope.exp:  Remove extraneous newline in filelocal_bss
	before run test.

Fri Jun 26 11:12:17 1998  Jeffrey A Law  (law@cygnus.com)

	* am33.exp: Just compile, do not link the testcase.
	* am33.s: Add ".am33" pseudoop to force am33 mode.

1998-06-25  Felix Lee  <flee@cygnus.com>

	* gdb.base/setshow.exp: make sure $pc is sane.

	* gdb.stabs/weird.exp: split expect patterns properly.

Wed Jun 24 13:03:15 1998  Jeffrey A Law  (law@cygnus.com)

	* gdb.disasm/am33.s: New disassembler testfile for the am33.
	* gdb.disasm/am33.exp: Run it.

Tue Jun 23 11:45:01 1998  Michael Snyder  <msnyder@cygnus.com>

	* gdb.base/funcargs.exp: simplify expect strings to ease pattern
	match processing (and eliminate spurious timeouts when running).

Fri Jun 12 17:28:22 1998  Michael Snyder  <msnyder@cygnus.com>

	* gdb.base/signals.exp (test_handle_all_print): put back Mach
	exception test, but conditionalize it on target [mach | gnu].

Wed Jun 10 10:40:03 1998  Michael Snyder  <msnyder@cygnus.com>

	* gdb.base/overlays.exp: fixup compile line for linker script.

Thu Jun  4 21:54:15 1998  Felix Lee  <flee@zog.cygnus.com>

	* gdb.fortran/types.exp: don't guess at float size.

Thu May 21 02:28:37 1998  Felix Lee  <flee@zog.cygnus.com>

	* gdb.base/exprs.exp: delete test that depends on int size.

Sun May 17 17:10:22 1998  Bob Manson  <manson@charmed.cygnus.com>

	* config/sim.exp: Removed checks for target triplets.
	(gdb_target_sim): Use gdb,target_sim_options.

Sat May 16 23:43:35 1998  Mark Alexander  <marka@cygnus.com>

	* gdb.base/reread.exp: New file.
	* gdb.base/reread1.c: New file.
	* gdb.base/reread2.c: New file.

Sat May 16 23:22:09 1998  Mark Alexander  <marka@cygnus.com>

	* config/sim.exp: Use 'target sim -sparclite' when running
	SPARClite programs.

Sat May 16 18:48:08 1998  Doug Evans  <devans@canuck.cygnus.com>

	* gdb.base/structs2.exp: New file.
	* gdb.base/structs2.c: New file.

Wed May 13 13:36:14 1998  Doug Evans  <devans@canuck.cygnus.com>

	* gdb.asm/common.inc: New file.
	* gdb.asm/d10v.inc: New file.
	* asm-source.exp: Pass -I's to gas to find .inc files.
	Update line numbers in expected output.
	* asmsrc1.s: Rewrite.
	* asmsrc2.s: Rewrite.
	* configure.in: Create arch.inc symlink.
	* configure: Regenerate.
	* Makefile.in (distclean): Delete arch.inc.

Wed May  6 10:30:54 1998  John Metzler  <jmetzler@cygnus.com>

	*  callfuncs.c (t_enum_value1) : Cleanup return value warnings
	(t_enum_value2): ditto
	(t_enum_value3): ditto
	(main): ditto
Fri May  1 09:33:37 1998  Peter Schauer  <pes@regent.e-technik.tu-muenchen.de>

	* gdb.base/break.exp:  Remove xfail for `deleting all breakpoints
	when none' unexpected prompt case, fixed by breakpoint.c:delete_command
	change.
	Use gdb_test instead of send_gdb/gdb_expect sequences.

Thu Apr 23 12:56:19 1998  Jason Molenda  (crash@bugshack.cygnus.com)

	* gdb.c++/virtfunc.cc: Declare extern "C" printf to return int,
	not void.

Thu Apr 16 10:52:34 1998  John Metzler  <jmetzler@cygnus.com>

	* gdb.base/branches.c: Code with lots of loops and
	subroutines. Used to test gdbs ability to single step through PC
	changes, especially to test mips-tdep.c:mips_next_pc

Mon Apr 13 22:32:51 1998 Frank Ch. Eigler <fche@cygnus.com>

	* gdb.c++/virtfunc.cc: Make extern "C" printf declaration pass
	more rigorous EGCS C++ error checking.

Fri Apr 10 22:38:12 1998 Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.base/help.exp:  Clean up `help set args' and `help show args'
	tests.
	* gdb.base/interrupt.exp:  Add "i*86-*-solaris2*" xfail for calling
	function when asleep.
	* gdb.base/signals.exp:  Add "i*86-*-solaris2*" xfails. Add comment
	for i*86 Linux and SVR4 signal handling problems.
	Remove linux xfail for `next to handler in signals_tests_1', fixed
	by recent infrun.c change.
	Limit backtrace to 10 frames to avoid timeout problems with infinite
	stack backtraces.
	Adjust expect pattern in `handle all print' test to match Apr 28 1997
	target.[ch] change.

Tue Mar 31 00:40:32 1998  Bob Manson  <manson@charmed.cygnus.com>

	* lib/gdb.exp(gdb_test): Send multiline commands one at a time; wait
	for a newline from gdb before continuing.
	(default_gdb_exit): Just look for y or n.
	(gdb_test): Detect abnormal exit from GDB running on DOS; if
	it does, fail the rests of the tests in the file.

Tue Mar 24 22:44:52 1998  Bob Manson  <manson@charmed.cygnus.com>

	* config/cygmon.exp: New file.

Mon Mar 16 21:39:11 1998  Bob Manson  <manson@charmed.cygnus.com>

	* gdb.base/list.exp: Fix problem with "list default lines around
	main" test on remote targets.

	* gdb.base/scope.exp: Fix problem with filelocal_bss before
	run test on remote targets.

Thu Mar 12 16:23:00 1998  Doug Evans  <devans@canuck.cygnus.com>

	* gdb.asm: New directory.
	* configure.in: Configure it.
	* configure: Regenerate.
	* gdb.asm/{Makefile.in,configure.in,configure}: New files.
	* gdb.asm/{asm-source.exp,asmsrc1.s,asmsrc2.s}: New files.

Mon Feb 23 08:22:44 1998  Mark Alexander  <marka@cygnus.com>

	* config/mn10300-eval.exp: New file to support MN10300 eval board.

Wed Feb 18 16:43:46 1998  Michael Snyder  (msnyder@cygnus.com)

	* gdb.base/overlays (several files): Merge the two overlay
	managers into one.  Change variables (foox, barx, bazx, grbxx)
	back into ints but force them to load in their proper sections.

Thu Feb 12 13:49:30 1998  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdb.base/d10vovly.c (D10VTranslate): Map IMAP0 to low 128k of
	on-chip insn memory and IMAP1 to upper 128k.
	(D10VCopy): Handle memory regions crossing 16k boundaries.
	(D10VCopy): Transfer data in 32 bit chunks.

Tue Feb 10 17:23:22 1998  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdb.base/overlays.c (main): Exit normally when result is
	correct.

	* gdb.base/d10v.ld: Update LMAs to reflect current d10v address
	map.  Include space for printf in .text segment.

	* gdb.base/d10vovly.c (D10VTranslate): New function, handle
	updated d10v memory VMA/LMA map.
	(D10VCopy): Call D10VTranslate.

Fri Feb  6 14:13:12 1998  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdb.base/m32rovly.c: Force variable _novlys into .data section.

	* gdb.base/bar.c (barx, bar): Change variable to small array so
	that it won't be put into the .sdata - small data -
	section. Update reference.
	* gdb.base/baz.c (bazx, baz): Ditto.
	* gdb.base/foo.c (foox, foo): Ditto.
	* gdb.base/grbx.c (grbxx, grbx): Ditto.

	* gdb.base/overlays.exp: Expect variables barx, bazx, foox, grbxx
	to be arrays.

Thu Jan 29 14:48:19 1998  Michael Snyder  (msnyder@cygnus.com)

	* gdb.base/overlays.exp: fix up and get working again.
	Add tests for backtraces from an overlay function.

Fri Jan 23 07:52:45 1998  Fred Fish  <fnf@cygnus.com>

	* gdb.base/watchpoint.exp: Set "d10v*-*-*" clear_xfail for
	"calling function with watchpoint enabled".

Thu Jan 22 14:23:29 1998  Fred Fish  <fnf@cygnus.com>

	* gdb.base/break.exp (test_next_with_recursion): Remove
	gdb_suppress_tests for d10v-*-*.
	* lib/gdb.exp (gdb_suppress_tests): Disable this function
	pending review of whether it is useful or not.

Tue Jan 20 13:02:09 1998  Mark Alexander  <marka@cygnus.com>

	* gdb.base/funcargs.exp: Increase timeout for slow TX39 boards.

Mon Jan 19 08:53:04 1998  Mark Alexander  <marka@cygnus.com>

	* gdb.base/break.exp: Increase timeout for slow TX39 boards.
	* config/dve.exp: New file to support Densan boards.

Mon Dec 15 22:38:05 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdb.base/interrupt.exp: Document problem of simulators, signals,
	reads and BSD.

Wed Nov 26 22:29:18 1997  Bob Manson  <manson@charmed.cygnus.com>

	* config/monitor.exp: Be a bit less picky about the "Remote debugging"
	response.

	* gdb.c++/misc.exp: Call runto_main instead of doint it manually.

Tue Nov 25 12:46:36 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdb.base/mips_pro.exp: Add "mips64*-*-elf" xfail for backtrace
	test.

	* gdb.base/funcargs.exp: Query GDB for target_sizeof_int,
	target_sizeof_long and target_bigendian_p.
	(structs_by_value, structs_by_reference): Check values according
	to targets word size and endianess.

Mon Nov 24 16:37:06 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdb.base/langs.exp: For "continue to exit" ignore any trailing
	output.

Fri Oct 17 13:24:43 1997  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.base/default.exp, gdb.base/help.exp, gdb.base/setshow.exp:
	Update test of set args help to match source change.

Fri Sep 26 17:36:20 1997  Jason Molenda  (crash@pern.cygnus.com)

	* gdb.base/default.exp: Expect help system output to be in
	alphabetical order.
	* gdb.base/help.exp: Ditto.

Wed Sep 24 13:08:14 1997  Bob Manson  <manson@charmed.cygnus.com>

	* gdb.base/signals.exp: Change "i*86-pc-linux-gnu" to
	"i*86-pc-linux-gnu*".
	* gdb.base/interrupt.exp: Ditto.
	* gdb.base/corefile.exp: Ditto.

	* lib/gdb.exp(gdb_compile): If is_vxworks target feature is set,
	define vxworks when building the testcase.

	* gdb.base/ptype.exp: Fix testnames to be unique.
	* gdb.base/radix.exp: Ditto.
	* gdb.base/term.exp: Ditto.
	* gdb.base/whatis.exp: Ditto.
	* gdb.c++/classes.exp: Ditto.

Tue Sep 16 22:21:48 1997  Bob Manson  <manson@charmed.cygnus.com>

	* gdb.base/callfuncs.exp: Fix indentation.

	* lib/gdb.exp(gdb_expect): Set remote_suppress_flag if
	suppress_flag has been set.
	(gdb_step_for_stub): Check for gdb,use_breakpoint_for_stub
	target feature.

Mon Sep 15 15:43:17 1997  Bob Manson  <manson@charmed.cygnus.com>

	* gdb.stabs/weird.exp: Don't start gdb 'til after we've compiled
	the testcase.

	* gdb.c++/cplusfuncs.cc(main): Add extern "C" declaration for
	set_debug_traps() and breakpoint().
	* gdb.c++/misc.cc (main): Ditto.
	* gdb.c++/templates.cc (main): Ditto.
	* gdb.c++/virtfunc.cc (main): Ditto.

Fri Sep 12 16:56:38 1997  Bob Manson  <manson@charmed.cygnus.com>

	* lib/gdb.exp(gdb_step_for_stub): New function.
	(gdb_run_cmd): Look for gdb,do_reload_on_run target feature--if it
	exists, reload the executable and do a "continue" instead of
	doing a jump.
	(runto_main): Use gdb_step_for_stub.

	* gdb.base/break.exp: Use gdb_step_for_stub. Also, rename certain
	tests to have unique names.
	* gdb.base/callfuncs.exp: Ditto.
	* gdb.base/commands.exp: Ditto.
	* gdb.base/default.exp: Ditto.
	* gdb.base/help.exp: Ditto.
	* gdb.base/list.exp: Ditto.
	* gdb.base/opaque.exp: Ditto.
	* gdb.base/printcmds.exp: Ditto. Use a loop to emit multiple
	similar tests.

	* gdb.base/setshow.c: Add set_debug_traps/breakpoint calls.
	* gdb.c++/cplusfuncs.cc: Ditto.
	* gdb.c++/virtfunc.cc: Ditto.

	* config/monitor.exp: Keep track of the last file we saw, rather
	than trying to get the info from gdb.

	* gdb.fortran/types.exp: Move comment to previous line.

Tue Sep  2 19:55:34 1997  Bob Manson  <manson@charmed.cygnus.com>

	* config/sparclet.exp: Detect gratuitous change to sparclet gdb
	target mode.

Mon Jul 28 12:14:47 1997  Stan Shebs  <shebs@andros.cygnus.com>

	From Bob Manson:
	* config/monitor.exp (gdb_target_monitor): Look for "Connected to"
	string from GDB when it connects.

	* lib/gdb.exp: Look for $TOOL_EXECUTABLE.

Thu Jul  3 15:35:12 1997  Bob Manson  <manson@charmed.cygnus.com>

	* lib/gdb.exp(get_debug_format): Don't cause the testsuite to fail
	if we can't get a debug format from GDB (we may be testing an
	older GDB). Use a 10 second timeout when checking for the format.

	* gdb.stabs/weird.exp: Fix quoting.

	* config/sparclet.exp: Renamed sparclet-loader.c to stub-loader.c.

Mon Jun 30 18:31:43 1997  Bob Manson  <manson@charmed.cygnus.com>

	* config/arm-ice.exp: New file.

Sun Jun 29 16:43:30 1997  Bob Manson  <manson@charmed.cygnus.com>

	* gdb.base/overlays.exp: Preliminary fixes; temporarily disabled
	until it has been modified to work with the new testsuite.

	* gdb.*/*.exp: Instead of causing 1 unresolved test when the
	testcase won't compile, cause all of the testcases in the file to
	fail instead.

	* lib/gdb.exp(gdb_suppress_entire_file): New procedure.
	(gdb_clear_suppressed): New procedure.
	(gdb_stop_suppressing_tests): Only clear suppress_flag if
	it contains a positive value.

Sat Jun 28 13:31:11 1997  Bob Manson  <manson@charmed.cygnus.com>

	* lib/gdb.exp(default_gdb_start): Use gdb_opts host feature.

	* gdb.c++/virtfunc.exp: Remove setting of libs variable.

Fri Jun 27 07:44:25 1997  Fred Fish  <fnf@cygnus.com>

	* lib/gdb.exp (setup_xfail_format): New function.
	(get_debug_format): New function to get debug format.
	(debug_format): New global variable to hold last value set
	by get_debug_format.
	* gdb.base/list.exp: Call get_debug_format and expect some
	tests to fail for DWARF 1 and COFF formats.
	* gdb.c++/ptype.exp: Ditto.
	* gdb.c++/classes.exp: Ditto.
	* gdb.c++/cplusfuncs.exp: Ditto.
	* gdb.c++/inherit.exp: Ditto.
	* gdb.c++/templates.exp: Ditto.
	* gdb.c++/virtfunc.exp: Ditto.

Wed Jun 25 09:08:51 1997  Bob Manson  <manson@charmed.cygnus.com>

	* lib/gdb.exp(default_gdb_exit): Don't give an error if the remote
	host doesn't have a currently-open connection.

	* config/sparclet.exp: Cleanups and fixes to make it generic for
	any gdb stub target. Handle cases where gdb doesn't respond when
	interrupted in a sane fashion.

	* config/m32r-stub.exp: Load sparclet.exp instead of trying to do the
	same thing in a totally different way.

	* config/monitor.exp: Pass in timeouts to gdb_expect instead of
	setting "timeout".
	(gdb_start): We set the global gdb_prompt variable in
	default_gdb_init now.

Sun Jun 22 09:11:02 1997  Fred Fish  <fnf@cygnus.com>

	* gdb.base/printcmds.exp: Fix "check for floating addition"
	regexp to accept results within approx +/- .01 of exact value.
	* lib/gdb.exp (gdb_test): Remove unused expect_out global decl.

Wed Jun 18 11:11:39 1997  Bob Manson  <manson@charmed.cygnus.com>

	* lib/gdb.exp(gdb_init): Pass our arguments to default_gdb_init
	properly.
	(gdb_expect): Add optional timeout parameter, and add timeout
	value to various calls.
	(gdb_suppress_tests): Only give one warning message per group.

Tue Jun 17 13:10:10 1997  Bob Manson  <manson@charmed.cygnus.com>

	* lib/gdb.exp(gdb_expect): Declare errorInfo and errorCode as
	global variables. Handle getting a value for $timeout more
	gracefully.

Sat Jun 14 09:23:26 1997  Bob Manson  <manson@charmed.cygnus.com>

	* lib/gdb.exp: Close connection to remote host if gdb doesn't
	initialize.
	(default_gdb_init): New procedure; allow gdb_init to be overridden
	by a target configuration file.
	(gdb_expect): Pass the timeout to remote_expect.

	* config/monitor.exp(gdb_load): Fix typo in regexp.

Thu Jun 12 20:57:12 1997  Bob Manson  <manson@charmed.cygnus.com>

	* gdb.base/funcargs.exp: Remove spurious suppress tests call.

Tue Jun  3 15:20:20 1997  Bob Manson  <manson@charmed.cygnus.com>

	* config/monitor.exp(gdb_target_monitor): Call gdb_file_cmd
	here. Call gdb_target_exec before rebooting the target, to make
	sure the connection to the target is closed.
	(gdb_load): Pass the name of the executable to gdb_target_monitor.
	Don't call gdb_file_cmd here; let gdb_target_monitor do it.
	Also detect "Timeout reading from remote" error.

	* config/gdbserver.exp: Pass the executable being loaded to
	gdb_target_monitor. Don't call gdb_file_cmd here; let
	gdb_target_monitor do it.

	* gdb.disasm/hppa.exp: Don't use exec_output.

Fri May 23 13:28:29 1997  Bob Manson  <manson@charmed.cygnus.com>

	* gdb.base/list.exp: If we're debugging a non-native target,
	try to set the pc register to point to the start of the
	program before doing the first list command.

	* gdb.c++/virtfunc.exp(gdb_virtfunc_restart): Make sure we run
	test_calls after restarting.

	* lib/gdb.exp(gdb_run_cmd): Send jump command again after
	reloading.

	* gdb.base/watchpoint.exp: Fix typo.

	* gdb.base/setshow.exp: Check for use_gdb_stub.

	* gdb.base/break.exp: Fix continue until exit test for the gdb
	stub case.
	* gdb.base/langs.exp: Ditto.

	* config/monitor.exp(gdb_load): Handle gdb_sect_offset and
	gdb_load_offset. If we weren't given a file to load, figure out
	what the current file is and use it.

	* config/i386-bozo.exp: New file.

Thu May 22 18:51:32 1997  Bob Manson  <manson@charmed.cygnus.com>

	* lib/gdb.exp(gdb_expect): Look for gdb,timeout target
	feature.

	* config/proelf.exp: New entry.

Wed May 21 21:23:16 1997  Bob Manson  <manson@charmed.cygnus.com>

	* lib/gdb.exp: Remove spurious .* patterns at the beginning
	of regexps.

	* gdb.base/watchpoint.exp: Don't run the test_stepping
	tests if gdb can't call functions on the target.

	* gdb.base/setshow.exp: Don't run the set prompt tests if
	the board has gdb_prompt set.

Tue May 20 08:58:49 1997  Jeffrey A Law  (law@cygnus.com)

	* gdb.base/a2-run.exp: Change "gdb,noargs" to just "noargs".
	* gdb.base/commands.exp: Likewise.
	* gdb.base/setshow.exp: Likewise.

Mon May 19 15:37:50 1997  Bob Manson  <manson@charmed.cygnus.com>

	* config/monitor.exp(gdb_start): Look for gdb_prompt target
	feature.

	* config/i960.exp: New file.

Thu May  1 18:01:50 1997  Bob Manson  <manson@charmed.cygnus.com>

	* gdb.base/funcargs.exp: Check for gdb,short_int target
	feature instead of looking for explicit target triplets.

Mon Apr 28 17:27:40 1997  Michael Snyder  <msnyder@cygnus.com>

	* gdb.base/printcmds.exp: add a couple more tests a la
	"p 123DEADBEEF", to check parse_number.
	* top.c: change "to enable to enable" to "to enable" in a couple
	of help strings.

Thu Apr 24 14:38:18 1997  Jeffrey A Law  (law@cygnus.com)

	* gdb.base/callfuncs.exp: Mark some tests as expected to fail
	on the mn10300.

Mon Apr 21 15:05:42 1997  Fred Fish  <fnf@cygnus.com>

	* gdb.base/a2-run.exp: Add arm-*-coff setup_xfails for cases
	where the test executable is run with explicit args.
	* gdb.base/default.exp: Handle arm-*-coff case for "info float".

Mon Apr 21 13:38:58 1997  Fred Fish  <fnf@cygnus.com>

	* gdb.base/run.c: Use FAKEARGV to build test executable that
	does not require a command line arg, since most simulators
	don't currently support passing such an arg into the simulated
	program.
	* gdb.base/commands.exp: Change tests to insert the proper
	value as the arg to the first recursive factorial call.  Change
	compilation line to define FAKEARGV at compile time.

Wed Apr  9 11:12:36 1997  Jeffrey A Law  (law@cygnus.com)

	* gdb.base/recurse.exp: Enable these tests for the mn10300.
	* gdb.base/watchpoint.exp: Don't expect a failure for an "calling
	function with watchpoint enabled" test.

Tue Apr  8 19:33:20 1997  Bob Manson  <manson@charmed.cygnus.com>

	* gdb.base/watchpoint.exp(test_watchpoint_triggered_in_syscall):
	Don't call gdb_test when the command doesn't return to a gdb prompt.

	* lib/gdb.exp(gdb_stop_suppressing_tests): Don't print gratuitous
	"Tests restarted" messages.

Tue Apr  8 16:38:46 1997  Jeffrey A Law  (law@cygnus.com)

	* gdb.disasm/mn10300.exp: Fix buglets in "other" tests.

Thu Apr  3 15:21:26 1997  Michael Snyder  <msnyder@cygnus.com>

	* gdb.base/help.exp: update help msg for INFO ADDR; add help test
	for INFO SYMBOL; add help tests for OVERLAY commands.
	* gdb.base/default.exp: add tests for INFO SYMBOL command;
	add tests for OVERLAY commands
	* gdb.base/overlays.c overlays.exp foo.c bar.c baz.c grbx.c ovlymgr.h
	d10v.ld m32r.ld d10vovly.c m32rovly.c: add test case for overlays.
	* gdb.base/sigall.c: add usestubs code frag
	* gdb.base/watchpoint.exp: turn on complex watchpoint test for M32R.

Thu Apr  3 09:38:53 1997  Bob Manson  <manson@charmed.cygnus.com>

	* lib/gdb.exp(gdb_suppress_tests): Add explanation for subsequent
	failures.
	(gdb_stop_suppressing_tests): Note that tests have restarted.

Wed Apr  2 19:04:20 1997  Bob Manson  <manson@charmed.cygnus.com>

	* config/h8300.exp: New file.

Sun Mar 30 13:38:25 1997  Bob Manson  <manson@charmed.cygnus.com>

	* gdb.base/setshow.exp: Check for the existence of a
	feature, not its value.

Sat Mar 29 11:19:46 1997  Bob Manson  <manson@charmed.cygnus.com>

	* gdb.c++/virtfunc.exp: Restart gdb in a sane fashion.

	* gdb.base/scope.exp: It's now init0(), not init().

	* gdb.base/scope0.c: For now, change init() to be init0().

	* config/monitor.exp: Use gdb_serial in preference to serial
	or netport.

	* lib/gdb.exp: Set GDB to [transform gdb] if we're using a remote host
	and it's not already set.

Fri Mar 28 19:54:18 1997  Bob Manson  <manson@charmed.cygnus.com>

	* gdb.base/setshow.exp: Only test the run command if the target
	isn't using a stub and if it supports argument passing.

Sat Mar 22 19:50:25 1997  Bob Manson  <manson@charmed.cygnus.com>

	* config/udi.exp(gdb_start): Make sure UDICONF is set
	properly before starting gdb.

Mon Mar 24 14:40:33 1997  Jeffrey A Law  (law@cygnus.com)

	* gdb.disasm/mn10300.s: New test file for mn10300 disassembler.
	* gdb.disasm/mn10300.exp: Run mn10300 disassembler tests.
	* gdb.disasm/Makefile.in: Remove "mn10300" when cleaning.

Tue Mar 11 11:42:58 1997  Bob Manson  <manson@charmed.cygnus.com>

	* config/vx.exp: Use remote_ld, not vxworks_ld. Don't use
	specialized code to reboot the board, use remote_reboot instead.

	* config/vxworks29k.exp: Use vx.exp, not vx-gdb.exp.

	* lib/gdb.exp: Add GDB_TESTCASE_OPTIONS.

	* config/monitor.exp: Make sure we disconnect from the target.
	Also, try a reboot/reload cycle instead of failing if the
	load fails.

Fri Mar  7 13:48:30 1997  Bob Manson  <manson@charmed.cygnus.com>

	* gdb.base/default.exp: Don't set match_max.
	* gdb.base/help.exp: Ditto.
	* gdb.base/list.exp: Ditto.
	* gdb.base/signals.exp: Ditto.

	* config/monitor.exp(gdb_load): If gdb,use_standard_load is
	set, use remote_ld to download the testcase instead of
	the GDB loader.

Wed Mar  5 00:00:43 1997  Bob Manson  <manson@charmed.cygnus.com>

	* config/vr5000.exp: New file.

	* config/monitor.exp(gdb_target_monitor): Add pattern for
	"Ending remote" to detect errors in connecting.

	* gdb.base/setshow.exp: Add .* within auto language test.

	* lib/gdb.exp(gdb_run_cmd): Add check for gdb_init_command
	target feature.

	* config/monitor.exp(gdb_load): Check for a failure when loading,
	and reboot the board if necessary.

	* gdb.base/setvar.exp(test_set): Handle multiple prints within
	a set of tests. Remove print.* from the patterns being checked.

Mon Mar  3 11:57:43 1997  Bob Manson  <manson@charmed.cygnus.com>

	* gdb.base/a1-selftest.exp: Use send_gdb consistently. Don't
	refer to gdb_spawn_id.

	* config/m32r-stub.exp: Remove references to gdb_spawn_id, no
	longer used.
	* config/sparclet.exp: Ditto.
	* config/sparclet-old.exp: Ditto.
	* config/slite.exp: Ditto.
	* config/sim.exp: Ditto.
	* gdb.base/funcargs.exp: Ditto.

	* lib/gdb.exp:Remove references to gdb_spawn_id.
	(gdb_expect): Move to remote.exp.

Fri Feb 28 20:47:39 1997  Bob Manson  <manson@charmed.cygnus.com>

	* config/monitor.exp: Detect the "Couldn't establish connection"
	message from GDB.

Tue Feb 25 14:08:55 1997  Bob Manson  <manson@charmed.cygnus.com>

	* gdb.base/bitfields.exp: Use runto instead of explicit
	gdb_run_cmd/gdb_expect sequences.

	* gdb.base/break.exp(text_next_with_recursion): Add match for
	gdb_expect call.

	* config/monitor.exp(gdb_target_monitor): Calling exit loses big.
	We also need to handle the "A program is being debugged already"
	prompt from gdb. Use gdb_test to set the baud rate.

	* lib/gdb.exp(gdb_init): Increase the default expect buffer size
	to 20000. Really. I mean it.

Mon Feb 24 13:23:26 1997  Bob Manson  <manson@charmed.cygnus.com>

	* lib/gdb.exp(gdb_test): Generate a FAIL message when send_gdb
	fails. If suppress_flag is set, skip perror message about not
	being able to send to GDB.
	(send_gdb): If suppress_flag is set, don't try to send commands to
	GDB.
	(gdb_expect): If suppress_flag is set, always fail immediately.
	(gdb_suppress_tests, gdb_stop_suppressing_tests): New functions.
	(gdb_init): Call gdb_stop_suppressing_tests.
	(default_gdb_exit): Ditto.
	(default_gdb_start): Ditto.

	* gdb.base/bitfields.exp: Call gdb_suppress_tests and
	gdb_stop_suppressing_tests as appropriate.
	* gdb.base/break.exp: Ditto.
	* gdb.base/callfuncs.exp: Ditto.
	* gdb.base/commands.exp: Ditto.
	* gdb.base/exprs.exp: Ditto.
	* gdb.base/funcargs.exp: Ditto.
	* gdb.base/list.exp: Ditto.
	* gdb.base/recurse.exp: Ditto.
	* gdb.base/scope.exp:  Ditto.
	* gdb.base/structs.exp: Ditto.
	* gdb.c++/inherit.exp: Ditto.

Sun Feb 23 19:56:02 1997  Bob Manson  <manson@charmed.cygnus.com>

	* config/vr4300.exp: New file.

	* gdb.*/*.exp: Call gdb_expect instead of expect.

	* lib/gdb.exp(gdb_expect): New function.

Thu Feb 20 13:57:01 1997  Bob Manson  <manson@charmed.cygnus.com>

	* lib/gdb.exp(gdb_init): New function.

	* gdb.base/setvar.exp(test_set): Don't bother printing a PASS/FAIL
	for each individual variable set.

	* gdb.base/exprs.exp(test_expr): Make sure each test gets a unique
	name.

	* gdb.base/help.exp: Fix the syntax of a few gdb_test calls.

	* gdb.base/scope.exp: Use gdb_test.

	* gdb.base/ptype.exp: Don't call "gdb_exit; gdb_start" if we're
	aborting; the testsuite driver will do that for us (see
	gdb_finish). Also, use gdb_test in a few more places.

Thu Feb 20 13:32:24 1997  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.base/help.exp: Fix syntax of "help info all-registers" test.

Thu Feb 20 10:34:21 1997  Jeffrey A Law  (law@cygnus.com)

	* gdb.disasm/mn10200.s: Add "nop" after "main" so that "main"
	and "add_tests" are not at the same address.

Fri Feb 14 18:47:23 1997  Bob Manson  <manson@charmed.cygnus.com>

	* gdb.base/ptype.exp: Use gdb_test.

Thu Feb 13 16:09:36 1997  Jeffrey A Law  (law@cygnus.com)

	* gdb.disasm/mn10200.s (misc_tests): Fix targets for "jsr" insns.
	* gdb.disasm/mn10200.exp (misc_tests): Remove bogus line accidentally
	left in.  No longer expect them to fail.

	* gdb.stabs/*.mt; Deleted, no longer used.
	* gdb.stabs/configure.in: Remove references to target makefile
	frags.
	* gdb.stabs/configure: Rebuilt.

	* gdb.disasm/*.mt: Deleted, no longer used.
	* gdb.disasm/configure.in: Remove references to target makefile
	frags.  Use "sh3.s" as the unique filename for this directory.
	* gdb.disasm/configure: Rebuilt.

	* gdb.disasm/mn10200.s: New test file for mn10200 disassembler.
	* gdb.disasm/mn10200.exp: Run mn10200 disassembler tests.
	* gdb.disasm/Makefile.in: Remove "mn10200" when cleaning.

Tue Feb 11 16:57:58 1997  Bob Manson  <manson@charmed.cygnus.com>

	* config/udi.exp: Use mondfe,name instead of remote_host.

Tue Feb 11 11:22:36 1997  Jeffrey A Law  (law@cygnus.com)

	* gdb.base/watchpoint.exp: Don't expect a failure when calling
	a function with a watchpoint enabled on the mn10200.

	* gdb.stabs/weird.exp: Don't quit if "weird.s" doesn't exist
	before trying to create it!

Mon Feb 10 16:40:47 1997  Bob Manson  <manson@charmed.cygnus.com>

	* config/vx.exp: Use hostname instead of netport.

	* config/vxworks.exp: New file.

	* gdb.base/a2-run.exp: Change vxworks cases to use gdb_spawn_id.

	* config/monitor.exp(gdb_target_monitor): Look for a prompt from
	gdb before assuming everything worked. Send a ^C if a timeout
	occurs.

	* lib/gdb.exp(gdb_test): Check the result of send_gdb. Use
	$gdb_spawn_id directly.
	(gdb_run_cmd): Try _start as well as start. Use the target feature
	gdb,start_symbol as the symbol to start from when jumping.

Mon Feb 10 11:26:59 1997  Jeffrey A Law  (law@cygnus.com)

	* gdb.base/exprs.exp: Delete bogus/incorrect (and probably
	redundant) test.

	* gdb.base/recurse.exp: Relax final value test for 'b' so that
	it doesn't lose for 16bit integer systems.

Fri Feb  7 09:31:21 1997  Jeffrey A Law  (law@cygnus.com)

	* gdb.fortran/types.exp: If the target doesn't support "double"
	data types, then expect "real" types to only be 4 bytes.

	* gdb.c++/virtfunc.exp: Expect failure for virtual function
	call tests if the target doesn't support inferior function calls.

	* gdb.base/printcmds.exp: Allow minor deviation in FP values
	in printf tests.

Thu Feb  6 12:46:14 1997  Jeffrey A Law  (law@cygnus.com)

	* gdb.base/help.exp: Disable "help set", "help show", and
	"help support".  Simplify regexp for "help stack".

	* gdb.base/default.exp: Set match_max to 5000 and the timeout
	to 60 seconds.  Temporarily set match_max to 15000 around the
	"info copying" test.

	* gdb.base/nodebug.exp: Don't try to do an inferior function
	call if the target doesn't support them.
	* gdb.base/printcmds.exp: Likewise.
	* gdb.base/setvar.exp: Likewise.
	* gdb.base/structs.exp: Likewise.
	* gdb.c++/templates.exp: Likewise.
	* gdb.base/ptype.exp: Likewise.  Remove UDI specific stuff.

	* gdb.base/recurse.exp: Enable for the mn10200.

	* configure.in: Do configure gdb.stabs directory for *-*-elf
	targets.
	* configure: Rebuilt.

	* gdb.base/break.exp: Check for gdb,noresults before testing
	exit status and/or results from the target.
	* gdb.base/watchpoint.exp, gdb.base/langs.exp: Likewise.
	* lib/gdb.exp: Remove old (now bogus) initialization of
	noinferior, noargs, noresults and nosignals.

Tue Feb  4 21:52:17 1997  Bob Manson  <manson@charmed.cygnus.com>

	* config/sh.exp: New file.

	* config/slite.exp: Try to connect multiple times to the board
	before rebooting. Only send a "monitor run" if need_monitor_run
	is set.

	* gdb.base/break.exp: Don't do the "stub continue" test if
	the target has gdb_stub set.

	* gdb.base/callfuncs.exp: Increase the timeout.

	* gdb.base/interrupt.exp: Don't even try to compile the testcase
	if the target has gdb,noinferiorio set.

	* gdb.base/list.exp: Increase match_max to 10000 characters.

	* gdb.base/sigall.exp: Check for gdb,nosignals on the target.

	* gdb.base/watchpoint.exp: Check for gdb,noinferiorio on the
	target.

	* lib/gdb.exp(gdb_run_cmd): Fix for targets that use stubs.

Mon Feb  3 12:09:37 1997  Bob Manson  <manson@charmed.cygnus.com>

	* gdb.base/a1-selftest.exp: Make sure we call gdb_exit before
	trying to delete the copy of gdb. Catch the file delete so we
	don't die if the delete fails; also, the file should be copied to
	the host, not to the build.

Sun Feb  2 00:55:14 1997  Bob Manson  <manson@charmed.cygnus.com>

	* lib/gdb.exp(gdb_test): Surround the result pattern with
	parenthesis in case it contains multiple regexps separated
	with |.

	* gdb.base/watchpoint.exp: Use gdb_test.
	* gdb.base/default.exp: Ditto.

Sat Feb  1 23:51:01 1997  Bob Manson  <manson@charmed.cygnus.com>

	* gdb.*/*.exp: Replace $prompt with $gdb_prompt.

	* gdb.base/scope.exp: Use gdb_test.
	* gdb.c++/classes.exp: Ditto.
	* gdb.c++/inherit.exp: Ditto.

Fri Jan 31 13:09:12 1997  Bob Manson  <manson@charmed.cygnus.com>

	* gdb.base/crossload.exp: Don't use execute_anywhere, use
	remote_exec instead.
	* gdb.base/corefile.exp: Don't be ridiculous.
	* gdb.base/*.c: Add missing stub invocations.

Thu Jan 30 16:49:25 1997  Bob Manson  <manson@charmed.cygnus.com>

	* config/slite.exp: Miscellaneous fixes.

	* lib/gdb.exp: Fix runto.

	* gdb.base/signals.exp: Check for a gdb,nosignals feature of
	the target.

	* gdb.base/watchpoint.exp: Fix regexp.

	* lib/gdb.exp(default_gdb_exit): Add a catch to the
	close and wait commands, as the descriptor may now be
	invalid. Always call "remote_close host".

Tue Jan 28 14:42:31 1997  Bob Manson  <manson@charmed.cygnus.com>

	   Major rewrite for testsuite revision.

	* lib/gdb.exp: Remove references to global CC, CXX, B_OPTIONS,
	TARGET_INCLUDES, LDFLAGS and target_alias. Use gdb_spawn_id
	instead of relying on spawn_id to always contain a valid
	spawn id.
	(get_compiler_info): New procedure to build the ${binfile}.ci
	file, instead of replicating this in N different places.
	(gdb_compile): New procedure.

	gdb.*/*.exp: Use gdb_compile and get_compiler_info (with
	appropriate arguments) instead of compile. Use gdb_test in a lot
	more places.  Use send_gdb instead of send. Always run gdb_start
	at the start of a testcase, as this is no longer done magically.

	config/*-gdb.exp: Rename without the -gdb suffix.

	config/mips.exp: Use remote_close instead of exit_remote_shell.
	config/monitor.exp: Use target_info instead of looking at
	baud, timeout, etc.
	config/sim.exp: Use gdb_spawn_id instead of relying on spawn_id.

Sat Dec 14 00:43:57 1996  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.c++/templates.exp (test_ptype_of_templates),
	gdb.c++/inherit.exp (test_ptype_si, test_print_anon_union):
	Update expect patterns for destructors and assignment operators
	to match corresponding c-typeprint.c changes.
	* gdb.c++/templates.exp (test_template_breakpoints):  Revert change
	to destructor breakpoint test, GDB should be able to set the
	destructor breakpoint without specifying arguments.

Tue Dec  3 20:17:52 1996  Fred Fish  <fnf@cygnus.com>

	* gdb.threads/pthreads.exp: Change result for failure to compile due
	to lack of pthreads runtime support from an error to simply an
	unsupported test, per dejagnu standards.

Sun Dec  1 00:18:59 1996  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* lib/gdb.exp (gdb_test):  Simplify expect pattern for the case
	where GDB exits to reduce pattern match time.
	(skip_chill_tests):  Skip chill tests for mips*-sgi-irix6*.

	* gdb.base/nodebug.exp:  Add mips*-sgi-irix6* xfails.

Tue Nov 26 18:29:23 1996  Michael Snyder  <msnyder@cygnus.com>

	* gdb.base/callfuncs.exp: Turn on function call tests for h8300.
	* gdb.base/default.exp:   ditto.
	* gdb.base/nodebug.exp:   ditto.
	* gdb.base/printcmds.exp: ditto.
	* gdb.base/ptype.exp:     ditto.
	* gdb.base/setvar.exp:    ditto.
	* gdb.base/structs.exp:   ditto.
	* gdb.base/setshow.c:     Guard against uninitialized values of argc.

Tue Nov 26 17:23:28 1996  Ian Lance Taylor  <ian@cygnus.com>

	* configure, */configure: Rebuild with autoconf 2.12.

Sat Nov 23 13:32:15 1996  Fred Fish  <fnf@cygnus.com>

	* gdb.base/a1-selftest.exp: Change x86 linux setup_xfails to
	use new i*86-pc-linux*-gnu quads.
	* gdb.base/corefile.exp: Ditto.
	* gdb.base/signals.exp: Ditto.
	* gdb.base/sigall.exp: Ditto.
	* gdb.base/interrupt.exp: Ditto.

	* gdb.base/signals.exp (signal_tests_1): Remove setup_xfail
	"i*86-*-linux" for "signal SIGUSR1".  Now works, at least with
	RedHat 4.0.

	* gdb.threads/pthreads.c (_MIT_POSIX_THREADS): Define if target is
	linux.  This allows the test case to at least compile on latest
	linux, but still not run due to missing the threads runtime library.

Fri Nov 22 10:13:29 1996  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.base/a1-selftest.exp (do_steps_and_nexts):  Reinitialize source
	directory to search gdb directory. Accept and step over conditional
	stack alignment code. Consume $prompt in failure cases.
	Reset timeout to $oldtimeout instead of some arbitrary value.
	* gdb.base/nodebug.exp:  Limit backtrace to 10 frames to avoid
	timeout problems with infinite stack backtraces.
	* gdb.base/ptype.exp (ptype struct link, union tu_link):
	Accept function parameters for linkfunc member.

Thu Nov 21 09:17:19 1996  Fred Fish  <fnf@cygnus.com>

	* lib/gdb.exp (CFLAGS): Remove, unreferenced.
	(CXXFLAGS): Remove, unreferenced.
	(B_OPTIONS): Add for -B options and add code to initialize with
	previous -B options and also add -B option to pick up cross compiled
	runtime.
	(TARGET_INCLUDES): Add for -I options and add code to initialize when
	doing cross compiles.
	(target_alias): Declare global.
	(xgcc): Set variable to full path of gcc in build tree.  Use findfile
	to verify that gcc exists in build tree, and if so set CC to that
	gcc and to use B_OPTIONS and TARGET_INCLUDES.

Tue Nov 12 16:20:13 1996  Fred Fish  <fnf@cygnus.com>

	* gdb.c++/inherit.exp (test_print_anon_union): Reenable
	ptype test for anonymous union.  Fixup testcase to match
	current gcc debug output.

Mon Nov 11 14:12:06 1996  Jeffrey A Law  (law@cygnus.com)

	* gdb.base/funcargs.c: Use cast rather than "UL" suffix to
	force argument to an unsigned long type.

Mon Nov 11 10:27:55 1996  Fred Fish  <fnf@cygnus.com>

	* gdb.c++/inherit.exp (test_ptype_si): Fix tagless struct ptype
	tests and anonymous union print/ptype tests.
	* gdb.base/list.exp (test_forward-search): Increase timeout by
	5 minutes for the "search extremely long line" case.
	* lib/gdb.exp (gdb_test): Document that the third arg to gdb_test is
	completely optional and that the pass/fail messages use the command as
	the message if that third arg is a null string.
	(gdb_test_exact):  Arrange that a null string pattern means match a
	null string output rather than any output, which might include random
	errors.
	* gdb.base/mips_pro.exp: Add "mips*-sgi-irix4*" xfail for
	backtrace test.
	* gdb.c++/demangle.exp: Add a "*-*-*" xfail for test that was
	always failing and failure is now exposed by gdb.exp changes.

Sat Nov  9 11:13:24 1996  Fred Fish  <fnf@cygnus.com>

	* gdb.c++/inherit.exp (test_ptype_vi): Log some passes that
	weren't being noted.

Sat Nov  9 01:05:10 1996  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.base/corefile.exp:  Consume $prompt in mmap fail cases.
	* gdb.stabs/weird.exp:  Remove v_comb xfails.

Tue Nov  5 10:44:23 1996  Michael Snyder  <msnyder@cygnus.com>

	* gdb.base/[bitfields.exp crossload.exp funcargs.exp interrupt.exp
		    list.exp scope.exp watchpoint.exp]
	  Make all timeout error msgs explicitly say "(timeout)".

Mon Nov  4 12:03:06 1996  Michael Snyder  <msnyder@cygnus.com>

	* config/monitor.exp: Increase download timeout to 1000 seconds.

Mon Nov  4 12:02:26 1996  Michael Snyder  <msnyder@cygnus.com>

	* config/m32r.exp: Increase timeout to 120 seconds.

Sun Nov  3 14:37:05 1996  Fred Fish  <fnf@cygnus.com>

	* gdb.c++/classes.exp: Modify to handle current gcc C++ member ordering
	and accept older ordering as obsolescent gcc or gdb.
	* gdb.c++/templates.exp: Ditto.
	* gdb.c++/virtfunc.exp: Ditto.

Fri Nov  1 11:56:09 1996  Fred Fish  <fnf@cygnus.com>

	* gdb.base/coremaker.c: Add code to mmap some data so we
	can check that it ends up in the core file.
	* gdb.base/corefile.exp: Add test to read mmapped data
	from core file.

Wed Oct 30 18:19:16 1996  Michael Snyder  <msnyder@cygnus.com>

	* config/m32r.exp: New file.

Mon Oct 21 14:40:50 1996  Stu Grossman  (grossman@critters.cygnus.com)

	* testsuite/gdb.base/nodebug.exp:  Whack out -g options by hand so
	that cflags can contains -gstabs, and work correctly for other tests.

Mon Oct 21 14:00:37 1996  Michael Snyder  <msnyder@cygnus.com>

	* gdb.base/setshow.exp: New file, tests show and set.
	* gdb.base/setshow.c:   New file, tests show and set.
	* gdb.base/help.exp: Add test for help set|show annotate.
	* gdb.base/default.exp: Add test for set|show annotate.

Wed Oct 16 19:03:54 1996  Stu Grossman  (grossman@critters.cygnus.com)

	* testsuite/gdb.base/break.exp:  Make backtrace from factorial
	errors unique.
	* testsuite/gdb.base/nodebug.exp:  Whack out all -g options
	explicitly.

Tue Oct 15 16:45:02 1996  Stu Grossman  (grossman@critters.cygnus.com)

	* config/sim-gdb.exp (gdb_target_sim):  Remove setting of height
	and width commands.  This is done elsewhere.
	* (gdb_start):  Don't call gdb_start_sim here.  That's already
	done in gdb_load.  This fixes lots of failures in default.exp.

Sun Oct 13 10:40:23 1996  Fred Fish  <fnf@cygnus.com>

	From Peter Schauer <Peter.Schauer@Regent.E-Technik.TU-Muenchen.DE>:
	* gdb.base/mips_pro.exp: Fix misplaced gdb_exit/gdb_start/gdb_load.
	* lib/gdb.exp (gdb_test): Treat failures due to program exiting
	in the same we we treat other failures (since it may be an expected
	condition), rather than as an error.
	* gdb.base/signals.exp (test_handle_all_print): Revert back to
	old test format.

Fri Oct 11 17:05:22 1996  Fred Fish  <fnf@cygnus.com>

	* Makefile.in (clean mostlyclean): Also remove chill *.grt files.
	(distclean maintainer-clean realclean): No need to remove files
	twice.  Nuke the duplicates.
	* gdb.base/Makefile.in (EXECUTABLES): Add "structs".
	* gdb.threads/Makefile.in (distclean maintainer-clean realclean):
	Remove config.h along with other config files.

Mon Sep 30 20:16:22 1996  Fred Fish  <fnf@cygnus.com>

	* gdb.base/interrupt.exp: Add i*86-*-linux* setup_xfail for
	"p func1 ()" and note that rests of tests are skipped.
	* gdb.base/corefile.exp: Add i*86-*-linux* and m68*-*-hpux*
	setup_xfails for "print func2::coremaker_local".
	Add i*86-*-linux* setup_xfail for "backtrace in corefile.exp".
	* gdb.base/mips_pro.exp: Restart gdb in this test so it isn't
	affected by the previous run test.
	* gdb.chill/misc.exp: Add m68*-*-hpux* setup_xfails for
	"print array () ubyte (foo)" and "print/x array () byte (\$i)"
	* gdb.chill/pr-8742.exp: Add m68*-*-hpux* setup_xfails for
	"pass int powerset tuple" and "pass modeless int powerset tuple".
	* gdb.chill/tests2.exp: Add m68*-*-hpux* setup xfails for
	"real write 4" and "real write 8".
	* gdb.shill/tuples.exp: Add i*86-*-linux* and m68*-*-hpux*
	setup_xfails for "print vs1 after tuple assign 2",
	"print \$i after tuple assign 2", and
	"print vs2 after tuple assign 2".
	* lib/gdb.exp (gdb_test): When a gdb aborts, print a more
	meaningful error message and return -1 so the caller can
	suppress further tests and avoid a cascade of errors.

Fri Sep 27 10:34:51 1996  Fred Fish  <fnf@cygnus.com>

	* gdb.base/a1-selftest.exp: Tweak tests to account for new
	format for printing version.
	* gdb.base/default.exp: Ditto.
	* gdb.base/interrupt.exp: Fix problem with cascade of
	errors if child process dies while calling a function.

Fri Sep 13 21:43:48 1996  Fred Fish  <fnf@cygnus.com>

	* Makefile.in (VPATH): Add
	* Makefile.in (Makefile, config.status): Fix rules so things get
	remade when necessary.

Fri Sep 13 18:16:10 1996  Fred Fish  <fnf@cygnus.com>

	* Makefile.in (just-check): Add path to sibling expect dir
	to environment variable specified by RPATH_ENVVAR.

Fri Sep 13 12:05:34 1996  Fred Fish  <fnf@cygnus.com>

	* Makefile.in (RPATH_ENVVAR): New var, set to @RPATH_ENVVAR@.
	(just-check): Add shared library paths for libstdc++, tk,
	tcl, bfd, and opcodes to the environment variable specified
	in RPATH_ENVVAR.
	* configure.in: Add support to recognize --enable-shared flag
	and generate correct value for RPATH_ENVVAR.
	* configure: Regenerated with autoconf.

Mon Sep  2 06:36:02 1996  Fred Fish  <fnf@cygnus.com>

	* gdb.base/break.exp: Expand "Delete all breakpoints" xfail to
	include all osf versions.
	* gdb.threads/pthreads.exp: Expand "run to main" xfail to include
	all osf versions.  Add -D_MIT_POSIX_THREADS to compilation command
	when target is linux.  When failing to build pthreads test
	executable, give more meaningful message.
	* gdb.threads/pthreads.c: Hpux also uses old definition of second
	arg for pthread_create.

Mon Aug 19 09:58:59 1996  Fred Fish  <fnf@cygnus.com>

	* gdb.threads/pthreads.c (PTHREAD_CREATE_ARG2,
	PTHREAD_CREATE_NULL_ARG2): Accomodate old pthreads implementations.
	* gdb.threads/pthreads.exp: Try linking with both -lpthread (Solaris)
	and -lpthreads (everybody else).
	(test_startup): Fail gracefully if threads are not supported.
	* gdb.base/nodebug.exp: Add setup_xfail hppa*-*-hpux* for
	"p/c array_index("abcdef",2)" when not gcc compiled.
	* gdb.base/corefile.exp: Add setup_xfail hppa*-*-hpux* for
	"print func2::coremaker_local" when not gcc compiled.
	* gdb.base/opaque.exp: Remove setup_xfail hppa*-*-hpux* for
	"ptype on opaque struct tagname (statically)",
	"ptype on opaque struct tagname (dynamically) 1", and
	"ptype on opaque struct tagname (dynamically) 2"
	for not compiled with gcc.
	* gdb.base/mips_pro.exp: Only do setup_xfail hppa*-*-* for
	backtrace when compiled with gcc.
	* lib/gdb.exp (runto_main): Return result of "runto main" rather
	than always return success.

Sat Aug 17 13:28:00 1996  Fred Fish  <fnf@cygnus.com>

	* gdb.c++/virtfunc.exp: Remove setup_xfail for "mips-*-irix5*".

Tue Aug 13 10:26:10 1996  Jeffrey A Law  (law@cygnus.com)

	* gdb.base/structs.exp: Undo last change.

Mon Aug 12 15:29:08 1996  Fred Fish  <fnf@cygnus.com>

	* gdb.base/a1-selftest.exp (do_steps_and_nexts): New routine to
	encapsulate all the steps/nexts done during self test, starting
	at main, and makes them less sensitive to optimization issues.
	Add "hppa*-*-hpux*" to setup_xfail for "backtrace through
	signal handler" test.
	* gdb.threads/pthreads.exp: Only run this for native configs.
	* gdb.base/structs.exp (do_function_calls): Add hppa*-*-hpux9*"
	setup_xfails for "p fun5()", "p fun6()", "p fun7()", and "p fun8"
	tests.
	gdb.c++/virtfunc.exp (do_tests): Add "mips-*-irix5*" setup_xfail
	for "runto test_calls(void)" test.

Sun Aug 11 13:11:24 1996  Fred Fish  <fnf@cygnus.com>

	* gdb.base/term.exp: Set 7-bit strings, address off, width to 0,
	and don't expect address info in breakpoint confirmations.

Wed Aug  7 20:47:43 1996  Fred Fish  <fnf@cygnus.com>

	* gdb.base/list.exp (test_forward_search): Increase timeout
	temporarily by 60 seconds for searching extremely long line,
	and then reset to old value when done.  Increase expect input
	buffer to 10000.

Wed Aug  7 15:34:22 1996  Fred Fish  <fnf@cygnus.com>

	* gdb.base/list.exp (test_forward_search): Fix to handle very
	long source line without overflowing expect's input buffer.

Wed Aug  7 12:03:25 1996  Tom Tromey  <tromey@creche.cygnus.com>

	* config/slite-gdb.exp (gdb_start): Use "full_buffer", not
	"buffer_full".

	* config/nind-gdb.exp (gdb_start): Use "full_buffer", not
	"buffer_full".

	* config/mips-gdb.exp (gdb_start): Use "full_buffer", not
	"buffer_full".

	* lib/gdb.exp (gdb_test): Correct pattern is "full_buffer", not
	"buffer_full".

Wed Aug  7 11:05:47 1996  Fred Fish  <fnf@cygnus.com>

	* configure.in (configdirs): Add gdb.threads.
	* configure: Regenerated with autoconf.
	* gdb.threads/{config.in, pthreads.c, pthreads.exp}: New.
	* gdb.threads/{Makefile.in, configure.in}: Complete rewrites.
	* gdb.threads/configure: New, generated with autoconf.

Tue Aug  6 10:23:04 1996  Tom Tromey  <tromey@rtl.cygnus.com>

	* lib/gdb.exp (gdb_test_exact): Turn \n in pattern into \r\n.

Mon Aug  5 18:11:53 1996  Fred Fish  <fnf@cygnus.com>

	* gdb.base/signals.exp (test_handle_all_print): Test separately for
	each signal's status in the output of "handle all print".
	* lib/gdb.exp (gdb_test): Document that the pattern must NOT include
	the \r\n sequence that immediately precedes the gdb prompt.
	* gdb.base/a1-selftest.exp: Save original timeout and restore
	after test.

Sun Aug  4 10:20:50 1996  Jeffrey A Law  (law@cygnus.com)

	* gdb.disasm/hppa.s: Export fmemLRbug_tests_4 as a ST_CODE
	symbol.

Fri Aug  2 17:37:26 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>

	* config/vx-gdb.exp (gdb_start): Fix syntax of `$shell_id < 0'.

Thu Jun 27 20:41:40 1996  Fred Fish  <fnf@cygnus.com>

	* gdb.base/signals.exp (test_handle_all_print): Temporarily increase
	timeout by 60 seconds.

Thu Jun 27 18:13:57 1996  Fred Fish  <fnf@cygnus.com>

	* config/unix-gdb.exp: Increase default timeout from 30 to 60 sec.
	* config/netware.exp (gdb_run_cmd): Restore old timeout before doing
	error return.

Thu Jun 27 10:54:58 1996  Fred Fish  <fnf@cygnus.com>

	* lib/gdb.exp (default_gdb_start): When reporting a timeout during
	gdb initialization, also report how long dejagnu waited.  Restore
	old timeout before doing error return.  Temporarily increase timeout
	by 3 minutes to allow for slow startups over heavy NFS use.

Tue Jun 25 19:59:17 1996  Fred Fish  <fnf@cygnus.com>

	* lib/gdb.exp: Report timeout value for verbosity level 2.
	* config/gdbserver.exp: Ditto.
	* config/hppro.exp: Ditto.
	* config/mips-gdb.exp: Ditto.
	* config/monitor.exp: Ditto.
	* config/netware.exp: Ditto.
	* config/sim-gdb.exp: Ditto.
	* config/slite-gdb.exp: Ditto.
	* config/udi-gdb.exp: Ditto.
	* config/unix-gdb.exp: Ditto.
	* config/vx-gdb.exp: Ditto.
	* gdb.base/a1-selftest.exp: Ditto.
	* gdb.base/a2-run.exp: Ditto.
	* gdb.base/break.exp: Ditto.
	* gdb.base/corefile.exp: Ditto.
	* gdb.base/list.exp: Ditto.
	* gdb.base/recurse.exp: Ditto.
	* gdb.base/scope.exp: Ditto.
	* gdb.base/signals.exp: Ditto.

Tue Jun 25 23:16:58 1996  Jason Molenda  (crash@godzilla.cygnus.co.jp)

	* gdb.threads/Makefile.in (docdir): Removed.

Tue Jun 25 17:02:39 1996  Jason Molenda  (crash@godzilla.cygnus.co.jp)

	* configure.in (AC_PREREQ): autoconf 2.5 or higher.
	* gdb.{base,c++,chill,disasm,stabs}/Makefile.in (VPATH): set to
	@srcdir@.
	* gdb.{base,c++,chill,disasm,stabs}/configure.in (AC_PREREQ):
	autoconf 2.5 or higher.
	* gdb.{base,c++,chill,disasm,stabs}/configure: Rebuilt.

Thu Jun 13 11:16:10 1996  Tom Tromey  <tromey@thepub.cygnus.com>

	* configure: Regenerated.
	* aclocal.m4 (CY_AC_PATH_TCLH, CY_AC_PATH_TKH): Use odd names to
	avoid name clashes with SunOS headers.

Wed Jun  5 16:43:27 1996  Jeffrey A Law  (law@cygnus.com)

	* gdb.c++/virtfunc.exp: Search $objdir/../../libstdc++ for libstdc++.

Thu May 30 11:35:11 1996  Jeffrey A Law  (law@cygnus.com)

	* gdb.base/callfuncs.exp: Finish last change -- make sure the
	prototype information ends up in the compiler info file.

Thu May 23 12:48:41 1996  Fred Fish  <fnf@cygnus.com>

	* gdb.base/callfuncs.exp: Remove the compiler info file prior to
	attempting to regenerate it.  Eliminate use of a temporary file
	and just generate the info file directly.  Source it immediately,
	for consistency of use.
	* gdb.base/corefile.exp: Ditto
	* gdb.base/exprs.exp: Ditto.
	* gdb.base/funcargs.exp: Ditto.
	* gdb.base/langs.exp: Ditto.
	* gdb.base/list.exp: Ditto.
	* gdb.base/mips_pro.exp: Ditto.
	* gdb.base/nodebug.exp: Ditto.
	* gdb.base/opaque.exp: Ditto.
	* gdb.base/ptype.exp: Ditto.
	* gdb.base/scope.exp: Ditto.
	* gdb.base/setvar.exp: Ditto.
	* gdb.base/signals.exp: Ditto.
	* gdb.base/whatis.exp: Ditto.
	* gdb.c++/templates.exp: Ditto.
	* gdb.c++/virtfunc.exp: Ditto.
	* gdb.c++/virtfunc.exp: Use contents of gcc_compiled to decide
	whether or not to add -lstdc++ to the compile command line args.

Sat May 18 02:43:58 1996  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.base/recurse.exp:  Remove setup_xfail for "sparc*-*-sunos4*",
	it got fixed by the recent lookup_minimal_symbol_by_pc change.
	Increase timeout, a lot of single stepping might be needed if the
	target has no hardware watchpoints.

Wed May 15 08:47:42 1996  Jeffrey A Law  (law@cygnus.com)

	* gdb.base/break.exp: Ignore compiler warnings when compiling
	break.c.
	* gdb.base/callfuncs.exp: Don't run these tests on the h8300.
	* gdb.base/default.exp: Add h8300 xfails.  Handle messages
	from remote-sim.
	* gdb.base/exprs.exp: Add h8300 xfails.
	* gdb.base/funcargs.exp: Likewise.
	* gdb.base/nodebug.exp: Likewise.
	* gdb.base/printcmds.exp: Likewise.
	* gdb.base/ptype.exp: Likewise.
	* gdb.base/setvar.exp: Handle sizeof (int) != 4 for h8300.  Add
	h8300 xfails.
	* gdb.base/return.exp: Handle float/double precision problems
	on the h8300.
	* gdb.base/funcargs.c: Explicitly make last constant argument to
	call_after_alloca_subr an unsigned long type.
	* gdb.base/return.c: Include stdio.h.

Tue May  7 22:01:12 1996  Rob Savoye  <rob@chinadoll.cygnus.com>

	* config/abug.exp: New file for the older Motorola Bug monitor
	that runs on the mvme13x series VME boards.
	* config/monitor.exp: Use the new config array for target settings
	if they exist.

Fri May  3 16:02:55 1996  Stan Shebs  <shebs@andros.cygnus.com>

	* sim-gdb.exp: Make the SH simulator allocate less space when
	it is targeted.

Thu May  2 12:31:56 1996  Jeffrey A Law  (law@cygnus.com)

	* gdb.base/mips_pro.exp: Expect failure for hppa*-*-* in backtrace
	test.

Wed Mar 20 08:48:03 1996  Fred Fish  <fnf@cygnus.com>

	* gdb.base/list.exp (test_list_function): Remove setup_xfail for
	"rs6000-*-*" for "list function in include file" when gcc compiled.
	* gdb.base/printcmds.exp: Remove setup_xfail for "rs6000-*-aix*"
	for "p ctable1[120]".
	* gdb.base/scope.exp: Remove setup_xfail for "rs6000-*-*" for
	"print 'scope0.c'::filelocal_bss before run" when gcc compiled.
	Remove setup_xfail for "rs6000-*-*" for
	"print 'scope0.c'::filelocal before run".
	* gdb.base/{langs.exp, lists.exp, opaque.exp, scope.exp},
	gdb.stabs/weird.exp: Remove use of compiler options "-c -o ..."
	since some compilers don't allow both options to be given
	on the same command line.  Create object file and move it.

Tue Mar 19 23:49:31 1996  Fred Fish  <fnf@cygnus.com>

	* gdb.base/corefile.exp: Always regenerate the core file, since
	we always regenerate the coremaker program.  Detect special case
	where registers cannot be read from core file.

Tue Mar 19 16:52:49 1996  Fred Fish  <fnf@cygnus.com>

	From Peter Schauer <Peter.Schauer@Regent.E-Technik.TU-Muenchen.DE>
	* gdb.base/funcargs.c: Patch for SPARCworks alloca compatibility
	* gdb.c++/templates.exp: Only match on basename of file since
	some formats like xcoff don't encode directory information.
	* gdb.stabs/weird.exp: Use the right sed script for powerpc
	and rs6000 AIX xcoff targets.
	* configure.in: Add stabsdirs to configdirs for powerpc-*-aix*.
	* configure: Regenerate.
	* gdb.base/Makefile.in (clean): Remove generated file twice-tmp.c
	here, rather than in distclean.

Sun Mar 17 13:35:31 1996  Fred Fish  <fnf@cygnus.com>

	* gdb.base/mips_pro.exp: Create mips_pro.ci to get gcc_compiled
	defined, and use it to compile the test case with -O2.  The
	native compilation still uses no optimization.
	* gdb.base/mips_pro.c: Remove inline assembly code since
	it is compiled PIC by default, which results in assembler
	warnings that make the testsuite think the compilation
	was unsuccessful.

Sat Mar 16 15:02:24 1996  Fred Fish  <fnf@cygnus.com>

	* gdb.c++/misc.exp: Add note to message for
	"print s.a for foo struct" that this is a known gcc 2.7.2
	and earlier bug.

Fri Mar 15 17:49:57 1996  Fred Fish  (fnf@cygnus.com)

	* gdb.base/break.exp: Fix pattern for matching "Delete all
	breakpoints (y or n) ".  Add "mips-dec-ultrix*" to
	setup_xfail for deleting all breakpoints test.  Fix various
	timeout messages to include "(timeout)".
	* gdb.base/callfuncs.exp: Add "i*86-*-sysv4*" to setup_xfail
	for "p t_float_values2(3.14159,float_val2)".
	* gdb.base/funcargs.exp: Remove "mips-sgi-irix4*" setup_xfail
	for "continue to call2g" when gcc compiled.
	* gdb.base/langs.exp: Remove "i*86-*-sysv4*" setup_xfail for
	"up to foo in langs.exp", "show language at foo in langs.exp",
	"show language at cppsub_ in langs.exp", "up to fsub in langs.exp",
	and "show language at fsub in langs.exp".
	* gdb.base/list.exp: Remove "*-*-sysv4*" setup_xfail for
	"list line 1 in include file", "list message for lines past EOF",
	"list function in include file", "list list0.h:foo", and
	"list filename:function; nonexistant function".
	* gdb.base/ptype.exp: Change "i*86-*-sysv4*" setup_xfail for
	"whatis unnamed typedef'd enum (compiler bug in IBM's xlc)"
	and "ptype t_char_array" to be for native cc only.

Fri Mar 15 16:17:22 1996  Fred Fish  <fnf@cygnus.com>

	* gdb.base/corefile.exp: Remove "alpha-dec-osf2*" native compiled
	setup_xfail for "print coremaker_bss", "print coremaker_ro",
	"print func2::coremaker_local", and "backtrace in corefile.exp".

Wed Mar 13 14:54:11 1996  Fred Fish  <fnf@cygnus.com>

	* gdb.base/signals.exp: Remove "alpha-*-osf2*" setup_xfail for
	"bt in signals.exp".  This problem only appears when running
	the testsuite, and then only intermittently.

Tue Mar 12 15:00:16 1996  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.base/return.exp (return_tests): Differentiate between
	two tests of continuing.

Tue Mar  5 14:33:33 1996  Stan Shebs  <shebs@andros.cygnus.com>

	* */Makefile.in (maintainer-clean): Remove config.log.
	* gdb.base/Makefile.in (EXECUTABLES): Replace twice with twice-tmp.
	* gdb.c++/Makefile.in (PROGS): Add inherit.
	(clean): Remove *.ci.

Tue Feb 20 16:36:10 1996  Fred Fish  <fnf@cygnus.com>

	* gdb.c++/misc.cc: Add test code from Mike Stump.
	* gdb.c++/misc.exp: Add test to print s.a, for Mike Stump.

Sun Feb 18 11:39:12 1996  Fred Fish  <fnf@cygnus.com>

	* gdb.base/signals.exp: Change setup_xfail for "alpha-*-osf2"
	to "alpha-*-osf2*" and add comment.
	* gdb.base/a1-selftest.exp (test_with_self): Remove "alpha-dec-osf2*"
	setup_xfail for "step over execarg initialization" and
	"step over corearg initialization".
	* gdb.base/callfuncs.exp (do_function_calls): Restore setup_xfail
	for "hppa*-*-*", "sparc-*-*", "mips*-*-*", and "alpha-dec-osf2*".
	* gdb.base/corefile.exp: Add "alpha-dec-osf2*" setup_xfail when not
	gcc compiled for "print coremaker_bss", "print coremaker_ro",
	"print func2::coremaker_local", and "backtrace in corefile.exp".
	* gdb.base/signals.exp: Build and source signals.ci.
	Change "alpha-dec-osf2*" setup_xfail for "bt in signals.exp"
	to be for gcc only.
	* lib/gdb.exp: Move verbose statements outside conditionals.

Sat Feb 17 02:22:14 1996  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.base/sigall.exp:  Remove setup_xfail for irix4.  Fixed by
	Feb 3 procfs.c change.

Fri Feb 16 13:25:31 1996  Fred Fish  <fnf@cygnus.com>

	* config/unix-gdb.exp: Remove extraneous newlines from end of file.

Thu Feb 15 08:12:55 1996  Fred Fish  <fnf@cygnus.com>

	* config/unix-gdb.exp: Default timeout in UNIX case to 30 seconds, up
	from dejagnu's apparent default of 10 seconds, which gives random
	results when running the tests over NFS on moderately loaded systems.
	* lib/gdb.exp (gdb_run_cmd): Add "(timeout)" in timeout case.

Mon Feb 12 16:50:28 1996  Fred Fish  <fnf@cygnus.com>

	* gdb.base/callfuncs.exp: Remove setup_xfail for PR 5318.  Now fixed.
	* gdb.base/a2-run.exp: Replace $binfile with $testfile in test
	result reports.

Fri Feb  9 15:56:51 1996  Fred Fish  <fnf@cygnus.com>

	* configure.in (CY_AC_PATH_TCLH): Remove.
	* configure: Regenerate.

Fri Feb  9 08:21:31 1996  Fred Fish  <fnf@cygnus.com>

	* gdb.c++/Makefile.in (clean): Add missing '{'.

Fri Feb  2 10:19:40 1996  Jeffrey A Law  (law@cygnus.com)

	* lib/gdb.exp: Provide a default value for noinferior.

	* lib/gdb.exp: Fix typos (LDLAGS -> LDFLAGS).
	Load libgloss.exp.

Thu Feb  1 20:20:14 1996  Jeffrey A Law  (law@cygnus.com)

	* gdb.disasm/hppa.exp: Compile directly into an executable, use
	the executable, not the .o to run the tests from.

Wed Jan 31 14:21:09 1996  Jeffrey A Law  (law@cygnus.com)

	* gdb.base/break.exp: Don't test for program exit or exit status
	if $noresults if nonzero.
	* gdb.base/langs.exp: Likewise.
	* gdb.base/watchpoint.exp: Likewise.

	* gdb.base/default.exp: Remove extraneous call to load gdb.exp.
	* gdb.chill/pr-8405.exp: Move skip_chill_tests check to just before
	trying to compile the testcase.

Wed Jan 24 23:42:39 1996  Doug Evans  <dje@charmed.cygnus.com>

	* gdb.base/interrupt.exp (p func1): xfail sparc64-*-solaris2.
	* gdb.base/signals.exp (continue to handler): Likewise.

Tue Jan 23 16:28:22 1996  Per Bothner  <bothner@kalessin.cygnus.com>

	* gdb.c++/classes.exp:  Now = returns false/true, not 1/0.

	* gdb.fortran/exprs.exp:  .LT. and .GT. now return .TRUE. or .FALSE..

Tue Jan 23 15:41:57 1996  Jeffrey A Law  (law@cygnus.com)

	* gdb.base/corefile.exp: Recognize "not found" as failure
	when trying to determine if a core file was generated.
	If no core file was generate the first time, try again without
	the ulimit -c to work around braindamaged shells.

Mon Jan 15 09:33:00 1996  Fred Fish  <fnf@cygnus.com>

	* gdb.stabs/configure.in (alpha-*-*,mips-*-*): Replace
	[] tests with "test" and enclose string in quotes.
	* gdb.stabs/configure: Rebuild

Thu Jan 11 09:43:14 1996  Tom Tromey  <tromey@creche.cygnus.com>

	Changes in sync with expect:
	* aclocal.m4 (CY_AC_PATH_TCLH): Handle Tcl 7.5 and greater.
	(CY_AC_PATH_TCLLIB): Handle Tcl 7.5 and greater.
	(CY_AC_PATH_TKH): Handle Tk 4.1 and greater.
	(CY_AC_PATH_TKLIB): Handle Tk 4.1 and greater.  Properly quote
	argument to AC_REQUIRE.
	* configure: Regenerated.

Thu Jan  4 08:17:22 1996  Fred Fish  <fnf@cygnus.com>

	* gdb.base/corefile.exp: When generating a core, discard any
	error messages about ulimit not found and the "core dumped"
	message from the shell that runs the coredumper.

Wed Jan  3 01:30:41 1996  Jeffrey A Law  (law@cygnus.com)

	* lib/gdb.exp (skip_chill_tests): Skip them on the PA too.

	* gdb.stabs/weird.exp: Use ${target_triplet} to determine
	which sed script to run.  Expect failure for v_comb test
	on PA targets too.

Sat Dec 30 16:09:04 1995  Fred Fish  <fnf@rtl.cygnus.com>

	* gdb.base/corefile.exp: Remove "i*86-*-linux" xfail for
	"print func2::coremaker_local" and for "backtrace in corefile.exp"

Sat Dec 30 12:59:12 1995  Fred Fish  <fnf@cygnus.com>

	* lib/gdb.exp: Fix typo and rewrite skip_chill_tests.
	* gdb.stabs/weird.exp: Setup "sparc-sun-sunos4*" and
	"sparc-sun-solaris*" xfails for "p v_comb".
	* lib/gdb.exp (default_gdb_start): Fix typo.
	* gdb.base/corefile.exp: Allow "Core was generated by ..."
	messages to not include the full program name that caused
	the core dump since some systems (such as solaris) apparently
	truncate this path to about 80 characters.
	When generating a core file first try increasing the core file
	size limit to unlimited since some systems may default it to
	zero, and it is harmless to try it.  Move the test for failing
	to generate a core file to where it will actually get executed.
	* gdb.c++/templates.exp (test_ptype_of_templates): Accept
	new gdb result from g++ debug info improvements and make old
	pattern obsolescent.  Also account for size_t differences
	(may be int or long).
	* gdb.base/a1-selftest.exp (test_with_self): Check for case where
	initialization before function call is placed in the delay slot
	and thus appears to be skipped over by commands such as "next".

Fri Dec 29 16:09:20 1995  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.base/a1-selftest.exp (test_with_self): Run without windows.

Wed Dec  6 10:45:42 1995  Jeffrey A. Law  <law@sethra.cygnus.com>

	* gdb.base/*.exp: Make ${srcfile} only be the basename of the
	input source file; fix code to compile test to deal with this
	convention.
	* gdb.c++/*.exp: Likewise.

Mon Nov 27 11:40:16 1995  Fred Fish  <fnf@cygnus.com>

	* gdb.base/signals.exp: Setup "alpha-*-osf2*" xfail for
	"bt in signals.exp".

Sat Nov 25 20:52:15 1995  Fred Fish  <fnf@phydeaux.cygnus.com>

	* gdb.base/a1-selftest.exp: Add alpha-dec-osf2 setup_xfail for
	"step over execarg initialization" and
	"step over corearg initialization".

Sat Nov 25 18:20:14 1995  Fred Fish  <fnf@cygnus.com>

	* gdb.base/ptype.c (main): Declare malloc as a "char *" for systems
	with sizeof(pointer) > sizeof(int).  Avoid "void *" or include files.

Sat Nov 25 11:03:42 1995  Fred Fish  <fnf@cygnus.com>

	From Rob Savoye  (rob@poseidon.cygnus.com)
	* Makefile.in, configure.in, gdb.base/{Makefile.in, configure.in},
	gdb.c++/{Makefile.in, configure.in}, gdb.chill/{Makefile.in,
	configure.in}, gdb.disasm/{Makefile.in, configure.in},
	gdb.stabs/{Makefile.in, configure.in}, gdb.threads/{Makefile.in,
	configure.in}: Major reworking for autoconfig.
	* aclocal.m4, configure, gdb.base/configure, gdb.c++/configure,
	gdb.disasm/configure, gdb.stabs/configure, gdb.stabs/default.mt :
	New files.
	* config/unix-gdb.exp:  Make GDB global.
	* gdb.base/{a1-selftest.exp, a2-run.exp,bitfields.exp, break.exp,
	callfuncs.exp, commands.exp, corefile.exp, crossload.exp, exprs.exp,
	funcargs.exp, interrupt.exp, langs.exp, list.exp, mips_pro.exp,
	nodebug.exp, opaque.exp, printcmds.exp, ptype.exp, recurse.exp,
	regs.exp, return.exp, scope.exp, setvar.exp, sigall.exp, signals.exp,
	term.exp, twice.exp, watchpoint.exp, whatis.exp},
	gdb.c++/{classes.exp, callfuncs.exp, inherit.exp, misc.exp,
	templates.exp, virtfunc.exp}, gdb.chill/{callch.exp, chillvars.exp,
	misc.exp, pr-4975.exp, pr-5016.exp, pr-5020.exp, pr-5022.exp,
	pr-5646.exp, pr-5984.exp, pr-6292.exp, pr-6632.exp, pr-8134.exp,
	pr-8136.exp, result.exp, string.exp, tuples.exp},
	gdb.disasm/{hppa.exp, sh3.exp}, gdb.stabs/weird.exp: Change continues
	to returns as necessary, arrange for test to compile own testcase
	executable.
	* lib/gdb.exp: Changes for testsuite to compile own test cases.

Tue Nov 21 16:15:45 1995  Fred Fish  <fnf@cygnus.com>

	* gdb.c++/classes.exp (test_pointers_to_class_members): Add
	clear_xfail at end of test which might not call either pass or fail.
	* gdb.base/a1-selftest.exp: Add i*86-*-linuxaout xfail for
	"backtrace through signal handler".

Sat Nov 18 04:09:31 1995  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.base/sigall.exp:  Work around OSF/1-3.x kernel bug when
	continuing from a job control stop signal.
	* gdb.stabs/alpha.mt:  Use $(CFLAGS) when building weird.o.

Wed Nov 15 00:28:03 1995  Jeffrey A Law  (law@cygnus.com)

	* gdb.base/callfuncs.exp: Remove bogus hppa xfails.
	* gdb.base/corefile.exp: Likewise.
	* gdb.base/funcargs.exp: Likewise.

Tue Nov 14 15:18:10 1995  Stu Grossman  (grossman@cygnus.com)

	* config/hmsirom.exp:  Setup for talking to hmsi ROM monitor.
	* config/monitor.exp:  Add support for setting baud rate.

Sat Nov  4 15:35:52 1995  Fred Fish  <fnf@cygnus.com>

	* gdb.base/a1-selftest.exp: Remove i*86-*-sysv4* and
	i*86-*-linux* xfails for "backtrace through signal handler".
	* gdb.base/corefile.exp: Add i*86-*-sysv4* xfail for
	"print func2::coremaker_local".
	* gdb.base/break.exp: Add i*86-*-sysv4*, sparc-sun-sunos4,
	alpha-dec-osf2* xfail for
	"delete all breakpoints when none".

Wed Nov  1 15:57:16 1995  Fred Fish  <fnf@cygnus.com>

	* gdb.base/break.exp: Change test that deletes all breakpoints
	when no user breakpoints are installed.  A post 4.15 change
	causes gdb to no longer prompt in this case.

Tue Oct 31 15:13:43 1995  Fred Fish  <fnf@cygnus.com>

	* gdb.base/return.exp (return_tests):  Change xfail for test
	"correct value returned double test" to stop xfailing at
	Solaris 2.5.  Apparently the bug has been fixed.

Sun Oct 29 12:18:16 1995  Fred Fish  <fnf@cygnus.com>

	* gdb.stabs/ecoff.sed: Remove comment lines except for first one.
	IRIX 4.0 /bin/sed chokes on them, though they work fine elsewhere.

Tue Oct 24 11:12:12 1995  Jeffrey A Law  (law@cygnus.com)

	* gdb.disasm/hppa.exp: Test lci and syncdma instructions.
	* gdb.disasm/hppa.s: Corresponding changes.

Wed Oct 18 11:27:47 1995  Jeffrey A Law  (law@cygnus.com)

	* gdb.base/configure.in (hppa*-*-hpux*): No longer needs target
	makefile fragment.
	* config/mt-hpux: Deleted.

Tue Oct 17 23:02:12 1995  Jeffrey A Law  (law@cygnus.com)

	* Many files: When warning about suppressed tests due to a
	nonexistant test binary, avoid incrementing the warning count.

Tue Oct 10 11:00:41 1995  Fred Fish  <fnf@cygnus.com>

	* Makefile.in (TARGET_FLAGS_TO_PASS):  Remove BISON.

Sun Oct  8 04:23:14 1995  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.base/return.exp:  Change xfail from "sparc-*-solaris2.*" to
	"sparc-*-solaris2*".

Sat Sep 23 01:22:23 1995  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.base/coremaker.c:  Produce a full core dump for AIX targets.
	Add global and local variables and initialize them.
	* gdb.base/corefile.exp:  Test correct mapping of corefile sections
	by printing variables. Remove rs6000 and powerpc xfails, BFD now
	extracts the file name and terminating signal from the core file.
	* TODO:  Remove note about tests for correct mapping of corefile.
	* gdb.base/ptype.c (main):  Use boolean2 to inhibit AIX 4.1 xlc
	from optimizing it away.
	* gdb.stabs/weird.exp:  Remove rs6000 xfail, xcoffread.c now
	handles common blocks.

Thu Sep 21 01:28:10 1995  Jeff Law  (law@snake.cs.utah.edu)

	* gdb.disasm/sh3.s (fmac): Update for new assembler syntax
	* gdb.disasm/sh3.exp (fmac): Corresponding changes.

Wed Sep 20 13:15:05 1995  Ian Lance Taylor  <ian@cygnus.com>

	* Makefile.in (maintainer-clean): New target, synonym for
	realclean.
	* gdb.base/Makefile.in (maintainer-clean): Likewise.
	* gdb.c++/Makefile.in (maintainer-clean): Likewise.
	* gdb.chill/Makefile.in (maintainer-clean): Likewise.
	* gdb.disasm/Makefile.in (maintainer-clean): Likewise.
	* gdb.stabs/Makefile.in (maintainer-clean): Likewise.
	* gdb.threads/Makefile.in (maintainer-clean): Likewise.

Sun Sep 10 13:14:01 1995  Fred Fish  <fnf@cygnus.com>

	* gdb.base/scope.exp (text_at_main):  Add "hppa*-*-hpux*"
	xfails when not gcc compiled for "print foo::funclocal".
	(test_at_foo):  Add "hppa*-*-hpux*" xfails when not gcc compiled for:
	"print foo::funclocal at foo",
	"print 'scope1.c'::foo::funclocal at foo",
	"print foo::funclocal_bss at foo",
	"print 'scope1.c'::foo::funclocal_bss at foo",
	"print foo::funclocal_ro at foo",
	"print 'scope1.c'::foo::funclocal_ro at foo",
	"print bar::funclocal at foo" and
	"print 'scope1.c'::bar::funclocal at foo".
	(test_at_bar):  Add "hppa*-*-hpux*" xfails when not
	gcc compiled for "print foo::funclocal at bar".
	Expand all messages to ensure that they identify that
	the test is at bar().
	* gdb.base/opaque.exp: Add "hppa*-*-hpux*" xfails when not
	gcc compiled for:
	"ptype on opaque struct pointer (statically)",
	"ptype on opaque struct tagname (statically)",
	"ptype on opaque struct pointer (dynamically) 1",
	"ptype on opaque struct tagname (dynamically) 1",
	"ptype on opaque struct pointer (dynamically) 2" and
	"ptype on opaque struct tagname (dynamically) 2
	* gdb.base/nodebug.exp: Add "hppa*-*-hpux*" xfails when not
	gcc compiled for:
	"p datalocal"
	"whatis datalocal",
	"ptype datalocal",
	"p bsslocal",
	"whatis bsslocal", and
	"ptype bsslocal".
	* gdb.base/langs.exp: Add "hppa*-*-hpux*" xfails for
	"backtrace in langs.exp" and "up to langs0__2do in langs.exp"
	when not gcc compiled.
	* gdb.base/funcargs.exp (float_and_integral_args):  Add
	"hppa*-*-hpux*" xfail for "run to call2a" when not gcc
	compiled.
	(discard_and_shuffle):  Add "hppa*-*-hpux*" xfail for
	"backtrace from call6a" when not gcc compiled.
	(shuffle_round_robin): Add "hppa*-*-hpux*" xfail for
	"backtrace from call7a" when not gcc compiled.
	* gdb.base/callfuncs.exp (do_function_calls):
	Add "hppa*-*-hpux*" xfail when not gcc compiled for
	"p t_char_array_values(char_array_val2,char_array_val1)",
	"p t_char_array_values(char_array_val1,char_array_val2)",
	"p t_char_array_values("carray 1","carray 2")",
	"p t_char_array_values("carray 1",char_array_val2)",
	"p t_char_array_values(char_array_val1,"carray 2")",
	"p sum_args(1,{2})",
	"p sum_args(2,{2,3})",
	"p sum_args(3,{2,3,4})",
	"p sum_args(4,{2,3,4,5})"
	* gdb.base/corefile.exp: Add "hppa*-*-hpux*" xfail for
	"backtrace in corefile.exp" when not gcc compiled.

Sat Sep  9 01:35:39 1995  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.base/signals.exp:  Rewrite `handle all print' test as
	a procedure. Accept blanks or TABs as whitespace, increase
	timeout and expect input buffer size for the large output
	from the command. Remove "i*86-*-bsdi2.0" xfail.

Sat Sep  2 06:41:26 1995  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.base/setvar.exp:  Add new testcases for truncation when
	assigning invalid values to bitfields.

Sat Sep  2 00:17:31 1995  Fred Fish  <fnf@cygnus.com>

	* gdb.base/callfuncs.exp (do_function_calls):  Remove
	mips-sgi-irix* xfail for
	"call inferior func with struct - returns char *"
	and fix test so that an optional (unsigned char *) cast is
	accepted in the result.

Fri Sep  1 13:42:01 1995  Fred Fish  <fnf@cygnus.com>

	* gdb.base/funcargs.exp (float_and_integral_args):  Remove
	sparc-sun-solaris2* xfail for "print f1 after run to call2a".
	* gdb.c++/Makefile.in (SUFFIXES): Add .SUFFIXES and ".cc" suffix.
	* gdb.base/signals.exp: Remove duplicate "handle all print" test
	that accidentally got checked in.

Sun Aug 27 23:35:35 1995  Fred Fish  <fnf@cygnus.com>

	* gdb.base/callfuncs.exp (do_function_calls):  Add alpha-dec-osf2*
	clear_xfail for "p t_float_values2(3.14159,float_val2)" for gcc
	compiled test.
	* gdb.base/opaque.exp (setup_xfail_on_opaque_pointer):
	Add mips-sgi-irix5* xfail for not gcc compiled.
	* gdb.base/Makefile.in (nodebug.o):  Also create nodebug.ci.
	* gdb.base/nodebug.exp: Add mips-sgi-irix5 xfail when not gcc compiled for
	"p top", "whatis top", "p middle", and "whatis middle".
	* gdb.base/whatis.exp: Add mips-sgi-irix* xfail for
	"whatis signed char" for not gcc compiled.
	* gdb.base/setvar.exp: Add mips-sgi-irix4* xfail (works on irix5) for
	"set variable signed char=-1 (-1)" and
	"set variable signed char=0xFF (0xFF)" for not gcc compiled.
	* gdb.base/funcargs.exp (float_and_integral_args):
	Add mips-sgi-irix5* xfail for "run to call2a" for not gcc compiled.
	Add mips-sgi-irix* xfail when not gcc compiled for
	"continue to call2b".
	Add mips-sgi-irix4* xfail (works with irix5) when gcc compiled for
	"continue to call2g".
	(discard_and_shuffle): Add mips-sgi-irix5* xfail whn not gcc compiled for
	"backtrace from call6a"
	(shuffle_round_robin): Add mips-sgi-irix* xfail when not gcc compiled for
	"backtrace from call7k".
	Add mips-sgi-irix5* xfail when not gcc compiled for
	"backtrace from call7a".
	(localvars_after_alloca):  Fix gdb_test cmds for
	"print * after runto ...".
	Remove rs6000-*-* xfails for
	"print i after runto localvars_after_alloca" and
	"print l after runto localvars_after_alloca"
	for all compilers.
	* gdb.base/exprs.exp: Add mips-sgi-irix4* xfails (works with irix5),
	when not compiled with gcc, for:
	"print signed char == (minus)",
	"print signed char != (minus)",
	"print signed char < (minus)",
	"print signed char > (minus)".
	* gdb.base/callfuncs.exp (do_function_calls):
	Add mips-sgi-irix* xfail, when compiled with native compiler, for
	"call inferior func with struct - returns char *".
	* gdb.base/return.exp (return_tests): Change xfail for
	"correct value returned double test" to include Solaris 2.4.
	* gdb.base/funcargs.exp (float_and_integral_args):
	Add sparc-sun-solaris2* xfail for "print f1 after run to call2a".

Sat Aug 26 00:26:11 1995  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.base/setvar.c, gdb.base/setvar.exp:  Add new tests for
	enumeration bitfields if compiling with GNU C.
	* lib/gdb.exp:  Consume `(y or n) ' in `Reinitialize source path
	to empty' prompt.

Tue Aug 22 00:30:37 1995  Jeff Law  (law@snake.cs.utah.edu)

	* gdb.base/scope.exp: xfail 'scope0.c'::filelocal_bss before run
	test for PRO targets.

	* gdb.base/funcargs.exp: Avoid ever setting more than 8
	breakpoints in the inferior at any given time by making
	two groups of breakpoints for call2*, call6* and call7*
	tests.

Sun Aug 20 06:58:25 1995  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.base/funcargs.exp:  Fix typos introduced by Aug 15 change.
	* gdb.base/callfuncs.c (main):  Use struct_val1 to inhibit xlc
	from optimizing it away.
	* gdb.base/callfuncs.exp:  Remove rs6000-*-* xfails for
	"call inferior func with struct".

Wed Aug 16 11:57:15 1995  Stan Shebs  <shebs@andros.cygnus.com>

	* configure.in: Only configure gdb.chill for particular targets.

Tue Aug 15 09:42:44 1995  Fred Fish  <fnf@cygnus.com>

	* gdb.base/Makefile.in:  Add action to .c.o transformation
	rule that generates a .ci file for each .o file and remove
	explicit .c.o rules except for callfuncs.o.
	* gdb.c++/Makefile.in:  Add .cc.o transformation rule that
	generates a .ci file for each .o file and remove explicit
	.cc.o rules.
	(clean): Remove *.tmp *.ci files.
	(EXECUTABLES): Remove templ-info.exp.
	* gdb.base/compiler.c: New file.
	* gdb.c++/compiler.cc: New file
	* gdb.base/scope.exp: Source gdb.base/scope.ci.
	Change rs6000-*-* xfail for
	"print 'scope0.c'::filelocal_ro" and
	"print 'scope1.c'::filelocal" and
	"print 'scope1.c'::filelocal_bss" and
	"print 'scope1.c'::filelocal_ro" and
	"print 'scope1.c'::foo::funclocal" and
	"print 'scope1.c'::foo::funclocal_ro" and
	"print 'scope1.c'::bar::funclocal" and
	"print 'scope0.c'::filelocal_ro" and
	"print 'scope1.c'::filelocal at foo" and
	"print 'scope1.c'::filelocal_bss at foo" and
	"print 'scope1.c'::filelocal_ro at foo" and
	"print 'scope1.c'::foo::funclocal at foo" and
	"print 'scope1.c'::foo::funclocal_bss at foo" and
	"print 'scope1.c'::foo::funclocal_ro at foo" and
	"print 'scope1.c'::bar::funclocal at foo" and
	"print 'scope0.c'::filelocal_ro" and
	"print 'scope1.c'::filelocal" and
	"print 'scope1.c'::filelocal_bss" and
	"print 'scope1.c'::filelocal_ro" and
	"print 'scope1.c'::foo::funclocal" and
	"print 'scope1.c'::foo::funclocal_bss" and
	"print 'scope1.c'::foo::funclocal_ro" and
	"print 'scope1.c'::bar::funclocal" and
	"print 'scope1.c'::bar::funclocal_bss"
	to only be xfail'd when not compiled with gcc.
	Add rs6000-*-* xfail for
	"print 'scope0.c'::filelocal_bss before run"
	when compiled with gcc.
	(test_at_main): Add rs6000-*-* xfail for
	"print filelocal_ro in test_at_main"
	when compiled with gcc.
	* gdb.base/ptype.exp: Source gdb.base/ptype.ci.
	Add rs6000-*-aix* xfail for
	"whatis unnamed typedef'd enum (compiler bug in IBM's xlc)" and
	"ptype t_char_array",  not compiled with gcc.
	* gdb.base/list.exp (test_list_function):  Add rs6000-*-*
	xfail for "list foo (in include file)" when gcc	compiled.
	* gdb.base/funcargs.exp: Source gdb.base/funcargs.ci
	(integral_args): Add rs6000-*-* xfail for
	"run to call0a" if not compiled with gcc.
	(unsigned_integral_args): Add rs6000-*-* xfail for
	"run to call1a" if not compiled with gcc.
	(float_and_integral_args):  Add rs6000-*-* xfail for
	"run to call2a" if not compiled with gcc and for
	"continue to call2b" for any compiler.
	Add rs6000-*-* xfail to
	"print f1 after run to call2a" for gcc compiled.
	(discard_and_shuffle): Add rs6000-*-* xfail for
	"run to call6a".
	(shuffle_round_robin): Add rs6000-*-* xfail for
	"backtrace from call7a" if not compiled with gcc.
	Add rs6000-*-* xfail for
	"backtrace from call7b" if compiled with gcc.
	(call_after_alloca): Add rs6000-*-* xfail for
	"print c in call_after_alloca" and
	"print s in call_after_alloca" and
	"backtrace from call_after_alloca_subr"
	if not compiled with gcc.
	(localvars_in_indirect_call): Add rs6000-*-* xfail for
	"print c in localvars_in_indirect_call" and
	"print c in localvars_in_indirect_call" and
	"backtrace in indirectly called function" and
	"stepping into indirectly called function"
	if not compiled with gcc.
	(localvars_after_alloca): Add rs6000-*-* xfail for
	"print c after runto localvars_after_alloca" and
	"print s after runto localvars_after_alloca" and
	"print i after runto localvars_after_alloca" and
	"print l after runto localvars_after_alloca"
	for all compilers.
	* gdb.base/whatis.exp: Source gdb.base/whatis.ci rather
	than whatis-info.exp.
	* gdb.base/opaque.exp: Source gdb.base/opaque0.ci rather
	than opaque-info.exp.
	Setup rs6000-*-* xfail for
	"ptype on opaque struct pointer (statically)" and
	"ptype on opaque struct pointer (dynamically)" when
	not compiled with gcc.
	* gdb.base/callfuncs.exp: Source gdb.base/callfuncs.ci
	rather than callf-info.exp.
	(do_function_calls):  Add clear_xfail for rs6000-*-* for
	"p t_float_values2(3.14159,float_val2)".  Seems to work
	fine there, both with xlc and gcc.  Need to find out what
	it is doing right and fix other platforms.
	* gdb.base/callfuncs.exp: Add rs6000-*-* xfail for
	"call inferior func with struct - returns int",
	"call inferior func with struct - returns long",
	"call inferior func with struct - returns float",
	"call inferior func with struct - returns double",
	"call inferior func with struct - returns char *",
	but only if not gcc compiled (presumes xlc compiled).
	Change rs6000-*-* xfails for
	"call inferior func with struct - returns char" and
	" call inferior func with struct -  returns short" to only
	xfail if not using gcc.
	(clean mostlyclean):  Remove *.ci and *.tmp files.
	* gdb.c++/templates.exp: Source gdb.c++/templates.ci rather
	than templ-info.exp.
	* gdb.base/langs.exp:  Source gdb.base/langs.ci.
	Add rs6000-*-* xfail for "up to foo in langs.exp"
	"up to cppsub_ in langs.exp" and "up to fsub in langs.exp"
	when not gcc compiled.

Sat Aug 12 15:05:36 1995  Jeffrey A. Law  <law@rtl.cygnus.com>

	* gdb.base/callfuncs.exp: Add xfails for the powerpc.
	* gdb.base/corefile.exp: Likewise.
	* gdb.base/list.exp: Likewise.
	* gdb.base/scope.exp: Likewise.
	* gdb.base/siganls.exp: Likewise.

	* gdb.base/nodebug.exp: Add xfails for the powerpc.  Handle aix4
	compiler output.
	* gdb.base/whatis.exp: Likewise.

Fri Aug 11 13:36:20 1995  Jeff Law  (law@snake.cs.utah.edu)

	* gdb.disasm/sh3.exp (all_fp_misc_tests): No longer expect a
	failure (opcode table has been fixed to match reality).

Mon Aug 14 09:01:59 1995  Fred Fish  <fnf@cygnus.com>

	* gdb.base/callfuncs.exp: Add rs6000-*-* xfails for
	"call inferior func with struct - returns char",
	"call inferior func with struct - returns short"

	* gdb.base/scope.exp: Remove rs6000-*-* xfails for
	"print 'scope0.c'::filelocal at main",
	"print 'scope0.c'::filelocal_bss in test_at_main",
	"print 'scope0.c'::filelocal at foo",
	"print 'scope0.c'::filelocal_bss in test_at_foo",
	"print 'scope0.c'::filelocal at bar",
	"print 'scope0.c'::filelocal_bss in test_at_bar"

	* gdb.base/list.exp: Remove rs6000-*-* xfail for "list function
	in source file 1".  This bug seems to have been fixed with both
	gcc and native cc (was native assembler bug?).

Wed Aug  9 08:04:12 1995  Fred Fish  (fnf@cygnus.com)

	* gdb.base/a1-selftest.exp: Change "i*86-*-sysv4" xfail for
	"backtrace through signal handler" to "i*86-*-sysv4*".
	* gdb.base/signals.exp: Add xfail for "'next' behaved as
	continue" case.  Add "known SVR4 bug" to fail message.
	Add "i*86-*-bsdi2.0" xfail for "handle all print".
	Add "i*86-*-bsdi2.0" xfail for "backtrace in signals_tests_1".
	* gdb.base/ptype.exp: Add "i*86-*-sysv4*" xfail for
	"whatis unnamed typedef'd enum..." and "ptype t_char_array".
	* gdb.base/langs.exp: Add "i*86-*-sysv4*" xfail for
	"up to foo in langs.exp", "show language at foo in
	langs.exp", "up to cppsub_ in langs.exp", "show
	language at cppsub_ in langs.exp", "up to fsub in
	langs.exp", and "show language at fsub in langs.exp".
	* gdb.base/corefile.exp: Add "i*86-*-sysv4*" to xfail for
	"bactrace in corefile.exp".
	* gdb.base/callfuncs.exp: Change xfail to "i*86-*-*" for
	"call inferior function with struct - returns float" and
	"call inferior function with struct - returns double".

Mon Aug  7 02:43:28 1995  Jeff Law  (law@snake.cs.utah.edu)

	* gdb.disasm/sh3.s: Source for sh3 disassembler tests.
	* gdb.disasm/sh3.exp: Run the sh3 disassembler tests.
	* gdb.disasm/configure.in (sh-*-*): Use sh3.mt makefile fragment.
	* gdb.disasm/sh3.mt: Makefile fragment for sh3 ests.

Mon Aug  7 08:09:37 1995  Fred Fish  <fnf@cygnus.com>

	* Makefile.in (CHILL_FOR_TARGET): Use previously defined
	(or overriden) "CHILL" macro rather then bare "gcc".
	Also look for ../../gcc/xgcc since that is what we will
	actually need, not "Makefile".  Remove following assignment
	of CHILL to CHILL_FOR_TARGET because that results in
	recursive definition.

Sun Aug  6 16:52:29 1995  Fred Fish  <fnf@cygnus.com>

	* gdb.base/corefile.exp:  Change xfail for backtrace in
	corefile.exp from linuxaout to all linux.
	* gdb.base/sigall.exp (test_one_sig):  Specifically deal with
	cases where we miss the breakpoint at the signal handler
	for some reason.  Setup xfail for linuxoldld/linuxaout and
	getting SIGIO.  Setup xfail for linuxoldld/linuxaout for
	hitting SIGURG breakpoint.
	* gdb.base/signals.exp:  Setup xfail for "next" acting like
	continue to add linuxoldld.  Setup xfail for all linux for
	"next to handler in signals_tests_1", "backtrace in
	signals_tests_1", "continue to func1", "pass SIGUSR1",
	and continue to handler".

Thu Aug  3 10:45:37 1995  Fred Fish  <fnf@cygnus.com>

	* Update all FSF addresses except those in COPYING* files.

Sun Jul 30 17:50:35 1995  Fred Fish  <fnf@cygnus.com>

	* gdb.base/a2-run.exp: Change messages to be more explicit about
	the status of args, and quote binfile in results.

Sun Jul 30 10:24:20 1995  Fred Fish  <fnf@cygnus.com>

	* gdb.base/callfuncs.exp: Add tests for passing structs to
	inferior functions and return various types.
	* gdb.base/callfuncs.c: Add functions to receive a struct
	and return a member of the struct, in various types.

Sat Jul 29 14:22:33 1995  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.base/Makefile.in (clean):  Remove callf-info.exp.

Fri Jul 28 13:36:11 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>

	* config/vxworks29k.exp: New file, sources vxworks.exp.

Fri Jul 28 00:28:36 1995  Jeffrey A. Law  <law@rtl.cygnus.com>

	* config/gdbremote.exp: New file.  Testing framework using
	gdbserver.

Thu Jul 27 12:17:14 1995  Fred Fish  (fnf@cygnus.com)

	* gdb.base/interrupt.exp: Setup "i*86-*-linux" xfail for
	"call function when asleep" and "send end of file".
	* gdb.base/corefile.exp: Add "i*86-*-linuxaout" to xfail list
	for "backtrace in corefile.exp".
	* gdb.base/a1-selftest.exp: Add "i*86-*-linux*" to xfail list
	for "backtrace through signal handler".
	* gdb.base/corefile.exp: Make sure we actually generate a core file
	before trying the core tests.  Some systems allow the user to suppress
	generation of core files and default to that (linux for example).
	* gdb.base/signals.exp: Change xfail for "next" acting like "continue"
	from "i*86-*-linux" to "i*86-*-linuxaout".  Works with ELF beta.

Tue Jul 25 17:30:10 1995  Jeffrey A. Law  <law@rtl.cygnus.com>

	* gdb.threads: New directory with some crude multi-threaded
	gdb tests (step.exp and step2.exp).
	* config/mt-lynx (STEP_EXECUTABLE): Define.
	(THREADFLAGS): Define.

Tue Jul 25 01:03:52 1995  Jeff Law  (law@snake.cs.utah.edu)

	* gdb.base/sigall.exp: Avoid losing in SIGPRIO test on lynx.

	* gdb.base/signals.exp: Disable whole file for lynx until
	further notice.

	* gdb.base/signals.exp: xfail test where "next" acts like
	"continue" for lynx.

	* gdb.base/interrupt.exp: xfail test for calling function while
	inferior is asleep for lynx.

	* gdb.base/watchpoint.exp: Handle more cases of gdb echoing more
	than one cr-lf	after each command.

Sun Jul 23 23:33:18 1995  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* configure.in:  Reinstate setting of stabsdirs variable, fix
	typo in setting up configdirs for native builds.

	* gdb.base/return.exp:  Fix typo in return double test.
	* gdb.base/return.c (tmp2, tmp3):  Made global to inhibit the
	compiler from optimizing them away.

Fri Jul 21 11:39:34 1995  Jeff Law  (law@snake.cs.utah.edu)

	* gdb.base/gdbvars.exp: Expect zero or more additional cr-lf
	sequences to be echo'd by gdb when using gdb_test.
	* gdb.chill/chexp.exp: Likewise.
	* gdb.fortran/exprs.exp: Likewise

Thu Jul 20 13:28:36 1995  Jeffrey A. Law  <law@rtl.cygnus.com>

	* gdb.base/a1-selftest.exp: Reset the timeout value to 30 seconds
	after the inferior gdb has started.

	* gdb.base/a2-run.exp: Handle gdb echoing more than one cr-lf
	after each command.
	* gdb.base/funcargs.exp: Likewise.
	* gdb.base/gdbvars.exp: Likewise.
	* gdb.base/interrupt.exp: Likewise.
	* gdb.base/list.exp: Likewise.
	* gdb.base/watchpoint.exp: Likewise.
	* gdb.c++/demangle.exp: Likewise.
	* gdb.c++/inherit.exp: Likewise.
	* gdb.chill/chexp.exp: Likewise.
	* gdb.fortran/exprs.exp: Likewise.

	* gdb.base/watchpoint.exp: Disable watchpoint triggered in syscall
	test if we can't handle IO to/from the inferior.

	* gdb.c++/misc.exp: Always check for a program already being
	started after sending a "run" command to gdb.

	* gdb.base/twice.exp: Start with a fresh gdb.

	* gdb.chill/chexp.exp: Remove skip_chill_tests check; these tests
	only depend on gdb's expression code, not the chill runtime.

	* gdb.base/return.c: Put return values into variables so we
	can have gdb print them rather than depending on the program
	to print them.
	* gdb.base/return.exp: Corresponding changes.

	* lib/gdb.exp: Provide default value for noinferiorio.
	* gdb.base/interrupt.exp: Skip tests if we can't handle IO to/from
	the inferior.

	* gdb.base/break.exp: Always check for a program already being
	started after sending a "run" command to gdb.
	(text_next_with_recursion): Don't check the output from the
	program's printf statement.  Instead just make sure the program
	exited.

	* gdb.base/commands.exp: Protect tests which need arguments with
	$noargs conditionals.

Wed Jul 19 22:42:43 1995  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.base/printcmds.exp:  Adjust expect patterns for addresses
	of structure member arrays to match gdb/valops.c:value_addr change.

Mon Jul 17 10:12:27 1995  Jeff Law  (law@snake.cs.utah.edu)

	* gdb.base/a1-selftest.exp: Fix unmatched quotes in many timeout
	cases.

Wed Jul 12 10:20:08 1995  Fred Fish  (fnf@cygnus.com)

	* configure.in (configdirs):  Remove gdb.chill from default list
	of subdirs and then add it back in only if doing a native build.
	The current chill compiler does not yet work in any cross build.
	* Revert all signal changes from Jul 6.
	* gdb.base/{sigall.c signals.c}:  Define away signal() and alarm()
	for sh-hms targets, allowing these tests to link, with no other
	changes.  Testing is suppressed by setting "nosignals" in site.exp.

Thu Jul  6 20:58:30 1995  Fred Fish  (fnf@cygnus.com)

	* configure.in (signaldirs): Define and add to configdirs for all
	targets except some specific ones that are known to not support signals.
	Also clean up formatting.
	* gdb.base/Makefile.in (EXECUTABLES):  Remove sigall and signals.
	(signals, sigall):  Remove rules to build.
	* gdb.base/{sigall.c, sigall.exp, signals.c, signals.exp}:
	Moved to new gdb.signals directory.
	* gdb.signals: New test directory.
	* gdb.signals/{Makefile.in, configure.in, sigall.c, sigall.exp,
	signals.c signals.exp}:  New or moved files.

Sun Jun 25 12:55:18 1995  Jeff Law  (law@snake.cs.utah.edu)

	* gdb.base/interrupt.exp: Don't choke if $nointerrupts doesn't exist.

Wed Jun 21 16:35:55 1995  Fred Fish  <fnf@cygnus.com>

	* gdb.base/return.exp:  Xfail `return double' test failure
	on at least Solaris 2.3 and handle future/past versions on
	a case by case basis as appropriate.  Also update message
	to include i*86 failures.

Wed May 24 07:10:10 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* Makefile.in: Change variable CFLAGS to TESTSUITE_CFLAGS.

	* lib/gdb.exp: Fix comment which erroneously identified
	gdb_file_cmd as gdb_load (the 19 May change was in fact to
	gdb_file_cmd not gdb_load).
	* config/unix-gdb.exp (gdb_load): Add "upvar timeout timeout".

	* gdb.base/setvar.exp: Make test names consistent between pass and
	fail cases.  Use gdb_test more.

Fri May 19 07:22:58 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* lib/gdb.exp (gdb_load): Add "upvar timeout timeout".

Mon May 15 23:50:51 1995  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.base/help.exp:  Fix expected help string for `show commands'.

Thu May 11 07:55:11 1995  Jim Kingdon  <kingdon@deneb.cygnus.com>

	* gdb.stabs/xcoff.sed: Change N_LSYM to C_DECL not C_LSYM.

	* gdb.stabs/weird.exp: Remove xfail for xcoff bitching about lack
	of a text section.

Thu May 11 15:02:24 1995  Stu Grossman  (grossman@andros.cygnus.com)

	* config/monitor.exp (gdb_target_monitor):  Fix loop interator so
	that loop eventually terminates.  Fix Connection refused logic so
	that testsuite will expire nicely.

Wed May 10 17:57:35 1995  Stu Grossman  (grossman@andros.cygnus.com)

	* config/cpu32bug.exp, config/est.exp, config/hppro.exp,
	config/rom68k.exp:  New tcl glue for the appropriate monitors.
	These all just end up calling monitor.exp.
	* config/monitor.exp (gdb_target_monitor):  Handle `Connection
	refused' by retrying.  Cleanup some timeout issues.
	* (gdb_load):  Reduce timeout.  Cleanup some timeout issues.
	* lib/gdb.exp (gdb_test gdb_test_exact):  Upvar timeout so that
	callers don't have to set/restore global timeout variable.

	* The following set of changes centralizes management of the global
	timeout	variable.  This way, it can be set in one target dependent
	place instead of dozens of places scattered throughout the test suite.
	If you need to lengthen a timeout, then you should either set timeout
	in one of the config/{target}.exp files, or multiply it by a factor.
	Setting it to an absolute value is always going to lose for some
	targets.
	* gdb.base/a1-selftest.exp (test_with_self):  Only use local timeout.
	* gdb.base/callfuncs.exp (do_function_calls):  Don't set timeout.
	* gdb.base/funcargs.exp:  Don't set timeout.
	* gdb.base/list.exp (test_forward_search):  Only use local timeout.
	* gdb.base/printcmds.exp (test_print_string_constants
	test_print_array_constants):  Don't set timeout.
	* gdb.base/ptype.exp:  Don't set timeout.
	* gdb.base/recurse.exp:  Don't set timeout.
	* gdb.base/return.exp:  Don't set timeout.
	* gdb.base/watchpoint.exp:  Don't set timeout.
	* gdb.c++/classes.exp (do_tests):  Don't set timeout.
	* gdb.c++/virtfunc.exp (test_virtual_calls):  Don't set timeout.

Wed May 10 16:03:23 1995  Torbjorn Granlund  <tege@adder.cygnus.com>

	* Makefile.in: Make clean targets work also when SUBDIRS is empty.

Mon May  1 07:32:48 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* lib/gdb.exp: Disable chill tests for irix5.

Wed Apr 26 07:36:03 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.base/scope.exp: Make test names unique.  Use gdb_test.  Make
	each test pass or fail.

Sun Apr 23 21:32:32 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.base/opaque.exp: Remove xfails for aix; print a warning if
	xlc not gcc.

Fri Apr 21 15:44:02 1995  Stu Grossman  (grossman@rtl.cygnus.com)

	* cpu32bug.exp est.exp rom68k.exp:  Delete.  Unify into monitor.exp.

Wed Apr 19 17:41:21 1995  Stu Grossman  (grossman@cygnus.com)

	* config/est.exp:  Fix copyright and comments.  Remove dead code.
	Use targetname, serialport and baud variables instead of fixed
	constants.
	* config/rom68k.exp:  Fix copyright and comments.  Remove dead code.
	* config/cpu32bug.exp:  New file to support cpu32bug monitors.

Wed Apr 19 13:47:16 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.base/watchpoint.exp: Don't run
	test_watchpoint_triggered_in_syscall for sunos.

Mon Apr 17 12:48:52 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.base/{break.c,run.c}: Don't include vxWorks.h or stdioLib.h;
	they don't seem to exist.  Do include stdio.h.

Fri Apr 14 09:40:22 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.base/a1-selftest.exp: Add alpha xfail.

Mon Apr 10 13:07:50 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.base/watchpoint.c (main): Prompt before calling read().
	* gdb.base/watchpoint.exp (test_watchpoint_triggered_in_syscall):
	Revise accordingly.  Remove cruft about sending "123" several
	times, until it gets noticed.  Clean up the "print buf[0]" stuff
	so that it passes or fails, and waits for prompts in the usual way.

Sun Apr  9 09:02:36 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.base/recurse.exp: Fix comment.

	* TODO: Remove item about printing variables in nodebug.exp.  Add
	item about enabling tests which are only run on some targets.

	* gdb.base/watchpoint.exp: Various cleanups (make each test pass or
	fail, make test names unique, use new gdb_test convention
	regarding pattern, use gdb_test more, etc.).

	* gdb.base/bitfields.exp: Various cleanups (make each test pass or
	fail, make test names unique, etc.).

Sat Apr  8 02:47:45 1995  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.base/nodebug.c:  Change return type of top and middle to
	short.
	* gdb.base/nodebug.exp:  Remove xfails for ecoff systems, they
	are fixed by the recent mdebugread.c changes. Allow `short ()'
	as type for top and middle.

Thu Apr  6 08:54:18 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.base/break.exp: Remove commented out if $usestubs {}.  As
	nearly as I can tell, the whole thing was an accident in Stu's
	change of 24 Mar 1995 (logged in ../ChangeLog), in which he meant
	to replace a send/expect pair with gdb_test, but ended up only
	adding the gdb_test.  My change of 24 Mar 1995 and Kung's change
	of 30 Mar 1995 took care of it, but left this vestigial comment
	which I am now nuking.

Mon Apr  3 09:00:27 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.base/break.exp: Look for different line number for
	breakpoint at main depending on usestubs.

Sun Apr  2 08:15:45 1995  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.base/list.exp:  Adjust some alternate expect patterns to
	match recent list0.c change. Add alternate expect pattern for
	output from `list default lines around main' for optimizing
	compilers.

Sat Apr  1 07:23:22 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* lib/gdb.exp: If nosignals is not set, set it to 0.

Fri Mar 31 16:13:48 1995  Kung Hsu  <kung@mexican.cygnus.com>

	* config/slite-gdb.exp: Responds to load symbol table prompt.
	* gdb.base/break.exp: Adjust line number, fix rerun.
	* gdb.base/langs0.c: Add #ifdef usestubs.

Thu Mar 30 15:36:55 1995  Kung Hsu  <kung@mexican.cygnus.com>

	* gdb.base/list.exp: Adjust line contents after adding new lines in
	list0.c. Also fix a syntax error.

	* lib/gdb.exp (gdb_run_cmd): Special handling for targets use stubs.
	* gdb.base/break.exp: ditto.
	* gdb.base/list.exp: ditto.
	* gdb.base/bitfields.c: Add #ifdef usestubs in main().
	* gdb.base/run.c: ditto.
	* gdb.base/list0.c: ditto.
	* gdb.base/funcargs.c: ditto.

Wed Mar 29 17:09:29 1995  Stu Grossman  (grossman@cygnus.com)

	* testsuite/config/rom68k.exp (gdb_target_rom68k):  Use
	$targetname, $serialport and $baud instead of hardwired variables.
	* testsuite/gdb.base/{sigall.exp signals.exp}:  Skip these if the
	target doesn't support signals.

Wed Mar 29 12:29:34 1995  Kung Hsu  <kung@mexican.cygnus.com>

	* lib/gdb.exp (runto_main): Fix regular expression bug, add return 1.

Tue Mar 28 08:46:45 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.base/recurse.exp: Make test names unique.  Change \\(+ to \\(.
	Don't rely on the value of an auto variable before it has been
	initialized.  Use gdb_test more.

Mon Mar 27 08:00:34 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* lib/gdb.exp (default_gdb_version): A version number must start
	with a digit, but other than that contains all characters up to
	the first whitespace character.

Sun Mar 26 13:19:32 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.base/commands.exp (breakpoint_command_test): New tests.

Sat Mar 25 15:38:06 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.c++/*.exp: Warn if executable does not exist.  The original
	reason for skipping the warning was that configure.in sometimes
	intentionally skipped building the executables but the tcl code
	had no way of knowing.  That (a) was always bogus with respect to
	error handling, (b) is no longer true (right now there is no way
	to skip C++ tests).

	* gdb.c++/demangle.exp: Remove unused binfile and srcfile variables.

Sat Mar 25 01:16:10 1995  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.base/list.exp:  Add expect patterns for output from
	SunPRO compiled executables.
	* gdb.base/whatis.exp:  Allow leading `signed' for all v_signed_*
	types.

Fri Mar 24 06:11:05 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.base/break.exp (test_next_with_recursion): Accept any line
	number (we are already testing that the correct source line text
	gets printed).

	* gdb.base/break.exp: Make one test if $usestubs.  I'm not sure
	that is what is intended, but something needed to be done to get
	sunos4 native working again.

	* gdb.c++/misc.cc (main): Fix typo (#iffef -> #ifdef).

	* gdb.base/a1-selftest.exp (test_with_self): Remove comment which
	apparently went with a (very) old xfail.

Fri Mar 24 13:41:09 1995  Kung Hsu  <kung@mexican.cygnus.com>

	* gdb.base/callfuncs.exp: call runto_main instead of runto main.
	runto_main is a proc in gdb.exp that will do 'step' for target use
	stubs.
	* gdb.base/exprs.exp: ditto.
	* gdb.base/interrupt.exp: ditto.
	* gdb.base/opaque.exp: ditto.
	* gdb.base/printcmds.exp: ditto.
	* gdb.base/ptype.exp: ditto.
	* gdb.base/scope.exp: ditto.
	* gdb.base/setvar.exp: ditto.
	* gdb.base/signals.exp: ditto.
	* gdb.base/twice.exp: ditto.
	* gdb.c++/classes.exp: ditto.
	* gdb.c++/inherit.exp: ditto.
	* gdb.c++/templates.exp: ditto.
	* gdb.base/break.exp: no run and hit main for stubs. Change line
	numbers for breakpoints and info breakpoint.
	* gdb.base/break.c: Add #ifdef usestubs for set_debug_traps() and
	breakpoint().
	* gdb.base/callfuncs.c: ditto.
	* gdb.base/exprs: ditto.
	* gdb.base/interrupt.c: ditto.
	* gdb.base/opaque0.c: ditto.
	* gdb.base/printcmds.c: ditto.
	* gdb.base/ptype.c: ditto.
	* gdb.base/scope0.c: ditto.
	* gdb.base/setvar.c: ditto.
	* gdb.base/signals.c: ditto.
	* gdb.base/twice.c: ditto.
	* gdb.c++/misc.cc: ditto.
	* gdb.c++/templates.cc: ditto.

Fri Mar 24 06:11:05 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* config/vx-gdb.exp, lib/gdb.exp: Regexp cleanups (\[(\] -> \\(, etc.).

	* gdb.base/a1-selftest.exp: Don't check for # followed by a digit
	somewhere between `read' and `main.c'.  I'm pretty sure the
	pattern ".*#\[0-9\].*" was slowing down pattern matching a lot,
	and it isn't particularly useful.

	* gdb.base/scope.exp: Make test names unique.  \[(\] -> \\(.

Thu Mar 23 14:58:35 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.base/commands.exp (infrun_breakpoint_command_test): New test.

Wed Mar 22 18:36:05 1995  Kung Hsu  <kung@mexican.cygnus.com>

	* config/mt-slite: add LIBS and -nostdlib.
	* config/slite-gdb.exp: add this new file to support sparclite target.

Tue Mar 21 21:41:04 1995  Doug Evans  <dje@canuck.cygnus.com>

	* config/vx-gdb.exp (gdb_load): Update test of vxworks_ld return code.

	* gdb.base/a2-run.exp: Change argument to istarget from
	"*-*-vxworks" to "*-*-vxworks*".
	* gdb.base/{break.exp,default.exp,scope.exp}: Likewise.

Tue Mar 21 17:08:47 1995  Kung Hsu  <kung@mexican.cygnus.com>

	* lib/gdb.exp: add proc runto_main, for targets that use stubs, this
	will not runto main but do a 'step' to step out of breakpoint().
	* config/mt-slite: add -Dusestubs.

Tue Mar 21 12:14:12 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.base/printcmds.exp (test_artificial_arrays): Send ^V@
	instead of just @.

	* gdb.base/signals.exp: Add test for "handle all print".
	* TODO: Remove "handle all print".  Also remove item about
	checking copyright date (I don't like the idea of a spurious FAIL
	based on when we run the tests).

	* gdb.base/recurse.exp: Enable test for SunOS4.  xfail one test
	for SunOS4 (reason for failure not investigated).  Remove
	redundant test for $binfile.

	* gdb.base/nodebug.c (array_index): Call malloc.

	* gdb.base/{corefile.exp,default.exp}: Make names of "up" tests unique.

Mon Mar 20 10:08:17 1995  Jeff Law  (law@snake.cs.utah.edu)

	* gdb.base/recurse.exp: Update gdb_test invocation to use new
	conventions and slightly simplify the matching regexp.

Fri Mar 17 05:43:28 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.base/break.exp: Update gdb_test invocation to use new
	convention.

	* lib/gdb.exp: If noargs is not set, set it to 0.

	* gdb.base/nodebug.exp: Comment out redundant test.  Make name of
	tests unique.

	* lib/gdb.exp: Skip CHILL for AIX and Solaris.

Thu Mar 16 16:27:07 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.base/nodebug.exp: It is OK if GDB thinks top and middle have
	one argument of type "<non-float parameter>".

Wed Mar 15 15:54:56 1995  Stu Grossman  (grossman@cygnus.com)

	* config/rom68k.exp:  New file to support Motorola IDP board.
	* gdb.base/a2-run.exp:  Skip this file if noargs is set.
	* gdb.base/break.c:  Change things around so that this program
	doesn't depend upon args.  This is necessary to make remote
	targets work (in general, they can't take args).
	* gdb.base/break.exp:  Don't try to send args to program.  Don't
	expect output.  Also, replace lots of code with gdb_test.

Wed Mar 15 04:11:14 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.base/printcmds.exp (test_character_literals_accepted): Test
	printing of '\'' (which is what the comment says we are testing,
	even though we were not), not '''.
	(test_integer_literals_rejected): Test that printing ''' is an error.

	* gdb.fortran/exprs.exp, gdb.fortran/types.exp,
	gdb.chill/chexp.exp, gdb.base/printcmds.exp,
	gdb.c++/cplusfuncs.exp, gdb.chill/callch.exp, gdb.chill/misc.exp,
	gdb.chill/pr-6292.exp, gdb.chill/string.exp, gdb.chill/tuples.exp:
	Use gdb_test not test_print_accept.
	* lib/gdb.exp: Remove test_print_accept.

	* gdb.base/signals.exp (signal_tests_1): Make pass message
	consistent with fail message.

	* gdb.base/whatis.exp: Remove xfails for printing char vs.
	unsigned char; the bug (PR 1821) is fixed.

	* gdb.base/scope.exp: Remove xfails for PRs 1843 and 1868.

	* gdb.base/scope.exp (test_at_localscopes): Call pass for
	successful tests--makes xfailing them work right.

Tue Mar 14 07:39:19 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* lib/gdb.exp (gdb_test): Between $pattern and $prompt, expect
	only \r\n, not .*.  The test can pass .* as the last thing in
	$pattern if that is what it wants.  In addition to providing this
	flexibility, this change should speed up pattern matching in cases
	where the pattern already ended with .* (there were a number of
	them).  This change also helps catch bad patterns--in the old
	scheme the typo "char \*" instead of "char \\*" would pass.  Now
	it is caught.
	* Many .exp files: Update callers.

	* gdb.base/funcargs.exp: Replace \[(\]+ with \\(.  The latter is
	clearer and does not spuriously match multiple ('s.  Likewise for
	) and *.

	* gdb.base/nodebug.exp: Test ability to call a function and pass
	it a string (even with no debugging info).

	* gdb.base/printcmds.exp (test_integer_literals_rejected): Change
	"p '\'", which is the same as "p ''" once tcl gets done with
	quoting, to "p '\\'", which I suspect is what is intended (one
	backslash gets sent to GDB).

	* gdb.base/printcmds.exp (test_artificial_arrays): New tests.

Fri Mar 10 13:31:46 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.base/a1-selftest.exp: Remove xfail for solaris.  The bug (PR
	1817) was fixed literally years ago.

Fri Mar 10 02:49:40 1995  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.base/funcargs.exp (call_after_alloca):  Remove `next'
	test, it causes stepping out of call_after_alloca_subr with
	optimizing compilers.
	(localvars_in_indirect_call):  Consume GDB prompt if `finish'
	fails.

	* gdb.c++/templates.exp:  Source templ-info.exp only if
	the templates executable exists.

	* gdb.c++/misc.cc (class Contains_static_instance,
	class Contains_nested_static_instance),
	gdb.c++/classes.exp (test_static_members):  Test printing of
	a class that contains a static instance of the class.

Thu Mar  9 11:43:55 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.base/langs2.c (cppsub_): Don't prototype.
	* gdb.base/langs2.cxx (cppsub_): Fix prototype (cosmetic value
	only, I believe).

Wed Mar  8 10:29:33 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* lib/gdb.exp (skip_chill_tests): New procedure.

	* gdb.base/signals.exp (signal_tests_1): xfail for irix.

Mon Mar  6 10:44:06 1995  Jeff Law  (law@snake.cs.utah.edu)

	* gdb.disasm/hppa.exp: Delete redundant ".*" at the beginning of
	each expect pattern.  Cuts runtime from 12 to about 4 seconds.

Thu Mar  2 05:31:34 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.base/langs.exp: Don't insist that foo__Fi be demangled.

	* gdb.disasm/hppa.exp (all_fpu_comparison_tests): Only
	disassemble 8, not 16, instructions for part 4.

	* config/vx-gdb.exp (gdb_start): Use \030, not \CX.  tcl doesn't
	support the latter anymore.

	* gdb.base/Makefile.in: Try compiling callfuncs.c, if that fails try
	-DNO_PROTOTYPES.
	* gdb.base/callfuncs.c: Control use of prototypes based on
	NO_PROTOTYPES, not __STDC__.
	* gdb.base/callfuncs.exp (do_function_calls): xfail one of the
	t_float_values2 tests if prototypes in use.

	* gdb.base/callfuncs.c (t_float_values, t_float_values2,
	t_double_values):  When checking differences against DELTA, check
	that difference is within the range (-DELTA,DELTA), not just
	(-infinity,DELTA).

Tue Feb 28 16:28:54 1995  Kung Hsu  <kung@mexican.cygnus.com>

	* config/mips-gdb.exp (gdb_load): In every test case, we need to do
	'file' command firts, then 'target', then 'load', this is due to gdb
	target set up.
	* config/mips-gdb.exp: Fix a couple regular exp bugs.

Thu Feb 23 17:44:55 1995  Jeff Law  (law@snake.cs.utah.edu)

	* gdb.disasm/hppa.s (fmemLRbug_tests): Add tests for the indexing
	FP load/store variants.
	* gdb.disasm/hppa.exp (fmemLRbug_tests): Test new variants.

Wed Feb 22 18:29:08 1995  Jim Kingdon  <kingdon@rtl.cygnus.com>

	* gdb.base/term.exp: Do not give a warning if not native, it is
	not an abnormal condition.

Tue Feb 21 13:08:47 1995  Jim Kingdon  <kingdon@cygnus.com>

	* gdb.base/ptype.exp: Accept char[0] as well as char[] for "ptype
	t_char_array".

Sun Feb 19 13:10:06 1995  Jim Kingdon  <kingdon@rtl.cygnus.com>

	* lib/gdb.exp (default_gdb_version): Pass GDBFLAGS to gdb when we
	are getting the version number.

	* gdb.base/{a1-selftest.exp,corefile.exp}: Do not give a warning
	if not native, it is not an abnormal condition.

Thu Feb 16 15:56:56 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* lib/gdb.exp: Just use "file exists", rather than undocumented
	dejagnu procedure "findfile".

Thu Feb 16 10:30:24 1995  J.T. Conklin  <jtc@rtl.cygnus.com>

	* config/mt-vxworks (CFLAGS): Set to -g -Dvxworks.
	  (LDFLAGS): Set to -Xlinker -Ur.

	* Makefile.in, gdb.{base,c++,chill}/Makefile.in (GDB, GDBFLAGS):
	  Removed, these values are set by lib/gdb.exp.

	* lib/gdb.exp: If GDBFLAGS is unset, set it to -nx.

Wed Feb 15 14:23:28 1995  J.T. Conklin  <jtc@rtl.cygnus.com>

	* config/vx-gdb.exp (spawn_vxgdb): Use default_gdb_start instead
	  of replicating gdb startup code.

	* config/mt-vxworks (LDFLAGS): Set to -r.
	  (CFLAGS_FOR_TARGET): Removed.

	* config/vx-gdb.exp: always set prompt; gdb.exp sets it to
	  (gdb) and gdb for vxworks uses (vxgdb).

	* Makefile.in, gdb.{base,c++,chill}/Makefile.in (GDB): If a gdb
	  executable is not in the tree and host != target, use sed and
	  program_transform_name to determine the gdb name used by the
	  target.

	* configure.in, gdb.{base,c++,chill}/configure.in: changed so
	  *-*-vxworks* matches vxworks and *-*-netware* matches NetWare.

Sun Feb 12 08:11:58 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.base/{callfuncs.exp,callfuncs.c}: Add tests for passing
	floats, chars, and shorts where there are ANSI-style function
	definitions.

	* gdb.base/langs.exp, gdb.base/langs*: New test.
	* gdb.base/Makefile.in: Build it.
	* TODO: Remove item about checking that C names don't get C++
	demangling applied; this test tests it.

Thu Feb  9 12:43:56 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.stabs/weird.exp: Remove "Haven't examined" comment which
	went with the const70 xfail.  The xfail went away a year ago.

	* gdb.base/signals.exp: Rename a bunch of tests to give unique names.

	* gdb.base/corefile.exp: Give backtrace test unique name.  xfail
	for hp300.

	* gdb.base/interrupt.exp: Also xfail hpux (for hp300).

	* gdb.base/a1-selftest.exp: Don't run on hp300.

Sat Feb  4 15:04:32 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* Makefile.in (site.exp): Set host_alias and target_alias as well
	as host_triplet and target_triplet.

Wed Feb  1 08:03:48 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.base/a1-selftest.exp: Invoke stty before starting inferior.

	* gdb.base/nodebug.exp: Add xfails for ultrix and irix5 (same
	places as other ecoff systems).

	* gdb.base/a1-selftest.exp (test_with_self): Don't invoke stty on
	ultrix.

Mon Jan 30 11:44:52 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.base/nodebug.c (inner): Use variables so AIX linker doesn't
	remove them.
	* gdb.base/nodebug.exp: Accept "function" in addition to "text
	variable and "variable" in addition to "data variable".
	* gdb.base/nodebug.exp: xfail datalocal and bsslocal tests for AIX.

	* gdb.base/list.exp (test_forward_search): Set listsize to 4 not
	2.
	* gdb.base/list1.c (long_line): Add additional statement at start
	of function.
	* gdb.base/list.exp (test_forward_search): Update line number to
	reflect new statement.

Sun Jan 29 13:34:25 1995  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.base/signals.exp:  Reinitialize searched source directories
	after gdb_start call.

Sat Jan 28 01:34:44 1995  Jeff Law  (law@snake.cs.utah.edu)

	* gdb.disasm/Makefile.in (clean): Delete "errs" file.
	* gdb.stabs/Makefile.in: Likewise.

	* gdb.disasm/hppa.exp (all_fpu_comparison_tests): Revert last
	change.  Instead split the tests into smaller pieces.
	* gdb.disasm/hppa.s: Corresponding changes.

Fri Jan 27 09:24:51 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.base/a1-selftest.exp (test_with_self), gdb.base/interrupt.exp:
	Quote ^C when passing it to stty.  For some shells ^ is a pipe.

	* gdb.base/funcargs.exp: Modify many tests so that every test
	either passes or fails.  Make some test names unique.

Thu Jan 26 19:20:34 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.base/a1-selftest.exp (test_with_self), gdb.base/interrupt.exp:
	Call stty to set interrupt character.

	* gdb.disasm/hppa.mt (hppa), gdb.stabs/hppa.mt (weird.o): Check
	for HP assembler versus GNU assembler based on actual behavior of
	$(CC), rather than assuming that $(AS) is always the GNU assembler.

	* TODO: Suggest a few more stepping tests.

Wed Jan 25 14:52:41 1995  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.base/default.exp: xfail no-stack backtraces for h8300,
	restart GDB for h8300 after a continue.
	(return): Add pattern to match a29k-udi behavior.
	* gdb.base/nodebug.exp: Remove obsolete comment.
	* gdb.base/regs.exp: New file, testing of register displays.
	* gdb.base/return.exp: Fix typo in reference to $objdir.
	* gdb.base/whatis.exp: Always start with a fresh GDB.

Wed Jan 25 11:12:07 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.disasm/hppa.exp (all_fpu_comparison_tests): Set timeout
	higher, these tests generate a lot of output.

Tue Jan 24 07:58:44 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* lib/gdb.exp (gdb_test): Remove catch from around the send.  The
	code following the catch silently ignored some errors; without the
	catch they should be thrown like any other tcl error.  Also, the
	catch used "" instead of {} which meant all the callers who wanted
	to include one of the characters "[]$ had to quote it an extra time.
	* gdb.base/{callfuncs.exp,commands.exp,gdbvars.exp,printcmds.exp,
	ptype.exp,signals.exp,watchpoint.exp}, gdb.c++/{cplusfuncs.exp,
	demangle.exp}, gdb.chill/chexp.exp, gdb.fortran/exprs.exp:
	Remove extra quoting.

Mon Jan 23 21:57:54 1995  Jeff Law  (law@snake.cs.utah.edu)

	* gdb.base/commands.exp: Make test names unique; every test either
	passes or fails.  Update some comments.

	* gdb.disasm/hppa.exp (do_system_control_tests): Update.

Sat Jan 21 15:34:52 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	The following fixes a FAIL caused by the fact that the alpha stabs
	configuration didn't use the ".if alpha" code in weird.def.
	* gdb.stabs/weird.def (v_comb): Use type attribute to specify 32
	bit pointer, so the 32 bit version works even on the alpha.
	* gdb.stabs/{alpha.mt,ecoff.mt,aout.sed,hppa.sed,xcoff.sed,weird.def}:
	Remove the stuff which allowed us to have separate versions for
	alpha and everything else.

	* gdb.c++/cplusfuncs.exp (test_lookup_operator_functions): Fix
	regexp which "info func operator\[\](" is supposed to match.  Fix
	string to send to GDB.  Note that GDB still doesn't work right.  Add a
	new test for "info func .perator\[\](" which GDB does handle correctly.

	* gdb.base/nodebug.exp: xfail most of the new tests for ecoff systems.

Fri Jan 20 12:14:23 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.c++/classes.exp, gdb.c++/cplusfuncs.exp,
	gdb.c++/inherit.exp, gdb.c++/templates.exp, gdb.c++/virtfunc.exp,
	gdb.fortran/exprs.exp, gdb.fortran/types.exp, gdb.chill/chexp.exp,
	gdb.base/printcmds.exp: Remove passcount, failcount, etc., stuff;
	it makes the tests harder to understand and confuses test-o-matic.
	The preferred style is that each test provides a PASS or a FAIL,
	and has a unique message (e.g. "continue #54" not just "continue")
	which is the same for the pass and the fail.
	* gdb.fortran/exprs.exp, gdb.fortran/types.exp,
	gdb.chill/chexp.exp: Move test_print_accept and test_print_reject
	to lib/gdb.exp.
	* gdb.base/printcmds.exp: Use test_print_accept.  Remove
	prt_accept which was basically the same thing.  Likewise for
	test_print_reject and prt_reject.
	* lib/gdb.exp (test_print_reject): Add some more error message
	patterns to match from the former printcmds.exp (prt_reject).
	* gdb.c++/classes.exp, gdb.base/scope.exp: Remove spurious xfails.
	One defect of the passcount stuff is that some of it failed to
	report XPASS where appropriate.
	* gdb.c++/cplusfuncs.exp (print_addr_of): No longer accept extra
	stuff before and after arg in expected pattern.
	(test_paddr_operator_functions): Re-do test without print_addr_of;
	this is the only test which seems to want extra stuff there.

Tue Jan 17 10:47:53 1995  Jim Kingdon  <kingdon@lioth.cygnus.com>

	* gdb.base/nodebug.exp: Update new tests to reflect improved
	wording of gdb output.

	* gdb.base/nodebug.exp: Add tests to check that "print", "whatis"
	and "ptype" work on variables in files compiled without -g.
	Replaces commented out "maint print msymbol" tests.

Mon Jan 16 12:13:28 1995  Jim Kingdon  <kingdon@lioth.cygnus.com>

	* gdb.base/setvar.c (dummy): Call malloc.

	* gdb.stabs/aout.sed: Enclose comments within a sed command to avoid
	losing with the irix4 sed.

	* gdb.base/sigall.exp (test_one_sig): Add xfail for "get signal
	ALRM" on irix4.

Sun Jan 15 21:58:26 1995  Jim Kingdon  <kingdon@lioth.cygnus.com>

	* TODO: Remove items about corefile.exp testing new exec-file and
	backtrace; both are now done.  Add items about printing enums.

Sat Jan 14 11:25:28 1995  Jim Kingdon  <kingdon@lioth.cygnus.com>

	* gdb.base/sigall.exp (test_one_sig): Attempt to recover if
	"get signal $thissig" test fails.

	* gdb.base/setvar.exp: Check for and reject crazy expected type hacks.

Thu Jan 12 01:14:53 1995  Jim Kingdon  <kingdon@lioth.cygnus.com>

	* gdb.base/sigall.c (gen_*): Pass argument to handle_* to avoid
	compiler warning with dec alpha compiler.

	* gdb.base/commands.exp (if_while_breakpoint_command_test): Remove
	extra \n from gdb_test call (this explains why the prompt test
	that I removed yesterday was there).
	(user_defined_command_test): Remove extra \n and prompt test.

	* gdb.base/sigall.c: If SIGABRT == SIGLOST, just act as if SIGLOST
	doesn't exist.  Likewise if SIGIO == SIGPOLL, pretend SIGPOLL
	doesn't exist.
	* gdb.base/sigall.exp: Remove special handling for SIGIO and SIGPOLL.
	Also remove alpha workaround, which turns out to be because
	SIGABRT == SIGLOST.

	* gdb.base/sigall.exp: Add workaround for alpha weirdness.

	* gdb.base/help.exp: Don't test "help show".

Wed Jan 11 14:37:04 1995  Jim Kingdon  <kingdon@lioth.cygnus.com>

	* gdb.base/commands.exp: Call gdb_exit and gdb_start so that
	"set print address" is on.
	* gdb.base/commands.exp (if_while_breakpoint_command_test): Don't
	pass prompt to gdb_test; gdb_test already looks for the prompt.

	* gdb.base/help.exp: Replace most of docstring for "define" with ".*".

	* gdb.base/a1-selftest.exp: Don't test "maint dump-me".  That test
	was a vestige of the manual TESTSTRATEGY, and the purpose of it
	was to make sure that gdb can read a core file.  But (a) the "read
	the corefile" part didn't make it to a1-selftest.exp, we just
	delete the corefile after creating it, and (b) we test reading
	corefiles in corefile.exp anyway.  Also, this test left around a
	xgdb process on Solaris.

	* gdb.base/corefile.exp: Also test backtrace.

Wed Jan 11 00:14:40 1995  Jeff Law  (law@snake.cs.utah.edu)

	* gdb.base/commands.exp: Test a simple user defined command with
	arguments and if/while statements; verify the full user command is
	printed by "show user".

	* gdb.base/commands.exp: Test if/while commands as part of a
	breakpoint command list; verify they appear in breakpoint
	information.

Wed Jan 11 00:47:58 1995  Jim Kingdon  <kingdon@lioth.cygnus.com>

	* gdb.base/sigall.c (gen_FPE): Generate SIGFPE with kill() rather
	than by dividing by zero.

Tue Jan 10 21:38:05 1995  Jeff Law  (law@snake.cs.utah.edu)

	* gdb.base/watchpoint.exp: hppa*-*-*bsd* no longer has problems
	performing an inferior call with watchpoints enabled.
	* gdb.base/watchpoint.c (main): Delete second unnecessary read
	call.

Tue Jan 10 18:42:07 1995  Jim Kingdon  <kingdon@lioth.cygnus.com>

	* gdb.stabs/weird.exp: Allow spaces followed by backspaces in echo
	of "file" command.

	* gdb.c++/classes.exp (test_ptype_class_objects, ptype class Foo):
	Add additional pattern for when "int operator int(void);" appears
	in a different order.

Mon Jan  9 16:22:46 1995  Jim Kingdon  <kingdon@lioth.cygnus.com>

	* gdb.base/signals.exp: Call gdb_exit and gdb_start.

	* gdb.base/help.exp: Replace most of docstrings for "info signals"
	and "signal" with ".*".

Wed Jan  4 11:35:19 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* TODO: Add note about "handle all nostop".

	* gdb.base/{sigall.c, sigall.exp}: New test.
	* gdb.base/Makefile.in: Add it.

Thu Jan  5 17:34:03 1995  Stan Shebs  <shebs@andros.cygnus.com>

	* lib/gdb.exp, gdb.base/corefile.exp: Supply -nw as argument
	when invoking GDB, suppresses any windowing interface.

Mon Jan  2 17:40:21 1995  Stan Shebs  <shebs@andros.cygnus.com>

	* config/sim-gdb: New file, simulator testing support.

Wed Dec 28 12:21:50 1994  Jeff Law  (law@snake.cs.utah.edu)

	* gdb.base/interrupt.exp: Test calling func1 twice.

Wed Dec 21 12:51:37 1994  Jim Kingdon  <kingdon@deneb.cygnus.com>

	* gdb.base/list.exp (test_forward_search): Set timeout higher
	when we'll be getting lots of output from gdb.

	* gdb.base/a1-selftest.exp: Move code that was inside expect -re
	"init_malloc" to after the expect statement.  Run it if that
	regexp is taken, but also for two others which happen if source
	cannot be found.

Tue Dec 20 12:35:21 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.base/printcmds.exp: New test, for printing register before
	program is running.

Mon Dec 19 00:32:55 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.base/list.exp:  Correct some alternate expect patterns
	to reflect changes in list1.c.

Sat Dec 17 14:20:03 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* TODO: Add item regarding large frames.

	* gdb.base/{funcargs.exp, funcargs.c} (call_after_alloca): New test.

	* TODO: Remove item about enabling return.exp; it
	is enabled.  Suggest a few more "return" tests.

Sat Dec 17 02:33:37 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.c++/misc.cc, gdb.c++/inherit.exp:  Add testcases for
	anonymous unions.

Tue Dec 13 11:26:00 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.chill/Makefile.in: Put all rule before rules for pr-4975.o
	and pr-5646.o, so "make" is the same as "make all", not "make
	pr-4975.o".

Wed Dec  7 19:02:02 1994  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.base/list.exp: Adjust expectations to reflect changes in
	list1.c.
	(test_forward_search): New test proc.
	* gdb.base/list1.c (long_line): New function, has long source line.

Thu Dec  1 23:14:49 1994  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.base/a1-selftest.exp: Change initial stepping to know about
	additional line of code that was added.

Wed Nov 30 19:43:14 1994  Jeff Law  (law@snake.cs.utah.edu)

	* gdb.disasm/hppa.s: Break the large branching tests into smaller
	tests so as not to overflow expect's input buffers.
	* gdb.disasm/hppa.exp: Corresponding changes.

Fri Nov 25 13:37:10 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	Beginnings of template debugging tests.
	* gdb.c++/templ-info.cc:  New file to test for template
	debugging capability of the compiler.
	* gdb.c++/Makefile.in:  Add rule to build templ-info.exp from
	templ-info.cc.
	* gdb.c++/templates.cc:  Add explicit template instantiations
	to enable compiling with -fno-implicit-templates. Add destructor
	and 'value' method to T5 class for template tests.
	* gdb.c++/templates.exp:  Add testcases for printing of template
	types, setting breakpoints on template methods and calling a
	template method.

Sat Nov  5 00:20:17 1994  Jeff Law  (law@snake.cs.utah.edu)

	* gdb.disasm/hppa.exp (branch_tests): Allow any symbol as the
	branch target since some assemblers (gas-2.5)  may emit a
	relocation for the branch instead of resolving it in the
	assembler.

Sat Oct 29 02:40:40 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.base/a1-selftest.exp:  Remove RS/6000 xfail for backtrace
	through signal handler.

Fri Oct 21 11:10:16 1994  J.T. Conklin  (jtc@phishhead.cygnus.com)

	* configure.in (*-*-netware): Use config/mt-netware.

	* config/mt-netware: New file.
	* config/mt-i386-netware: Removed, separate configs for different
	  netware architectures are no longer needed now that we have
	  --with-headers.

Sat Oct 15 03:43:00 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.base/exprs.exp:  Remove xfail for alpha, it is fixed
	by the recent changes to use ANSI C arithmetic conversions.

Sun Oct  9 07:44:06 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.base/corefile.exp: Add (xfail'd) test for reinit_frame_cache
	bug involving using inferior_pid to figure out whether to select a
	frame.

Wed Sep 28 23:12:02 1994  Jeff Law  (law@snake.cs.utah.edu)

	* gdb.disasm/hppa.exp: Change arg[0..3] to r[26..23] to
	match the current disassembler output.

Fri Sep 16 11:42:41 1994  Stan Shebs  (shebs@andros.cygnus.com)

	* gdb.fortran/exprs.exp: Expect VOID instead of void.
	* gdb.fortran/types.exp: Escape the expected '*'s in Fortran
	types, expect "int" as type of integer values (for now).

Wed Sep  7 23:33:51 1994  Jeff Law  (law@snake.cs.utah.edu)

	* gdb.base/commands.exp: New tests for if/while commands.

Tue Sep  6 13:16:11 1994  Per Bothner  (bothner@kalessin.cygnus.com)

	* lib/gdb.exp (runto):  Replace sub-pattern for hex value
	by .*, since hex values have different syntax in Chill mode.

Tue Sep  6 02:15:51 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.c++/demangle.exp (test_arm_style_demangling):  Remove
	linefeed from expect pattern for repeated types with indices > 9.

Mon Aug 29 14:20:44 1994  Stan Shebs  (shebs@andros.cygnus.com)

	First part of Fortran test suite.
	* gdb.fortran: New directory.
	* gdb.fortran/exprs.exp, gdb.fortran/types.exp: New files.

Sat Aug 27 23:32:43 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.base/default.exp:  Update expect pattern for load command
	without arguments.

Wed Aug 24 13:15:02 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)

	* configure.in: Change i386 to i[345]86.
	* gdb.base/configure.in: Likewise.
	* gdb.c++/configure.in: Likewise.
	* gdb.chill/configure.in: Likewise.

Tue Aug 23 19:14:06 1994  Stan Shebs  (shebs@andros.cygnus.com)

	* lib/gdb.exp (gdb_run_cmd): Move comment out from between expect
	patterns, since that is not a valid context for comments.

Fri Aug 19 15:07:30 1994  Kung Hsu  (kung@mexican.cygnus.com)

	* gdb.c++/demangle.exp (test_arm_style_demangling): Add tests for
	repeated types and repeated types with indices > 9.

Tue Aug 16 15:57:52 1994  Stan Shebs  (shebs@andros.cygnus.com)

	* gdb.base/printcmds.exp: Remove all the a29k XFAILs tagged with
	2417; old bug has been fixed.

Fri Aug 12 19:35:41 1994  Jeff Law  (law@snake.cs.utah.edu)

	* gdb.base/interrupt.exp: When trying to wake up the inferior,
	send the newline ourselves instead of assuming gdb_test will do
	so when passed an empty input string.

	* gdb.stabs/hppa.mt: Use $(AS), not $(CC) to assemble the
	stabs testcode.

Fri Aug  5 17:01:07 1994  J.T. Conklin  (jtc@phishhead.cygnus.com)

	* lib/gdb.exp (gdb_test): Don't send anything if the first
	  argument is an empty string.  This makes cases where we want to
	  match output that is already in expect's buffers (for example,
	  matching a breakpoint after gdb_run_cmd has been called) work
	  reliably.

Tue Aug  2 10:24:08 1994  J.T. Conklin  (jtc@phishhead.cygnus.com)

	* config/netware.exp: New file.

Thu Jul 28 12:54:07 1994  J.T. Conklin  (jtc@phishhead.cygnus.com)

	* config/mt-slite (LDFLAGS): If using the newlib in the tree, set
	  the -B and -L prefixes so we can find the debugging stub.

	* Makefile.in (CC_FOR_TARGET, CXX_FOR_TARGET): Use newlib if it is
	  there and we are using the gcc from the tree.

	* gdb.base/types.c: Removed.

	* gdb.base/configure.in: Look for makefile fragments in ../config.
	  Recognize i386-*-netware.
	* gdb.c++/configure.in: Likewise.

Mon Jul 25 23:48:50 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.base/corefile.exp:  Change `else if' to `elseif', which is
	the correct TCL syntax.

Mon Jul 25 15:35:56 1994  J.T. Conklin  (jtc@phishhead.cygnus.com)

	* gdb.base/opaque.exp: use runto instead of messing around with
	  breakpoints.  Simplify by using gdb_test.

	* gdb.base/bitfields.exp: restart between tests on netware targets
	  because breakpoints aren't relocated after target death.  Run
	  processes to completion.

	* gdb.base/{opaque,watchpoint}.exp: Use gdb_run_cmd.

Sun Jul 24 09:55:51 1994  Fred Fish  (fnf@cygnus.com)

	* Makefile.in:  Remove extra tabs that confuse some versions
	of "make".  Use the newly built gdb to test with by default,
	rather than the first one in the tester's search path.

Sat Jul 23 15:05:47 1994  Stan Shebs  (shebs@andros.cygnus.com)

	* gdb.base/whatis.exp (v_signed_short_array): Fix a typo.

	* gdb.base/help.exp: Update expected add-symbol-file, ignore, and
	condition help.

Tue Jul 19 10:26:32 1994  J.T. Conklin  (jtc@phishhead.cygnus.com)

	* lib/gdb.exp (runto): Rewrite in terms of gdb_run_cmd.

	* lib/gdb.exp (gdb_run_cmd): New function, used to start program
	  running.
	* gdb.base/bitfields.exp: Use gdb_run_cmd to start program.
	* gdb.base/funcargs.exp: Likewise.

	* gdb.base/bitfields.exp: Simplify by using gdb_test.
	* gdb.base/funcargs.exp: Likewise.

	* lib/gdb.exp (gdb_test): if match times out, don't call fail if
	  message is "".

Mon Jul 18 12:18:07 1994  J.T. Conklin  (jtc@phishhead.cygnus.com)

	* gdb.base/{a2-run,callfuncs,funcargs,interrupt,mips_pro,nodebug,
	  return,signals,twice}.exp: Handle non-existant binaries
	  consistantly.

	* gdb.base/corefile.exp: Execute coremaker to generate core dump.
	* gdb.base/Makefile.in: Don't try to generate a core dump, we
	  might testing a cross development system.

Thu Jul 14 18:13:56 1994  J.T. Conklin  (jtc@phishhead.cygnus.com)

	* Makefile.in (RUNTEST_FOR_TARGET): Fix relative pathname, the
	  runtest script is relative to ${srcdir}, not ${rootdir}.

Thu Jul 14 14:56:59 1994  Stan Shebs  (shebs@andros.cygnus.com)

	* gdb.base/signals.exp: Allow for optionality of breakpoint
	address.

Thu Jul 14 11:21:27 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.base/{ptype.exp,ptype.c}: Add t_char_array test.

Tue Jul 12 12:22:32 1994  J.T. Conklin  (jtc@phishhead.cygnus.com)

	* gdb.c++/cplusfuncs.cc: Include <stddef.h>, not <sys/types.h>,
	  for size_t definition.
	* gdb.c++/templates.cc: Likewise

	* config/mt-i386-netware: New file.

	* gdb.base/interrupt.c: Do not test if errno == EINTR if it's not
	  defined.

	* gdb.base/Makefile.in: Added support for systems that name core
	  files by appending "core" to the program name.
	* gdb.base/a1-selftest.exp: Likewise.

Mon Jul 11 23:59:18 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.base/return.exp:  Add comment and message for `return double'
	test failure on Sparc Solaris.

Mon Jul  4 12:10:48 1994  Stan Shebs  (shebs@andros.cygnus.com)

	* lib/gdb.exp (runto): Allow for optionality of breakpoint address.

Wed Jun 29 00:26:17 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.c++/misc.cc:  Instantiate classes to inhibit the compiler
	from optimizing them away.
	* gdb.c++/classes.exp, gdb.c++/inherit.exp:  Update ptype expect
	patterns to include default constructors and assignment operators,
	to match gcc versions beyond 2.5.8. Accept any cplus demangling
	character in the output of the virtual base pointer.

Fri Jun 24 08:15:42 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.c++/cplusfuncs.exp:  Use string_to_regexp and a regular
	expression match in print_addr_of to avoid unintented matches.
	* gdb.c++/virtfunc.exp:  Accept alternate ptype output of g++
	versions up to 2.5.8.

Mon Jun 20 23:54:37 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.base/list.exp:  Tweak alternate pattern for listing of an
	included file to run under newer versions of expect.
	* gdb.c++/demangle.exp:  Add spaces to the expect patterns between
	consecutive >'s in templates to accomodate recent cplus-dem.c change.
	Remove xfail for the virtual table of BDDHookV.

Sat Jun 18 12:51:34 1994  Stan Shebs  (shebs@andros.cygnus.com)

	* lib/gdb.exp (string_to_regexp): Set a default result.
	(default_gdb_start): Fix misleading message.

Wed Jun 15 12:10:10 1994  Stan Shebs  (shebs@andros.cygnus.com)

	* config/mt-a29k-udi, config/mt-i960-nindy, config/mt-sparc-aout:
	Remove all CC, etc definitions.
	* config/mt-hpux: New file.
	* config/mt-mips-ecoff (CFLAGS_FOR_TARGET): Remove:
	(CFLAGS, LDFLAGS): Define.
	* config/mt-slite (CFLAGS_FOR_TARGET): Change to LDFLAGS.

	* Makefile.in (site.exp): Don't insert host_os, etc.
	(just-check): Just use RUNTEST with RUNTESTFLAGS only.
	(distclean): Check existence of subdir.
	* gdb.base/configure.in (hppa*-*-hpux*): Recognize.
	* gdb.base/Makefile.in: General cleanup and simplification.
	Use CC, CFLAGS, and LDFLAGS instead of ..._FOR_TARGET versions
	to build executables.	Use default rule to build .o files.
	(EXPECT, RUNTEST, CC): Fix relative pathname.
	(site.exp): Don't insert host_os, etc.
	* gdb.base/signals.c (main): Don't call signal unless SIGALRM
	and/or SIGUSR1 defined.
	* gdb.base/watchpoint.c: Don't include stdio.h a second time.
	* gdb.c++/Makefile.in: General cleanup and simplification.
	Use CC, CFLAGS, and LDFLAGS instead of ..._FOR_TARGET versions
	(CFLAGS): Remove.
	(EXPECT, RUNTEST_FOR_TARGET, CXX): Fix relative pathname.

Fri Jun 10 10:55:09 1994  Jeff Law  (law@snake.cs.utah.edu)

	* gdb.base/recurse.exp: Misc changes to get tests running again
	after Kung's changes to the watchpoint code.
	* gdb.base/watchpoint.exp: Likewise.

Thu Jun  9 15:16:55 1994  Per Bothner  (bothner@kalessin.cygnus.com)

	* lib/gdb.exp (string_to_regexp):  Convert {\} also.

Wed Jun  8 12:12:17 1994  Stan Shebs  (shebs@andros.cygnus.com)

	* config/udi-gdb.exp, config/unix-gdb.exp: Call default_gdb_start.
	* lib/gdb.exp (default_gdb_start): Define.
	* gdb.base/bitfields.exp, gdb.base/break.exp, gdb.base/exprs.exp,
	gdb.base/funcargs.exp, gdb.base/opaque.exp,
	gdb.base/printcmds.exp, gdb.base/ptype.exp, gdb.base/recurse.exp,
	gdb.base/scope.exp, gdb.base/setvar.exp, gdb.base/watchpoint.exp,
	gdb.c++/classes.exp, gdb.c++/misc.exp, gdb.c++/virtfunc.exp:
	Don't call gdb_target_udi in between tests.

Tue Jun  7 08:30:15 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.c++/demangle.exp: Use gdb_test_exact, rather than demangle
	(which was basically just a local version of the same thing).  In
	addition to avoiding duplication, gdb_test_exact is faster.
	* lib/gdb.exp (gdb_test_exact): Fix typo.

	* lib/gdb.exp (delete_breakpoints): If there were no breakpoints,
	don't give an error.

	* gdb.base/term.exp: Call delete_breakpoints before starting.

	* gdb.base/Makefile.in (EXECUTABLES): Remove t10.
	(t10): Add comment.

Mon Jun  6 18:26:50 1994  Stan Shebs  (shebs@andros.cygnus.com)

	Reorganization of the GDB Test Suite.

	* gdb.base: New directory, contains all the basic tests.
	* gdb.c++: New directory, tests specific to C++.
	* gdb.chill: New directory, tests specific to Chill.
	* gdb.t00, gdb.t01, gdb.t02, gdb.t03, gdb.t04, gdb.t05, gdb.t06,
	gdb.t07, gdb.t08, gdb.t09, gdb.t10, gdb.t11, gdb.t12, gdb.t13,
	gdb.t15, gdb.t16, gdb.t17, gdb.t20, gdb.t21, gdb.t22, gdb.t23,
	gdb.t24, gdb.t30, gdb.t31: Removed directories, contents moved
	into appropriate new directories (t00-t17 to base, t20-t23 to c++,
	t30-31 to chill).
	* */gdbme.*: Rename to match appropriate expect scripts.
	* gdb.base/bitfields.c, gdb.base/break.c, gdb.base/callfuncs.c,
	gdb.base/coremaker.c, gdb.base/exprs.c, gdb.base/funcargs.c,
	gdb.base/interrupt.c, gdb.base/list0.c, gdb.base/list0.h,
	gdb.base/list1.c, gdb.base/mips_pro.c, gdb.base/nodebug.c,
	gdb.base/opaque-info.c, gdb.base/opaque0.c, gdb.base/opaque1.c,
	gdb.base/printcmds.c, gdb.base/ptype.c, gdb.base/recurse.c,
	gdb.base/return.c, gdb.base/run.c, gdb.base/scope0.c,
	gdb.base/scope1.c, gdb.base/setvar.c, gdb.base/signals.c,
	gdb.base/types.c, gdb.base/twice.c, gdb.base/watchpoint.c,
	gdb.base/whatis-info.c, gdb.base/whatis.c: New names of C files.
	* gdb.c++/cplusfuncs.cc, gdb.c++/templates.cc, gdb.c++/misc.cc,
	gdb.c++/virtfunc.cc: New names of C++ files.
	* gdb.chill/chillvars.ch: New name of Chill file.
	* gdb.base/configure.in, gdb.c++/configure.in,
	gdb.chill/configure.in: Merge in contents of gdb.t*/configure.in.
	* gdb.base/Makefile.in, gdb.c++/Makefile.in,
	gdb.chill/Makefile.in: Merge in contents of gdb.t*/Makefile.in.
	* configure.in (configdirs): Update to reflect directory changes.
	(target_abbrev): No longer define for any configuration.
	* Makefile.in: Cosmetic improvements to header comments.

Fri Jun  3 18:56:06 1994  Per Bothner  (bothner@kalessin.cygnus.com)

	Various changes to gdb.t31:

	* Makefile.in (gdbme.o):  Compile with -fspecial_UC.
	* gdbme.ch:  Make all key-words and predefineds be upper-case.
	* chillvars.exp:  Expect key-words and predefinds in upper-case.

	* chillvars.exp:  Use gdb_test_exact many places.
	Change expected output for arrays (which now includes index labels).

	* pr-5020.exp, gdme.ch (module PR_5020):
	New test, for PR-5020.

Thu Jun  2 16:02:41 1994  Per Bothner  (bothner@kalessin.cygnus.com)

	* lib/gdb.exp (string_to_regexp, gdb_test_exact):  New procedures.
	* Makefile.in (CHILL_LIB):  Remove bogus redundant definitions.

Sun May 29 22:31:42 1994  Per Bothner  (bothner@kalessin.cygnus.com)

	* Makefile.in:  Fix bit-rot in definitions of CHILL,
	CHILL_FOR_TARGET and Chill_LIB.
	* gdb.t31/gdbme.ch:  Fix syntax of nested array tuples.
	* gdb.t31/Makefile.in:  Add definitions for CHILLFLAGS,
	CHILL, and CHILL_LIB.

Sat May 21 10:05:08 1994  Bill Cox  (bill@rtl.cygnus.com)

	* Revert the previous changes.  Please see Rob's directory
	  /lisa/test/rob/progressive/gdb/testsuite for these fixes.

Thu May 19 12:51:00 1994  Bill Cox  (bill@rtl.cygnus.com)

	* Makefile.in, configure.in, config/mips-gdb.exp,
	  config/mt-a29k-udi, config/mt-i386-aout, config/mt-i960-nindy,
	  config/mt-sparc-aout, config/udi-gdb.exp, config/unix-gdb.exp,
	  config/unknown.exp, gdb.t00/default.exp, gdb.t00/help.exp,,
	  gdb.t00/teststrategy.exp, gdb.t01/Makefile.in, gdb.t02/Makefile.in,
	  gdb.t02/whatis.exp, gdb.t03/Makefile.in, gdb.t03/gdbme.c,
	  gdb.t04/Makefile.in, gdb.t05/Makefile.in, gdb.t06/Makefile.in,
	  gdb.t06/break.exp, gdb.t06/signals.c, gdb.t06/signals.exp,
	  gdb.t08/Makefile.in, gdb.t08/opaque.exp, gdb.t09/Makefile.in,
	  gdb.t10/Makefile.in, gdb.t11/Makefile.in, gdb.t12/Makefile.in,
	  gdb.t13/Makefile.in, gdb.t15/Makefile.in, gdb.t15/funcargs.exp,
	  gdb.t15/gdbme.c, gdb.t15/return.exp, gdb.t16/Makefile.in,
	  gdb.t17/Makefile.in, gdb.t17/callfuncs.exp, gdb.t17/gdbme.c,
	  gdb.t20/Makefile.in, gdb.t21/Makefile.in, gdb.t21/cplusfuncs.exp,
	  gdb.t22/Makefile.in, gdb.t22/virtfunc.exp, gdb.t23/Makefile.in,
	  gdb.t24/demangle.exp, lib/gdb.exp:  Check in Rob's testing
	  changes from 94Q1.

Wed May 18 17:04:03 1994  Bill Cox  (bill@rtl.cygnus.com),

	* config/mt-lynx, config/mt-m68k, config/mt-mips-ecoff,
	  config/mt-slite, config/mt-unix, config/mt-vxworks: Add
	  Rob's new testing fragments.

Tue May 17 15:04:14 1994  Bill Cox  (bill@rtl.cygnus.com)

	* config/mips-gdb.exp, config/udi-gdb.exp, config/vx-gdb.exp,
	  lib/gdb.exp: Replace error proc calls with perror.

Mon May 16 19:00:50 1994  Stan Shebs  (shebs@andros.cygnus.com)

	* gdb.t00/teststrategy.exp: Reorder so that AIX gdb can print the
	version also, match on casted version strings, and match on
	gdb startup case where the line numbers might be messed up.

Fri May 13 18:00:27 1994  Bill Cox  (bill@rtl.cygnus.com)

	* config/mt-i960-vx (LDFLAGS): Add '-r' option for test links.
	  (CFLAGS): Delete it from here.

Tue May  3 16:08:09 1994  Kung Hsu  (kung@mexican.cygnus.com)

	* gdb.t22/virtfunc.exp: Fix g++ ptype expected outputs.

Fri Apr 29 14:26:35 1994  Stan Shebs  (shebs@andros.cygnus.com)

	* Makefile.in (RUNTEST): Default to just "runtest".

Tue Apr 26 22:21:40 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)

	* gdb.t17/callfuncs.exp: More comments about t_func_values tests.
	* gdb.t17/gdbme.c (t_func_values): Add comments about how and why
	the code has been restructured.

Thu Apr 21 12:48:07 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t00/default.exp (set write): Allow any number of \r and/or
	\n, not just one of each.

	* gdb.t07/gdbme.c (main): Don't take address of an array; SunOS4
	/bin/cc gives a warning if you do.

Thu Apr 21 11:54:04 1994  Kung Hsu  (kung@mexican.cygnus.com)

	* gdb.t24/demangle.exp: change expect pattern of
	__t10ListS_link1ZUiRCUiPT0

Wed Apr 13 15:05:00 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)

	* gdb.t07/{recurse.exp, recurse.c}: New tests for watchpoints
	on local variables in recursive functions.

	* gdb.t07/Makefile.in: Build the new test.

Tue Apr 12 20:45:25 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)

	* gdb.t17/gdbme.c (t_func_values): Do not compare function pointers
	directly.  Instead compare the return values from actual calls.

Mon Apr 11 10:31:00 1994  Bill Cox  (bill@rtl.cygnus.com)

	* Makefile.in (check): Set TCL_LIBRARY for runtest.

Mon Apr 11 09:15:30 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)

	* From Peter Schauer with minor modifications.
	* gdb.t15/return.exp (return_tests): Handle targets where "return"
	stops in mid-line in the caller.  Add xfail for returning a float
	value on X86 targets.

Tue Apr  5 15:16:33 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)

	* gdb.disasm/hppa.exp (fcmp_tests): Break up into two halves
	to avoid expect lossage.
	(fmem_LRbug_tests): Likewise.
	* gdb.disasm/hppa.s: Corresponding changes.

	* gdb.disasm/hppa.exp: Rework escape sequences and end-of-line
	conditions to work with latest dejagnu/expect.

	* gdb.t15/funcargs.exp (finish from indirect call): No longer
	expected to fail on the PA.
	(backtrace in call with trampolines): Explicitly require main
	to be frame #1 (no trampolines should show up in backtrace).

	* gdb.t00/default.exp: Use "exp_continue" rather than obsolete
	"continue -expect".
	* gdb.t06/break.exp: Likewise.
	* gdb.t07/watchpoint.exp: Likewise.
	* gdb.t13/bitfields.exp: Likewise.
	* gdb.t15/{funcargs,return}.exp: Likewise.
	* gdb.stabs/weird.exp: Likewise.
	* config/{mips,udi}-gdb.exp: Likewise.

	* hppa.sed: Enclose comments within a sed command to avoid
	losing with the old OSF1 sed.

Wed Mar 30 00:31:49 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.t02/whatis.exp, gdb.t08/opaque.exp:  Add XFAILs for
	sequent dynix.
	* gdb.t06/signals.exp:  Add clear_xfail for sequent dynix.
	* gdb.t15/funcargs.exp:  Conditionally step again to really
	finish from marker_call_with_trampolines. Handle the case where
	the first step from within call_with_trampolines already steps
	us back to main.
	* gdb.t15/gdbme.c:  Add comment to closing brace of
	call_with_trampolines for funcargs.exp.

Tue Mar 29 23:55:27 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)

	* gdb.t07/watchpoint.exp (test_watchpoint_triggered_in_syscall):
	Fix typo(s).

Sun Mar 27 16:53:14 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)

	* gdb.t07/gdbme.c: More code for watchpoint testing.

	* gdb.t07/watchpoint.exp: Accept both "Watchpoint" and
	"Hardware watchpoint" throughout file.
	(test_watchpoint_triggered_in_syscall): New test.
	(test_complex_watchpoint): New test.

Fri Mar 25 17:05:31 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)

	* gdbme.c (call_with_trampolines): New function to try and step
	into.  Tests trampoline problems on the PA.

	* funcargs.exp (localvars_in_indirect_call): No longer expect
	stepping into indirect call to fail on PAs.
	(test_stepping_over_trampolines): New test.

Wed Mar 23 07:43:33 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* TODO: Add suggestions for static member function tests, and
	completion tests.

Wed Mar 16 08:28:28 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* TODO: Add suggestions for "p/a" tests.

	* lib/gdb.exp: Set prompt to (gdb) if it isn't already set.
	(default_gdb_exit): Replace all the hair with sending "quit" to
	the process with a simple close.

Tue Mar 15 08:45:50 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* TODO: Add suggestions for shared library tests.

Sun Mar 13 10:45:22 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* TODO: Add suggestions for x/s tests.

Fri Mar 11 08:22:00 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t00/help.exp: Replace most of docstrings for "tbreak",
	"enable once", and "enable breakpoints once" with ".*".

Thu Mar 10 08:34:27 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* TODO: Add suggestions about structure passing tests.

Mon Mar  7 13:45:54 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.t03/gdbme.c:  gcc version 1 puts out the wrong stabs for
	the primary1 test, use work around if __GNUC__ < 2.
	* gdb.t06/signals.c:  Add comments for signals.exp pattern matching.
	* gdb.t06/signals.exp:  Add XFAILs for i386 bsd and vax ultrix.
	Test for bad output rather than waiting for timeout.  Issue
	second continue only if first continue failed.

Wed Mar  2 10:08:01 1994  Jim Kingdon  (kingdon@deneb.cygnus.com)

	* gdb.t21/cplusfuncs.exp (test_paddr_operator_functions): Do
	operator[] test with gdb_test because the old code didn't seem to
	be getting the quoting right with the new dejagnu.

Thu Feb 24 19:49:25 1994  Rob Savoye  (rob@poseidon.cygnus.com)

	* lib/gdb.exp: Set GDB to a fresh gdb if there is one, else use
	one from the path.
	* Makefile.in: Use a fresh expect if there is one, use runtest
	from the src tree if there is one.

Thu Feb 24 18:49:37 1994  Jim Kingdon  (kingdon@deneb.cygnus.com)

	* gdb.t06/break.exp (test_next_with_recursion): Remove xfail for
	next over recursive call.  Revise the tests from that point on
	(which had been skipped) to match GDB's actual (correct) output.

	* gdb.t07/watchpoint.exp (test_stepping): Remove xfail for bug
	with next over a breakpoint whose condition is false.

	* gdb.t00/help.exp: Comment out "help set print" tests just like
	(and for same reason as) "help set" test.

Mon Feb 14 09:58:23 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)

	* gdb.disasm/hppa.s (fmemLRbug_tests): New tests.
	* gdb.disasm/hppa.exp (fmemLRbug_tests): Run them.

Sun Feb  6 15:36:13 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t06/break.exp (test_next_with_recursion): Remove no longer
	necessary gdb_target_udi.

	* gdb.t03/ptype.exp: For UDI, skip tests which call malloc.

	* gdb.t02/whatis.exp, gdb.t03/ptype.exp: Remove xfails for PRs
	1838 and 2417; they are fixed.

	* gdb.t02/whatis.exp (v_char_array, v_signed_char_array),
	gdb.t03/ptype.exp (ptype structure, ptype union):
	Remove xfails; the test is looser than when the xfails were added.

	* gdb.t00/{help.exp,default.exp}: Don't test "target remote" on UDI.
	* gdb.t00/help.exp: Don't expect remote to be in "help target" output.

	* gdb.t01/run.exp: Only run shell test if isnative.

	* config/udi-gdb.exp (gdb_load): Use "file", not "load" command,
	since "run" automatically loads if necessary.  Call gdb_target_udi
	after the "file" since "file" kills any execution target.

	* config/udi-gdb.exp (gdb_start): Don't send "set args main" to
	GDB.  GDB doesn't work that way (not anymore at least) on UDI.
	* gdb.t01/run.exp, gdb.t06/break.exp: Don't pass extra first
	argument for UDI.

Fri Feb  4 12:19:32 1994  Jim Kingdon  (kingdon@deneb.cygnus.com)

	* gdb.t17/interrupt.c: If we get EINTR, don't print an error message.

	* gdb.t17/callfuncs.exp: Add xfails for rs6000.

Sat Feb  5 09:11:56 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t24/demangle.exp: Re-write demangle to just call gdb_test,
	properly quoting regexps.  This makes the second argument to
	demangle a fixed string, which matches the callers, instead of a
	shell-style pattern which is what the previous implementation
	used.  Update some of the callers.

Sat Feb  5 10:19:09 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)

	* gdb.disasm/hppa.s (comib_tests): Add missing instruction.
	(comib_nullified_tests): Fix typo.
	* gdb.disasm/hppa.exp (all comb tests): Fix thinkos in expect
	strings.  No longer expected to fail.

	* gdb.disasm/hppa.s (addib_tests): Fix typo.
	* gdb.disasm/hppa.exp (all addb tests): Fix thinkos in expect
	strings.  No longer expected to fail.

	* gdb.disasm/hppa.exp (fmpy_addsub_tests): Fix typo in expect
	string.  No longer expected to fail.

Fri Feb  4 23:45:11 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)

	* gdb.disasm/hppa.exp (fcmp_tests): Fix thinko in expect string.
	No longer expected to fail.

	* gdb.disasm/hppa.exp (xmpyu_tests): Fix buglet in expect
	string.  No longer expected to fail.

Fri Feb  4 10:35:42 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t24/demangle.exp: Remove a bunch more tests which differ
	only in the names (I probably got most of them).  I was even
	generous with some which differed in underscores in names, and
	probably missed a few, and I *still* was able to remove almost a
	third of the file with almost no impact on testsuite coverage.

Thu Feb  3 12:04:49 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t00/default.exp: Match udi_attach error message as well as
	the one from child_attach.

	* gdb.t00/default.exp: Use "." instead of "?" to match a question mark.

	* gdb.stabs/weird.exp: Remove xfail for const70; just fixed in GDB.

	* gdb.stabs/weird.def (bad_neg0type): Size of this type is 16, not 8.
	* gdb.stabs/weird.exp: Remove xfail for "p bad_neg0"; this fixes it.

	* Move test with enums and partial symbols back to
	gdb.t03/{ptype.exp,gdbme.c} from gdb.stabs/{weird.def,weird.exp}.
	Reverts the change of 26 May 93.  Per today's change to
	stabs.texinfo, the behavior that weird.exp was expecting was
	unreasonable; what is important is that the compiler+gdb get
	things right, which happens with a recent gcc.  Also fix the test
	to deal with native compilers which put out the stab gdb can't
	deal with.

Mon Jan 31 15:40:11 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t24/demangle.exp: Remove a bunch of tests which differ only
	in the names.  The main thing these accomplish is to slow things down.
	Many more such duplicates surely remain.

	* gdb.t00/help.exp: Comment out "help support" test just like
	(and for same reason as) "help set" test.

Mon Jan 31 06:43:45 1994  Fred Fish  (fnf@cygnus.com)

	* gdb.t06/break.exp:  Remove setup_xfails for
	sparc-sun-solaris2.*, these tests now pass with latest gcc and gdb.
	* gdb.t20/inherit.exp (test_ptype_si):  Update warning message
	about known bug in gcc to include up through 2.5.8.
	* gdb.t20/inherit.exp (test_ptype_vi):  Accept "_vb." as well as
	well as "_vb$".
	* gdb.t21/cplusfuncs.exp (test_lookup_operator_functions):
	Remove setup_xfails for sparc-sun-solaris2.*, these tests now pass
	with latest gcc and gdb.
	* gdb.t22/virtfunc.exp (test_ptype_of_classes):  Accept "_vb." as
	well as "_vb$".

Sat Jan 29 23:31:26 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)

	* configure.in (hppa*-*-*): Also configure and build stabs-only
	tests.

Thu Jan 27 08:21:16 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)

	* gdb.t10/hppa.mt: A makefile fragment for the PA.
	* gdb.t10/configure.in (hppa*-*-*): Use it.

Tue Jan 25 12:58:26 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.t09/corefile:  Increase timeout when spawning gdb explicitly.

Wed Jan 19 12:40:25 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.t06/signals.exp:  Handle blocked SIGTRAP on sun3 for bash
	versions prior to 1.13.5.

Tue Jan 18 20:10:50 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t00/default.exp (show prompt): In FAIL case, only match if
	the prompt is at the start of a line.

Mon Jan 17 20:07:51 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)

	* gdb.disasm/hppa.s: Add new tests for sfu and copr instructions.
	Enable "diag" instruction.  Delete copr from fpu_misc_tests, it's
	in the copr tests now.
	* gdb.disasm/hppa.exp: Run new sfu and copr tests.  Do not expect
	copr in the fpu_misc tests anymore.  fpu_misc tests are no longer
	expected to fail.

Fri Jan 14 14:24:21 1994  Rob Savoye  (rob@darkstar.cygnus.com)

	* gdb.t00/teststrategy.exp, gdb.t07/watchpoint.exp,
	gdb.t31/chillvars.exp, lib/gdb.exp:
	Tweak to run under either version of expect.
	* lib/gdb.exp (default_gdb_exit): Remove "catch" statement.
	* gdb.t00/teststrategy.exp: Use isnative and verbose procedures.
	* gdb.t11/list.exp: Remove extraneous whitespace.

Sat Jan 15 09:57:22 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t16/printcmds.exp (test_print_strings): Accept
	"(unsigned char *) " before the string.

	* TODO: Add notes about printing of fancy types and GDB expressions.

Thu Jan 13 17:16:09 1994  Stan Shebs  (shebs@andros.cygnus.com)

	* Makefile.in: Pass LDFLAGS and LIBS to sub-makes.
	* gdb.t06/configure.in: Don't try to compile signals test program
	if doing mips-idt-ecoff.

Thu Jan 13 08:25:55 1994  Rob Savoye  (rob@darkstar.cygnus.com)

	* Most .exp files: Tweak to run under either version of expect.

Tue Jan 11 15:21:13 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t12/scope.exp: Add xfails for rs6000.  Remove 1806 from existing
	xfails; I'm not sure why they are failing, but not because of PR 1806.

Mon Jan 10 22:14:20 1994  Rob Savoye  (rob@darkstar.cygnus.com)

	* config/unix-gdb.exp: Remove gdb_unload cause it's already
	defined in lib/gdb.exp.

Fri Jan  7 12:42:45 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.t07/watchpoint.exp:  Clear xfail for calling function with
	watchpoint enabled on mips, CALL_DUMMY_BREAKPOINT_OFFSET got defined.
	* gdb.t20/gdbme.cc, gdb.t21/gdbme.cc:  Conversion operator functions
	have to be typeless.

Tue Jan  4 09:32:22 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* TODO: Add suggestion for copyright year test.

Mon Jan  3 11:35:26 1994  Stan Shebs  (shebs@andros.cygnus.com)

	* configure.in (*-*-lynxos*): Add stabs tests.

Wed Dec  1 21:54:05 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)

	* gdb.stabs/hppa.sed: Only lables should ever start in column zero,
	so insert a tab before any assembler directive in column zero.

	* gdb.disasm/hppa.exp (all_fpu_memory_tests): Test FP quadword
	stores.
	* gdb.disasm/hppa.s (fpu_memory_indexing_tests): Add FP quadword
	stores.
	(fpu_short_memory_tests): Likewise.

Mon Nov 22 13:23:22 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.stabs/ecoff.mt:  Delete alpha specific if block, fix typo.
	* gdb.stabs/ecoff.sed:  Escape inserted blanks with backslashes, embed
	.stabs directives in comments.

Fri Nov 19 14:09:02 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* TODO: New file, describing tests we could write.
	* gdb.t09/corefile.exp: Move description of tests to write to TODO.

Tue Nov 16 21:07:44 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t06/signals.exp: Add kludge to force re-sync.

	* gdb.t00/teststrategy.exp: If we accidently send the "maint dump-me"
	to xgdb instead of gdb, get out of gdb.

Tue Nov 16 10:21:57 1993  Rob Savoye  (rob@cygnus.com)

	* lib/gdb.exp: Make GDB and GDBFLAGS global so the scoping work
	for info.

Sat Nov 13 23:17:48 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)

	* gdb.stabs/hppa.mt: A makefile fragment for the PA.
	* gdb.stabs/configure.in (hppa*-*-*): Use it.
	* gdb.stabs/hppa.sed: New sed script for the PA.

Sat Nov 13 22:50:29 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.stabs: Re-write weird.def and configuration to use sed
	instead of cpp.  sed is portable and POSIX; cpp is neither.

Fri Nov 12 15:26:36 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t06/signals.exp: Remove one sun3 XFAIL which has been fixed.

Mon Nov  8 16:55:28 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t20/gdbme.cc: Add comment about pmi being optimized out.

Thu Nov  4 23:07:59 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.stabs/weird.exp, gdb.t22/virtfunc.exp: Accept "_vb." as well as
	"_vb$".
	* gdb.t00/teststrategy.exp: Add xfail for RS/6000.
	* gdb.t03/ptype.exp: Add comments and messages about FAILs with xlc.

Wed Nov  3 13:53:34 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* lib/gdb.exp: Comment out code which depends on non-existent
	`transform' procedure.

Wed Nov  3 11:23:11 1993  Rob Savoye  (rob@darkstar.cygnus.com)

	* lib/gdb.exp (default_gdb_exit): Remove `catch "close"'.
	* lib/gdb.exp: Transform tool name.
	* gdb.t*/*.exp: Change error to perror so it works with DejaGnu
	1.1's new error handling system.

Mon Nov  1 10:36:29 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* Makefile.in, gdb.t2*/Makefile.in: Add -O to CXXFLAGS.

Fri Oct 29 17:58:14 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t00/default.exp: Avoid tests with a lot of .* in them.
	They made pattern matching so slow that timeouts happened on
	heavily loaded systems.  Now any output from "show print" which
	gets us back to the GDB prompt is a PASS.

Mon Oct 25 14:36:50 1993  Stu Grossman  (grossman at cygnus.com)

	* gdb.disasm/hppa.mt:  Use $(srcdir) in hppa.o make rule.

Mon Oct 25 13:35:29 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t06/signals.exp: Skip whole file with xfail for HPPA.

	* gdb.t24/demangle.exp: Remove "3220" from the one remaining xfail.
	It is not from PR 3220.

Sun Oct 24 18:49:58 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t00/{help.exp,default.exp}: Loosen up a few more tests which
	just started failing because they depended on the order the
	subcommands are presented, or exact docstring text.  This kind of
	test is a pain and has minimal benefit.

Thu Oct 21 08:26:48 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t09/corefile.exp: At end of test, use "core" command with
	no arguments.

Wed Oct 20 08:56:02 1993  Stu Grossman  (grossman at cygnus.com)

	* gdb.t{01 02 03 04 05 06 07 08 09 10 11 12 13 15 16
	17}/Makefile.in:  Make it possible to run the testsuite with Sun
	make and CC = cross gcc by adding explicit build rules for .o
	files.

Tue Oct 19 14:57:38 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t15/funcargs.exp: Don't put comments on same line as
	setup_xfail (@#$*%& tcl braindamage!).

Mon Oct 18 21:50:08 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.disasm/hppa.exp: Use $objdir/$subdir/$binfile not just $binfile.

Fri Oct 15 15:39:54 1993  Kung Hsu  (kung@cirdan.cygnus.com)

	* gdb.t20/classes.exp: 'const xxx &' becomes 'xxx const &'.
	* gdb.t20/inherit.exp: remove three dumplicate entries.

Fri Oct 15 13:45:25 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.t06/break.exp: For "next over recursive call", fail on any
	incorrect output, not just on "factorial (value=2)".

Fri Oct 15 11:52:56 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.t12/scope.exp:  Remove xfails, filename::var syntax should be
	working now. Add an xfail if accesing a bss variable causes
	a memory error if the target is not yet run.

Thu Oct 14 19:16:56 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t24/demangle.exp: Clean up spacing (2 strings), inclusion of
	constructor name (2 string), name of _GLOBAL_ demangling (2 strings),
	name of __st* demangling (2 strings).  Did Kung really get the
	more than 95 others right without testing them?

Thu Oct 14 16:27:08 1993  Kung Hsu  (kung@cirdan.cygnus.com)

	* gdb.t24/demangle.exp: clean up XFAILS, more than 100

Thu Oct 14 11:40:30 1993  Jeffrey Law  (law@cs.uah.edu)

	* configure.in (configdirs): Add gdb.disasm
	* gdb.disasm: New directory for GDB disassembler tests.
	* gdb.disasm/hppa.{exp,s,mt}: Disassembly tests for the HPPA.

Thu Oct 14 11:40:30 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t00/help.exp: Don't test "help set".

	* gdb.t20/inherit.exp, gdb.t22/virtfunc.exp: Remove all xfails
	from within expect statements.  None of these happen anymore and
	they cause regressions to be silently unnoticed.

	* gdb.t20/inherit.exp, gdb.t22/virtfunc.exp: Add notes (in failure
	messages) about known failures with gcc cygnus-2.4.5-930417.

	* gdb.t02/Makefile.in, gdb.t08/Makefile.in: Make all depend on
	comp-info.exp so it gets built if it doesn't exist.

	* gdb.t13/{Makefile.in,bitfields.exp}: Remove comp-info.exp stuff;
	it is no longer used.
	* gdb.t13/comp-info.c: Removed.

Wed Oct 13 22:54:06 1993  Jim Kingdon  (kingdon@deneb.cygnus.com)

	* gdb.t06/signals.exp: Add xfail for sun3.

Thu Oct  7 12:01:03 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t17/interrupt.exp: Add xfail for Irix (currently not really
	relevant because ^C doesn't get sent but failure can be reproduced
	interactively).

Tue Oct  5 10:43:11 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.stabs/alpha.mt:  New configuration file for alpha.
	* gdb.stabs/configure.in:  Use it.
	* gdb.stabs/ecoff.mt, weird-ecoff.sed:  Change sed script to enable
	sharing with alpha.mt, redefine long to word via preprocessor.
	* gdb.stabs/weird.def:  Conditionally adapt storage layout of v_comb
	for alpha.
	* gdb.stabs/weird.exp:  Handle compilation of weird.s by alpha
	native cc.
	* gdb.t00/teststrategy.exp:  Change expect string so that we
	consume the `(xgdb)' from the command echo and from the gdb prompt.
	* gdb.t05/expr.exp:  xfail "print unsigned int == (~0)" on the alpha.
	gdb currently compares all values as long, so this failure probably
	applies to any configuration where LONGEST is bigger than a target int.
	* gdb.t08/comp-info.c:  New file to determine if gdbme is compiled
	with gcc.
	* gdb.t08/Makefile.in, opaque.exp:  Use it. Alpha native cc is unable
	to handle opaque pointers, gcc is.
	* gdb.t21/gdbme.cc, gdb.t23/gdbme.cc:  operator new takes a size_t
	as first argument. Include <sys/types.h> and change all operator
	new definitions to use size_t.
	* gdb.t21/cplusfuncs.exp:  Handle changes in output for operator new
	now that we use size_t.

Wed Sep 29 00:55:49 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.t03/ptype.exp, gdb.t15/printcmds.exp:  When constructing
	a long or float array cast all array members to the same type.
	* gdb.t04/setvar.exp:  Handle the decimal output of an unsigned long
	with 64 bit longs.
	* gdb.t07/watchpoint.exp:  Add finish and until variations encountered
	on alpha.
	* gdb.t08/opaque.exp, gdb.t17/interrupt.exp:  Add xfails for alpha.

Tue Sep 28 17:26:47 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t24 (demangle.exp): Constructors of templates have names like
	vector<int>::vector(int) not vector<int>::vector<int>(int).  See
	section 14.6 of the ARM.

	* gdb.t24 (demangle.exp): Remove a whole bunch of tests of the form
	"_vt$MoveCmd"; these differ only in name from "_vt$foo", so they
	accomplish little and slow down the testsuite.

	* gdb.t24 (demangle.exp): Accept "XXX const" as well as "const XXX".
	Accept spaces various places.

Tue Sep 21 17:28:45 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t07/watchpoint.exp: On sparc, clear xfail for calling function
	with watchpoint enabled.

	* Makefile.in: Remove definition of CC and remove the second
	definition of CXX (the "CXX = gcc" one remains).  These definitions
	were causing backquotes to be expanded within backquotes, which
	doesn't work.

Sat Sep 18 09:43:21 1993  Jim Kingdon  (kingdon@poseidon.cygnus.com)

	* gdb.t17/callfuncs.exp: Add "return 0" to end.

Fri Sep 17 04:41:17 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.stabs/ecoff.mt:  Remove STABSCC hack.
	* gdb.stabs/weird.exp:  Handle the case where weird.o is compiled
	by mips cc and contains no stabs entries.

Thu Sep 16 17:22:12 1993  Rob Savoye  (rob@darkstar.cygnus.com)

	* config/vx-gdb.exp: Use fake device to load files rather than
	NFS.
	* lib/gdb.exp: New proc to do "file" command.
	* config/unix-gdb.exp: Use new "file" proc.

Thu Sep 16 13:45:44 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)

	* config/mips-gdb.exp (gdb_load): Increase timeout to 2400.
	Rework board rebooting slightly.
	(gdb_exit): Don't exit from the remote shell; there isn't one.
	* gdb.stabs/weird.exp: If a program is being debugged already,
	kill it.
	* gdb.t04/setvar.exp: Stop and restart gdb.
	* gdb.t05/expr.exp: Likewise.
	* gdb.t07/watchpoint.exp: If target is mips-idt-*, stop and
	restart gdb and reload the program.
	* gdb.t08/opaque.exp: Likewise.
	* gdb.t12/scope.exp: Likewise.
	* gdb.t13/bitfields.exp: Likewise.
	* gdb.t15/funcargs.exp: Likewise.
	* gdb.t20/classes.exp: Likewise.
	* gdb.t03/ptype.exp: Increase timeout.
	* gdb.t16/printcmds.exp (test_print_string_constants,
	test_print_array_constants): Likewise.
	* gdb.t17/callfuncs.exp (do_function_calls): Likewise.
	* gdb.t20/classes.exp (do_tests): Likewise.
	* gdb.t22/virtfunc.exp (test_virtual_calls): Likewise.

Wed Sep 15 14:24:36 1993  Ian Lance Taylor  (ian@cygnus.com)

	* gdb.stabs: Renamed *wierd* to *weird*.

Wed Sep 15 10:36:50 1993  Jim Kingdon  (kingdon@cirdan.cygnus.com)

	* gdb.t13/bitfields.exp: Test for bad output rather than waiting
	for timeout.  Add "known gcc 2.4.5 bug" to failure message.

Tue Sep 14 17:16:44 1993  Jim Kingdon  (kingdon@cirdan.cygnus.com)

	* gdb.stabs/wierd.exp (print_wierd_var): Test size, not type name.
	(do_tests): Remove xfail for whatis on one_var and two_var.

Wed Sep  8 23:14:23 1993  Rob Savoye  (rob@darkstar.cygnus.com)

	* Makefile.in: Made cross building work better by adding
	{RUNTEST,CC}_FOR_TARGET and using TARGET_FLAGS_TO_PASS.

Tue Sep  7 14:11:52 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t15/{return.c,return.exp,Makefile.in}:
	New test, currently commented out.

Tue Aug 31 16:51:29 1993  Rob Savoye  (rob@darkstar.cygnus.com)

	* config/udi-gdb.exp: gdb_exit now kills any isstip processes
	still running and removes the leftover named socket so GDb can do
	clean restarts.

Mon Aug 30 17:55:16 1993  Rob Savoye  (rob@darkstar.cygnus.com)

	* gdb.t01/run.exp: Add match for VxWorks, cause I/O comes out the
	console, not GDB.
	* config/mt-*: Added default values for RUNTEST and RUNTESTFLAGS so
	cross testing works better with "make check"
	* config/unix-gdb: Use default procedures for exit and version.
	* config/vx-gdb.exp: Cleaned up and massaged back to working order
	with the newest VxWorks.

Thu Aug 26 17:50:28 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t20/classes.exp: For "ptype class Base1", continue to accept
	old form.

	* gdb.t22/virtfunc.exp: If it prints `struct' (not `class') with a
	name (e.g. devo gdb with gcc 2.4.5), it is still a pass.

	* gdb.t10/crossload.exp: Skip whole file (for now, until we fix it).

	* config/unix-gdb.exp: Remove this version of gdb_exit
	* lib/gdb.exp: Merge in all the crap from config/unix-gdb.exp.
	Rob says he'll look at it when he gets back to testing boards.

Thu Aug 26 07:20:00 1993  Fred Fish  (fnf@deneb.cygnus.com)

	* gdb.t22/virtfunc.exp:  Accept missing struct/class names as
	an expected fail for certain ptype commands.

	* gdb.t20/classes.exp:  Update expected results of "ptype class
	Base1" to account for the constructor that now appears in the type.

Wed Aug 25 16:48:05 1993  Fred Fish  (fnf@deneb.cygnus.com)

	* configure.in (configdirs):  Restore gdb.t04, which mysteriously
	disappeared from list.
	* config/{udi-gdb.exp, gdb-unix.exp}:  Replace calls to obsolete
	"alldone" proc with call to cleanup and exit.
	* {gdb.t01/run.exp, gdb.t01/term.exp, gdb.t02/whatis.exp,
	gdb.t03/ptype.exp, gdb.t04/setvar.exp, gdb.t05/expr.exp,
	gdb.t06/break.exp, gdb.t07/watchpoint.exp, gdb.t08/opaque.exp,
	gdb.t09/corefile.exp, gdb.t10/crossload.exp, gdb.t11/list.exp,
	gdb.t12/scope.exp, gdb.t13/bitfields.exp}:  Replace calls to
	"alldone" proc with simple returns that suppress remaining
	tests.  The alldone proc went away many months ago.

Tue Aug 24 11:04:06 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t10/nodebug.exp: Comment out "maint print msymbols" tests.

	* gdb.t12/gdbme0.c (localscopes, autovars): Modify to foil gcc -O.

Thu Aug 19 22:08:41 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.t15/funcargs.exp:  Allow arguments for main in backtraces
	as vax gdb will display them.

Thu Aug 19 18:18:59 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t20/gdbme.cc: Do some calculation with v.x, to confound
	optimizers.

	* scope.exp: Change "bad value for localval" messages so each one
	is unique.

	* config/unix-gdb.exp (gdb_exit): Move info on this vs.
	lib/gdb.exp (gdb_exit) from ChangeLog to comments.

	* gdb.t06/signals.exp: Skip the whole file with xfail for delta68.

Tue Aug 17 00:05:28 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t00/teststrategy.exp: Deal with it if cmdsize = 1 line
	doesn't exist (due to optimization).

Mon Aug 16 21:05:49 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.stabs/wierd.exp: Deal with it if echo of "file" command
	contains \r because the filename is long.

	* gdb.t06/signals.exp: Revise comments regarding "'next' behaved as
	'continue'" bug, and change xfail back to i*86-univel-sysv4*.

Mon Aug 16 03:05:17 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.t00/help.exp, gdb.t02/whatis.exp, gdb.t07/watchpoint.exp,
	gdb.t08/opaque.exp, gdb.t17/interrupt.exp:  Update for vax running
	Ultrix.
	* gdb.t02/whatis.exp:  Use procedure to setup xfails on long versus
	int tests.
	* gdb.t08/opaque.exp:  Use procedure to setup xfails for opaque tests.

Thu Aug 12 15:24:28 1993  Fred Fish  (fnf@deneb.cygnus.com)

	* Makefile.in (distclean):  Remove *.log *.plog *.sum *.psum site.*.

	* gdb.t17/interrupt.exp:  Fix 'missing Continuing' case so pattern
	to match does not match the passing case but still matches the
	failing case.

Thu Aug 12 16:58:59 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* Makefile.in (distclean): Remove *.plog *.sum *.psum site.*.

Wed Aug 11 19:47:27 1993  John Gilmore  (gnu@rtl.cygnus.com)

	* lib/gdb.exp (gdb_exit):  Move the best version of gdb_exit
	to here.  Fix 'Quit anyway.*?' bug (? is a regexp metacharacter).
	* config/{mips-gdb.exp, nind-gdb.exp, udi-gdb.exp, vx-gdb.exp}:
	Remove various versions of gdb_exit.
	* config/vx-gdb.exp:  Remove quit_vxgdb, change a caller to call
	gdb_exit.
	* config/unix-gdb.exp:  gdb_exit remains here, and should override
	the generic version, since it's doing a lot of wierd stuff that
	the other versions aren't.  FIXME, fold it in, or abandon this
	version.

Wed Aug 11 12:09:32 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t24/demangle.exp: Add tests for PR 3220.

Tue Aug 10 15:49:35 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t24/demangle.exp: Add lucid test for __vtbl__3foo__vt_cc_main_.

Tue Aug 10 15:45:25 1993  Fred Fish  (fnf@deneb.cygnus.com)

	* gdb.t07/watchpoint.exp:  Clear xfail with "i*86-*-*", not just
	"i386-*-*".  Works for i486 as well.

	* gdb.t06/signals.exp:  Rework code that recognizes known SVR4
	bug, and expand domain of xfail to all SVR4 systems, since the
	actual problem is likely to be in generic SVR4 /proc support.

Tue Aug 10 15:49:35 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* config/unix-gdb.exp (gdb_load): Add eof to expect statement.

Tue Aug 10 09:56:56 1993  Fred Fish  (fnf@deneb.cygnus.com)

	* gdb.t17/interrupt.exp:  Set up xfail for *-*-sysv4*, in chain of
	xfails for other systems.  Match a missing 'Continuing.' as an
	explicit fail for i*86-*-sysv4*, so it doesn't hose other tests.

	* gdb.t20 {classes.exp, inherit.exp, misc.exp}, gdb.t21/cplusfuncs.exp,
	gdb.t22/virtfunc.exp, gdb.t23/templates.exp, gdb.t31/chillvars.exp:
	Only issue warning for missing executables if -all option is used.

	* gdb.stabs/wierd.exp:  Only issue warning for missing wierd.o
	file if -all option is used.  It's like an unpredictable XFAIL.

Mon Aug  9 10:13:34 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t15/funcargs.exp: Add comments that hppa xfails are only
	for dynamically linked binaries.

	* gdb.t10/crossload.exp: Add `set gnutarget auto' at end of tests.

Sun Aug  8 14:21:29 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t20/inherit.exp: Change message for "print tagless struct"
	to state that this is a known bug in old versions of g++.

Fri Aug  6 21:40:30 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.t17/interrupt.exp:  Add xfail for 386 bsd. Accept echoed newline
	while waiting for `Continuing'.

Fri Aug  6 13:38:08 1993  Fred Fish  (fnf@deneb.cygnus.com)

	* gdb.t10/nodebug.exp:  Expect to find local/global minimal symbols
	in text, data, and bss.
	* gdb.t10/nodebug.c:  Add local and global test variables for
	initialized and uninitialized data.

Thu Aug  5 12:18:40 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* config/unix-gdb.exp (gdb_exit): Add "wait".

Thu Aug  5 18:14:06 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.t06/signals.exp:  xfail the continue from the handler for all
	targets.

	* gdb.t07/watchpoint.exp:  clear_xfail for i386 when calling a
	function with watchpoints enabled, the i386 call dummy starts with
	a call.

	* gdb.t00/teststrategy.exp, gdb.t09/Makefile.in:  Handle the way
	386 bsd names its corefiles.

Wed Aug  4 08:53:41 1993  Fred Fish  (fnf@cygnus.com)

	* gdb.t10/Makefile.in (nodebug.o):  Don't use "-c -o", many
	compilers don't grok it.
	* gdb.t16/gdbme.c (ctable1):  Initialize unsigned char array
	with small octal ints rather than character constants, which
	are signed and might not fit if first promoted to int.

Tue Aug  3 18:28:25 1993  Fred Fish  (fnf@cygnus.com)

	* gdb.t09/Makefile.in (clean):  Remove corefile.

Mon Aug  2 12:47:44 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t07/watchpoint.exp: Add missing `$prompt $'.

Mon Aug  2 12:30:14 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)
			  and Jim Kingdon (kingdon@cygnus.com)

	* gdb.t06/signals.exp: Change xfail from "*-*-*" to be only for
	NO_SINGLE_STEP machines.  Fix comment about its cause.  Uncomment
	the `continue' test right after it (also xfailed if NO_SINGLE_STEP).

Fri Jul 30 19:46:55 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t17/interrupt.exp: Add xfail for hppa.

Fri Jul 30 12:54:11 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.t02/whatis.exp, gdb.t03/ptype.exp, gdb.t08/opaque.exp,
	gdb.t09/corefile.exp:  Cleanup xfails for fixed mips bugs.
	* gdb.t13/bitfields.exp, gdbme.c:  Examine a variable in the inferior
	to determine signed-ness of bitfields and use the result to setup
	the xfail.
	* gdb.t15/gdbme.c:  Add comments to the two indirect call0a lines.
	* gdb.t15/funcargs.exp:  Use them to step until the second indirect
	call line is reached if necessary.

Thu Jul 29 20:33:08 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.stabs/wierd.exp: New test, for nameless baseclasses.

Mon Jul 26 00:15:02 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t06/break.exp: Also test `clear' command.

Wed Jul 21 18:03:38 1993  Jim Kingdon  (kingdon@deneb.cygnus.com)

	* gdb.t00/teststrategy.exp: Remove extra quote.

	* gdb.t07/watchpoint.exp: Change xfail for calling function with
	watchpoint enabled to be for all non-68k machines.

	* gdb.t15/{mips_pro.{c,exp},Makefile.in}: New test.

Mon Jul 19 23:59:26 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.stabs/configure.in: If configured -with-gnu-as for mips-*-*
	targets use aout.mt instead of ecoff.mt as gas understands
	standard aout format.

Mon Jul 19 18:14:06 1993  Jim Kingdon  (kingdon@deneb.cygnus.com)

	* lib/gdb.exp (runto): Don't insist that function we are running to
	was compiled with -g.

	* gdb.t10/{nodebug.{c,exp},Makefile.in}: New test.

	* gdb.t17/interrupt.exp: Before sending ^C, give the inferior time
	to get back into the read system call.
	Accept leading newline in case where we woke it up.

Sun Jul 18 08:40:45 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.stabs/{ecoff.mt,wierd-ecoff.S,wierd-ecoff.sed}:  New files
	to make the stabs test work on ecoff systems using gcc and -with-stabs.
	* gdb.stabs/{Makefile.in,configure.in,aout.mt,xcoff.mt}:  Modify to
	enable ecoff configuration.

Thu Jul 15 11:54:58 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t15/funcargs.exp (localvars_in_indirect_call): New test.

Wed Jul 14 09:36:42 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t16/printcmds.exp: Add another printf test.

Wed Jul 14 15:37:13 1993  Ian Lance Taylor  (ian@cygnus.com)

	* configure.in: If configured -with-stabs on any target, add
	stabsdirs to configdirs.

Wed Jul 14 09:36:42 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t16/printcmds.exp: Change printf "%f\n" to printf "%f is
	fun" so pattern does not match the command itself.

Mon Jul 12 11:22:06 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t15/{gdbme.c,funcargs.exp}: Test for alloca-influenced frames.

Sun Jul 11 12:03:24 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t17/interrupt.exp: Test for more things.

Fri Jul  9 14:11:17 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t07/watchpoint.exp: In until test, deal with the way the DEC
	compiler arranges the code and line numbers.

	* gdb.t17/interrupt.exp: Don't send \n after ^C.

Fri Jul  9 09:47:02 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.t00/help.exp:  Increase expect input buffer size.

Thu Jul  8 14:26:50 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t06/signals.exp: Remove sparc xfail; bug fixed.

	* gdb.t07/watchpoint.exp: Add xfail for hppa.

	* gdb.t17/{gdbme.c,callfuncs.exp}: Add sum10 function, to test pa bug.

	* gdb.t06/signals.exp: At "p func1 ()" test, check for breakpoint
	[0-9]*, not just [0-9].

Wed Jul  7 17:52:28 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t20/{gdbme.cc,classes.exp}: Add xfail for gdb/2972.

	* gdb.t2*: Set CXXFLAGS, not CFLAGS, since that's what we use.

Tue Jul  6 13:54:49 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t00/help.exp: Replace most of docstring for "continue" with .*.

Mon Jul  5 22:03:45 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t06/signals.c: Add xfails for sun3.

	* gdb.t07/watchpoint.exp: Comment out xfail for fixed bug 1836.

	* gdb.t07/{gdbme.c,watchpoint.exp}: Add test for 2597.  Also add
	test_stepping tests.

Fri Jul  2 09:08:10 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t{06,17}/Makefile.in (clean): Remove all executables.

	* gdb.t17/{interrupt.{c,exp},Makefile.in}: New test for solaris bug.

	* gdb.t06/twice.exp, Makefile.in: Just use an include of twice.c
	rather than actually putting it through cpp twice.

	* gdb.t06/signals.exp: Add xfails for unixware and rs6000.

Fri Jul  2 10:48:03 1993  Ian Lance Taylor  (ian@cygnus.com)

	* config/mips-gdb.exp (gdb_exit): Removed close statement which is
	no longer needed.

Fri Jul  2 09:08:10 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t06/signals.exp: Add test for sparc bug with do_save_insn.

	* gdb.t20/{classes,inherit}.exp: If a class which doesn't use any
	C++ features prints as "struct", make it a pass, not an xfail.

Thu Jul  1 22:03:33 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t22/virtfunc.exp: Remove a bunch of xfails.
	Don't require VA to print as "class" rather than "struct".

Thu Jul  1 18:27:40 1993  Jim Kingdon  (kingdon@cygnus.com)

	* gdb.t06/twice.exp: Don't care about the file name GDB prints.

Wed Jun 30 18:01:00 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t{02,13}/comp-info.c, gdb.t06/twice.exp: Add "return 0" to end.

Tue Jun 29 13:15:42 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.t12/scope.exp:  Remove xfail for parameter printing in wrong
	order.

Tue Jun 29 09:22:29 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t16/printcmds.exp: Add printf tests.

	* gdb.t06/{twice.{c,exp},Makefile.in}: New test.

	* gdb.t10/Makefile.in (clean): Remove $(EXECUTABLES) too.

Mon Jun 28 11:25:59 1993  Fred Fish  (fnf@cygnus.com)

	* gdb.t20/classes.exp:  Add clear_xfail's before printing summary
	pass counts, to counteract any existing or future setup_xfails.

Mon Jun 28 09:15:17 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.stabs/wierd{.def,-aout.S,-xcoff.S}: Use new macros
	{BEGIN,END}_COMMON for common block instead of STAB.
	* gdb.stabs/wierd.exp: Add xfail for rs6000.

	* gdb.stabs/wierd.def: Make value of N_GSYM's 0.
	intp_var should be N_GSYM not N_LSYM.
	wierd-aout.S: Use a label for the value of the N_SO.
	wierd.def: Remove all backslashes.
	wierd-{aout,xcoff}.S: Put a few tests with backslashes here.

Mon Jun 28 07:21:51 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.t20/gdbme.cc (main): Move variable initialization for AIX to
	get the expected next to inheritance3.

Sun Jun 27 12:29:53 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.t00/teststrategy.exp: Remove expected failure for mips-*-*
	now that gcc-2.4 gets it right.

Fri Jun 25 12:00:46 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.stabs/wierd{.def,.exp,-aout.S,-xcoff.S}: Add common block test.

	* gdb.t{02,13}/{Makefile.in,gdbme.c,comp-info.c}: New way of
	generating comp-info.exp which works for cross-compilation.

Thu Jun 24 16:55:05 1993  Fred Fish  (fnf@cygnus.com)

	* gdb.t11/list.exp:  For SVR4 xfails, match "*-*-sysv4*", not
	"*-*-sysv4.*".

Tue Jun 22 21:17:26 1993  Fred Fish  (fnf@cygnus.com)

	* gdb.t01/run.exp:  Start with a fresh gdb.
	* gdb.t11/list.exp:  For SVR4 xfails, match on all versions of
	SVR4.x.

Mon Jun 21 15:23:22 1993  Fred Fish  (fnf@cygnus.com)

	* {gdb.t01, gdb.t02, gdb.t03, gdb.t04, gdb.t05, gdb.t06, gdb.t07,
	gdb.t08, gdb.t09, gdb.t10, gdb.t11, gdb.t12, gdb.t13, gdb.t15,
	gdb.t16, gdb.t17, gdb.t20, gdb.t21, gdb.t22, gdb.t23, gdb.t30}/
	Makefile.in (distclean, realclean):  Remove gdbme.c from list of
	things to remove.

Sat Jun 19 07:49:10 1993  Fred Fish  (fnf@cygnus.com)

	* gdb.t24/demangle.exp (test_gnu_style_demangling):  Add some new
	test cases from bug reports.

Fri Jun 18 10:38:49 1993  Fred Fish  (fnf@cygnus.com)

	* gdb.t06/break.exp:  Add xfails for sparc-sun-solaris2.*.
	* gdb.t12/scope.exp:  Add clear_xfails at appropriate places to
	  avoid spurious xfails.
	* gdb.t20/classes.exp:  Add xfails for longstanding C++ problems.
	* gdb.t21/cplusfuncs.exp:  Add xfails for sparc-sun-solaris2.*.
	* gdb.t22/virtfunc.exp:  Add xfails for longstanding C++ problems.

Wed Jun 16 10:11:57 1993  Fred Fish  (fnf@cygnus.com)

	* gdb.t00/teststrategy.exp:  Rework to provide more useful
	description of each test, fix problem with systems that define
	ALIGN_STACK_ON_STARTUP code, other misc cleanups.
	* gdb.t06/break.exp (test_next_with_recursion):  Fix expected
	results for "next over recursive call" so timeouts aren't taken
	by error.

Mon Jun 14 09:09:04 1993  Jim Kingdon  (kingdon@cygnus.com)

	* gdb.t12/scope.exp: Test printing of variables before run.

	* gdb.t12/{gdbme0.c,scope.exp}: Test for bug where parameters are
	printed in wrong order due to sorting.

Sat Jun 12 15:03:58 1993  Fred Fish  (fnf@cygnus.com)

	* gdb.t00/teststrategy.exp:  Fix expected results for printing
	user entered string constant.  Is array of char, prints with no
	address.

	* gdb.t00/{default.exp, help.exp}:  Account for changes to radix
	commands.
	* gdb.t16/gdbme.c:  Add and use struct containing arrays of char.
	* gdb.t16/printcmds.exp:  Fix all lines that match "unsigned char *".
	* gdb.t16/printcmds.exp (test_print_char_arrays):  Test printing
	of struct of char arrays.
	* gdb.t00/radix.exp:  New tests for radix commands.

Fri Jun 11 13:12:27 1993  Jim Kingdon  (kingdon@cygnus.com)

	* gdb.t16/printcmd.exp: Print a variable before running program
	(with xfail for AIX).

Thu Jun 10 11:04:04 1993  Jim Kingdon  (kingdon@cygnus.com)

	* gdb.t06/{signals.exp,signals.c,Makefile.in}: New test.

	* gdb.t16/printcmd.exp: Don't print variables before running program.

	* gdb.t06/break.exp: Don't require envp argument to main.

	* gdb.t0{2,3,4,5}/gdbme.c [_AIX]: Use signed keyword.

	* gdb.t02/whatis.exp, gdb.t11/list.exp:
	Add xfails for rs6000.

	* gdb.t02/whatis.exp: Change other tests not to re-test something
	we already tested.

	* gdb.t{03,15,16}/gdbme.c: Reference all variables and make sure
	each type used has a variable of that type.

Tue Jun  8 16:45:20 1993  Jim Kingdon  (kingdon@rtl.cygnus.com)

	* gdb.t20/{inherit.exp,gdbme.cc}: Test tagless structure.

Fri Jun  4 11:07:19 1993  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)

	* configure.in: change srctrigger to be a file, not a directory

Fri Jun  4 08:23:57 1993  Ian Lance Taylor  (ian@cygnus.com)

	* configure.in (mips-idt-ecoff*): Added trailing '*'.

	* gdb.t11/list.exp: Fixed a couple of typos.

Tue Jun  1 21:28:06 1993  Fred Fish  (fnf@cygnus.com)

	* gdb.t00 (teststrategy.exp):  Remove notice about PR 1823.  Bug
	is fixed and PR is closed.
	* gdb.t16 (gdbme.c):  Add simple test string variable.
	* gdb.t16 (printcmds.exp):  Add tests with simple test string
	variable, primarily for boundaries on "set print elements".

Mon May 31 11:36:08 1993  Jim Kingdon  (kingdon@cygnus.com)

	* gdb.stabs/wierd.exp: Remove xfail for printing big integer.
	Make leading 0's optional and don't expect a tab in the middle
	of the number.

	* gdb.t00/teststrategy.exp: Remove xgdb before trying the copy.

	* gdb.stabs/wierd.def: Type attributes must be preceded by number=.
	* gdb.stabs/wierd.exp: Remove xfails for type attributes.  Also
	don't end command passed to gdb_test with newline.

	* gdb.t13/{Makefile.in,gdbme.c,bitfields.exp}: If we #defined the
	signed keyword away, don't expect signed bitfields to be signed.

	* gdb.t13/bitfields.exp (bitfield containment): Accept the fields
	printing with only as many 1's as are in the field as well as printing
	with 32 1's (see comment).

Sat May 29 17:57:01 1993  Fred Fish  (fnf@cygnus.com)

	* gdb.t00/default.exp:  Start with a fresh gdb.
	* configure.in (configdirs):  Remove gdb.t31 until the chill
	compiler works again.  It no longer is able to find chillrt0
	since it isn't in libchill.a anymore.
	* gdb.stabs/wierd.exp:  Rewrite to properly handling a missing
	wierd.o, make more modular.
	* gdb.stabs/wierd.def (bad_neg0type, bad_neg0const):  Remove
	spurious newlines that caused problems.

Wed May 26 09:57:19 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* Move test with enums and partial symbols from gdb.t03/ptype.exp
	to gdb.stabs/wierd.exp since GCC has worked around the bug.
	gdb.stabs/wierd.{exp,def}: Many new tests.

	* gdb.t00/default.exp: update info line for new message.

	* gdb.t02/{whatis.exp,gdbme.c}:
	Test that "char *" doesn't print as "caddr_t".

Tue May 25 13:28:27 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t00/help.exp: Use .* in place of some help messages which
	just changed.
	gdb.t00/default.exp: Update "info frame" test for new message.
	* gdb.stabs/wierd.exp: Check for eof, directly or via gdb_test.
	Remove some xfails

Mon May 24 00:24:47 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.t03/{gdbme.c,ptype.exp}:
	Add tests for typedef'd struct and union without tags.
	Also check "whatis" on a variable of a typedef'd enum without a tag.

	* gdb.t00/teststrategy.exp: For p "foo", remove sun4 XFAIL (see
	PRMS 1823; the bug still exists but isn't reproduced by this test
	anymore), and remove rs6000 XFAIL (the bug is fixed).

	* gdb.t03/ptype.exp: Comment out a lot of tests which are basically
	duplicated from whatis.exp.  For those that are left, accept
	"long", "long int", or "int" for long variables (whatis.exp already
	has an XFAIL for "int", so no need to fail it here).

	* gdb.t02/whatis.exp, gdb.t10/crossload.exp:
	Deal with GCC's names for types now that GDB uses the compiler's names.

	* gdb.t02/{Makefile.in,gdbme.c,whatis.exp}:  If not GCC, do some
	setup_xfail's for sunos4.  If we #defined the signed keyword away,
	don't expect GDB to know that char it is signed.

	* gdb.t00/teststrategy.exp: Update for symbolic signal names.

Sun May 23 08:44:55 1993  Fred Fish  (fnf@cygnus.com)

	* configure.in (configdirs):  Add gdb.t24 for C++ tests that
	should work on any system, regardless of debugging format.
	* gdb.t21/demangle.exp:  Move to gdb.t24.
	* gdb.t24/demangle.exp:  Move from gdb.t21.
	* gdb.t24/{Makefile.in, configure.in}:  New files.

Thu May 20 19:39:03 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* configure.in: Do gdb.stabs and C++ tests only for stabs.
	* gdb.stabs: New directory.

Tue May 18 21:12:09 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* config/{mips,nind,udi,unix,vx}-gdb.exp: Look for "Quit anyway.*?"
	not just "Quit anyway?".

Tue May 18 17:13:20 1993  Fred Fish  (fnf@cygnus.com)

	* gdb.t21/demangle.exp:  Add a couple of new patterns.  Ensure
	that all setup_xfails are immediately followed by clear_xfails.

Tue May 11 09:10:47 1993  Fred Fish  (fnf@cygnus.com)

	* config/unix-gdb.exp, gdb.t00/echo.exp, gdb.t00/help.exp,
	gdb.t00/teststrategy.exp, gdb.t00/gdbvars.exp, gdb.t01/run.exp,
	gdb.t01/term.exp, gdb.t02/whatis.exp, gdb.t03/ptype.exp,
	gdb.t04/setvar.exp, gdb.t05/expr.exp, gdb.t06/break.exp,
	gdb.t07/watchpoint.exp, gdb.t08/opaque.exp, gdb.t09/corefile.exp,
	gdb.t10/crossload.exp, gdb.t11/list.exp, gdb.t12/scope.exp,
	gdb.t13/bitfields.exp, gdb.t15/funcargs.exp, gdb.t16/printcmds.exp,
	gdb.t17/callfuncs.exp, gdb.t20/misc.exp, gdb.t20/inherit.exp,
	gdb.t20/classes.exp, gdb.t21/demangle.exp, gdb.t21/cplusfuncs.exp,
	gdb.t22/virtfunc.exp, gdb.t23/templates.exp, gdb.t30/chexp.exp,
	gdb.t31/chillvars.exp, lib/gdb.exp:
	Change place to report bugs from bug-dejagnu@prep.ai.mit.edu to
	bug-gdb@prep.ai.mit.edu.

Fri May  7 09:15:35 1993  Fred Fish  (fnf@cygnus.com)

	* gdb.t17/callfuncs.exp (do_function_calls):  Call t_double_values
	with 0.0, not integer 0.

Fri Apr 30 13:17:24 1993  Jim Kingdon  (kingdon@cygnus.com)

	* gdb.t06/break.exp: Update for "Kill the program" message change.

Fri Apr 30 09:42:57 1993  Fred Fish  (fnf@cygnus.com)

	* Makefile.in (GDBFLAGS):  Set to -nx.
	* Makefile.in (site.exp):  Use GDBFLAGS.

Wed Apr 28 13:19:07 1993  K. Richard Pixley  (rich@rtl.cygnus.com)

	* */Makefile.in (CFLAGS): add CFLAGS = -g to all subdirectory
	  Makefiles.
	  (check): depend on just-check.
	  (just-check): added so that tests can be run without a noop
	  build pass.

Fri Apr 23 18:13:28 1993  K. Richard Pixley  (rich@rtl.cygnus.com)

	Switch to using configure's configdirs.
	* Makefile.in (Makefile): add configure.in dependency.
	  (SUBDIRS): removed redundant assignment.
	* configure.in: switch subdirs assignment to configdirs.
	* gdb.t*/configure.in: new files.

Thu Apr 22 08:27:53 1993  Ian Lance Taylor  (ian@cygnus.com)

	* gdb.t07/watchpoint.exp: Removed a29k expected failure which now
	works.

Tue Apr 20 13:38:40 1993  Fred Fish  (fnf@cygnus.com)

	* gdb.{t20,t21,t22,t23}/Makefile.in:  Use $(srcdir) to avoid $<
	in explicit rules.  Apparently this is not supported by some makes.

Mon Apr 19 01:54:53 1993  John Gilmore  (gnu@cygnus.com)

	* gdb.t31/Makefile.in:  Use $(srcdir) when avoiding $<, sigh.

Fri Apr 16 09:33:46 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* config/unix-gdb.exp:  Add back missing return 0 which mysteriously
	disappeared.

Thu Apr 15 02:28:24 1993  John Gilmore  (gnu@cacophony.cygnus.com)

	* gdb.t31/Makefile.in:  Avoid $< in explicit rule.

Wed Apr 14 16:38:47 1993  Fred Fish  (fnf@cygnus.com)

	* gdb.t07/watchpoint.exp:  Remove setup_xfail for i486
	watchpoint problem that is now fixed.
	* gdb.t30/chexp.exp:  Remove setup_xfail for printing
	uninitialized convenience variables.
	* gdb.t31/chillvars.exp:  Fix expected patterns for printing
	structures.

Wed Apr 14 12:55:58 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.t00/help.exp: Compensate for bug in mips-*-ultrix* OS
	which causes expect to get out of sync with gdb on long output
	from help set.
	* gdb.t09/corefile.exp: Make expected pattern for core file
	failing signal and frame output format less sun specific.

Tue Apr 13 23:18:07 1993  Per Bothner  (bothner@cygnus.com)

	* gdb.t31/chillvars.exp:  Add and remove initial dummy
	breakpoint, so that symbol table is forced in.
	(Needed at least on Sunos4, though it seems not SVR4.)
	* gdb.t31/chillvars.exp:  Update for changed output format.

Sun Apr 11 17:21:45 1993  Rob Savoye  (rob at darkstar.cygnus.com)

	* config/unix-gdb.exp: Gracefully exits if $GDB is a bogus path.

Wed Apr  7 21:28:21 1993  Rob Savoye  (rob@cygnus.com)

	* Makefile.in: Added --srcdir when invoking runtest, removed the
	need for a local config file. (optional now)

Wed Apr  7 14:13:41 1993  Fred Fish  (fnf@cygnus.com)

	* gdb.t21/demangle.exp:  Only count real fails (not xfails) for
	failure count used to force early termination.  Add some more
	expected failures for gnu style demangling.

Thu Apr  1 09:50:30 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* Makefile.in (CXXFLAGS): Remove -O. It caused the debug info for the
	pmi variable from gdb.t20/gdbme to get optimized away.
	* gdb.t00/teststrategy.exp: Added expected failure for mips-*-*.
	Check for written corefile upon timeout _and_ eof.

Tue Mar 30 09:58:16 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* config/unix-gdb.exp:  Add missing return 0.

Tue Mar 30 08:34:25 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.t16/printcmds.exp:  Remove misplaced xfail that caused an early
	test termination.

Mon Mar 29 17:37:25 1993  Fred Fish  (fnf@cygnus.com)

	* configure.in (subdirs):  Put back gdb.t17 which mysteriously
	disappeared.

Thu Mar 25 21:05:16 1993  Fred Fish  (fnf@cygnus.com)

	* gdb.t10/crossload.exp:  Disable the i860-elf test until such
	time as i860 support works.

	* gdb.t15/funcargs.exp:  Fix expected outputs to include
	"backtrace 100\r" rather than just "backtrace\r", to match last
	change.

Thu Mar 25 12:14:28 1993  Ian Lance Taylor  (ian@cygnus.com)

	* config/udi-gdb.exp (gdb_exit): Remove close command.
	(gdb_target_udi): New procedure to set the UDI target.
	(gdb_start): Don't remove *_soc files.  Use gdb_target_udi.
	* gdb.t00/default.exp: Added expected failures for a29k-*-udi.
	Added waits for prompts after several question responses.  Added
	some more responses used by a29k-amd-udi-gdb.
	* gdb.t01/run.exp, gdb.t06/break.exp: Added a29k-*-udi support:
	pass different arguments, restart UDI connection after program
	completion.
	* gdb.t02/whatis.exp, gdb.t03/ptype.exp, gdb.t07/watchpoint.exp,
	gdb.t08/opaque.exp, gdb.t11/list.exp, gdb.t12/scope.exp,
	gdb.t15/funcargs.exp, gdb.t16/printcmds.exp, gdb.t20/misc.exp,
	gdb.t21/cplusfuncs.exp: Added expected failures for a29k-*-*.
	* gdb.t04/setvar.exp, gdb.t05/expr.exp, gdb.t07/watchpoint.exp,
	gdb.t08/opaque.exp, gdb.t12/scope.exp, gdb.t13/bitfields.exp,
	gdb.t15/funcargs.exp, gdb.t16/printcmds.exp,
	gdb.t17/callfuncs.exp, gdb.t20/classes.exp, gdb.t20/inherit.exp,
	gdb.t20/misc.exp, gdb.t22/virtfuncs.exp: Restart UDI connection
	after program completion.
	* gdb.t10/crossload.exp: Does not work for a29k-*-*, since BFD is
	compiled with a SELECT_VECS setting.
	* gdb.t15/funcargs.exp: Use argument to backtrace to prevent
	infinite recursion.

	* gdb.t20/classes.exp, gdb.t20/inherit.exp, gdb.t22/virtfuncs.exp:
	Added checks for COFF results, and made them expected failures for
	all targets.  It would be better to make them expected failures
	for COFF targets only.

Wed Mar 24 14:43:38 1993  david d `zoo' zuhn  (zoo at poseidon.cygnus.com)

	* Makefile.in: add null dvi target, don't bother to recurse
	through test directories for info and install-info; rename
	$(datadir) to be dejagnu instead of deja-gnu

Wed Mar 24 09:48:03 1993  Fred Fish  (fnf@cygnus.com)

	* gdb.t31/gdbme.ch:  Re-enable code that previously caused
	compiler to coredump.
	* gdb.t31/chillvars.exp:  Re-enable tests that depend on that
	code.

Tue Mar 23 08:53:42 1993  Fred Fish  (fnf@cygnus.com)

	* gdb.t31/gdbme.ch:  Comment out code that causes chill compiler
	coredump.
	* gdb.t31/chillvars.exp:  Comment out tests that depend on that
	code.

Sun Mar 21 17:56:47 1993  Rob Savoye  (rob at darkstar.cygnus.com)

	* gdb.t03/ptype.exp: tests for return code from gdb_test.
	* gdb.t00/teststrategy.exp: Uses which proc rather than spawning
	which in a shell. Deletes xgdb when done.
	* config/unix-gdb.exp: Won't try to spawn $GDB unless it exists.
	Tests the return from the "set height" or "set width" commands.
	Added a few return codes where needed.

Wed Mar 17 11:31:01 1993  Fred Fish  (fnf@cygnus.com)

	* Makefile.in (SUBDIRS):  Add gdb.t17.
	* configure.in (subdirs):  Add gdb.t17.
	* gdb.t17/{Makefile.in, callfuncs.exp, gdbme.c}:  New test
	files to test gdb's calling of functions in the inferior with
	the correct arguments and gdb's ability to retrieve any
	result returned.

Tue Mar 16 15:37:11 1993  Fred Fish  (fnf@cygnus.com)

	* config/unix-gdb.exp (gdb_exit):  Remove close commands that
	may be called after gdb goes away.  Previous versions of expect
	needed these to avoid file descriptor leaks, but they cause
	errors with the current revision of expect.
	* gdb.t00/gdbvars.exp:  Use -re on expected output after
	setting sevenbit-strings.
	* gdb.t04/setvar.exp, gdb.t13/bitfields.exp:  Make commands
	to set sevenbit-strings consistent across tests.
	gdb.t30/chexp.exp, gdb.t31/chillvars.exp:  Make commands to
	set sevenbit-strings consistent across tests.

Fri Mar 12 08:47:20 1993  Fred Fish  (fnf@cygnus.com)

	* gdb.t21/demangle.exp (proc demangle):  Adjust quotes in an
	expected output to match current "expect" expectations.

Wed Mar 10 18:01:49 1993  Fred Fish  (fnf@cygnus.com)

	* gdb.t00/default.exp:  Change expected output for default "source"
	command, to match new gdb behavior which requires a filename to
	source.

Tue Mar  9 11:00:56 1993  Fred Fish  (fnf@cygnus.com)

	* gdb.t07/watchpoint.exp (test_simple_watchpoint):  Set up
	expected fail for i486-*-* that misses the marker2 function.
	* gdb.t10/crossload.exp (bfddefault):  Allow successful
	recognition of a format to pass even if no symbols are found.
	Explicitly catch failures where the format is not recognized
	or is ambiguous, and add the reason to the fail message.
	* gdb.t10/crossload.exp (bfdexplicit):  Catch failure where
	the cause is and invalid target and add reason to failure message.
	* gdb.t10/crossload.exp:  Fix bfd target names for elf32-m68k,
	elf32-i386, elf32-sparc, and elf32-i860.
	* gdb.t12/scope.exp (test_at_main, test_at_foo, test_at_bar):
	Set up expected failure for 'filename'::variable scope resolution,
	which is now apparently broken on all targets.
	* gdb.t20/classes.exp, gdb.t20/inherit.exp, gdb.t20/misc.exp,
	gdb.t21/cplusfuncs.exp, gdb.t22/virtfunc.exp,
	gdb.t23/templates.exp:   Change failure for missing binfile into
	just a warning.
	gdb.t21/demangle.exp:  Change all cfront references to 'arm'
	references.

Mon Mar  8 19:20:28 1993  Fred Fish  (fnf@cygnus.com)

	* gdb.t00/default.exp:  Add expected output for default "source"
	command, to match new gdb behavior.
	* gdb.t09/corefile.exp:  Use GDBFLAGS when spawning GDB.

Sun Mar  7 15:14:09 1993  Rob Savoye  (rob@cygnus.com)

	* config/*-gdb.exp: returns an error, rather than exiting on
	internal errors.

Tue Mar  2 18:09:32 1993  Fred Fish  (fnf@cygnus.com)

	* gdb.t03/gdbme.c:  Add pointer to struct variable.
	* gdb.t03/ptype.exp:  Test equivalence of '.' and '->' for
	referencing struct members.

Thu Feb 25 10:39:06 1993  Ian Lance Taylor  (ian@cygnus.com)

	* configure.in (mips-idt-ecoff): New target.
	* config/mips-gdb.exp: New file for remote board using MIPS remote
	debugging protocol.

	* Redid configuration scheme.  Removed gdb.t*/configure.in.
	Renamed gdb.t*/in-gdbme* to gdb.t*/gdbme*.  Changed to use CC, CXX
	instead of CC_FOR_TARGET, CXX_FOR_TARGET.  Added mostlyclean and
	distclean targets.  Built executables via .o files.  Adjusted
	tests to account for source files in $(srcdir) rather than
	$(objdir).
	* lib/gdb.exp (runto): Don't expect () after the function name,
	because it may have arguments.

Wed Feb 24 08:05:38 1993  Ian Lance Taylor  (ian@cygnus.com)

	* gdb.t00/default.exp, gdb.t01/run.exp, gdb.t02/whatis.exp,
	gdb.t03/ptype.exp, gdb.t06/break.exp, gdb.t12/scope.exp: Added
	expected failures for mips-idt-* and mips-sgi-*.
	* gdb.t00/default.exp (attach): Kill process if requested.
	* gdb.t00/help.exp (help target core, help target): Accept a gdb
	that does not read core files.
	* gdb.t01/run.exp: Removed checks for exit status code.
	* gdb.t03/in-gdbme.c: Make explicit call to malloc to ensure that
	it is linked in.
	* gdb.t03/ptype.exp: Increase timeout when calling malloc.
	* gdb.t04/setvar.exp, gdb.t05/expr.exp: Use runto function where
	appropriate, rather than doing it by hand.
	* gdb.t07/watchpoint.exp: If mips-idt-*, reload file after first
	execution.
	* gdb.t10/crossload.exp: Kill existing program if needed.
	* gdb.t15/funcargs.exp: Use delete_breakpoints function where
	appropriate, rather than doing it by hand.  Always increase
	timeout for this test, not just for VxWorks.

Wed Feb 24 08:03:38 1993  Fred Fish  (fnf@cygnus.com)

	* gdb.t31/chillvars.exp (test_structs):  New proc to test printing
	of Chill STRUCT types and STRUCT values.
	* gdb.t31/chillvars.exp (test_strings):  Expect "CHAR" now, rather
	than "char".
	* gdb.t31/in-gdbme.ch (simple_struct, nested_struct, struct1,
	struct2):  New struct definitions and initializations to test
	simple Chill STRUCT types.

Tue Feb 23 11:55:06 1993  Fred Fish  (fnf@cygnus.com)

	* gdb.t00/teststrategy.exp:  Track reversion in gdb to not print
	the null byte at the end of strings.
	* gdb.t00/default.exp:  Make show version insensitive to copyright
	date.
	* gdb.t16/in-gdbme.c (ctable1, ctable2):  Make explicitly unsigned
	to avoid dependencies on target char signedness.
	* gdb.t16/printcmds.exp:  Update expected results for explicitly
	unsigned char.
	* gdb.t16/printcmds.exp:  Remove setup_xfails for i960 that should
	now work.
	* gdb.t21/demangle.exp:  Add many more patterns for template
	demangling, most of them being expected failures.
	* gdb.t21/demangle.exp (proc demangle):  Quote the demangled
	string we are matching for, to match on the whole string.
	* gdb.t21/demangle.exp:  Add many new test strings to demangle,
	and fix a whole bunch that had incorrect expected output but were
	passing anyway because of the bug in "proc demangle".
	* gdb.t31/chillvars.exp:  Remove setup_xfail for printing string
	type.
	* gdb.t31/in-gdbme.ch:  Uncomment string4, now compiles.

Mon Feb 22 07:54:03 1993  Mike Werner  (mtw@poseidon.cygnus.com)

	* gdb/testsuite: made modifications to testcases, etc., to allow
	them to work properly  given the reorganization of deja-gnu and the
	relocation of the testcases from deja-gnu to a "tool" subdirectory.

Sun Feb 21 10:55:55 1993  Mike Werner  (mtw@poseidon.cygnus.com)

	* gdb/testsuite: Initial creation of gdb/testsuite.
	Migrated dejagnu testcases and support files for testing nm to
	gdb/testsuite from deja-gnu.  These files were moved "as is"
	with no modifications.  This migration is part of a major overhaul
	of dejagnu.  The modifications to these testcases, etc., which
	will allow them to work with the new version of dejagnu will be
	made in a future update.

 For additional changes see gdb.mi/ChangeLog-1999-2003.

;; Local Variables:
;; mode: change-log
;; left-margin: 8
;; fill-column: 74
;; version-control: never
;; End:

    Copyright 1993-2005, 2012 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.
