* 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.
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.
* 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.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&".
significant in *un*mangled method names. Use strcmp_iw to compare
them, not STREQ. (Fix from Daniel Berlin.)
* gdb/testsuite/gdb.c++/userdef.exp: Check that GDB tolerates whitespace in
unmangled operator names.
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.
Fix PR gdb/16.
* 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().