* 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.
* 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.
* 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.
* 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.
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().