URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
Compare Revisions
- This comparison shows the changes necessary to convert path
/openrisc/trunk/gnu-old/gdb-6.8/gdb/testsuite/gdb.cp
- from Rev 816 to Rev 827
- ↔ Reverse comparison
Rev 816 → Rev 827
/Makefile.in
File deleted
/misc.cc
File deleted
/mb-inline1.cc
File deleted
/call-c.cc
File deleted
/hang1.C
File deleted
hang1.C
Property changes :
Deleted: svn:eol-style
## -1 +0,0 ##
-native
\ No newline at end of property
Deleted: svn:keywords
## -1 +0,0 ##
-Id
\ No newline at end of property
Index: cplusfuncs.exp
===================================================================
--- cplusfuncs.exp (revision 816)
+++ cplusfuncs.exp (nonexistent)
@@ -1,562 +0,0 @@
-# Copyright 1992, 1997, 1999, 2001, 2002, 2003, 2004, 2007, 2008
-# Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see .
-
-# This file was written by Fred Fish. (fnf@cygnus.com)
-# Adapted for g++ 3.0 ABI by Michael Chastain. (chastain@redhat.com)
-
-if $tracelevel then {
- strace $tracelevel
-}
-
-if { [skip_cplus_tests] } { continue }
-
-set testfile "cplusfuncs"
-set srcfile ${testfile}.cc
-set binfile ${objdir}/${subdir}/${testfile}
-
-if { [get_compiler_info $binfile "c++"] } {
- return -1
-}
-
-if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } {
- untested cplusfuncs.exp
- return -1
-}
-
-#
-# g++ changed its ABI between 2.95 and 3.0. gdb has two demanglers
-# for the two different styles. The two demanglers have some subtle
-# discrepancies in their output.
-#
-# old demangler new demangler
-# --- --------- --- ---------
-# "operator, " "operator,"
-# "char *" "char*"
-# "int *" "int*"
-# "long *" "long*"
-# "void *" "void*"
-# "foo &" "foo&"
-# "unsigned int" "unsigned"
-# "void" ""
-#
-# I probe for the forms in use.
-# The defaults are for the v3 demangler (as of 2001-02-13).
-#
-
-set dm_operator_comma ","
-set dm_type_char_star "char*"
-set dm_type_char_star_quoted "char\\*"
-set dm_type_foo_ref "foo&"
-set dm_type_int_star "int*"
-set dm_type_long_star "long*"
-set dm_type_unsigned_int "unsigned"
-set dm_type_void ""
-set dm_type_void_star "void*"
-
-proc probe_demangler { } {
- global gdb_prompt
- global dm_operator_comma
- global dm_type_char_star
- global dm_type_char_star_quoted
- global dm_type_foo_ref
- global dm_type_int_star
- global dm_type_long_star
- global dm_type_unsigned_int
- global dm_type_void
- global dm_type_void_star
-
- send_gdb "print &'foo::operator,(foo&)'\n"
- gdb_expect {
- -re ".*foo::operator, \\(.*foo.*&.*\\).*\r\n$gdb_prompt $" {
- # v2 demangler
- set dm_operator_comma ", "
- pass "detect dm_operator_comma"
- }
- -re ".*foo::operator,\\(.*foo.*&.*\\).*\r\n$gdb_prompt $" {
- # v3 demangler
- pass "detect dm_operator_comma"
- }
- -re ".*$gdb_prompt $" {
- fail "detect dm_operator_comma"
- }
- timeout {
- fail "detect dm_operator_comma"
- }
- }
-
- send_gdb "print &'dm_type_char_star'\n"
- gdb_expect {
- -re ".*dm_type_char_star\\(char \\*\\).*\r\n$gdb_prompt $" {
- # v2 demangler
- set dm_type_char_star "char *"
- set dm_type_char_star_quoted "char \\*"
- pass "detect dm_type_char_star"
- }
- -re ".*dm_type_char_star\\(char\\*\\).*\r\n$gdb_prompt $" {
- # v3 demangler
- pass "detect dm_type_char_star"
- }
- -re ".*$gdb_prompt $" {
- fail "detect dm_type_char_star"
- }
- timeout {
- fail "detect dm_type_char_star (timeout)"
- }
- }
-
- send_gdb "print &'dm_type_foo_ref'\n"
- gdb_expect {
- -re ".*dm_type_foo_ref\\(foo &\\).*\r\n$gdb_prompt $" {
- # v2 demangler
- set dm_type_foo_ref "foo &"
- pass "detect dm_type_foo_ref"
- }
- -re ".*dm_type_foo_ref\\(foo&\\).*\r\n$gdb_prompt $" {
- # v3 demangler
- pass "detect dm_type_foo_ref"
- }
- -re ".*$gdb_prompt $" {
- fail "detect dm_type_foo_ref"
- }
- timeout {
- fail "detect dm_type_foo_ref (timeout)"
- }
- }
-
- send_gdb "print &'dm_type_int_star'\n"
- gdb_expect {
- -re ".*dm_type_int_star\\(int \\*\\).*\r\n$gdb_prompt $" {
- # v2 demangler
- set dm_type_int_star "int *"
- pass "detect dm_type_int_star"
- }
- -re ".*dm_type_int_star\\(int\\*\\).*\r\n$gdb_prompt $" {
- # v3 demangler
- pass "detect dm_type_int_star"
- }
- -re ".*$gdb_prompt $" {
- fail "detect dm_type_int_star"
- }
- timeout {
- fail "detect dm_type_int_star (timeout)"
- }
- }
-
- send_gdb "print &'dm_type_long_star'\n"
- gdb_expect {
- -re ".*dm_type_long_star\\(long \\*\\).*\r\n$gdb_prompt $" {
- # v2 demangler
- set dm_type_long_star "long *"
- pass "detect dm_type_long_star"
- }
- -re ".*dm_type_long_star\\(long\\*\\).*\r\n$gdb_prompt $" {
- # v3 demangler
- pass "detect dm_type_long_star"
- }
- -re ".*$gdb_prompt $" {
- fail "detect dm_type_long_star"
- }
- timeout {
- fail "detect dm_type_long_star (timeout)"
- }
- }
-
- send_gdb "print &'dm_type_unsigned_int'\n"
- gdb_expect {
- -re ".*dm_type_unsigned_int\\(unsigned int\\).*\r\n$gdb_prompt $" {
- # v2 demangler
- set dm_type_unsigned_int "unsigned int"
- pass "detect dm_type_unsigned_int"
- }
- -re ".*dm_type_unsigned_int\\(unsigned\\).*\r\n$gdb_prompt $" {
- # v3 demangler
- pass "detect dm_type_unsigned_int"
- }
- -re ".*$gdb_prompt $" {
- fail "detect dm_type_unsigned_int"
- }
- timeout {
- fail "detect dm_unsigned int (timeout)"
- }
- }
-
- send_gdb "print &'dm_type_void'\n"
- gdb_expect {
- -re ".*dm_type_void\\(void\\).*\r\n$gdb_prompt $" {
- # v2 demangler
- set dm_type_void "void"
- pass "detect dm_type_void"
- }
- -re ".*dm_type_void\\(\\).*\r\n$gdb_prompt $" {
- # v3 demangler
- pass "detect dm_type_void"
- }
- -re ".*$gdb_prompt $" {
- fail "detect dm_type_void"
- }
- timeout {
- fail "detect dm_type_void (timeout)"
- }
- }
-
- send_gdb "print &'dm_type_void_star'\n"
- gdb_expect {
- -re ".*dm_type_void_star\\(void \\*\\).*\r\n$gdb_prompt $" {
- # v2 demangler
- set dm_type_void_star "void *"
- pass "detect dm_type_void_star"
- }
- -re ".*dm_type_void_star\\(void\\*\\).*\r\n$gdb_prompt $" {
- # v3 demangler
- pass "detect dm_type_void_star"
- }
- -re ".*$gdb_prompt $" {
- fail "detect dm_type_void_star"
- }
- timeout {
- fail "detect dm_type_void_star (timeout)"
- }
- }
-}
-
-#
-# Lookup a specific C++ function and print the demangled type.
-# This form accepts the demangled type as a regexp.
-#
-
-proc info_func_regexp { name demangled } {
- global gdb_prompt
-
- send_gdb "info function $name\n"
- gdb_expect {
- -re ".*File .*:\r\n(class |)$demangled\r\n.*$gdb_prompt $" {
- pass "info function for \"$name\""
- }
- -re ".*$gdb_prompt $" {
- fail "info function for \"$name\""
- }
- timeout {
- fail "info function for \"$name\" (timeout)"
- }
- }
-}
-
-#
-# Lookup a specific C++ function and print the demangled type.
-# This form accepts the demangled type as a literal string.
-#
-
-proc info_func { name demangled } {
- info_func_regexp "$name" [string_to_regexp "$demangled"]
-}
-
-#
-# Print the address of a function.
-# This checks that I can lookup a fully qualified C++ function.
-# This also checks the argument types on the return string.
-
-# Note: carlton/2003-01-16: If you modify this, make a corresponding
-# modification to print_addr_2_kfail.
-
-proc print_addr_2 { name good } {
- global gdb_prompt
- global hex
-
- set good_pattern [string_to_regexp $good]
-
- send_gdb "print &'$name'\n"
- gdb_expect {
- -re ".* = .* $hex <$good_pattern>\r\n$gdb_prompt $" {
- pass "print &'$name'"
- }
- -re ".*$gdb_prompt $" {
- fail "print &'$name'"
- }
- timeout {
- fail "print &'$name' (timeout)"
- }
- }
-}
-
-# NOTE: carlton/2003-01-16: hairyfunc5-6 fail on GCC 3.x (for at least
-# x=1 and x=2.1). So I'm modifying print_addr_2 to accept a failure
-# condition. FIXME: It would be nice if the failure condition were
-# conditional on the compiler version, but I'm not sufficiently
-# motivated. I did hardwire in the versions of char * and int *,
-# which will give some compiler-specificity to the failure.
-
-proc print_addr_2_kfail { name good bad bugid } {
- global gdb_prompt
- global hex
-
- set good_pattern [string_to_regexp $good]
- set bad_pattern [string_to_regexp $bad]
-
- send_gdb "print &'$name'\n"
- gdb_expect {
- -re ".* = .* $hex <$good_pattern>\r\n$gdb_prompt $" {
- pass "print &'$name'"
- }
- -re ".* = .* $hex <$bad_pattern>\r\n$gdb_prompt $" {
- kfail $bugid "print &'$name'"
- }
- -re ".*$gdb_prompt $" {
- fail "print &'$name'"
- }
- timeout {
- fail "print &'$name' (timeout)"
- }
- }
-}
-
-#
-# Simple interfaces to print_addr_2.
-#
-
-proc print_addr { name } {
- print_addr_2 "$name" "$name"
-}
-
-#
-# Test name demangling for operators.
-#
-# The '(' at the end of each regex input pattern is so that we match only
-# the one we are looking for. I.E. "operator&" would match both
-# "operator&(foo &)" and "operator&&(foo &)".
-#
-# gdb-gnats bug gdb/18:
-# "gdb can't parse "info func operator*" or "info func operator\*".
-# The star in "operator*" is interpreted as a regexp, but the "\*"
-# in "operator\*" is not a legal operator.
-#
-
-proc test_lookup_operator_functions {} {
- global dm_operator_comma
- global dm_type_char_star
- global dm_type_char_star_quoted
- global dm_type_foo_ref
- global dm_type_void
- global dm_type_void_star
-
- # operator* requires quoting so that GDB does not treat it as a regexp.
- info_func "operator\\*(" "void foo::operator*($dm_type_foo_ref);"
- info_func "operator%(" "void foo::operator%($dm_type_foo_ref);"
- info_func "operator-(" "void foo::operator-($dm_type_foo_ref);"
- info_func "operator>>(" "void foo::operator>>($dm_type_foo_ref);"
- info_func "operator!=(" "void foo::operator!=($dm_type_foo_ref);"
- info_func "operator>(" "void foo::operator>($dm_type_foo_ref);"
- info_func "operator>=(" "void foo::operator>=($dm_type_foo_ref);"
- info_func "operator|(" "void foo::operator|($dm_type_foo_ref);"
- info_func "operator&&(" "void foo::operator&&($dm_type_foo_ref);"
- info_func "operator!(" "void foo::operator!($dm_type_void);"
- info_func "operator++(" "void foo::operator++(int);"
- info_func "operator=(" "void foo::operator=($dm_type_foo_ref);"
- info_func "operator+=(" "void foo::operator+=($dm_type_foo_ref);"
- # operator*= requires quoting so that GDB does not treat it as a regexp.
- info_func "operator\\*=(" "void foo::operator*=($dm_type_foo_ref);"
- info_func "operator%=(" "void foo::operator%=($dm_type_foo_ref);"
- info_func "operator>>=(" "void foo::operator>>=($dm_type_foo_ref);"
- info_func "operator|=(" "void foo::operator|=($dm_type_foo_ref);"
- info_func "operator$dm_operator_comma\(" \
- "void foo::operator$dm_operator_comma\($dm_type_foo_ref);"
- info_func "operator/(" "void foo::operator/($dm_type_foo_ref);"
- info_func "operator+(" "void foo::operator+($dm_type_foo_ref);"
- info_func "operator<<(" "void foo::operator<<($dm_type_foo_ref);"
- info_func "operator==(" "void foo::operator==($dm_type_foo_ref);"
- info_func "operator<(" "void foo::operator<($dm_type_foo_ref);"
- info_func "operator<=(" "void foo::operator<=($dm_type_foo_ref);"
- info_func "operator&(" "void foo::operator&($dm_type_foo_ref);"
- info_func "operator^(" "void foo::operator^($dm_type_foo_ref);"
- info_func "operator||(" "void foo::operator||($dm_type_foo_ref);"
- info_func "operator~(" "void foo::operator~($dm_type_void);"
- info_func "operator--(" "void foo::operator--(int);"
- info_func "operator->(" "foo *foo::operator->($dm_type_void);"
- info_func "operator-=(" "void foo::operator-=($dm_type_foo_ref);"
- info_func "operator/=(" "void foo::operator/=($dm_type_foo_ref);"
- info_func "operator<<=(" "void foo::operator<<=($dm_type_foo_ref);"
- info_func "operator&=(" "void foo::operator&=($dm_type_foo_ref);"
- info_func "operator^=(" "void foo::operator^=($dm_type_foo_ref);"
- # operator->* requires quoting so that GDB does not treat it as a regexp.
- info_func "operator->\\*(" "void foo::operator->*($dm_type_foo_ref);"
-
- # operator[] needs double backslashes, so that a single backslash
- # will be sent to GDB, preventing the square brackets from being
- # evaluated as a regular expression.
- info_func "operator\\\[\\\](" "void foo::operator\[\]($dm_type_foo_ref);"
-
- # These are gnarly because they might end with 'static'.
- set dm_type_void_star_regexp [string_to_regexp $dm_type_void_star]
- info_func_regexp "operator new(" "void \\*foo::operator new\\(.*\\)(| static);"
- info_func_regexp "operator delete(" "void foo::operator delete\\($dm_type_void_star_regexp\\)(| static);"
-
- info_func "operator int(" "int foo::operator int($dm_type_void);"
- info_func "operator()(" "void foo::operator()($dm_type_foo_ref);"
- info_func "operator $dm_type_char_star_quoted\(" \
- "char *foo::operator $dm_type_char_star\($dm_type_void);"
-
-}
-
-
-proc test_paddr_operator_functions {} {
- global hex
- global hp_aCC_compiler
- global dm_operator_comma
- global dm_type_char_star
- global dm_type_foo_ref
- global dm_type_long_star
- global dm_type_unsigned_int
- global dm_type_void
- global dm_type_void_star
-
- print_addr "foo::operator*($dm_type_foo_ref)"
- print_addr "foo::operator%($dm_type_foo_ref)"
- print_addr "foo::operator-($dm_type_foo_ref)"
- print_addr "foo::operator>>($dm_type_foo_ref)"
- print_addr "foo::operator!=($dm_type_foo_ref)"
- print_addr "foo::operator>($dm_type_foo_ref)"
- print_addr "foo::operator>=($dm_type_foo_ref)"
- print_addr "foo::operator|($dm_type_foo_ref)"
- print_addr "foo::operator&&($dm_type_foo_ref)"
- print_addr "foo::operator!($dm_type_void)"
- print_addr "foo::operator++(int)"
- print_addr "foo::operator=($dm_type_foo_ref)"
- print_addr "foo::operator+=($dm_type_foo_ref)"
- print_addr "foo::operator*=($dm_type_foo_ref)"
- print_addr "foo::operator%=($dm_type_foo_ref)"
- print_addr "foo::operator>>=($dm_type_foo_ref)"
- print_addr "foo::operator|=($dm_type_foo_ref)"
- print_addr "foo::operator$dm_operator_comma\($dm_type_foo_ref)"
- print_addr "foo::operator/($dm_type_foo_ref)"
- print_addr "foo::operator+($dm_type_foo_ref)"
- print_addr "foo::operator<<($dm_type_foo_ref)"
- print_addr "foo::operator==($dm_type_foo_ref)"
- print_addr "foo::operator<($dm_type_foo_ref)"
- print_addr "foo::operator<=($dm_type_foo_ref)"
- print_addr "foo::operator&($dm_type_foo_ref)"
- print_addr "foo::operator^($dm_type_foo_ref)"
- print_addr "foo::operator||($dm_type_foo_ref)"
- print_addr "foo::operator~($dm_type_void)"
- print_addr "foo::operator--(int)"
- print_addr "foo::operator->($dm_type_void)"
- print_addr "foo::operator-=($dm_type_foo_ref)"
- print_addr "foo::operator/=($dm_type_foo_ref)"
- print_addr "foo::operator<<=($dm_type_foo_ref)"
- print_addr "foo::operator&=($dm_type_foo_ref)"
- print_addr "foo::operator^=($dm_type_foo_ref)"
- print_addr "foo::operator->*($dm_type_foo_ref)"
- print_addr "foo::operator\[\]($dm_type_foo_ref)"
- print_addr "foo::operator()($dm_type_foo_ref)"
-
- gdb_test "print &'foo::operator new'" \
- " = .* $hex "
- if { !$hp_aCC_compiler } {
- print_addr "foo::operator delete($dm_type_void_star)"
- } else {
- gdb_test "print &'foo::operator delete($dm_type_void_star) static'" \
- " = .*(0x\[0-9a-f\]+|) "
- }
-
- print_addr "foo::operator int($dm_type_void)"
- print_addr "foo::operator $dm_type_char_star\($dm_type_void)"
-}
-
-#
-# Test overloaded functions (1 arg).
-#
-
-proc test_paddr_overloaded_functions {} {
- global dm_type_unsigned_int
- global dm_type_void
-
- print_addr "overload1arg($dm_type_void)"
- print_addr "overload1arg(char)"
- print_addr "overload1arg(signed char)"
- print_addr "overload1arg(unsigned char)"
- print_addr "overload1arg(short)"
- print_addr "overload1arg(unsigned short)"
- print_addr "overload1arg(int)"
- print_addr "overload1arg($dm_type_unsigned_int)"
- print_addr "overload1arg(long)"
- print_addr "overload1arg(unsigned long)"
- print_addr "overload1arg(float)"
- print_addr "overload1arg(double)"
-
- print_addr "overloadargs(int)"
- print_addr "overloadargs(int, int)"
- print_addr "overloadargs(int, int, int)"
- print_addr "overloadargs(int, int, int, int)"
- print_addr "overloadargs(int, int, int, int, int)"
- print_addr "overloadargs(int, int, int, int, int, int)"
- print_addr "overloadargs(int, int, int, int, int, int, int)"
- print_addr "overloadargs(int, int, int, int, int, int, int, int)"
- print_addr "overloadargs(int, int, int, int, int, int, int, int, int)"
- print_addr "overloadargs(int, int, int, int, int, int, int, int, int, int)"
- print_addr "overloadargs(int, int, int, int, int, int, int, int, int, int, int)"
-}
-
-proc test_paddr_hairy_functions {} {
- global gdb_prompt
- global hex
- global dm_type_char_star
- global dm_type_int_star
- global dm_type_long_star
-
- print_addr_2 "hairyfunc1" "hairyfunc1(int)"
- print_addr_2 "hairyfunc2" "hairyfunc2(int (*)($dm_type_char_star))"
- print_addr_2 "hairyfunc3" "hairyfunc3(int (*)(short (*)($dm_type_long_star)))"
- print_addr_2 "hairyfunc4" "hairyfunc4(int (*)(short (*)($dm_type_char_star)))"
-
- # gdb-gnats bug gdb/19:
- # "gdb v3 demangler fails on hairyfunc5 hairyfunc6 hairyfunc7"
- print_addr_2_kfail "hairyfunc5" "hairyfunc5(int (*(*)($dm_type_char_star))(long))" "hairyfunc5(int (*)(long) (*)(char*))" "gdb/19"
- print_addr_2_kfail "hairyfunc6" "hairyfunc6(int (*(*)($dm_type_int_star))(long))" "hairyfunc6(int (*)(long) (*)(int*))" "gdb/19"
- print_addr_2_kfail "hairyfunc7" "hairyfunc7(int (*(*)(int (*)($dm_type_char_star)))(long))" "hairyfunc7(int (*)(long) (*)(int (*)(char*)))" "gdb/19"
-}
-
-proc do_tests {} {
- global prms_id
- global bug_id
- global subdir
- global objdir
- global srcdir
- global binfile
- global gdb_prompt
-
- set prms_id 0
- set bug_id 0
-
- # Start with a fresh gdb.
-
- gdb_exit
- gdb_start
- gdb_reinitialize_dir $srcdir/$subdir
- gdb_load $binfile
-
- send_gdb "set language c++\n"
- gdb_expect -re "$gdb_prompt $"
- send_gdb "set width 0\n"
- gdb_expect -re "$gdb_prompt $"
-
- runto_main
-
- probe_demangler
- test_paddr_overloaded_functions
- test_paddr_operator_functions
- test_paddr_hairy_functions
- test_lookup_operator_functions
-}
-
-do_tests
Index: userdef.cc
===================================================================
--- userdef.cc (revision 816)
+++ userdef.cc (nonexistent)
@@ -1,404 +0,0 @@
-/* This test script is part of GDB, the GNU debugger.
-
- Copyright 1999, 2002, 2003, 2004, 2005, 2006, 2007, 2008
- Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see .
- */
-
-#include
-
-using namespace std;
-
-void marker1()
-{
- return;
-}
-
-class A1 {
- int x;
- int y;
-
-friend ostream& operator<<(ostream& outs, A1 one);
-
-public:
-
- A1(int a, int b)
- {
- x=a;
- y=b;
- }
-
-A1 operator+=(int value);
-A1 operator+(const A1&);
-A1 operator-(const A1&);
-A1 operator%(const A1&);
-int operator==(const A1&);
-int operator!=(const A1&);
-int operator&&(const A1&);
-int operator||(const A1&);
-A1 operator<<(int);
-A1 operator>>(int);
-A1 operator|(const A1&);
-A1 operator^(const A1&);
-A1 operator&(const A1&);
-int operator<(const A1&);
-int operator<=(const A1&);
-int operator>=(const A1&);
-int operator>(const A1&);
-A1 operator*(const A1&);
-A1 operator/(const A1&);
-A1 operator=(const A1&);
-
-A1 operator~();
-A1 operator+();
-A1 operator-();
-int operator!();
-A1 operator++();
-A1 operator++(int);
-A1 operator--();
-A1 operator--(int);
-
-};
-
-
-A1 A1::operator+(const A1& second)
-{
- A1 sum(0,0);
- sum.x = x + second.x;
- sum.y = y + second.y;
-
- return (sum);
-}
-
-A1 A1::operator*(const A1& second)
-{
- A1 product(0,0);
- product.x = this->x * second.x;
- product.y = this->y * second.y;
-
- return product;
-}
-
-A1 A1::operator-(const A1& second)
-{
- A1 diff(0,0);
- diff.x = x - second.x;
- diff.y = y - second.y;
-
- return diff;
-}
-
-A1 A1::operator/(const A1& second)
-{
- A1 div(0,0);
- div.x = x / second.x;
- div.y = y / second.y;
-
- return div;
-}
-
-A1 A1::operator%(const A1& second)
-{
- A1 rem(0,0);
- rem.x = x % second.x;
- rem.y = y % second.y;
-
- return rem;
-}
-
-int A1::operator==(const A1& second)
-{
- int a = (x == second.x);
- int b = (y == second.y);
-
- return (a && b);
-}
-
-int A1::operator!=(const A1& second)
-{
- int a = (x != second.x);
- int b = (y != second.y);
-
- return (a || b);
-}
-
-int A1::operator&&(const A1& second)
-{
- return ( x && second.x);
-}
-
-int A1::operator||(const A1& second)
-{
- return ( x || second.x);
-}
-
-A1 A1::operator<<(int value)
-{
- A1 lshft(0,0);
- lshft.x = x << value;
- lshft.y = y << value;
-
- return lshft;
-}
-
-A1 A1::operator>>(int value)
-{
- A1 rshft(0,0);
- rshft.x = x >> value;
- rshft.y = y >> value;
-
- return rshft;
-}
-
-A1 A1::operator|(const A1& second)
-{
- A1 abitor(0,0);
- abitor.x = x | second.x;
- abitor.y = y | second.y;
-
- return abitor;
-}
-
-A1 A1::operator^(const A1& second)
-{
- A1 axor(0,0);
- axor.x = x ^ second.x;
- axor.y = y ^ second.y;
-
- return axor;
-}
-
-A1 A1::operator&(const A1& second)
-{
- A1 abitand(0,0);
- abitand.x = x & second.x;
- abitand.y = y & second.y;
-
- return abitand;
-}
-
-int A1::operator<(const A1& second)
-{
- A1 b(0,0);
- b.x = 3;
- return (x < second.x);
-}
-
-int A1::operator<=(const A1& second)
-{
- return (x <= second.x);
-}
-
-int A1::operator>=(const A1& second)
-{
- return (x >= second.x);
-}
-
-int A1::operator>(const A1& second)
-{
- return (x > second.x);
-}
-
-int A1::operator!(void)
-{
- return (!x);
-}
-
-A1 A1::operator-(void)
-{
- A1 neg(0,0);
- neg.x = -x;
- neg.y = -y;
-
- return (neg);
-}
-
-A1 A1::operator+(void)
-{
- A1 pos(0,0);
- pos.x = +x;
- pos.y = +y;
-
- return (pos);
-}
-
-A1 A1::operator~(void)
-{
- A1 acompl(0,0);
- acompl.x = ~x;
- acompl.y = ~y;
-
- return (acompl);
-}
-
-A1 A1::operator++() // pre increment
-{
- x = x +1;
-
- return (*this);
-}
-
-A1 A1::operator++(int) // post increment
-{
- y = y +1;
-
- return (*this);
-}
-
-A1 A1::operator--() // pre decrement
-{
- x = x -1;
-
- return (*this);
-}
-
-A1 A1::operator--(int) // post decrement
-{
- y = y -1;
-
- return (*this);
-}
-
-
-A1 A1::operator=(const A1& second)
-{
-
- x = second.x;
- y = second.y;
-
- return (*this);
-}
-
-A1 A1::operator+=(int value)
-{
-
- x += value;
- y += value;
-
- return (*this);
-}
-
-ostream& operator<<(ostream& outs, A1 one)
-{
- return (outs << endl << "x = " << one.x << endl << "y = " << one.y << endl << "-------" << endl);
-}
-
-class A2 {
- public:
-A2 operator+();
-};
-
-A2 A2::operator+()
-{
- return A2 ();
-}
-
-class Member
-{
-public:
- int z;
-};
-
-class Container
-{
-public:
- Member m;
-
- Member& operator* ();
-};
-
-Member& Container::operator* ()
-{
- return this->m;
-}
-
-int main (void)
-{
- A1 one(2,3);
- A1 two(4,5);
- A1 three(0,0);
- Container c;
- int val;
-
- marker1(); // marker1-returns-here
- cout << one; // marker1-returns-here
- cout << two;
- three = one + two;
- cout << "+ " << three;
- three = one - two;
- cout << "- " << three;
- three = one * two;
- cout <<"* " << three;
- three = one / two;
- cout << "/ " << three;
- three = one % two;
- cout << "% " << three;
- three = one | two;
- cout << "| " <= two;
- cout << ">= " << val << endl << "-----"< two;
- cout << "> " << val << endl << "-----"<> 2;
- cout << "rsh " << three;
-
- three = one;
- cout << " = "<< three;
- three += 5;
- cout << " += "<< three;
-
- val = (!one);
- cout << "! " << val << endl << "-----"<
hang3.C
Property changes :
Deleted: svn:eol-style
## -1 +0,0 ##
-native
\ No newline at end of property
Deleted: svn:keywords
## -1 +0,0 ##
-Id
\ No newline at end of property
Index: breakpoint.cc
===================================================================
--- breakpoint.cc (revision 816)
+++ breakpoint.cc (nonexistent)
@@ -1,39 +0,0 @@
-/* Code to go along with tests in breakpoint.exp.
-
- Copyright 2004, 2007, 2008 Free Software Foundation, Inc.
-
- This file is part of GDB.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see . */
-
-class C1 {
-public:
- class Nested {
- public:
- int
- foo ()
- {
- return 1;
- }
- };
-};
-
-int main ()
-{
- C1::Nested c1;
-
- c1.foo();
-
- return 0;
-}
Index: cttiadd2.cc
===================================================================
--- cttiadd2.cc (revision 816)
+++ cttiadd2.cc (nonexistent)
@@ -1,40 +0,0 @@
-/* This testcase is part of GDB, the GNU debugger.
-
- Copyright 1998, 1999, 2004, 2007, 2008 Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see .
- */
-
-template T add2(T v1, T v2)
-{
- T v3;
- v3 = v1;
- v3 += v2;
- return v3;
-}
-
-void subr2()
-{
- unsigned char c;
- int i;
- float f;
-
- c = 'b';
- i = 3;
- f = 6.5;
-
- c = add2(c, c);
- i = add2(i, i);
- f = add2(f, f);
-}
Index: local.exp
===================================================================
--- local.exp (revision 816)
+++ local.exp (nonexistent)
@@ -1,308 +0,0 @@
-# Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2007, 2008
-# Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see .
-
-# tests for local variables
-# Written by Satish Pai 1997-07-08
-# Cleaned by Michael Chastain 2002-04-08
-
-
-# This file is part of the gdb testsuite
-
-set ws "\[\r\n\t \]+"
-set nl "\[\r\n\]+"
-
-if $tracelevel then {
- strace $tracelevel
- }
-
-#
-# test running programs
-#
-set prms_id 0
-set bug_id 0
-
-if { [skip_cplus_tests] } { continue }
-
-set testfile "local"
-set srcfile ${testfile}.cc
-set binfile ${objdir}/${subdir}/${testfile}
-
-if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } {
- untested local.exp
- return -1
-}
-
-if [get_compiler_info $binfile "c++"] {
- return -1
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binfile}
-
-
-#
-# set it up at a breakpoint so we can play with the variable values
-#
-if ![runto_main] then {
- perror "couldn't run to breakpoint"
- continue
-}
-
-if ![runto 'marker1'] then {
- perror "couldn't run to marker1"
- continue
-}
-
-gdb_test "up" ".*foobar.*" "up from marker1"
-
-set sep "(\[.\]|___)\[0-9\]"
-
-# ptype on a local variable.
-#
-# This test has six arms. The first three arms accept normal output:
-# no synthetic methods; synthetic methods before user methods;
-# synthetic methods after user methods.
-#
-# The next two arms accept "foobar__Fi.0::Local" instead of "Local".
-# This is a bug. It happens in various places with various versions of
-# gcc and gdb and various debugging types.
-#
-# The last arm accepts the user methods in duplicate. This bug happens
-# with gcc 3.3.2 -gdwarf-2, and has been fixed in gcc HEAD 2004-01-22.
-#
-# -- chastain 2004-01-24
-
-set re_class "((struct|class) Local \{${ws}public:|struct Local \{)"
-set re_fields "int loc1;"
-set re_methods "char loc_foo\\(char\\);"
-set re_synth_gcc_23 "Local & operator=\\(Local const ?&\\);${ws}Local\\(Local const ?&\\);${ws}Local\\((void|)\\);"
-
-set XX_class "((struct|class) foobar__Fi.0::Local \{${ws}public:|struct foobar__Fi.0:Local \{)"
-set XX_synth_gcc_2 "Local & operator=\\(foobar__Fi.0::Local const ?&\\);${ws}Local\\(foobar__Fi.0::Local const ?&\\);${ws}Local\\((void|)\\);"
-set YY_methods "$re_methods${ws}$re_methods"
-
-set name "ptype l"
-gdb_test_multiple "ptype l" $name {
- -re "type = $re_class${ws}$re_fields${ws}$re_methods$nl\}$nl$gdb_prompt $" {
- # gdb 6.0, gcc 2.95.3, dwarf-2
- # gdb 6.0, gcc HEAD 2004-01-22, dwarf-2
- # gdb HEAD 2004-01-23, gcc HEAD 2004-01,22, dwarf-2
- pass "$name"
- }
- -re "type = $re_class${ws}$re_fields${ws}$re_synth_gcc_23${ws}$re_methods$nl\}$nl$gdb_prompt $" {
- # gdb 6.0, gcc 3.3.2, stabs+
- # gdb HEAD 2004-01-23, gcc 3.3.2, stabs+
- pass "$name"
- }
- -re "type = $re_class${ws}$re_fields${ws}$re_methods${ws}$re_synth_gcc_23${ws}$nl\}$nl$gdb_prompt $" {
- # gdb 6.0, gcc HEAD 2004-01-22, stabs+
- # gdb HEAD 2004-01-23, gcc HEAD 2004-01-22, stabs+
- pass "$name"
- }
- -re "type = $XX_class${ws}$re_fields${ws}$re_methods$nl\}$nl$gdb_prompt $" {
- # gdb HEAD 2004-01-23, gcc 2.95.3, dwarf-2
- kfail "gdb/1516" "$name"
- }
- -re "type = ($re_class|$XX_class)${ws}$re_fields${ws}($re_synth_gcc_23|$XX_synth_gcc_2)${ws}$re_methods$nl\}$nl$gdb_prompt $" {
- # gdb 6.0, gcc 2.95.3, stabs+
- # gdb HEAD 2004-01-23, gcc 2.95.3, stabs+
- kfail "gdb/1516" "$name"
- }
- -re "type = ($re_class|$XX_class)${ws}$re_fields${ws}$YY_methods$nl\}$nl$gdb_prompt $" {
- # gdb 6.0, gcc 3.3.2, dwarf-2
- # gdb HEAD 2004-01-23, gcc 3.2.2, dwarf-2
- kfail "gdb/483" "$name"
- }
-}
-
-# This is the same test with "ptype Local" (the type name)
-# instead of "ptype l" (the variable name).
-
-set name "ptype Local"
-gdb_test_multiple "ptype Local" $name {
- -re "type = $re_class${ws}$re_fields${ws}$re_methods$nl\}$nl$gdb_prompt $" {
- # gdb 6.0, gcc 2.95.3, dwarf-2
- # gdb 6.0, gcc HEAD 2004-01-22, dwarf-2
- # gdb HEAD 2004-01-23, gcc HEAD 2004-01-22, dwarf-2
- pass "$name"
- }
- -re "type = $re_class${ws}$re_fields${ws}$re_synth_gcc_23${ws}$re_methods$nl\}$nl$gdb_prompt $" {
- # gdb 6.0, gcc 3.3.2, stabs+
- # gdb HEAD 2004-01-23, gcc 3.3.2, stabs+
- pass "$name"
- }
- -re "type = $re_class${ws}$re_fields${ws}$re_methods${ws}$re_synth_gcc_23${ws}$nl\}$nl$gdb_prompt $" {
- # gdb 6.0, gcc HEAD 2004-01-22, stabs+
- # gdb HEAD 2004-01-23, gcc HEAD 2004-01-22, stabs+
- pass "$name"
- }
- -re "type = $XX_class${ws}$re_fields${ws}$re_methods$nl\}$nl$gdb_prompt $" {
- kfail "gdb/1516" "$name"
- }
- -re "type = ($re_class|$XX_class)${ws}$re_fields${ws}($re_synth_gcc_23|$XX_synth_gcc_2)${ws}$re_methods$nl\}$nl$gdb_prompt $" {
- # gdb 6.0, gcc 2.95.3, stabs+
- # gdb HEAD 2004-01-23, gcc 2.95.3, stabs+
- kfail "gdb/1516" "$name"
- }
- -re "type = ($re_class|$XX_class)${ws}$re_fields${ws}$YY_methods$nl\}$nl$gdb_prompt $" {
- # gdb 6.0, gcc 3.3.2, dwarf-2
- # gdb HEAD 2004-01-23, gcc 3.2.2, dwarf-2
- kfail "gdb/483" "$name"
- }
- -re "No symbol \"Local\" in current context.$nl$gdb_prompt $" {
- # gdb HEAD 2004-01-23, gcc 2.95.3, dwarf-2
- fail "$name"
- }
-}
-
-gdb_test "break marker2"
-gdb_test "continue" "Continuing\\..*Breakpoint \[0-9\]+, marker2.*" \
- "continuing to marker2"
-
-gdb_test "up" ".*main.*" "up from marker2"
-
-# Make sure that `Local' isn't in scope here; it's local to foobar.
-# setup_kfail "gdb/825"
-send_gdb "ptype Local\n"
-set eol "\[\t \]*\[\r\n\]+\[\t \]*"
-gdb_expect {
- -re "No symbol \"Local\" in current context.*${gdb_prompt} $" {
- pass "Local out of scope"
- }
- -re "ptype Local${eol}type = class Local {${eol} public:${eol} int loc1;${eol}.*${eol} char loc_foo\\(char\\);${eol}}${eol}${gdb_prompt} " {
- # GCC emits STABS debugging information in a way that doesn't
- # properly preserve the scoping of local classes. I think
- # we'd need to start using Sun's extensions to stabs to get
- # this right.
- kfail gdb/825 "Local out of scope"
- }
- -re "ptype Local${eol}type = class Local {${eol} public:${eol} int loc1;${eol} char loc_foo\\(char\\);${eol}.*${eol}}${eol}${gdb_prompt} " {
- # gcc 3.X abi-2 -gstabs+
- kfail gdb/825 "Local out of scope"
- }
- -re ".*${gdb_prompt} $" {
- fail "Local out of scope"
- }
- timeout {
- fail "Local out of scope (timeout)"
- }
-}
-
-
-# DTS CLLbs14316 and CLLbs17058
-# coulter - I added a clause for HP's aCC compiler. We print out the type
-# as xx instead of const unsigned char, but we still have an expected failure
-# because of two reasons:
-# There is a number at the end of InnerLocal4 which should not be there,
-# DTS CLLbs14316
-# The line number for the class
-# setup_xfail "hppa*-*-*" CLLbs14316
-
-# ---
-# Pattern 1:
-# PASS
-# dwarf-2
-# 2.95.3, 2.96-rh, 3.0.4, 3.1, gcc-3_1-branch, HEAD
-#
-# Pattern 2:
-# PASS
-# stabs+
-# 2.95.3, 2.96-rh, 3.0.4, 3.1, gcc-3_1-branch, HEAD
-#
-# Pattern 3:
-# Old hppa pattern.
-#
-# Pattern 4:
-# Old hppa pattern.
-#
-# chastain 2002-05-27
-
-# Pattern 5:
-# PASS
-# stabs+
-# HEAD
-#
-# chastain 2004-01-02
-
-send_gdb "ptype InnerLocal\n"
-gdb_expect {
- -re "type = class InnerLocal \{\[\r\n\t \]*public:\[\r\n\t \]*char ilc;\[\r\n\t \]*int \\* *ip;\[\r\n\t \]*(InnerLocal::|)NestedInnerLocal nest1;\[\r\n\t \]*int il_foo\\((unsigned char const|const unsigned char) *&\\);\[\r\n\t \]*\}.*$gdb_prompt $" { pass "ptype InnerLocal (pattern 1)" }
- -re "type = class InnerLocal \{\[\r\n\t \]*public:\[\r\n\t \]*char ilc;\[\r\n\t \]*int \\* *ip;\[\r\n\t \]*(InnerLocal::|)NestedInnerLocal nest1;\[\r\n\t \]*InnerLocal *& operator *=\\((main${sep}::|)InnerLocal const *&\\);\[\r\n\t \]*InnerLocal\\((main${sep}::|)InnerLocal const *&\\);\[\r\n\t \]*InnerLocal\\((void|)\\);\[\r\n\t \]*int il_foo\\(unsigned char const *&\\);\[\r\n\t \]*\}.*$gdb_prompt $" { pass "ptype InnerLocal (pattern 2)" }
- -re "type = class InnerLocal \{\r\n\[\t \]*public:\r\n\[\t \]*char ilc;\r\n\[\t \]*int \\*ip;\r\n\[\t \]*InnerLocal::NestedInnerLocal nest1;\r\n\r\n\[\t \]*.int il_foo\\(unsigned char const &\\);\r\n\[\t \]*\}\[\t \]*\\(Local at.*local\\.cc:36\\).*$gdb_prompt $" { pass "ptype InnerLocal (old HP aCC)" }
- -re "type = class InnerLocal \{\r\n\[\t \]*public:\r\n\[\t \]*char ilc;\r\n\[\t \]*int \\*ip;\r\n\[\t \]*class InnerLocal4::NestedInnerLocal nest1;\r\n\r\n\[\t \]*int il_foo\\(unsigned char const &\\);\r\n\[\t \]*\\(Local at.*local\.cc:\[0-9\]+\\)\r\n\}.*$gdb_prompt $" { pass "ptype InnerLocal (old HP aCC)" }
- -re "type = class InnerLocal \{\[\r\n\t \]*public:\[\r\n\t \]*char ilc;\[\r\n\t \]*int \\* *ip;\[\r\n\t \]*(InnerLocal::|)NestedInnerLocal nest1;\[\r\n\t \]* int il_foo\\(unsigned char const *&\\);\[\r\n\t \]*InnerLocal *& operator *=\\((main${sep}::|)InnerLocal const *&\\);\[\r\n\t \]*InnerLocal\\((main${sep}::|)InnerLocal const *&\\);\[\r\n\t \]*InnerLocal\\((void|)\\);\[\r\n\t \]*\}.*$gdb_prompt $" { pass "ptype InnerLocal (pattern 5)" }
- -re ".*$gdb_prompt $" { fail "ptype InnerLocal" }
- timeout { fail "(timeout) ptype InnerLocal" }
-}
-
-#---
-# Pattern 1:
-# PASS
-# dwarf-2
-# gcc 2.95.3, 2.96-rh, 3.0.4, gcc-3_1-branch, HEAD
-#
-# Pattern 2:
-# PASS
-# stabs+
-# gcc 2.95.3, 2.96-rh, 3.0.4, gcc-3_1-branch, HEAD
-#
-# chastain 2002-04-08
-
-# NOTE (2004-02-24, carlton): This test really is invalid -
-# 'NestedInnerLocal' shouldn't be visible, so only the third
-# expression should count as a pass. I'm leaving in the earlier
-# passes, however, given the current problematic state of our local
-# class support, but once we fix PR gdb/482, we should delete this
-# test.
-
-send_gdb "ptype NestedInnerLocal\n"
-gdb_expect {
- -re "type = class NestedInnerLocal \{\[\r\n\t \]*public:\[\r\n\t \]*int nil;\[\r\n\t \]*int nil_foo\\(int\\);\[\r\n\t \]*\}.*$gdb_prompt $" { pass "ptype NestedInnerLocal" }
- -re "type = class NestedInnerLocal \{\[\r\n\t \]*public:\[\r\n\t \]*int nil;\[\r\n\t \]*NestedInnerLocal *& *operator *= *\\((main${sep}::|)InnerLocal::NestedInnerLocal const *&\\);\[\r\n\t \]*NestedInnerLocal\\((main${sep}::|)InnerLocal::NestedInnerLocal const *&\\);\[\r\n\t \]*NestedInnerLocal\\((void|)\\);\[\r\n\t \]*int nil_foo\\(int\\);\[\r\n\t \]*\}.*$gdb_prompt $" { pass "ptype NestedInnerLocal" }
- -re "No symbol \"NestedInnerLocal\" in current context\.\r\n$gdb_prompt $" {
- pass "ptype NestedInnerLocal"
- }
- -re ".*$gdb_prompt $" { fail "ptype NestedInnerLocal" }
- timeout { fail "(timeout) ptype NestedInnerLocal" }
-}
-
-set re_class "((struct|class) InnerLocal::NestedInnerLocal \{${ws}public:|struct InnerLocal::NestedInnerLocal \{)"
-set re_fields "int nil;"
-set re_methods "int nil_foo\\(int\\);"
-set re_synth_gcc_23 "InnerLocal::NestedInnerLocal & operator=\\(InnerLocal::NestedInnerLocal const ?&\\);${ws}NestedInnerLocal\\(InnerLocal::NestedInnerLocal const ?&\\);${ws}NestedInnerLocal\\(\\);"
-
-set name "ptype InnerLocal::NestedInnerLocal"
-gdb_test_multiple "ptype InnerLocal::NestedInnerLocal" $name {
- -re "type = $re_class${ws}$re_fields${ws}$re_methods$nl\}$nl$gdb_prompt $" {
- # gcc -gdwarf-2 should produce this but does not yet
- pass $name
- }
- -re "type = $re_class${ws}$re_fields${ws}$re_synth_gcc_23${ws}$re_methods${ws}$nl\}$nl$gdb_prompt $" {
- # gcc 2.95.3 -gstabs+
- # gcc v3 -gstabs+, abi 1
- pass $name
- }
- -re "type = $re_class${ws}$re_fields${ws}$re_methods${ws}$re_synth_gcc_23${ws}$nl\}$nl$gdb_prompt $" {
- # gcc v3 -gstabs+, abi 2
- pass $name
- }
- -re "There is no field named NestedInnerLocal.*$gdb_prompt $" {
- # gcc v3 -gdwarf-2
- kfail "gdb/482" $name
- }
-}
Index: pr-1210.cc
===================================================================
--- pr-1210.cc (revision 816)
+++ pr-1210.cc (nonexistent)
@@ -1,19 +0,0 @@
-class A
-{
-};
-
-class B : virtual public A
-{
-};
-
-class C : public A
-{
- protected:
- B myB;
-};
-
-int main()
-{
- C *obj = new C();
- return 0;
-}
Index: ambiguous.exp
===================================================================
--- ambiguous.exp (revision 816)
+++ ambiguous.exp (nonexistent)
@@ -1,234 +0,0 @@
-# Copyright 1998, 1999, 2003, 2004, 2007, 2008 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see .
-
-# This file is part of the gdb testsuite
-
-# tests relating to ambiguous class members
-# Written by Satish Pai 1997-07-28
-
-# This file is part of the gdb testsuite
-
-if $tracelevel then {
- strace $tracelevel
- }
-
-#
-# test running programs
-#
-
-set prms_id 0
-set bug_id 0
-
-if { [skip_cplus_tests] } { continue }
-
-set testfile "ambiguous"
-set srcfile ${testfile}.cc
-set binfile ${objdir}/${subdir}/${testfile}
-
-if [get_compiler_info ${binfile} "c++"] {
- return -1;
-}
-
-if { [test_compiler_info gcc-*] } then { continue }
-
-if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } {
- untested ambiguous.exp
- return -1
-}
-
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binfile}
-
-
-#
-# set it up at a breakpoint so we can play with the variable values
-#
-if ![runto_main] then {
- perror "couldn't run to breakpoint"
- continue
-}
-
-send_gdb "break marker1\n" ; gdb_expect -re ".*$gdb_prompt $"
- send_gdb "cont\n"
- gdb_expect {
- -re "Break.* marker1 \\(\\) at .*:$decimal.*$gdb_prompt $" {
- send_gdb "up\n"
- gdb_expect {
- -re ".*$gdb_prompt $" { pass "up from marker1" }
- timeout { fail "up from marker1" }
- }
- }
- -re "$gdb_prompt $" { fail "continue to marker1" }
- timeout { fail "(timeout) continue to marker1" }
- }
-
-# print out various class objects' members. The values aren't
-# important, just check that the warning is emitted at the
-# right times.
-
-# X is derived from A1 and A2; both A1 and A2 have a member 'x'
-send_gdb "print x.x\n"
-gdb_expect {
- -re "warning: x ambiguous; using X::A2::x. Use a cast to disambiguate.\r\n\\$\[0-9\]* = \[-\]*\[0-9\]*\r\n$gdb_prompt $" {
- pass "print x.x"
- }
- -re "warning: x ambiguous; using X::A1::x. Use a cast to disambiguate.\r\n\\$\[0-9\]* = \[-\]*\[0-9\]*\r\n$gdb_prompt $" {
- pass "print x.x"
- }
- -re ".*$gdb_prompt $" { fail "print x.x" }
- timeout { fail "(timeout) print x.x" }
-}
-
-
-# N is derived from A1 and A2, but not immediately -- two steps
-# up in the hierarchy. Both A1 and A2 have a member 'x'.
-send_gdb "print n.x\n"
-gdb_expect {
- -re "warning: x ambiguous; using N::M::A2::x. Use a cast to disambiguate.\r\n\\$\[0-9\]* = \[-\]*\[0-9\]*\r\n$gdb_prompt $" {
- pass "print n.x"
- }
- -re "warning: x ambiguous; using N::L::A1::x. Use a cast to disambiguate.\r\n\\$\[0-9\]* = \[-\]*\[0-9\]*\r\n$gdb_prompt $" {
- pass "print n.x"
- }
- -re ".*$gdb_prompt $" { fail "print n.x" }
- timeout { fail "(timeout) print n.x" }
-}
-
-# J is derived from A1 twice. A1 has a member x.
-send_gdb "print j.x\n"
-gdb_expect {
- -re "warning: x ambiguous; using J::L::A1::x. Use a cast to disambiguate.\r\n\\$\[0-9\]* = \[-\]*\[0-9\]*\r\n$gdb_prompt $" {
- pass "print j.x"
- }
- -re "warning: x ambiguous; using J::K::A1::x. Use a cast to disambiguate.\r\n\\$\[0-9\]* = \[-\]*\[0-9\]*\r\n$gdb_prompt $" {
- pass "print j.x"
- }
- -re ".*$gdb_prompt $" { fail "print j.x" }
- timeout { fail "(timeout) print j.x" }
-}
-
-# JV is derived from A1 but A1 is a virtual base. Should not
-# report an ambiguity in this case.
-send_gdb "print jv.x\n"
-gdb_expect {
- -re "warning: x ambiguous.*Use a cast to disambiguate.\r\n\\$\[0-9\]* = \[-\]*\[0-9\]*\r\n$gdb_prompt $" {
- fail "print jv.x (ambiguity reported)"
- }
- -re "\\$\[0-9\]* = \[-\]*\[0-9\]*\r\n$gdb_prompt $" { pass "print jv.x" }
- -re ".*$gdb_prompt $" { fail "print jv.x (??)" }
- timeout { fail "(timeout) print jv.x" }
-}
-
-# JVA1 is derived from A1; A1 occurs as a virtual base in two
-# ancestors, and as a non-virtual immediate base. Ambiguity must
-# be reported.
-send_gdb "print jva1.x\n"
-gdb_expect {
- -re "warning: x ambiguous; using JVA1::A1::x. Use a cast to disambiguate.\r\n\\$\[0-9\]* = \[-\]*\[0-9\]*\r\n$gdb_prompt $" {
- pass "print jva1.x"
- }
- -re "warning: x ambiguous; using JVA1::KV::A1::x. Use a cast to disambiguate.\r\n\\$\[0-9\]* = \[-\]*\[0-9\]*\r\n$gdb_prompt $" {
- pass "print jva1.x"
- }
- -re ".*$gdb_prompt $" { fail "print jva1.x" }
- timeout { fail "(timeout) print jva1.x" }
-}
-
-# JVA2 is derived from A1 & A2; A1 occurs as a virtual base in two
-# ancestors, and A2 is a non-virtual immediate base. Ambiguity must
-# be reported as A1 and A2 both have a member 'x'.
-send_gdb "print jva2.x\n"
-gdb_expect {
- -re "warning: x ambiguous; using JVA2::A2::x. Use a cast to disambiguate.\r\n\\$\[0-9\]* = \[-\]*\[0-9\]*\r\n$gdb_prompt $" {
- pass "print jva2.x"
- }
- -re "warning: x ambiguous; using JVA2::KV::A1::x. Use a cast to disambiguate.\r\n\\$\[0-9\]* = \[-\]*\[0-9\]*\r\n$gdb_prompt $" {
- pass "print jva2.x"
- }
- -re ".*$gdb_prompt $" { fail "print jva2.x" }
- timeout { fail "(timeout) print jva2.x" }
-}
-
-# JVA1V is derived from A1; A1 occurs as a virtual base in two
-# ancestors, and also as a virtual immediate base. Ambiguity must
-# not be reported.
-send_gdb "print jva1v.x\n"
-gdb_expect {
- -re "warning: x ambiguous.*Use a cast to disambiguate.\r\n\\$\[0-9\]* = \[-\]*\[0-9\]*\r\n$gdb_prompt $" {
- fail "print jva1v.x (ambiguity reported)"
- }
- -re "\\$\[0-9\]* = \[-\]*\[0-9\]*\r\n$gdb_prompt $" { pass "print jva1v.x" }
- -re ".*$gdb_prompt $" { fail "print jva1v.x (??)" }
- timeout { fail "(timeout) print jva1v.x" }
-}
-
-# Now check for ambiguous bases.
-
-# J is derived from A1 twice; report ambiguity if a J is
-# cast to an A1.
-send_gdb "print (A1)j\n"
-gdb_expect {
- -re "warning: A1 ambiguous; using J::L::A1. Use a cast to disambiguate.\r\n\\$\[0-9\]* = \{x = \[-\]*\[0-9\]*, y = \[-\]*\[0-9\]*\}\r\n$gdb_prompt $" {
- pass "print (A1)j"
- }
- -re "warning: A1 ambiguous; using J::K::A1. Use a cast to disambiguate.\r\n\\$\[0-9\]* = \{x = \[-\]*\[0-9\]*, y = \[-\]*\[0-9\]*\}\r\n$gdb_prompt $" {
- pass "print (A1)j"
- }
- -re ".*$gdb_prompt $" { fail "print (A1)j" }
- timeout { fail "(timeout) print (A1)j" }
-}
-
-# JV is derived from A1 twice, but A1 is a virtual base; should
-# not report ambiguity when a JV is cast to an A1.
-send_gdb "print (A1)jv\n"
-gdb_expect {
- -re "warning: A1 ambiguous.*Use a cast to disambiguate.\r\n\\$\[0-9\]* = \{x = \[-\]*\[0-9\]*, y = \[-\]*\[0-9\]*\}\r\n$gdb_prompt $" {
- fail "print (A1)jv (ambiguity reported)"
- }
- -re "\\$\[0-9\]* = \{x = \[-\]*\[0-9\]*, y = \[-\]*\[0-9\]*\}\r\n$gdb_prompt $" { pass "print (A1)jv" }
- -re ".*$gdb_prompt $" { fail "print (A1)jv (??)" }
- timeout { fail "(timeout) print (A1)jv" }
-}
-
-# JVA1 is derived from A1; A1 is a virtual base and also a
-# non-virtual base. Must report ambiguity if a JVA1 is cast to an A1.
-send_gdb "print (A1)jva1\n"
-gdb_expect {
- -re "warning: A1 ambiguous; using JVA1::A1. Use a cast to disambiguate.\r\n\\$\[0-9\]* = \{x = \[-\]*\[0-9\]*, y = \[-\]*\[0-9\]*\}\r\n$gdb_prompt $" {
- pass "print (A1)jva1"
- }
- -re "warning: A1 ambiguous; using JVA1::KV::A1. Use a cast to disambiguate.\r\n\\$\[0-9\]* = \{x = \[-\]*\[0-9\]*, y = \[-\]*\[0-9\]*\}\r\n$gdb_prompt $" {
- pass "print (A1)jva1"
- }
- -re ".*$gdb_prompt $" { fail "print (A1)jva1" }
- timeout { fail "(timeout) print (A1)jva1" }
-}
-
-# JVA1V is derived from A1; A1 is a virtual base indirectly
-# and also directly; must not report ambiguity when a JVA1V is cast to an A1.
-send_gdb "print (A1)jva1v\n"
-gdb_expect {
- -re "warning: A1 ambiguous.*Use a cast to disambiguate.\r\n\\$\[0-9\]* = \{x = \[-\]*\[0-9\]*, y = \[-\]*\[0-9\]*\}\r\n$gdb_prompt $" {
- fail "print (A1)jva1v (ambiguity reported)"
- }
- -re "\\$\[0-9\]* = \{x = \[-\]*\[0-9\]*, y = \[-\]*\[0-9\]*\}\r\n$gdb_prompt $" { pass "print (A1)jva1v"
- }
- -re ".*$gdb_prompt $" { fail "print (A1)jva1v (??)" }
- timeout { fail "(timeout) print (A1)jva1v" }
-}
-
Index: bool.exp
===================================================================
--- bool.exp (revision 816)
+++ bool.exp (nonexistent)
@@ -1,51 +0,0 @@
-# Copyright (C) 2006, 2007, 2008 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see .
-
-# Please email any bugs, comments, and/or additions to this file to:
-# bug-gdb@gnu.org
-
-# This file is part of the gdb testsuite.
-
-if $tracelevel then {
- strace $tracelevel
-}
-
-# Test returning bool.
-
-if { [skip_cplus_tests] } { continue }
-
-set prms_id 0
-set bug_id 0
-
-set testfile "bool"
-set srcfile ${testfile}.cc
-set binfile ${objdir}/${subdir}/${testfile}
-
-if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } {
- untested bool.exp
- return -1
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binfile}
-
-runto_main
-
-# Testcases for tdep/2075.
-
-gdb_test "print return_true()" "\\$.* = true"
-gdb_test "print return_false()" "\\$.* = false"
Index: m-static1.cc
===================================================================
--- m-static1.cc (revision 816)
+++ m-static1.cc (nonexistent)
@@ -1,5 +0,0 @@
-// 2002-08-16
-
-#include "m-static.h"
-
-const int gnu_obj_4::elsewhere = 221;
Index: namespace.exp
===================================================================
--- namespace.exp (revision 816)
+++ namespace.exp (nonexistent)
@@ -1,291 +0,0 @@
-# Copyright 1997, 1998, 2000, 2001, 2002, 2003, 2004, 2007, 2008
-# Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see .
-
-# tests for namespaces
-# Originally written by Satish Pai 1997-07-23
-
-# This file is part of the gdb testsuite
-
-# Note: The original tests were geared to the HP aCC compiler,
-# which has an idiosyncratic way of emitting debug info
-# for namespaces.
-# Note: As of 2000-06-03, they passed under g++ - djb
-
-
-if $tracelevel then {
- strace $tracelevel
- }
-
-set prms_id 0
-set bug_id 0
-
-if { [skip_cplus_tests] } { continue }
-
-set testfile "namespace"
-set srcfile ${testfile}.cc
-set objfile ${objdir}/${subdir}/${testfile}.o
-set srcfile1 ${testfile}1.cc
-set objfile1 ${objdir}/${subdir}/${testfile}1.o
-set binfile ${objdir}/${subdir}/${testfile}
-
-if [get_compiler_info ${binfile} c++] {
- return -1;
-}
-
-if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${objfile}" object {debug c++}] != "" } {
- untested namespace.exp
- return -1
-}
-
-if { [gdb_compile "${srcdir}/${subdir}/${srcfile1}" "${objfile1}" object {debug c++}] != "" } {
- untested namespace.exp
- return -1
-}
-
-if { [gdb_compile "${objfile} ${objfile1}" "${binfile}" executable {debug c++}] != "" } {
- untested namespace.exp
- return -1
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binfile}
-
-
-#
-# set it up at a breakpoint so we can play with the variable values
-#
-if ![runto_main] then {
- perror "couldn't run to breakpoint"
- continue
-}
-
-if ![runto 'marker1'] then {
- perror "couldn't run to marker1"
- continue
-}
-
-gdb_test "up" ".*main.*" "up from marker1"
-
-# Access a data item inside a namespace using colons and
-# single quotes. :-(
-
-# NOTE: carlton/2003-09-24: the quotes are becoming less necessary (or
-# even desirable.) For tests where it should still work with quotes,
-# I'm including versions both with and without quotes; for tests that
-# shouldn't work with quotes, I'm only including one version.
-
-send_gdb "print 'AAA::c'\n"
-gdb_expect {
- -re "\\$\[0-9\]* = 0 '\\\\(0|000)'\r\n$gdb_prompt $" { pass "print 'AAA::c'" }
- -re ".*$gdb_prompt $" { fail "print 'AAA::c'" }
- timeout { fail "(timeout) print 'AAA::c'" }
-}
-
-send_gdb "print AAA::c\n"
-gdb_expect {
- -re "\\$\[0-9\]* = 0 '\\\\(0|000)'\r\n$gdb_prompt $" { pass "print AAA::c" }
- -re ".*$gdb_prompt $" { fail "print AAA::c" }
- timeout { fail "(timeout) print AAA::c" }
-}
-
-# An object declared using "using".
-
-send_gdb "print ina\n"
-gdb_expect {
- -re "\\$\[0-9\]+ = {xx = 33}.*$gdb_prompt $" {
- pass "print ina"
- }
- -re ".*$gdb_prompt $" { fail "print ina" }
- timeout { fail "(timeout) print ina" }
-}
-
-send_gdb "ptype ina\n"
-gdb_expect {
- -re "type = class (AAA::|)inA \{\r\n\[ \]*public:\r\n\[ \]*int xx;\r\n\[ \]*\r\n\[ \]*.*int fum\\(int\\);\r\n\}\r\n$gdb_prompt $" {
- pass "ptype ina"
- }
- -re "type = class (AAA::|)inA \{\r\n\[ \]*public:\r\n\[ \]*int xx;\r\n\[ \]*\r\n\[ \]*int fum\\(int\\);\r\n.*\}\r\n$gdb_prompt $" {
- pass "ptype ina"
- }
- -re ".*$gdb_prompt $" { fail "ptype ina" }
- timeout { fail "(timeout) ptype ina" }
-}
-
-# Check all functions are known to GDB
-
-setup_xfail hppa*-*-*11* CLLbs14869
-send_gdb "info func xyzq\n"
-gdb_expect {
- -re "All functions.*File.*namespace.cc:\r\nint AAA::A_xyzq\\(int\\);\r\nint BBB::B_xyzq\\(int\\);\r\nchar AAA::xyzq\\(char\\);\r\nchar BBB::xyzq\\(char\\);\r\nchar BBB::CCC::xyzq\\(char\\);\r\nchar BBB::Class::xyzq\\(char\\);\r\n$gdb_prompt $" {
- pass "info func xyzq"
- }
- -re "All functions.*File.*namespace.cc:\r\nint AAA::A_xyzq\\(int\\);\r\nchar AAA::xyzq\\(char\\);\r\nint BBB::B_xyzq\\(int\\);\r\nchar BBB::CCC::xyzq\\(char\\);\r\nchar BBB::Class::xyzq\\(char\\);\r\nchar BBB::xyzq\\(char\\);\r\n$gdb_prompt $" {
- pass "info func xyzq"
- }
- -re ".*$gdb_prompt $" { fail "info func xyzq" }
- timeout { fail "(timeout) info func xyzq" }
-}
-
-# Call a function in a namespace
-
-send_gdb "print 'AAA::xyzq'('x')\n"
-gdb_expect {
- -re "\\$\[0-9\]* = 97 'a'\r\n$gdb_prompt $" {
- pass "print 'AAA::xyzq'('x')"
- }
- -re ".*$gdb_prompt $" { fail "print 'AAA::xyzq'('x')" }
- timeout { fail "(timeout) print 'AAA::xyzq'('x')" }
-}
-
-send_gdb "print AAA::xyzq('x')\n"
-gdb_expect {
- -re "\\$\[0-9\]* = 97 'a'\r\n$gdb_prompt $" {
- pass "print AAA::xyzq('x')"
- }
- -re ".*$gdb_prompt $" { fail "print AAA::xyzq('x')" }
- timeout { fail "(timeout) print AAA::xyzq('x')" }
-}
-
-# Break on a function in a namespace
-
-send_gdb "break AAA::xyzq\n"
-gdb_expect {
- -re "Breakpoint.*at $hex: file.*namespace.cc, line 42\\.\r\n$gdb_prompt $" {
- pass "break AAA::xyzq"
- }
- -re ".*$gdb_prompt $" { fail "break AAA::xyzq" }
- timeout { fail "(timeout) break AAA::xyzq" }
-}
-
-# Call a function in a nested namespace
-
-send_gdb "print 'BBB::CCC::xyzq'('x')\n"
-gdb_expect {
- -re "\\$\[0-9\]* = 122 'z'\r\n$gdb_prompt $" {
- pass "print 'BBB::CCC::xyzq'('x')"
- }
- -re ".*$gdb_prompt $" { fail "print 'BBB::CCC::xyzq'('x')" }
- timeout { fail "(timeout) print 'BBB::CCC::xyzq'('x')" }
-}
-
-send_gdb "print BBB::CCC::xyzq('x')\n"
-gdb_expect {
- -re "\\$\[0-9\]* = 122 'z'\r\n$gdb_prompt $" {
- pass "print BBB::CCC::xyzq('x')"
- }
- -re ".*$gdb_prompt $" { fail "print BBB::CCC::xyzq('x')" }
- timeout { fail "(timeout) print BBB::CCC::xyzq('x')" }
-}
-
-# Break on a function in a nested namespace
-
-send_gdb "break BBB::CCC::xyzq\n"
-gdb_expect {
- -re "Breakpoint.*at $hex: file.*namespace.cc, line 58\\.\r\n$gdb_prompt $" {
- pass "break BBB::CCC::xyzq"
- }
- -re ".*$gdb_prompt $" { fail "break BBB::CCC::xyzq" }
- timeout { fail "(timeout) break BBB::CCC::xyzq" }
-}
-
-# Print address of a function in a class in a namespace
-
-send_gdb "print 'BBB::Class::xyzq'\n"
-gdb_expect {
- -re "\\$\[0-9\]* = \{char \\((BBB::|)Class \\*( const|), (char|int)\\)\} $hex \r\n$gdb_prompt $" {
- pass "print 'BBB::Class::xyzq'"
- }
- -re ".*$gdb_prompt $" { fail "print 'BBB::Class::xyzq'" }
- timeout { fail "(timeout) print 'BBB::Class::xyzq'" }
-}
-
-send_gdb "print BBB::Class::xyzq\n"
-gdb_expect {
- -re "\\$\[0-9\]* = \{char \\((BBB::|)Class \\*( const|), (char|int)\\)\} $hex \r\n$gdb_prompt $" {
- pass "print BBB::Class::xyzq"
- }
- -re ".*$gdb_prompt $" { fail "print BBB::Class::xyzq" }
- timeout { fail "(timeout) print BBB::Class::xyzq" }
-}
-
-# Break on a function in a class in a namespace
-
-send_gdb "break BBB::Class::xyzq\n"
-gdb_expect {
- -re "Breakpoint.*at $hex: file.*namespace.cc, line 63\\.\r\n$gdb_prompt $" {
- pass "break BBB::Class::xyzq"
- }
- -re ".*$gdb_prompt $" { fail "break BBB::Class::xyzq" }
- timeout { fail "(timeout) break BBB::Class::xyzq" }
-}
-
-# Test to see if the appropriate namespaces are in scope when trying
-# to print out stuff from within a function defined within a
-# namespace.
-
-if ![runto "C::D::marker2"] then {
- perror "couldn't run to marker2"
- continue
-}
-
-gdb_test "print c" "\\$\[0-9\].* = 1"
-gdb_test "print cc" "No symbol \"cc\" in current context."
-gdb_test "print 'C::cc'" "\\$\[0-9\].* = 2"
-gdb_test "print C::cc" "\\$\[0-9\].* = 2"
-gdb_test "print cd" "\\$\[0-9\].* = 3"
-gdb_test "print C::D::cd" "No type \"D\" within class or namespace \"C::C\"."
-gdb_test "print 'E::cde'" "\\$\[0-9\].* = 5"
-gdb_test "print E::cde" "\\$\[0-9\].* = 5"
-gdb_test "print shadow" "\\$\[0-9\].* = 13"
-gdb_test "print E::ce" "No symbol \"ce\" in namespace \"C::D::E\"."
-gdb_test "ptype C" "type = namespace C::C"
-gdb_test "ptype E" "type = namespace C::D::E"
-
-gdb_test "ptype CClass" "type = (class C::CClass \{\r\n public:|struct C::CClass \{)\r\n int x;\r\n\}"
-gdb_test "ptype CClass::NestedClass" "type = (class C::CClass::NestedClass \{\r\n public:|struct C::CClass::NestedClass \{)\r\n int y;\r\n\}"
-gdb_test "ptype NestedClass" "No symbol \"NestedClass\" in current context."
-setup_kfail "gdb/1448" "*-*-*"
-gdb_test "ptype ::C::CClass" "type = class C::CClass \{\r\n public:\r\n int x;\r\n\}"
-setup_kfail "gdb/1448" "*-*-*"
-gdb_test "ptype ::C::CClass::NestedClass" "type = class C::CClass::NestedClass \{\r\n public:\r\n int y;\r\n\}"
-setup_kfail "gdb/1448" "*-*-*"
-gdb_test "ptype ::C::NestedClass" "No symbol \"NestedClass\" in namespace \"C\"."
-gdb_test "ptype C::CClass" "No symbol \"CClass\" in namespace \"C::C\"."
-gdb_test "ptype C::CClass::NestedClass" "No type \"CClass\" within class or namespace \"C::C\"."
-gdb_test "ptype C::NestedClass" "No symbol \"NestedClass\" in namespace \"C::C\"."
-
-# Tests involving multiple files
-
-gdb_test "print cOtherFile" "\\$\[0-9\].* = 316"
-gdb_test "ptype OtherFileClass" "type = (class C::OtherFileClass \{\r\n public:|struct C::OtherFileClass \{)\r\n int z;\r\n\}"
-setup_kfail "gdb/1448" "*-*-*"
-gdb_test "ptype ::C::OtherFileClass" "type = class C::OtherFileClass \{\r\n public:\r\n int z;\r\n\}"
-gdb_test "ptype C::OtherFileClass" "No symbol \"OtherFileClass\" in namespace \"C::C\"."
-
-# Some anonymous namespace tests.
-
-gdb_test "print cX" "\\$\[0-9\].* = 6"
-gdb_test "print 'F::cXf'" "\\$\[0-9\].* = 7"
-gdb_test "print F::cXf" "\\$\[0-9\].* = 7"
-gdb_test "print F::cXfX" "\\$\[0-9\].* = 8"
-gdb_test "print X" "\\$\[0-9\].* = 9"
-gdb_test "print 'G::Xg'" "\\$\[0-9\].* = 10"
-gdb_test "print G::Xg" "\\$\[0-9\].* = 10"
-gdb_test "print G::XgX" "\\$\[0-9\].* = 11"
-gdb_test "print cXOtherFile" "No symbol \"cXOtherFile\" in current context."
-gdb_test "print XOtherFile" "No symbol \"XOtherFile\" in current context."
Index: mb-ctor.cc
===================================================================
--- mb-ctor.cc (revision 816)
+++ mb-ctor.cc (nonexistent)
@@ -1,58 +0,0 @@
-
-#include
-
-class Base
-{
-public:
- Base(int k);
- ~Base();
- virtual void foo() {}
-private:
- int k;
-};
-
-Base::Base(int k)
-{
- this->k = k;
-}
-
-Base::~Base()
-{
- printf("~Base\n");
-}
-
-class Derived : public virtual Base
-{
-public:
- Derived(int i);
- ~Derived();
-private:
- int i;
-};
-
-Derived::Derived(int i) : Base(i)
-{
- this->i = i;
-}
-
-Derived::~Derived()
-{
- printf("~Derived\n");
-}
-
-class DeeplyDerived : public Derived
-{
-public:
- DeeplyDerived(int i) : Base(i), Derived(i) {}
-};
-
-int main()
-{
- /* Invokes the Derived ctor that constructs both
- Derived and Base. */
- Derived d(7);
- /* Invokes the Derived ctor that constructs only
- Derived. Base is constructed separately by
- DeeplyDerived's ctor. */
- DeeplyDerived dd(15);
-}
Index: breakpoint.exp
===================================================================
--- breakpoint.exp (revision 816)
+++ breakpoint.exp (nonexistent)
@@ -1,65 +0,0 @@
-# Copyright 2004, 2007, 2008 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see .
-
-# This file is part of the gdb testsuite.
-
-# This contains tests for breakpoints in C++.
-
-if $tracelevel then {
- strace $tracelevel
- }
-
-if { [skip_cplus_tests] } { continue }
-
-#
-# test running programs
-#
-set prms_id 0
-set bug_id 0
-
-set testfile "breakpoint"
-set srcfile ${testfile}.cc
-set binfile ${objdir}/${subdir}/${testfile}
-
-if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } {
- untested breakpoint.exp
- return -1
-}
-
-if [get_compiler_info ${binfile} "c++"] {
- return -1
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binfile}
-
-proc test_breakpoint {name} {
- # Restart the program every time, so that a single failure doesn't
- # lead to a cascade.
- if ![runto_main] then {
- perror "couldn't run to main when testing ${name}"
- continue
- } else {
- gdb_breakpoint "${name}"
- gdb_test "continue" "Continuing.\r\n\r\nBreakpoint \[0-9\]*, ${name}.*" "continue to ${name}"
- }
-}
-
-test_breakpoint "C1::Nested::foo"
-
-gdb_exit
-return 0
Index: arg-reference.cc
===================================================================
--- arg-reference.cc (revision 816)
+++ arg-reference.cc (nonexistent)
@@ -1,49 +0,0 @@
-/* This testcase is part of GDB, the GNU debugger.
-
- Copyright (C) 2007, 2008 Free Software Foundation, Inc.
-
- This file is part of GDB.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see . */
-
-class Obj
-{
-public:
- Obj ();
- Obj (const Obj &);
- ~Obj ();
- int var;
-};
-
-int foo (Obj arg)
-{
- arg.var++;
- return arg.var;
-}
-
-int main()
-{
- Obj obj;
-
- return 0; /* initialized */
-}
-
-Obj::Obj ()
-{
- var = 1;
-}
-
-Obj::~Obj ()
-{
-}
Index: formatted-ref.exp
===================================================================
--- formatted-ref.exp (revision 816)
+++ formatted-ref.exp (nonexistent)
@@ -1,130 +0,0 @@
-# Copyright 2007, 2008 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see .
-
-# Author: P. N. Hilfinger, AdaCore, Inc.
-
-# This test checks the behavior of formatted print when applied to a
-# reference value. The intended behavior is that a formatted print of
-# such a value should display the same value as a plain print,
-# modulo format, of course. Older versions of GDB would instead print
-# the reference's address value itself when doing a formatted print,
-# rather than printing both that and the dereferenced value. We also
-# check that the (non-standard) expression &(&x), where x is of type T&,
-# yields an appropriate value.
-
-if $tracelevel then {
- strace $tracelevel
-}
-
-set prms_id 0
-set bug_id 0
-
-if { [skip_cplus_tests] } { continue }
-
-set testfile "formatted-ref"
-set srcfile ${testfile}.cc
-set binfile ${objdir}/${subdir}/${testfile}
-
-if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } {
- untested formatted-ref.exp
- return -1
-}
-
-proc get_address { var } {
- global expect_out
- global gdb_prompt
-
- send_gdb "print &$var\n"
- gdb_expect {
- -re "\\$\[0-9\]+ = \\(.*\\) (0x\[0-9a-f\]+).*$gdb_prompt $" {
- return $expect_out(1,string)
- }
- timeout {
- perror "couldn't find address of $var"
- return ""
- }
- }
-}
-
-proc test_p_x { var type val addr } {
- global gdb_prompt
-
- set test "print/x $var"
- gdb_test_multiple $test $test {
- -re "\\$\[0-9\]+ = \\([string_to_regexp $type]\\) @0x\[a-f0-9\]+: [string_to_regexp $val].*$gdb_prompt $" {
- pass $test
- }
- -re "\\$\[0-9\]+ = $addr.*$gdb_prompt $" {
- fail "$test (prints just address)"
- }
- -re "\\$\[0-9\]+ = 0x\[a-f0-9\]+.*$gdb_prompt $" {
- fail "$test (prints unexpected address)"
- }
- }
- return 0
-}
-
-proc test_p_x_addr { var addr } {
- global gdb_prompt
-
- set test "print/x &$var"
- gdb_test_multiple $test $test {
- -re "\\$\[0-9\]+ = $addr.*$gdb_prompt $" {
- pass $test
- }
- -re "\\$\[0-9\]+ = 0x\[a-f0-9+\]+.*$gdb_prompt $" {
- fail "$test (prints unexpected address)"
- }
- }
- return 0
-}
-
-proc test_p_x_ref_addr { var addr } {
- global gdb_prompt
-
- set test "print/x *(&(&$var))"
- gdb_test_multiple $test $test {
- -re "\\$\[0-9\]+ = $addr.*$gdb_prompt $" {
- pass $test
- }
- -re "\\$\[0-9\]+ = 0x\[a-f0-9+\]+.*$gdb_prompt $" {
- fail "$test (prints unexpected address)"
- }
- }
- return 0
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binfile}
-
-runto ${srcfile}:[gdb_get_line_number "marker here"]
-
-set s1_address [get_address "s1"]
-set e1_address [get_address "e1"]
-set i1_address [get_address "i1"]
-
-test_p_x "s" "Struct1 &" "{x = 0xd, y = 0x13}" $s1_address
-test_p_x "e" "Enum1 &" "0xb" $e1_address
-test_p_x "i" "int &" "0x17" $i1_address
-
-test_p_x_addr "s" $s1_address
-test_p_x_addr "e" $e1_address
-test_p_x_addr "i" $i1_address
-
-test_p_x_ref_addr "s" $s1_address
-test_p_x_ref_addr "i" $i1_address
-test_p_x_ref_addr "e" $e1_address
Index: pr-1210.exp
===================================================================
--- pr-1210.exp (revision 816)
+++ pr-1210.exp (nonexistent)
@@ -1,76 +0,0 @@
-# Copyright 2003, 2007, 2008 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see .
-
-# Tests for PR gdb/1210.
-
-# This file is part of the gdb testsuite.
-
-if $tracelevel then {
- strace $tracelevel
-}
-
-if { [skip_cplus_tests] } { continue }
-
-#
-# test running programs
-#
-set prms_id 0
-set bug_id 0
-
-set testfile "pr-1210"
-set srcfile ${testfile}.cc
-set binfile ${objdir}/${subdir}/${testfile}
-
-if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } {
- untested pr-1210.exp
- return -1
-}
-
-if [get_compiler_info ${binfile} "c++"] {
- return -1
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binfile}
-
-if ![runto_main] then {
- perror "couldn't run to breakpoint"
- continue
-}
-
-gdb_test "next" ".*return 0;" "step past initialization"
-
-gdb_test_multiple "print *obj" "" {
- -re "Cannot access memory.*$gdb_prompt $" {
- fail "print *obj"
- }
- -re " = { = {}, myB = { = {}.*}}\r\n$gdb_prompt $" {
- pass "print *obj"
- }
-}
-
-gdb_test_multiple "print obj->myB" "" {
- -re "Cannot access memory.*$gdb_prompt $" {
- fail "print obj->myB"
- }
- -re " = { = {}.*}\r\n$gdb_prompt $" {
- pass "print obj->myB"
- }
-}
-
-gdb_exit
-return 0
Index: m-data.exp
===================================================================
--- m-data.exp (revision 816)
+++ m-data.exp (nonexistent)
@@ -1,119 +0,0 @@
-# Copyright 2002, 2007, 2008 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see .
-
-# Tests for member data
-# 2002-05-13 Benjamin Kosnik
-
-# This file is part of the gdb testsuite
-
-if $tracelevel then {
- strace $tracelevel
- }
-
-if { [skip_cplus_tests] } { continue }
-
-#
-# test running programs
-#
-set prms_id 0
-set bug_id 0
-
-set testfile "m-data"
-set srcfile ${testfile}.cc
-set binfile ${objdir}/${subdir}/${testfile}
-
-if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } {
- untested m-data.exp
- return -1
-}
-
-if [get_compiler_info ${binfile} "c++"] {
- return -1
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binfile}
-
-
-if ![runto_main] then {
- perror "couldn't run to breakpoint"
- continue
-}
-
-# First, run to after we've constructed all the gnu_obj_N's:
-
-gdb_breakpoint [gdb_get_line_number "first-constructs-done"]
-gdb_continue_to_breakpoint "end of first constructors"
-
-# One.
-
-# simple object, const bool
-gdb_test "print test1.test" "\\$\[0-9\]* = true" "simple object, const bool"
-
-# simple object, const int
-gdb_test "print test1.key1" "\\$\[0-9\]* = 5" "simple object, const int"
-
-# simple object, long
-gdb_test "print test1.key2" "\\$\[0-9\]* = 4589" "simple object, long"
-
-# simple object, enum
-gdb_test "print test1.value" "\\$\[0-9\]* = egyptian" "simple object, enum"
-
-# Two.
-
-# derived template object, base const bool
-gdb_test "print test2.test" "\\$\[0-9\]* = true" "derived template object, base const bool"
-
-# derived template object, base const int
-gdb_test "print test2.key1" "\\$\[0-9\]* = 5" "derived template object, base const int"
-
-# derived template object, base long
-gdb_test "print test2.key2" "\\$\[0-9\]* = 7" "derived template object, base long"
-
-# derived template object, base enum
-gdb_test "print test2.value" "\\$\[0-9\]* = oriental" "derived template object, base enum"
-
-# derived template object, enum
-gdb_test "print test2.value_derived" "\\$\[0-9\]* = roman" "derived template object, derived enum"
-
-# Three.
-
-# template object, derived template data member's base const bool
-gdb_test "print test3.data.test" "\\$\[0-9\]* = true" "template object, const bool"
-
-# template object, derived template data member's base const int
-gdb_test "print test3.data.key1" "\\$\[0-9\]* = 5" "template object, const int"
-
-# template object, derived template data member's base long
-gdb_test "print test3.data.key2" "\\$\[0-9\]* = 7" "template object, long"
-
-# template object, derived template data member's base enum
-gdb_test "print test3.data.value" "\\$\[0-9\]* = oriental" "template object, base enum"
-
-# template object, derived template data member's enum
-gdb_test "print test3.data.value_derived" "\\$\[0-9]\* = etruscan" "template object, derived enum"
-
-# Now some tests for shadowing (see PR gdb/804):
-
-gdb_breakpoint "C::marker"
-gdb_continue_to_breakpoint "continue to shadow breakpoint"
-
-gdb_test "print shadow" "\\$\[0-9]\* = 1" "shadowing member"
-gdb_test "print ::shadow" "\\$\[0-9]\* = 0" "shadowed global variable"
-
-gdb_exit
-return 0
Index: derivation.exp
===================================================================
--- derivation.exp (revision 816)
+++ derivation.exp (nonexistent)
@@ -1,193 +0,0 @@
-# Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2007, 2008
-# Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see .
-
-# This file was written by Elena Zannoni (ezannoni@cygnus.com)
-# And rewritten by Michael Chastain
-
-# This file is part of the gdb testsuite
-
-# tests for inheritance, with several derivations types combinations
-# (private, public, protected)
-# classes have simple members and member functions.
-
-set ws "\[\r\n\t \]+"
-set nl "\[\r\n\]+"
-
-if $tracelevel then {
- strace $tracelevel
-}
-
-# Start program.
-
-set prms_id 0
-set bug_id 0
-
-if { [skip_cplus_tests] } { continue }
-
-load_lib "cp-support.exp"
-
-set testfile "derivation"
-set srcfile ${testfile}.cc
-set binfile ${objdir}/${subdir}/${testfile}
-
-if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } {
- untested derivation.exp
- return -1
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binfile}
-
-# Set it up at a breakpoint so we can play with the variable values.
-
-if ![runto 'marker1'] then {
- perror "couldn't run to marker1"
- continue
-}
-
-gdb_test "up" ".*main.*" "up from marker1"
-
-# Print class types and values.
-
-# class A
-
-gdb_test "print a_instance" "\\$\[0-9\]+ = \{a = 1, aa = 2\}" "print value of a_instance"
-
-cp_test_ptype_class \
- "ptype a_instance" "" "class" "A" \
- {
- { field public "int a;" }
- { field public "int aa;" }
- { method public "A();" }
- { method public "int afoo();" }
- { method public "int foo();" }
- }
-
-# class D
-
-gdb_test_multiple "print d_instance" "print value of d_instance" {
- -re "\\$\[0-9\]+ = \{<(class A|A)> = \{a = 1, aa = 2\}, <(class B|B)> = \{b = 3, bb = 4\}, <(class C|C)> = \{c = 5, cc = 6\}, d = 7, dd = 8\}$nl$gdb_prompt $" {
- pass "print value of d_instance"
- }
-}
-
-cp_test_ptype_class \
- "ptype d_instance" "" "class" "D" \
- {
- { base "private A" }
- { base "public B" }
- { base "protected C" }
- { field public "int d;" }
- { field public "int dd;" }
- { method public "D();" }
- { method public "int dfoo();" }
- { method public "int foo();" }
- } \
- "" \
- {
- { "protected C" "private C" { setup_xfail "*-*-*" "gcc/13539" } }
- }
-
-# class E
-
-gdb_test_multiple "print e_instance" "print value of e_instance" {
- -re "\\$\[0-9\]+ = \{<(class A|A)> = \{a = 1, aa = 2\}, <(class B|B)> = \{b = 3, bb = 4\}, <(class C|C)> = \{c = 5, cc = 6\}, e = 9, ee = 10\}$nl$gdb_prompt $" {
- pass "print value of e_instance"
- }
-}
-
-cp_test_ptype_class \
- "ptype e_instance" "" "class" "E" \
- {
- { base "public A" }
- { base "private B" }
- { base "protected C" }
- { field public "int e;" }
- { field public "int ee;" }
- { method public "E();" }
- { method public "int efoo();" }
- { method public "int foo();" }
- } \
- "" \
- {
- { "protected C" "private C" { setup_xfail "*-*-*" "gcc/13539" } }
- }
-
-# class F
-
-gdb_test_multiple "print f_instance" "print value of f_instance" {
- -re "\\$\[0-9\]+ = \{<(class A|A)> = \{a = 1, aa = 2\}, <(class B|B)> = \{b = 3, bb = 4\}, <(class C|C)> = \{c = 5, cc = 6\}, f = 11, ff = 12\}$nl$gdb_prompt $" {
- pass "print value of f_instance"
- }
-}
-
-cp_test_ptype_class \
- "ptype f_instance" "" "class" "F" \
- {
- { base "private A" }
- { base "public B" }
- { base "private C" }
- { field public "int f;" }
- { field public "int ff;" }
- { method public "F();" }
- { method public "int ffoo();" }
- { method public "int foo();" }
- }
-
-# Print individual fields.
-
-gdb_test "print d_instance.a" "\\$\[0-9\]+ = 1" "print value of d_instance.a"
-gdb_test "print d_instance.aa" "\\$\[0-9\]+ = 2" "print value of d_instance.aa"
-gdb_test "print d_instance.b" "\\$\[0-9\]+ = 3" "print value of d_instance.b"
-gdb_test "print d_instance.bb" "\\$\[0-9\]+ = 4" "print value of d_instance.bb"
-gdb_test "print d_instance.c" "\\$\[0-9\]+ = 5" "print value of d_instance.c"
-gdb_test "print d_instance.cc" "\\$\[0-9\]+ = 6" "print value of d_instance.cc"
-gdb_test "print d_instance.d" "\\$\[0-9\]+ = 7" "print value of d_instance.d"
-gdb_test "print d_instance.dd" "\\$\[0-9\]+ = 8" "print value of d_instance.dd"
-
-# Print some fields which are defined in the top of class G
-# and in its base classes. This is not be ambiguous.
-
-gdb_test "print g_instance.a" "\\$\[0-9\]+ = 15" "print value of g_instance.a"
-gdb_test "print g_instance.b" "\\$\[0-9\]+ = 16" "print value of g_instance.b"
-gdb_test "print g_instance.c" "\\$\[0-9\]+ = 17" "print value of g_instance.c"
-
-# Print a function call.
-
-gdb_test "print g_instance.afoo()" "\\$\[0-9\]+ = 1" "print value of g_instance.afoo()"
-
-# If GDB fails to restore the selected frame properly after the
-# inferior function call above (see GDB PR 1155 for an explanation of
-# why this might happen), all the subsequent tests will fail. We
-# should detect report that failure, but let the marker call finish so
-# that the rest of the tests can run undisturbed.
-
-gdb_test_multiple "frame" "re-selected 'main' frame after inferior call" {
- -re "#0 marker1.*$gdb_prompt $" {
- setup_kfail "gdb/1155" s390-*-linux-gnu
- fail "re-selected 'main' frame after inferior call"
- gdb_test "finish" ".*main.*at .*derivation.cc:.*// marker1-returns-here.*" \
- "finish call to marker1"
- }
- -re "#1 ($hex in )?main.*$gdb_prompt $" {
- pass "re-selected 'main' frame after inferior call"
- }
-}
-
-gdb_test "print g_instance.bfoo()" "\\$\[0-9\]+ = 2" "print value of g_instance.bfoo()"
-gdb_test "print g_instance.cfoo()" "\\$\[0-9\]+ = 3" "print value of g_instance.cfoo()"
Index: ref-types.cc
===================================================================
--- ref-types.cc (revision 816)
+++ ref-types.cc (nonexistent)
@@ -1,97 +0,0 @@
-/* This test script is part of GDB, the GNU debugger.
-
- Copyright 1999, 2004, 2007, 2008 Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see .
- */
-
-int main2(void);
-
-void marker1 (void)
-{
-
-}
-
-
-
-int main(void)
-{
- short s;
- short &rs = s;
- short *ps;
- short *&rps = ps;
- short as[4];
- short (&ras)[4] = as;
- s = -1;
- ps = &s;
- as[0] = 0;
- as[1] = 1;
- as[2] = 2;
- as[3] = 3;
-
- #ifdef usestubs
- set_debug_traps();
- breakpoint();
- #endif
- marker1();
-
- main2();
-
- return 0;
-}
-
-int f()
-{
- int f1;
- f1 = 1;
- return f1;
-}
-
-int main2(void)
-{
- char C;
- unsigned char UC;
- short S;
- unsigned short US;
- int I;
- unsigned int UI;
- long L;
- unsigned long UL;
- float F;
- double D;
- char &rC = C;
- unsigned char &rUC = UC;
- short &rS = S;
- unsigned short &rUS = US;
- int &rI = I;
- unsigned int &rUI = UI;
- long &rL = L;
- unsigned long &rUL = UL;
- float &rF = F;
- double &rD = D;
- C = 'A';
- UC = 21;
- S = -14;
- US = 7;
- I = 102;
- UI = 1002;
- L = -234;
- UL = 234;
- F = 1.25E10;
- D = -1.375E-123;
- I = f();
-
- return 0;
-
-}
Index: ovldbreak.exp
===================================================================
--- ovldbreak.exp (revision 816)
+++ ovldbreak.exp (nonexistent)
@@ -1,358 +0,0 @@
-# Copyright (C) 1998, 1999, 2001, 2004, 2007, 2008
-# Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see .
-
-# written by Elena Zannoni (ezannoni@cygnus.com)
-# modified by Michael Chastain (chastain@redhat.com)
-
-# This file is part of the gdb testsuite
-#
-# tests for overloaded member functions. Set breakpoints on
-# overloaded member functions
-#
-
-
-if $tracelevel then {
- strace $tracelevel
- }
-
-#
-# test running programs
-#
-set prms_id 0
-set bug_id 0
-
-if { [skip_cplus_tests] } { continue }
-
-set testfile "ovldbreak"
-set srcfile ${testfile}.cc
-set binfile ${objdir}/${subdir}/${testfile}
-
-if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } {
- untested ovldbreak.exp
- return -1
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binfile}
-
-# set it up at a breakpoint so we can play with the variable values
-#
-if ![runto_main] then {
- perror "couldn't run to breakpoint"
- continue
-}
-
-
-
-# When I ask gdb to set a breakpoint on an overloaded function,
-# gdb gives me a choice menu. I might get stuck in that choice menu
-# (for example, if C++ name mangling is not working properly).
-#
-# This procedure issues a command that works at either the menu
-# prompt or the command prompt to get back to the command prompt.
-#
-# Note that an empty line won't do it (it means 'repeat the previous command'
-# at top level). A line with a single space in it works nicely.
-
-proc take_gdb_out_of_choice_menu {} {
- global gdb_prompt
- send_gdb " \n"
- gdb_expect {
- -re ".*$gdb_prompt $" {
- }
- timeout {
- perror "could not resynchronize to command prompt (timeout)"
- continue
- }
- }
-}
-
-
-
-# This procedure sets an overloaded breakpoint.
-# When I ask for such a breakpoint, gdb gives me a menu of 'cancel' 'all'
-# and a bunch of choices. I then choose from that menu by number.
-
-proc set_bp_overloaded {name expectedmenu mychoice bpnumber linenumber} {
- global gdb_prompt hex srcfile
-
- # Get into the overload menu.
- send_gdb "break $name\n"
- gdb_expect {
- -re "$expectedmenu" {
- pass "bp menu for $name choice $mychoice"
-
- # Choose my choice.
- send_gdb "$mychoice\n"
- gdb_expect {
- -re "Breakpoint $bpnumber at $hex: file.*$srcfile, line $linenumber.\r\n$gdb_prompt $" {
- pass "set bp $bpnumber on $name $mychoice line $linenumber"
- }
- -re ".*$gdb_prompt $" {
- fail "set bp $bpnumber on $name $mychoice line $linenumber (bad bp)"
- }
- timeout {
- fail "set bp $bpnumber on $name $mychoice line $linenumber (timeout)"
- take_gdb_out_of_choice_menu
- }
- }
- }
- -re ".*\r\n> " {
- fail "bp menu for $name choice $mychoice (bad menu)"
- take_gdb_out_of_choice_menu
- }
- -re ".*$gdb_prompt $" {
- fail "bp menu for $name choice $mychoice (no menu)"
- }
- timeout {
- fail "bp menu for $name choice $mychoice (timeout)"
- take_gdb_out_of_choice_menu
- }
- }
-}
-
-# This is the expected menu for overload1arg.
-# Note the arg type variations on lines 6 and 13.
-# This accommodates different versions of g++.
-
-set menu_overload1arg "\\\[0\\\] cancel\r\n\\\[1\\\] all\r\n\\\[2\\\] foo::overload1arg\\(double\\) at.*$srcfile:121\r\n\\\[3\\\] foo::overload1arg\\(float\\) at.*$srcfile:120\r\n\\\[4\\\] foo::overload1arg\\(unsigned long\\) at.*$srcfile:119\r\n\\\[5\\\] foo::overload1arg\\(long\\) at.*$srcfile:118\r\n\\\[6\\\] foo::overload1arg\\((unsigned int|unsigned)\\) at.*$srcfile:117\r\n\\\[7\\\] foo::overload1arg\\(int\\) at.*$srcfile:116\r\n\\\[8\\\] foo::overload1arg\\(unsigned short\\) at.*$srcfile:115\r\n\\\[9\\\] foo::overload1arg\\(short\\) at.*$srcfile:114\r\n\\\[10\\\] foo::overload1arg\\(unsigned char\\) at.*$srcfile:113\r\n\\\[11\\\] foo::overload1arg\\(signed char\\) at.*$srcfile:112\r\n\\\[12\\\] foo::overload1arg\\(char\\) at.*$srcfile:111\r\n\\\[13\\\] foo::overload1arg\\((void|)\\) at.*$srcfile:110\r\n> $"
-
-
-
-# Set breakpoints on foo::overload1arg, one by one.
-
-set_bp_overloaded "foo::overload1arg" "$menu_overload1arg" 12 2 111
-set_bp_overloaded "foo::overload1arg" "$menu_overload1arg" 11 3 112
-set_bp_overloaded "foo::overload1arg" "$menu_overload1arg" 10 4 113
-set_bp_overloaded "foo::overload1arg" "$menu_overload1arg" 9 5 114
-set_bp_overloaded "foo::overload1arg" "$menu_overload1arg" 8 6 115
-set_bp_overloaded "foo::overload1arg" "$menu_overload1arg" 7 7 116
-set_bp_overloaded "foo::overload1arg" "$menu_overload1arg" 6 8 117
-set_bp_overloaded "foo::overload1arg" "$menu_overload1arg" 5 9 118
-set_bp_overloaded "foo::overload1arg" "$menu_overload1arg" 4 10 119
-set_bp_overloaded "foo::overload1arg" "$menu_overload1arg" 3 11 120
-set_bp_overloaded "foo::overload1arg" "$menu_overload1arg" 2 12 121
-set_bp_overloaded "foo::overload1arg" "$menu_overload1arg" 13 13 110
-
-
-
-# Verify the breakpoints.
-
-gdb_test "info break" \
- "Num Type\[\t \]+Disp Enb Address\[\t \]+What.*
-\[0-9\]+\[\t \]+breakpoint keep y\[\t \]+$hex\[\t \]+in main at.*$srcfile:49\r
-\[\t \]+breakpoint already hit 1 time\r
-\[0-9\]+\[\t \]+breakpoint keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\(char\\) at.*$srcfile:111\r
-\[0-9\]+\[\t \]+breakpoint keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\(signed char\\) at.*$srcfile:112\r
-\[0-9\]+\[\t \]+breakpoint keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\(unsigned char\\) at.*$srcfile:113\r
-\[0-9\]+\[\t \]+breakpoint keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\(short\\) at.*$srcfile:114\r
-\[0-9\]+\[\t \]+breakpoint keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\(unsigned short\\) at.*$srcfile:115\r
-\[0-9\]+\[\t \]+breakpoint keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\(int\\) at.*$srcfile:116\r
-\[0-9\]+\[\t \]+breakpoint keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\((unsigned|unsigned int)\\) at.*$srcfile:117\r
-\[0-9\]+\[\t \]+breakpoint keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\(long\\) at.*$srcfile:118\r
-\[0-9\]+\[\t \]+breakpoint keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\(unsigned long\\) at.*$srcfile:119\r
-\[0-9\]+\[\t \]+breakpoint keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\(float\\) at.*$srcfile:120\r
-\[0-9\]+\[\t \]+breakpoint keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\(double\\) at.*$srcfile:121\r
-\[0-9\]+\[\t \]+breakpoint keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\((void|)\\) at.*$srcfile:110" \
- "breakpoint info (after setting one-by-one)"
-
-
-
-# Test choice "cancel".
-# This is copy-and-paste from set_bp_overloaded.
-
-send_gdb "break foo::overload1arg\n"
-gdb_expect {
- -re "$menu_overload1arg" {
- pass "bp menu for foo::overload1arg choice cancel"
- # Choose cancel.
- send_gdb "0\n"
- gdb_expect {
- -re "canceled\r\n$gdb_prompt $" {
- pass "set bp on overload1arg canceled"
- }
- -re "cancelled\r\n$gdb_prompt $" {
- pass "set bp on overload1arg canceled"
- }
- -re ".*$gdb_prompt $" {
- fail "set bp on overload1arg canceled (bad message)"
- }
- timeout {
- fail "set bp on overload1arg canceled (timeout)"
- take_gdb_out_of_choice_menu
- }
- }
- }
- -re ".*\r\n> " {
- fail "bp menu for foo::overload1arg choice cancel (bad menu)"
- take_gdb_out_of_choice_menu
- }
- -re ".*$gdb_prompt $" {
- fail "bp menu for foo::overload1arg choice cancel (no menu)"
- }
- timeout {
- fail "bp menu for foo::overload1arg choice cancel (timeout)"
- take_gdb_out_of_choice_menu
- }
-}
-
-gdb_test "info break" \
- "Num Type\[\t \]+Disp Enb Address\[\t \]+What.*
-\[0-9\]+\[\t \]+breakpoint keep y\[\t \]+$hex\[\t \]+in main at.*$srcfile:49\r
-\[\t \]+breakpoint already hit 1 time\r
-\[0-9\]+\[\t \]+breakpoint keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\(char\\) at.*$srcfile:111\r
-\[0-9\]+\[\t \]+breakpoint keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\(signed char\\) at.*$srcfile:112\r
-\[0-9\]+\[\t \]+breakpoint keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\(unsigned char\\) at.*$srcfile:113\r
-\[0-9\]+\[\t \]+breakpoint keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\(short\\) at.*$srcfile:114\r
-\[0-9\]+\[\t \]+breakpoint keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\(unsigned short\\) at.*$srcfile:115\r
-\[0-9\]+\[\t \]+breakpoint keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\(int\\) at.*$srcfile:116\r
-\[0-9\]+\[\t \]+breakpoint keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\((unsigned|unsigned int)\\) at.*$srcfile:117\r
-\[0-9\]+\[\t \]+breakpoint keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\(long\\) at.*$srcfile:118\r
-\[0-9\]+\[\t \]+breakpoint keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\(unsigned long\\) at.*$srcfile:119\r
-\[0-9\]+\[\t \]+breakpoint keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\(float\\) at.*$srcfile:120\r
-\[0-9\]+\[\t \]+breakpoint keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\(double\\) at.*$srcfile:121\r
-\[0-9\]+\[\t \]+breakpoint keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\((void|)\\) at.*$srcfile:110" \
- "breakpoint info (after cancel)"
-
-
-
-# Delete these breakpoints.
-
-send_gdb "delete breakpoints\n"
-gdb_expect {
- -re "Delete all breakpoints.* $" {
- send_gdb "y\n"
- gdb_expect {
- -re ".*$gdb_prompt $" {
- pass "delete all breakpoints"
- }
- timeout {
- fail "delete all breakpoints (timeout)"
- }
- }
- }
- timeout {
- fail "delete all breakpoints (timeout)"
- }
-}
-
-gdb_test "info breakpoints" "No breakpoints or watchpoints." "breakpoint info (after delete)"
-
-
-
-# Test choice "all".
-# This is copy-and-paste from set_bp_overloaded.
-
-send_gdb "break foo::overload1arg\n"
-gdb_expect {
- -re "$menu_overload1arg" {
- pass "bp menu for foo::overload1arg choice all"
- # Choose all.
- send_gdb "1\n"
- gdb_expect {
- -re "Breakpoint $decimal at $hex: file.*$srcfile, line 121.\r\nBreakpoint $decimal at $hex: file.*$srcfile, line 120.\r\nBreakpoint $decimal at $hex: file.*$srcfile, line 119.\r\nBreakpoint $decimal at $hex: file.*$srcfile, line 118.\r\nBreakpoint $decimal at $hex: file.*$srcfile, line 117.\r\nBreakpoint $decimal at $hex: file.*$srcfile, line 116.\r\nBreakpoint $decimal at $hex: file.*$srcfile, line 115.\r\nBreakpoint $decimal at $hex: file.*$srcfile, line 114.\r\nBreakpoint $decimal at $hex: file.*$srcfile, line 113.\r\nBreakpoint $decimal at $hex: file.*$srcfile, line 112.\r\nBreakpoint $decimal at $hex: file.*$srcfile, line 111.\r\nBreakpoint $decimal at $hex: file.*$srcfile, line 110.\r\nwarning: Multiple breakpoints were set.\r\nUse the .delete. command to delete unwanted breakpoints.\r\n$gdb_prompt $" {
- pass "set bp on overload1arg all"
- }
- -re ".*$gdb_prompt $" {
- fail "set bp on overload1arg all (bad message)"
- }
- timeout {
- fail "set bp on overload1arg all (timeout)"
- take_gdb_out_of_choice_menu
- }
- }
- }
- -re ".*\r\n> " {
- fail "bp menu for foo::overload1arg choice all (bad menu)"
- take_gdb_out_of_choice_menu
- }
- -re ".*$gdb_prompt $" {
- fail "bp menu for foo::overload1arg choice all (no menu)"
- }
- timeout {
- fail "bp menu for foo::overload1arg choice all (timeout)"
- take_gdb_out_of_choice_menu
- }
-}
-
-gdb_test "info break" \
- "Num Type\[\t \]+Disp Enb Address\[\t \]+What.*
-\[0-9\]+\[\t \]+breakpoint keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\(double\\) at.*$srcfile:121\r
-\[0-9\]+\[\t \]+breakpoint keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\(float\\) at.*$srcfile:120\r
-\[0-9\]+\[\t \]+breakpoint keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\(unsigned long\\) at.*$srcfile:119\r
-\[0-9\]+\[\t \]+breakpoint keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\(long\\) at.*$srcfile:118\r
-\[0-9\]+\[\t \]+breakpoint keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\((unsigned|unsigned int)\\) at.*$srcfile:117\r
-\[0-9\]+\[\t \]+breakpoint keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\(int\\) at.*$srcfile:116\r
-\[0-9\]+\[\t \]+breakpoint keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\(unsigned short\\) at.*$srcfile:115\r
-\[0-9\]+\[\t \]+breakpoint keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\(short\\) at.*$srcfile:114\r
-\[0-9\]+\[\t \]+breakpoint keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\(unsigned char\\) at.*$srcfile:113\r
-\[0-9\]+\[\t \]+breakpoint keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\(signed char\\) at.*$srcfile:112\r
-\[0-9\]+\[\t \]+breakpoint keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\(char\\) at.*$srcfile:111\r
-\[0-9\]+\[\t \]+breakpoint keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\((void|)\\) at.*$srcfile:110" \
- "breakpoint info (after setting on all)"
-
-
-
-# Run through each breakpoint.
-
-# NOTE: carlton/2003-02-03: I'm seeing failures on some of the tests,
-# with the wrong arg being printed out. Michael Chastain sees
-# failures at times, too, albeit fewer than I do.
-
-proc continue_to_bp_overloaded {might_kfail bpnumber argtype actuals} {
- global gdb_prompt hex decimal srcfile
-
- send_gdb "continue\n"
- gdb_expect {
- -re "Continuing.\r\n\r\nBreakpoint ${bpnumber}, (${hex} in )?foo::overload1arg(\\(${argtype}\\))? \\(this=${hex}(, )?${actuals}\\) at.*${srcfile}:${decimal}\r\n${decimal}\[\t \]+int foo::overload1arg \\(${argtype}( arg)?\\).*\r\n.*$gdb_prompt $" {
- pass "continue to bp overloaded : ${argtype}"
- }
- -re "Continuing.\r\n\r\nBreakpoint ${bpnumber}, (${hex} in )?foo::overload1arg(\\(${argtype}\\))? \\(this=${hex}, arg=.*\\) at.*${srcfile}:${decimal}\r\n${decimal}\[\t \]+int foo::overload1arg \\(${argtype}( arg)?\\).*\r\n.*$gdb_prompt $" {
- if $might_kfail {
- kfail "gdb/1025" "continue to bp overloaded : ${argtype}"
- } else {
- fail "continue to bp overloaded : ${argtype}"
- }
- }
- -re ".*$gdb_prompt $" {
- fail "continue to bp overloaded : ${argtype}"
- }
- timeout {
- fail "continue to bp overloaded : ${argtype} (timeout)"
- }
- }
-}
-
-continue_to_bp_overloaded 0 25 "(void|)" ""
-continue_to_bp_overloaded 1 24 "char" "arg=2 \\'\\\\002\\'"
-continue_to_bp_overloaded 1 23 "signed char" "arg=3 \\'\\\\003\\'"
-continue_to_bp_overloaded 1 22 "unsigned char" "arg=4 \\'\\\\004\\'"
-continue_to_bp_overloaded 1 21 "short" "arg=5"
-continue_to_bp_overloaded 1 20 "unsigned short" "arg=6"
-continue_to_bp_overloaded 0 19 "int" "arg=7"
-continue_to_bp_overloaded 0 18 "(unsigned|unsigned int)" "arg=8"
-continue_to_bp_overloaded 0 17 "long" "arg=9"
-continue_to_bp_overloaded 0 16 "unsigned long" "arg=10"
-continue_to_bp_overloaded 0 15 "float" "arg=100"
-continue_to_bp_overloaded 1 14 "double" "arg=200"
-
-
-
-# That's all, folks.
-
-gdb_continue_to_end "finish program"
Index: try_catch.cc
===================================================================
--- try_catch.cc (revision 816)
+++ try_catch.cc (nonexistent)
@@ -1,138 +0,0 @@
-/* This test script is part of GDB, the GNU debugger.
-
- Copyright 2002, 2004,
- Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see .
- */
-
-#include
-#include
-#include
-
-enum region { oriental, egyptian, greek, etruscan, roman };
-
-// Test one.
-class gnu_obj_1
-{
-public:
- typedef region antiquities;
- const bool test;
- const int key1;
- long key2;
-
- antiquities value;
-
- gnu_obj_1(antiquities a, long l): test(true), key1(5), key2(l), value(a) {}
-};
-
-// Test two.
-template
-class gnu_obj_2: public virtual gnu_obj_1
-{
-public:
- antiquities value_derived;
-
- gnu_obj_2(antiquities b): gnu_obj_1(oriental, 7), value_derived(b) { }
-};
-
-// Test three.
-template
-class gnu_obj_3
-{
-public:
- typedef region antiquities;
- gnu_obj_2 data;
-
- gnu_obj_3(antiquities b): data(etruscan) { }
-};
-
-int main()
-{
- bool test = true;
- const int i = 5;
- int j = i;
- gnu_obj_2 test2(roman);
- gnu_obj_3 test3(greek);
-
- // 1
- try
- {
- ++j;
- throw gnu_obj_1(egyptian, 4589); // marker 1-throw
- }
- catch (gnu_obj_1& obj)
- {
- ++j;
- if (obj.value != egyptian) // marker 1-catch
- test &= false;
- if (obj.key2 != 4589)
- test &= false;
- }
- catch (...)
- {
- j = 0;
- test &= false;
- }
-
- // 2
- try
- {
- ++j; // marker 2-start
- try
- {
- ++j; // marker 2-next
- try
- {
- ++j;
- throw gnu_obj_1(egyptian, 4589); // marker 2-throw
- }
- catch (gnu_obj_1& obj)
- {
- ++j;
- if (obj.value != egyptian) // marker 2-catch
- test &= false;
- if (obj.key2 != 4589)
- test &= false;
- }
- }
- catch (gnu_obj_1& obj)
- {
- ++j;
- if (obj.value != egyptian)
- test &= false;
- if (obj.key2 != 4589)
- test &= false;
- }
- }
- catch (...)
- {
- j = 0;
- test &= false;
- }
-
- // 3 use standard library
- using namespace std;
- try
- {
- if (j < 100)
- throw invalid_argument("gdb.1"); // marker 3-throw
- }
- catch (exception& obj)
- {
- if (obj.what() != "gdb.1") // marker 3-catch
- test &= false;
- }
- return 0;
-}
Index: mb-inline.exp
===================================================================
--- mb-inline.exp (revision 816)
+++ mb-inline.exp (nonexistent)
@@ -1,108 +0,0 @@
-# Copyright 2008 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see .
-
-# This file is part of the gdb testsuite.
-
-# This test verifies that setting breakpoint on line in inline
-# function will fire in all instantiations of that function.
-
-if $tracelevel then {
- strace $tracelevel
-}
-
-if { [skip_cplus_tests] } { continue }
-
-set prms_id 0
-set bug_id 0
-
-set testfile "mb-inline"
-set hdrfile "${testfile}.h"
-set srcfile1 "${testfile}1.cc"
-set objfile1 "${testfile}1.o"
-set srcfile2 "${testfile}2.cc"
-set objfile2 "${testfile}2.o"
-set binfile "${objdir}/${subdir}/${testfile}"
-
-if { [gdb_compile "$srcdir/$subdir/$srcfile1" "$objdir/$subdir/$objfile1" object {debug c++}] != "" } {
- untested mb-inline.exp
- return -1
-}
-
-if { [gdb_compile "$srcdir/$subdir/$srcfile2" "$objdir/$subdir/$objfile2" object {debug c++}] != "" } {
- untested mb-inline.exp
- return -1
-}
-
-if { [gdb_compile "$objdir/$subdir/$objfile1 $objdir/$subdir/$objfile2" "${binfile}" executable {debug c++}] != "" } {
- untested mb-inline.exp
- return -1
-}
-
-if [get_compiler_info ${binfile} "c++"] {
- return -1
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binfile}
-
-set bp_location [gdb_get_line_number "set breakpoint here" $hdrfile]
-
-# Set a breakpoint with multiple locations.
-
-gdb_test "break $hdrfile:$bp_location" \
- "Breakpoint.*at.* file .*$hdrfile, line.*\\(2 locations\\).*" \
- "set breakpoint"
-
-gdb_run_cmd
-gdb_expect {
- -re "Breakpoint \[0-9\]+,.*foo \\(i=0\\).*$gdb_prompt $" {
- pass "run to breakpoint"
- }
- -re "$gdb_prompt $" {
- fail "run to breakpoint"
- }
- timeout {
- fail "run to breakpoint (timeout)"
- }
-}
-
-gdb_test "continue" \
- ".*Breakpoint.*foo \\(i=1\\).*" \
- "run to breakpoint 2"
-
-# Try disabling a single location. We also test
-# that at least in simple cases, the enable/disable
-# state of locations survive "run".
-# Early bug would disable 1.1 and enable 1.2 when program is run.
-gdb_test "disable 1.2" "" "disabling location: disable"
-
-gdb_run_cmd
-gdb_expect {
- -re "Breakpoint \[0-9\]+,.*foo \\(i=0\\).*$gdb_prompt $" {
- pass "disabling location: run to breakpoint"
- }
- -re "$gdb_prompt $" {
- fail "disabling location: run to breakpoint"
- }
- timeout {
- fail "disabling location: run to breakpoint (timeout)"
- }
-}
-
-gdb_test "continue" \
- ".*Program exited normally.*" \
- "continue with disabled breakpoint 1.2"
Index: demangle.exp
===================================================================
--- demangle.exp (revision 816)
+++ demangle.exp (nonexistent)
@@ -1,1579 +0,0 @@
-# Copyright (C) 1992, 1997, 1999, 2003, 2004, 2007, 2008
-# Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see .
-
-# This file was written by Fred Fish. (fnf@cygnus.com)
-
-if $tracelevel then {
- strace $tracelevel
-}
-
-if { [skip_cplus_tests] } { continue }
-
-### The demangling style we last sent to GDB.
-set current_demangling_style none
-
-### Set GDB's current demangling style to STYLE. Subsequent calls to
-### test_demangle will include STYLE in the test name when reporting
-### passes and failures.
-proc set_demangling_style {style} {
- global gdb_prompt
- global current_demangling_style
-
- send_gdb "set demangle-style $style\n"
- gdb_expect {
- -re "set demangle-style $style\[\r\n\]+$gdb_prompt $" {
- pass "$style: set demangle-style"
- }
- -re ".*$gdb_prompt $" {
- fail "$style: set demangle-style"
- error "set_demangling_style: set style"
- }
- timeout {
- fail "$style: set demangle-style (timeout)"
- error "set_demangling_style: set style"
- }
- }
-
- send_gdb "show demangle-style\n"
- gdb_expect {
- -re "The current C\[+\]+ demangling style is \"$style\".\r\n$gdb_prompt $" {
- pass "$style: check demangling style"
- }
- -re ".*$gdb_prompt $" {
- fail "$style: check demangling style"
- error "set_demangling_style: check style"
- }
- timeout {
- fail "$style: check demangling style (timeout)"
- error "set_demangling_style: check style"
- }
- }
-
- set current_demangling_style $style
-}
-
-
-### Utility function for test_demangling and test_demangling_exact.
-proc test_demangling_core {tester test result} {
- global current_demangling_style
-
- if {! [regexp {^([^ ]+): (.+)$} $test dummy style name]} {
- error "bad test name passed to test_demangling"
- }
-
- if {[string compare $style $current_demangling_style]} {
- set_demangling_style $style
- }
-
- $tester "maintenance demangle $name" $result $test
-}
-
-### Demangle an identifier, and check that the result matches a pattern.
-###
-### TEST should be of the form "STYLE: NAME", where STYLE is the name
-### of a demangling style (like "gnu" or "arm"), and NAME is a mangled
-### identifier to demangle. Pass when the result matches the regular
-### expression RESULT. Report passes and fails using TEST as the name
-### of the test.
-###
-### Why don't we just pass the STYLE and NAME as two separate
-### arguments, or let the style be a global variable? That would be
-### cleaner. However, doing it this way means that:
-###
-### 1) the name of the test, as recorded in the summary and log,
-### appears verbatim in the script, and
-###
-### 2) that test names are unique, even though we try to demangle the same
-### identifiers using several different mangling styles.
-###
-### This makes it a lot easier for people tracking down failures to
-### find the one they care about.
-
-proc test_demangling {test result} {
- test_demangling_core gdb_test $test $result
-}
-
-### Like test_demangling, above, except that RESULT is not a regexp,
-### but a string that must match exactly.
-
-proc test_demangling_exact {test result} {
- test_demangling_core gdb_test_exact $test $result
-}
-
-
-
-#
-# Test gnu style name demangling
-#
-
-proc test_gnu_style_demangling {} {
- global gdb_prompt
-
- test_demangling "gnu: Abort__FP6EditoriPCc" \
- "Abort\[(\]+Editor \[*\]+, int, (const char|char const) \[*\]+\[)\]+"
- test_demangling_exact "gnu: AddAlignment__9ivTSolverUiP12ivInteractorP7ivTGlue" "ivTSolver::AddAlignment(unsigned int, ivInteractor *, ivTGlue *)"
- test_demangling "gnu: Append__15NameChooserViewPCc" \
- "NameChooserView::Append\[(\]+(const char|char const) \[*\]+\[)\]+"
- test_demangling_exact "gnu: ArrowheadIntersects__9ArrowLineP9ArrowheadR6BoxObjP7Graphic" "ArrowLine::ArrowheadIntersects(Arrowhead *, BoxObj &, Graphic *)"
- test_demangling_exact "gnu: AtEnd__13ivRubberGroup" "ivRubberGroup::AtEnd(void)"
- test_demangling_exact "gnu: BgFilter__9ivTSolverP12ivInteractor" "ivTSolver::BgFilter(ivInteractor *)"
- test_demangling "gnu: BitPatterntoa__FRC10BitPatternccc" \
- "BitPatterntoa\[(\]+(const BitPattern|BitPattern const) &, char, char, char\[)\]+"
- test_demangling_exact "gnu: Check__6UArrayi" "UArray::Check(int)"
- test_demangling_exact "gnu: CoreConstDecls__8TextCodeR7ostream" "TextCode::CoreConstDecls(ostream &)"
- test_demangling_exact "gnu: Detach__8StateVarP12StateVarView" "StateVar::Detach(StateVarView *)"
- test_demangling_exact "gnu: Done__9ComponentG8Iterator" "Component::Done(Iterator)"
- test_demangling "gnu: DrawDestinationTransformedImage__FP7_XImageiiT0iiUlUiiiUiUlUlP4_XGCRC13ivTransformeriiii" \
- "DrawDestinationTransformedImage\[(\]+_XImage \[*\]+, int, int, _XImage \[*\]+, int, int, unsigned long, unsigned int, int, int, unsigned int, unsigned long, unsigned long, _XGC \[*\]+, (const ivTransformer|ivTransformer const) &, int, int, int, int\[)\]+"
-
- test_demangling "gnu: Edit__12StringEditorPCcii" \
- "StringEditor::Edit\[(\]+(const char|char const) \[*\]+, int, int\[)\]+"
- test_demangling_exact "gnu: Effect__11RelateManipR7ivEvent" "RelateManip::Effect(ivEvent &)"
- test_demangling "gnu: FilterName__FPCc" \
- "FilterName\[(\]+(const char|char const) \[*\]+\[)\]+"
- test_demangling "gnu: Filter__6PSTextPCci" \
- "PSText::Filter\[(\]+(const char|char const) \[*\]+, int\[)\]+"
- test_demangling "gnu: FindColor__7CatalogPCciii" \
- "Catalog::FindColor\[(\]+(const char|char const) \[*\]+, int, int, int\[)\]+"
- test_demangling_exact "gnu: FindFixed__FRP4CNetP4CNet" "FindFixed(CNet *&, CNet *)"
- test_demangling "gnu: FindFont__7CatalogPCcN21" \
- "Catalog::FindFont\[(\]+(const char|char const) \[*\]+, (const char|char const) \[*\]+, (const char|char const) \[*\]+\[)\]+"
- test_demangling_exact "gnu: Fix48_abort__FR8twolongs" "Fix48_abort(twolongs &)"
- test_demangling_exact "gnu: GetBarInfo__15iv2_6_VScrollerP13ivPerspectiveRiT2" "iv2_6_VScroller::GetBarInfo(ivPerspective *, int &, int &)"
- test_demangling_exact "gnu: GetBgColor__C9ivPainter" "ivPainter::GetBgColor(void) const"
-
- test_demangling "gnu: Iisdouble__FPC6IntRep" \
- "Iisdouble\[(\]+(const IntRep|IntRep const) \[*\]+\[)\]+"
- test_demangling_exact "gnu: InsertBody__15H_PullrightMenuii" "H_PullrightMenu::InsertBody(int, int)"
- test_demangling_exact "gnu: InsertCharacter__9TextManipc" "TextManip::InsertCharacter(char)"
-
- test_demangling_exact "gnu: InsertToplevel__7ivWorldP12ivInteractorT1" "ivWorld::InsertToplevel(ivInteractor *, ivInteractor *)"
- test_demangling_exact "gnu: InsertToplevel__7ivWorldP12ivInteractorT1iiUi" "ivWorld::InsertToplevel(ivInteractor *, ivInteractor *, int, int, unsigned int)"
- test_demangling "gnu: IsADirectory__FPCcR4stat" \
- "IsADirectory\[(\]+(const char|char const) \[*\]+, stat &\[)\]+"
- test_demangling_exact "gnu: IsAGroup__FP11GraphicViewP11GraphicComp" "IsAGroup(GraphicView *, GraphicComp *)"
- test_demangling_exact "gnu: IsA__10ButtonCodeUl" "ButtonCode::IsA(unsigned long)"
-
- test_demangling_exact "gnu: ReadName__FR7istreamPc" "ReadName(istream &, char *)"
- test_demangling_exact "gnu: Redraw__13StringBrowseriiii" "StringBrowser::Redraw(int, int, int, int)"
- test_demangling_exact "gnu: Rotate__13ivTransformerf" "ivTransformer::Rotate(float)"
- test_demangling_exact "gnu: Rotated__C13ivTransformerf" "ivTransformer::Rotated(float) const"
- test_demangling_exact "gnu: Round__Ff" "Round(float)"
-
- test_demangling_exact "gnu: SetExport__16MemberSharedNameUi" "MemberSharedName::SetExport(unsigned int)"
- test_demangling_exact "gnu: Set__14ivControlState13ControlStatusUi" "ivControlState::Set(ControlStatus, unsigned int)"
- test_demangling_exact "gnu: Set__5DFacePcii" "DFace::Set(char *, int, int)"
-
- test_demangling_exact "gnu: VConvert__9ivTSolverP12ivInteractorRP8TElementT2" "ivTSolver::VConvert(ivInteractor *, TElement *&, TElement *&)"
- test_demangling_exact "gnu: VConvert__9ivTSolverP7ivTGlueRP8TElement" "ivTSolver::VConvert(ivTGlue *, TElement *&)"
- test_demangling_exact "gnu: VOrder__9ivTSolverUiRP12ivInteractorT2" "ivTSolver::VOrder(unsigned int, ivInteractor *&, ivInteractor *&)"
- test_demangling "gnu: Valid__7CatalogPCcRP4Tool" \
- "Catalog::Valid\[(\]+(const char|char const) \[*\]+, Tool \[*\]+&\[)\]+"
- test_demangling_exact "gnu: _10PageButton\$__both" "PageButton::__both"
- test_demangling_exact "gnu: _3RNG\$singleMantissa" "RNG::singleMantissa"
- test_demangling_exact "gnu: _5IComp\$_release" "IComp::_release"
- test_demangling_exact "gnu: _\$_10BitmapComp" "BitmapComp::~BitmapComp(void)"
-
- test_demangling_exact "gnu: _\$_9__io_defs" "__io_defs::~__io_defs(void)"
- test_demangling_exact "gnu: _\$_Q23foo3bar" "foo::bar::~bar(void)"
- test_demangling_exact "gnu: _\$_Q33foo3bar4bell" "foo::bar::bell::~bell(void)"
- test_demangling_exact "gnu: __10ivTelltaleiP7ivGlyph" "ivTelltale::ivTelltale(int, ivGlyph *)"
- test_demangling_exact "gnu: __10ivViewportiP12ivInteractorUi" "ivViewport::ivViewport(int, ivInteractor *, unsigned int)"
- test_demangling_exact "gnu: __10ostrstream" "ostrstream::ostrstream(void)"
- test_demangling_exact "gnu: __10ostrstreamPcii" "ostrstream::ostrstream(char *, int, int)"
- test_demangling "gnu: __11BasicDialogiPCcP13ivButtonStateN22Ui" \
- "BasicDialog::BasicDialog\[(\]+int, (const char|char const) \[*\]+, ivButtonState \[*\]+, (const char|char const) \[*\]+, (const char|char const) \[*\]+, unsigned int\[)\]+"
- test_demangling_exact "gnu: __11BitmapTablei" "BitmapTable::BitmapTable(int)"
- test_demangling_exact "gnu: __12ViewportCodeP12ViewportComp" "ViewportCode::ViewportCode(ViewportComp *)"
- test_demangling "gnu: __12iv2_6_BorderiPCci" \
- "iv2_6_Border::iv2_6_Border\[(\]+int, (const char|char const) \[*\]+, int\[)\]+"
- test_demangling_exact "gnu: __12iv2_6_Borderii" "iv2_6_Border::iv2_6_Border(int, int)"
- test_demangling "gnu: __12ivBackgroundiP7ivGlyphPC7ivColor" \
- "ivBackground::ivBackground\[(\]+int, ivGlyph \[*\]+, (const ivColor|ivColor const) \[*\]+\[)\]+"
- test_demangling_exact "gnu: __12ivBreak_Listl" "ivBreak_List::ivBreak_List(long)"
- test_demangling "gnu: __14TextInteractoriPCcUi" \
- "TextInteractor::TextInteractor\[(\]+int, (const char|char const) \[*\]+, unsigned int\[)\]+"
- test_demangling_exact "gnu: __14iv2_6_MenuItemiP12ivInteractor" "iv2_6_MenuItem::iv2_6_MenuItem(int, ivInteractor *)"
- test_demangling "gnu: __14iv2_6_MenuItemiPCcP12ivInteractor" \
- "iv2_6_MenuItem::iv2_6_MenuItem\[(\]+int, (const char|char const) \[*\]+, ivInteractor \[*\]+\[)\]+"
-
- test_demangling_exact "gnu: __20DisplayList_IteratorR11DisplayList" "DisplayList_Iterator::DisplayList_Iterator(DisplayList &)"
- test_demangling_exact "gnu: __3fooRT0" "foo::foo(foo &)"
- test_demangling_exact "gnu: __3fooiN31" "foo::foo(int, int, int, int)"
- test_demangling "gnu: __3fooiPCc" \
- "foo::foo\[(\]+int, (const char|char const) \[*\]+\[)\]+"
- test_demangling_exact "gnu: __3fooiRT0iT2iT2" "foo::foo(int, foo &, int, foo &, int, foo &)"
- test_demangling "gnu: __6GetOptiPPcPCc" \
- "GetOpt::GetOpt\[(\]+int, char \[*\]+\[*\]+, (const char|char const) \[*\]+\[)\]+"
- test_demangling_exact "gnu: __6KeyMapPT0" "KeyMap::KeyMap(KeyMap *)"
- test_demangling "gnu: __7ivWorldPCcRiPPcPC12ivOptionDescPC14ivPropertyData" \
- "ivWorld::ivWorld\[(\]+(const char|char const) \[*\]+, int &, char \[*\]+\[*\]+, (const ivOptionDesc|ivOptionDesc const) \[*\]+, (const ivPropertyData|ivPropertyData const) \[*\]+\[)\]+"
- test_demangling "gnu: __7procbufPCci" \
- "procbuf::procbuf\[(\]+(const char|char const) \[*\]+, int\[)\]+"
- test_demangling_exact "gnu: __8ArrowCmdP6EditorUiUi" "ArrowCmd::ArrowCmd(Editor *, unsigned int, unsigned int)"
-
- test_demangling_exact "gnu: __9F_EllipseiiiiP7Graphic" "F_Ellipse::F_Ellipse(int, int, int, int, Graphic *)"
- test_demangling_exact "gnu: __9FrameDataP9FrameCompi" "FrameData::FrameData(FrameComp *, int)"
- test_demangling_exact "gnu: __9HVGraphicP9CanvasVarP7Graphic" "HVGraphic::HVGraphic(CanvasVar *, Graphic *)"
- test_demangling_exact "gnu: __Q23foo3bar" "foo::bar::bar(void)"
- test_demangling_exact "gnu: __Q33foo3bar4bell" "foo::bar::bell::bell(void)"
- test_demangling_exact "gnu: __aa__3fooRT0" "foo::operator&&(foo &)"
- test_demangling_exact "gnu: __aad__3fooRT0" "foo::operator&=(foo &)"
- test_demangling_exact "gnu: __ad__3fooRT0" "foo::operator&(foo &)"
- test_demangling_exact "gnu: __adv__3fooRT0" "foo::operator/=(foo &)"
- test_demangling_exact "gnu: __aer__3fooRT0" "foo::operator^=(foo &)"
- test_demangling_exact "gnu: __als__3fooRT0" "foo::operator<<=(foo &)"
- test_demangling_exact "gnu: __amd__3fooRT0" "foo::operator%=(foo &)"
- test_demangling_exact "gnu: __ami__3fooRT0" "foo::operator-=(foo &)"
- test_demangling_exact "gnu: __aml__3FixRT0" "Fix::operator*=(Fix &)"
- test_demangling_exact "gnu: __aml__5Fix16i" "Fix16::operator*=(int)"
- test_demangling_exact "gnu: __aml__5Fix32RT0" "Fix32::operator*=(Fix32 &)"
- test_demangling_exact "gnu: __aor__3fooRT0" "foo::operator|=(foo &)"
- test_demangling_exact "gnu: __apl__3fooRT0" "foo::operator+=(foo &)"
- test_demangling_exact "gnu: __ars__3fooRT0" "foo::operator>>=(foo &)"
-
- test_demangling_exact "gnu: __as__3fooRT0" "foo::operator=(foo &)"
- test_demangling_exact "gnu: __cl__3fooRT0" "foo::operator()(foo &)"
- test_demangling_exact "gnu: __cl__6Normal" "Normal::operator()(void)"
- test_demangling_exact "gnu: __cl__6Stringii" "String::operator()(int, int)"
- test_demangling_exact "gnu: __cm__3fooRT0" "foo::operator, (foo &)"
- test_demangling_exact "gnu: __co__3foo" "foo::operator~(void)"
- test_demangling_exact "gnu: __dl__3fooPv" "foo::operator delete(void *)"
- test_demangling_exact "gnu: __dv__3fooRT0" "foo::operator/(foo &)"
- test_demangling_exact "gnu: __eq__3fooRT0" "foo::operator==(foo &)"
- test_demangling_exact "gnu: __er__3fooRT0" "foo::operator^(foo &)"
- test_demangling_exact "gnu: __ge__3fooRT0" "foo::operator>=(foo &)"
- test_demangling_exact "gnu: __gt__3fooRT0" "foo::operator>(foo &)"
- test_demangling_exact "gnu: __le__3fooRT0" "foo::operator<=(foo &)"
- test_demangling_exact "gnu: __ls__3fooRT0" "foo::operator<<(foo &)"
- test_demangling_exact "gnu: __ls__FR7ostreamPFR3ios_R3ios" "operator<<(ostream &, ios &(*)(ios &))"
- test_demangling_exact "gnu: __ls__FR7ostreamR3Fix" "operator<<(ostream &, Fix &)"
- test_demangling_exact "gnu: __lt__3fooRT0" "foo::operator<(foo &)"
- test_demangling_exact "gnu: __md__3fooRT0" "foo::operator%(foo &)"
- test_demangling_exact "gnu: __mi__3fooRT0" "foo::operator-(foo &)"
- test_demangling_exact "gnu: __ml__3fooRT0" "foo::operator*(foo &)"
- test_demangling_exact "gnu: __mm__3fooi" "foo::operator--(int)"
-
- test_demangling_exact "gnu: __ne__3fooRT0" "foo::operator!=(foo &)"
- test_demangling "gnu: __ne__FRC7ComplexT0" \
- "operator!=\[(\]+(const Complex|Complex const) &, (const Complex|Complex const) &\[)\]+"
- test_demangling "gnu: __ne__FRC7Complexd" \
- "operator!=\[(\]+(const Complex|Complex const) &, double\[)\]+"
- test_demangling "gnu: __ne__FRC9SubStringRC6String" \
- "operator!=\[(\]+(const SubString|SubString const) &, (const String|String const) &\[)\]+"
- test_demangling_exact "gnu: __nt__3foo" "foo::operator!(void)"
- test_demangling_exact "gnu: __nw__3fooi" "foo::operator new(int)"
- test_demangling_exact "gnu: __oo__3fooRT0" "foo::operator||(foo &)"
- test_demangling_exact "gnu: __opPc__3foo" "foo::operator char *(void)"
- test_demangling_exact "gnu: __opi__3foo" "foo::operator int(void)"
- test_demangling_exact "gnu: __or__3fooRT0" "foo::operator|(foo &)"
- test_demangling_exact "gnu: __pl__3fooRT0" "foo::operator+(foo &)"
- test_demangling_exact "gnu: __pp__3fooi" "foo::operator++(int)"
- test_demangling_exact "gnu: __rf__3foo" "foo::operator->(void)"
- test_demangling_exact "gnu: __rm__3fooRT0" "foo::operator->*(foo &)"
- test_demangling_exact "gnu: __rs__3fooRT0" "foo::operator>>(foo &)"
- test_demangling "gnu: __vc__3fooRT0" "foo::operator\\\[\\\]\\(foo &\\)"
- test_demangling "gnu: _gsub__6StringRC5RegexPCci" \
- "String::_gsub\[(\]+(const Regex|Regex const) &, (const char|char const) \[*\]+, int\[)\]+"
- test_demangling_exact "gnu: _new_Fix__FUs" "_new_Fix(unsigned short)"
-
- # gcc 2.4.5 (and earlier) style virtual tables. We want to continue to
- # correctly demangle these even if newer compilers use a different form.
- test_demangling_exact "gnu: _vt.foo" "foo virtual table"
- test_demangling_exact "gnu: _vt.foo.bar" "foo::bar virtual table"
- test_demangling_exact "gnu: _vt\$foo" "foo virtual table"
- test_demangling_exact "gnu: _vt\$foo\$bar" "foo::bar virtual table"
-
- test_demangling_exact "gnu: append__7ivGlyphPT0" "ivGlyph::append(ivGlyph *)"
- test_demangling "gnu: arg__FRC7Complex" \
- "arg\[(\]+(const Complex|Complex const) &\[)\]+"
- test_demangling_exact "gnu: clearok__FP7_win_sti" "clearok(_win_st *, int)"
-
- test_demangling_exact "gnu: complexfunc2__FPFPc_i" "complexfunc2(int (*)(char *))"
- test_demangling_exact "gnu: complexfunc3__FPFPFPl_s_i" "complexfunc3(int (*)(short (*)(long *)))"
- test_demangling_exact "gnu: complexfunc4__FPFPFPc_s_i" "complexfunc4(int (*)(short (*)(char *)))"
- test_demangling_exact "gnu: complexfunc5__FPFPc_PFl_i" "complexfunc5(int (*(*)(char *))(long))"
- test_demangling_exact "gnu: complexfunc6__FPFPi_PFl_i" "complexfunc6(int (*(*)(int *))(long))"
- test_demangling_exact "gnu: complexfunc7__FPFPFPc_i_PFl_i" "complexfunc7(int (*(*)(int (*)(char *)))(long))"
- test_demangling "gnu: contains__C9BitStringRC10BitPattern" \
- "BitString::contains\[(\]+(const BitPattern|BitPattern const) &\[)\]+ const"
- test_demangling "gnu: contains__C9BitStringRC12BitSubStringi" \
- "BitString::contains\[(\]+(const BitSubString|BitSubString const) &, int\[)\]+ const"
- test_demangling "gnu: contains__C9BitStringRT0" \
- "BitString::contains\[(\]+(const BitString|BitString const) &\[)\]+ const"
- test_demangling "gnu: div__FPC6IntRepT0P6IntRep" \
- "div\[(\]+(const IntRep|IntRep const) \[*\]+, (const IntRep|IntRep const) \[*\]+, IntRep \[*\]+\[)\]+"
- test_demangling "gnu: div__FPC6IntReplP6IntRep" \
- "div\[(\]+(const IntRep|IntRep const) \[*\]+, long, IntRep \[*\]+\[)\]+"
- test_demangling "gnu: div__FRC8RationalT0R8Rational" \
- "div\[(\]+(const Rational|Rational const) &, (const Rational|Rational const) &, Rational &\[)\]+"
- test_demangling "gnu: divide__FRC7IntegerT0R7IntegerT2" \
- "divide\[(\]+(const Integer|Integer const) &, (const Integer|Integer const) &, Integer &, Integer &\[)\]+"
- test_demangling "gnu: divide__FRC7IntegerlR7IntegerRl" \
- "divide\[(\]+(const Integer|Integer const) &, long, Integer &, long &\[)\]+"
- test_demangling "gnu: enable__14DocumentViewerPCcUi" \
- "DocumentViewer::enable\[(\]+(const char|char const) \[*\]+, unsigned int\[)\]+"
-
- test_demangling_exact "gnu: foo__FiN30" "foo(int, int, int, int)"
- test_demangling_exact "gnu: foo__FiR3fooiT1iT1" "foo(int, foo &, int, foo &, int, foo &)"
- test_demangling_exact "gnu: foo___3barl" "bar::foo_(long)"
- test_demangling_exact "gnu: insert__15ivClippingStacklRP8_XRegion" "ivClippingStack::insert(long, _XRegion *&)"
- test_demangling_exact "gnu: insert__16ChooserInfo_ListlR11ChooserInfo" "ChooserInfo_List::insert(long, ChooserInfo &)"
- test_demangling_exact "gnu: insert__17FontFamilyRepListlRP15ivFontFamilyRep" "FontFamilyRepList::insert(long, ivFontFamilyRep *&)"
- test_demangling_exact "gnu: leaveok__FP7_win_stc" "leaveok(_win_st *, char)"
- test_demangling_exact "gnu: left_mover__C7ivMFKitP12ivAdjustableP7ivStyle" "ivMFKit::left_mover(ivAdjustable *, ivStyle *) const"
- test_demangling "gnu: matches__C9BitStringRC10BitPatterni" \
- "BitString::matches\[(\]+(const BitPattern|BitPattern const) &, int\[)\]+ const"
- test_demangling "gnu: matches__C9SubStringRC5Regex" \
- "SubString::matches\[(\]+(const Regex|Regex const) &\[)\]+ const"
-
- test_demangling_exact "gnu: overload1arg__FSc" "overload1arg(signed char)"
- test_demangling_exact "gnu: overload1arg__FUc" "overload1arg(unsigned char)"
- test_demangling_exact "gnu: overload1arg__FUi" "overload1arg(unsigned int)"
- test_demangling_exact "gnu: overload1arg__FUl" "overload1arg(unsigned long)"
- test_demangling_exact "gnu: overload1arg__FUs" "overload1arg(unsigned short)"
- test_demangling_exact "gnu: overload1arg__Fc" "overload1arg(char)"
- test_demangling_exact "gnu: overload1arg__Fd" "overload1arg(double)"
- test_demangling_exact "gnu: overload1arg__Ff" "overload1arg(float)"
- test_demangling_exact "gnu: overload1arg__Fi" "overload1arg(int)"
- test_demangling_exact "gnu: overload1arg__Fl" "overload1arg(long)"
- test_demangling_exact "gnu: overload1arg__Fs" "overload1arg(short)"
- test_demangling_exact "gnu: overload1arg__Fv" "overload1arg(void)"
- test_demangling_exact "gnu: overloadargs__Fi" "overloadargs(int)"
- test_demangling_exact "gnu: overloadargs__Fii" "overloadargs(int, int)"
- test_demangling_exact "gnu: overloadargs__Fiii" "overloadargs(int, int, int)"
- test_demangling_exact "gnu: overloadargs__Fiiii" "overloadargs(int, int, int, int)"
-
- test_demangling_exact "gnu: overloadargs__Fiiiii" "overloadargs(int, int, int, int, int)"
- test_demangling_exact "gnu: overloadargs__Fiiiiii" "overloadargs(int, int, int, int, int, int)"
- test_demangling_exact "gnu: overloadargs__Fiiiiiii" "overloadargs(int, int, int, int, int, int, int)"
- test_demangling_exact "gnu: overloadargs__Fiiiiiiii" "overloadargs(int, int, int, int, int, int, int, int)"
- test_demangling_exact "gnu: overloadargs__Fiiiiiiiii" "overloadargs(int, int, int, int, int, int, int, int, int)"
- test_demangling_exact "gnu: overloadargs__Fiiiiiiiiii" "overloadargs(int, int, int, int, int, int, int, int, int, int)"
- test_demangling_exact "gnu: overloadargs__Fiiiiiiiiiii" "overloadargs(int, int, int, int, int, int, int, int, int, int, int)"
- test_demangling "gnu: pick__13ivCompositionP8ivCanvasRC12ivAllocationiR5ivHit" \
- "ivComposition::pick\[(\]+ivCanvas \[*\]+, (const ivAllocation|ivAllocation const) &, int, ivHit &\[)\]+"
- test_demangling "gnu: pointer__C11ivHScrollerRC7ivEventRC12ivAllocation" \
- "ivHScroller::pointer\[(\]+(const ivEvent|ivEvent const) &, (const ivAllocation|ivAllocation const) &\[)\]+ const"
- test_demangling_exact "gnu: poke__8ivRasterUlUlffff" "ivRaster::poke(unsigned long, unsigned long, float, float, float, float)"
- test_demangling_exact "gnu: polar__Fdd" "polar(double, double)"
- test_demangling "gnu: read__10osStdInputRPCc" \
- "osStdInput::read\[(\]+(const char|char const) \[*\]+&\[)\]+"
-
- test_demangling_exact "gnu: scale__13ivTransformerff" "ivTransformer::scale(float, float)"
- test_demangling "gnu: scanw__12CursesWindowPCce" \
- "CursesWindow::scanw\[(\]+(const char|char const) \[*\]+,...\[)\]+"
- test_demangling "gnu: scmp__FPCcT0" \
- "scmp\[(\]+(const char|char const) \[*\]+, (const char|char const) \[*\]+\[)\]+"
- test_demangling_exact "gnu: sgetn__7filebufPci" "filebuf::sgetn(char *, int)"
- test_demangling_exact "gnu: shift__FP5_FrepiT0" "shift(_Frep *, int, _Frep *)"
- test_demangling_exact "gnu: test__C6BitSeti" "BitSet::test(int) const"
- test_demangling_exact "gnu: test__C6BitSetii" "BitSet::test(int, int) const"
- test_demangling "gnu: testbit__FRC7Integerl" \
- "testbit\[(\]+(const Integer|Integer const) &, long\[)\]+"
- test_demangling_exact "gnu: text_source__8Documentl" "Document::text_source(long)"
- test_demangling_exact "gnu: variance__6Erlangd" "Erlang::variance(double)"
- test_demangling "gnu: vform__8iostreamPCcPc" \
- "iostream::vform\[(\]+(const char|char const) \[*\]+, char \[*\]+\[)\]+"
- test_demangling_exact "gnu: view__14DocumentViewerP8ItemViewP11TabularItem" "DocumentViewer::view(ItemView *, TabularItem *)"
- test_demangling_exact "gnu: xy_extents__11ivExtensionffff" "ivExtension::xy_extents(float, float, float, float)"
- test_demangling_exact "gnu: zero__8osMemoryPvUi" "osMemory::zero(void *, unsigned int)"
- test_demangling_exact "gnu: _2T4\$N" "T4::N"
- test_demangling_exact "gnu: _Q22T42t1\$N" "T4::t1::N"
- test_demangling_exact "gnu: get__2T1" "T1::get(void)"
- test_demangling_exact "gnu: get__Q22T11a" "T1::a::get(void)"
- test_demangling_exact "gnu: get__Q32T11a1b" "T1::a::b::get(void)"
- test_demangling_exact "gnu: get__Q42T11a1b1c" "T1::a::b::c::get(void)"
- test_demangling_exact "gnu: get__Q52T11a1b1c1d" "T1::a::b::c::d::get(void)"
- test_demangling_exact "gnu: put__2T1i" "T1::put(int)"
- test_demangling_exact "gnu: put__Q22T11ai" "T1::a::put(int)"
- test_demangling_exact "gnu: put__Q32T11a1bi" "T1::a::b::put(int)"
- test_demangling_exact "gnu: put__Q42T11a1b1ci" "T1::a::b::c::put(int)"
- test_demangling_exact "gnu: put__Q52T11a1b1c1di" "T1::a::b::c::d::put(int)"
-
- test_demangling_exact "gnu: bar__3fooPv" "foo::bar(void *)"
- test_demangling "gnu: bar__3fooPCv" \
- "foo::bar\[(\]+(const void|void const) *\[*\]+\[)\]+"
- test_demangling_exact "gnu: bar__C3fooPv" "foo::bar(void *) const"
- test_demangling "gnu: bar__C3fooPCv" \
- "foo::bar\[(\]+(const void|void const) *\[*\]+\[)\]+ const"
- test_demangling_exact "gnu: __eq__3fooRT0" "foo::operator==(foo &)"
- test_demangling "gnu: __eq__3fooRC3foo" \
- "foo::operator==\[(\]+(const foo|foo const) &\[)\]+"
- test_demangling_exact "gnu: __eq__C3fooR3foo" "foo::operator==(foo &) const"
- test_demangling "gnu: __eq__C3fooRT0" \
- "foo::operator==\[(\]+(const foo|foo const) &\[)\]+ const"
-
- test_demangling_exact "gnu: elem__t6vector1Zdi" "vector::elem(int)"
- test_demangling_exact "gnu: elem__t6vector1Zii" "vector::elem(int)"
- test_demangling_exact "gnu: __t6vector1Zdi" "vector::vector(int)"
- test_demangling_exact "gnu: __t6vector1Zii" "vector::vector(int)"
- test_demangling_exact "gnu: _\$_t6vector1Zdi" "vector::~vector(int)"
- test_demangling_exact "gnu: _\$_t6vector1Zii" "vector::~vector(int)"
-
- test_demangling_exact "gnu: __nw__t2T11ZcUi" "T1::operator new(unsigned int)"
- test_demangling_exact "gnu: __nw__t2T11Z1tUi" "T1::operator new(unsigned int)"
- test_demangling_exact "gnu: __dl__t2T11ZcPv" "T1::operator delete(void *)"
- test_demangling_exact "gnu: __dl__t2T11Z1tPv" "T1::operator delete(void *)"
- test_demangling_exact "gnu: __t2T11Zci" "T1::T1(int)"
- test_demangling_exact "gnu: __t2T11Zc" "T1::T1(void)"
- test_demangling_exact "gnu: __t2T11Z1ti" "T1::T1(int)"
- test_demangling_exact "gnu: __t2T11Z1t" "T1::T1(void)"
-
- test_demangling_exact "gnu: __Q2t4List1Z10VHDLEntity3Pix" \
- "List::Pix::Pix(void)"
-
- test_demangling_exact "gnu: __Q2t4List1Z10VHDLEntity3PixPQ2t4List1Z10VHDLEntity7element" \
- "List::Pix::Pix(List::element *)"
-
- test_demangling_exact "gnu: __Q2t4List1Z10VHDLEntity3PixRCQ2t4List1Z10VHDLEntity3Pix" \
- "List::Pix::Pix(List::Pix const &)"
-
- test_demangling_exact "gnu: __Q2t4List1Z10VHDLEntity7elementRC10VHDLEntityPT0" \
- "List::element::element(VHDLEntity const &, List::element *)"
-
- test_demangling_exact "gnu: __Q2t4List1Z10VHDLEntity7elementRCQ2t4List1Z10VHDLEntity7element" \
- "List::element::element(List::element const &)"
-
- test_demangling_exact "gnu: __cl__C11VHDLLibraryGt4PixX3Z11VHDLLibraryZ14VHDLLibraryRepZt4List1Z10VHDLEntity" \
- "VHDLLibrary::operator()(PixX >) const"
-
- test_demangling_exact "gnu: __cl__Ct4List1Z10VHDLEntityRCQ2t4List1Z10VHDLEntity3Pix" \
- "List::operator()(List::Pix const &) const"
-
- test_demangling_exact "gnu: __ne__FPvRCQ2t4List1Z10VHDLEntity3Pix" \
- "operator!=(void *, List::Pix const &)"
-
- test_demangling_exact "gnu: __ne__FPvRCt4PixX3Z11VHDLLibraryZ14VHDLLibraryRepZt4List1Z10VHDLEntity" \
- "operator!=(void *, PixX > const &)"
-
- test_demangling_exact "gnu: __t4List1Z10VHDLEntityRCt4List1Z10VHDLEntity" \
- "List::List(List const &)"
-
- test_demangling_exact "gnu: __t4PixX3Z11VHDLLibraryZ14VHDLLibraryRepZt4List1Z10VHDLEntity" \
- "PixX >::PixX(void)"
-
- test_demangling_exact "gnu: __t4PixX3Z11VHDLLibraryZ14VHDLLibraryRepZt4List1Z10VHDLEntityP14VHDLLibraryRepGQ2t4List1Z10VHDLEntity3Pix" \
- "PixX >::PixX(VHDLLibraryRep *, List::Pix)"
-
- test_demangling_exact "gnu: __t4PixX3Z11VHDLLibraryZ14VHDLLibraryRepZt4List1Z10VHDLEntityRCt4PixX3Z11VHDLLibraryZ14VHDLLibraryRepZt4List1Z10VHDLEntity" \
- "PixX >::PixX(PixX > const &)"
-
- test_demangling_exact "gnu: nextE__C11VHDLLibraryRt4PixX3Z11VHDLLibraryZ14VHDLLibraryRepZt4List1Z10VHDLEntity" \
- "VHDLLibrary::nextE(PixX > &) const"
-
- test_demangling_exact "gnu: next__Ct4List1Z10VHDLEntityRQ2t4List1Z10VHDLEntity3Pix" \
- "List::next(List::Pix &) const"
-
- test_demangling_exact "gnu: _GLOBAL_\$D\$set" "global destructors keyed to set"
-
- test_demangling_exact "gnu: _GLOBAL_\$I\$set" "global constructors keyed to set"
-
- test_demangling_exact "gnu: __as__t5ListS1ZUiRCt5ListS1ZUi" \
- "ListS::operator=(ListS const &)"
-
- test_demangling_exact "gnu: __cl__Ct5ListS1ZUiRCQ2t5ListS1ZUi3Vix" \
- "ListS::operator()(ListS::Vix const &) const"
-
- test_demangling_exact "gnu: __cl__Ct5SetLS1ZUiRCQ2t5SetLS1ZUi3Vix" \
- "SetLS::operator()(SetLS::Vix const &) const"
-
- test_demangling_exact "gnu: __t10ListS_link1ZUiRCUiPT0" \
- "ListS_link::ListS_link(unsigned int const &, ListS_link *)"
-
- test_demangling_exact "gnu: __t10ListS_link1ZUiRCt10ListS_link1ZUi" \
- "ListS_link::ListS_link(ListS_link const &)"
-
- test_demangling_exact "gnu: __t5ListS1ZUiRCt5ListS1ZUi" \
- "ListS::ListS(ListS const &)"
-
- test_demangling_exact "gnu: next__Ct5ListS1ZUiRQ2t5ListS1ZUi3Vix" \
- "ListS::next(ListS::Vix &) const"
-
- test_demangling_exact "gnu: __ne__FPvRCQ2t5SetLS1ZUi3Vix" \
- "operator!=(void *, SetLS::Vix const &)"
- test_demangling_exact "gnu: __t8ListElem1Z5LabelRt4List1Z5Label" \
- "ListElem
rtti.h
Property changes :
Deleted: svn:eol-style
## -1 +0,0 ##
-native
\ No newline at end of property
Deleted: svn:keywords
## -1 +0,0 ##
-Id
\ No newline at end of property
Index: cplusfuncs.cc
===================================================================
--- cplusfuncs.cc (revision 816)
+++ cplusfuncs.cc (nonexistent)
@@ -1,196 +0,0 @@
-#include
-
-class foo {
-public:
- foo (int);
- foo (int, const char *);
- foo (foo&);
- ~foo ();
-
- void operator * (foo&);
- void operator % (foo&);
- void operator - (foo&);
- void operator >> (foo&);
- void operator != (foo&);
- void operator > (foo&);
- void operator >= (foo&);
- void operator | (foo&);
- void operator && (foo&);
- void operator ! (void);
- void operator ++ (int);
- void operator = (foo&);
- void operator += (foo&);
- void operator *= (foo&);
- void operator %= (foo&);
- void operator >>= (foo&);
- void operator |= (foo&);
- void operator , (foo&);
- void operator / (foo&);
- void operator + (foo&);
- void operator << (foo&);
- void operator == (foo&);
- void operator < (foo&);
- void operator <= (foo&);
- void operator & (foo&);
- void operator ^ (foo&);
- void operator || (foo&);
- void operator ~ (void);
- void operator -- (int);
- foo* operator -> (void);
- void operator -= (foo&);
- void operator /= (foo&);
- void operator <<= (foo&);
- void operator &= (foo&);
- void operator ^= (foo&);
- void operator ->* (foo&);
- void operator [] (foo&);
- void operator () (foo&);
- void* operator new (size_t) throw ();
- void operator delete (void *);
- /**/ operator int ();
- /**/ operator char* ();
-
- int foofunc (int); // forced to have int return type, which is required
- int foofunc (int, signed char *); // forced to have int return type, which is required
- int ifoo;
- const char *ccpfoo;
-};
-
-#ifdef usestubs
-extern "C" {
- void set_debug_traps();
- void breakpoint();
-};
-#endif
-
-int main () {
-#ifdef usestubs
- set_debug_traps();
- breakpoint();
-#endif
- int z=3;
-}
-
-foo::foo (int i) { ifoo = i;}
-foo::foo (int i, const char *ccp) { ifoo = i; ccpfoo = ccp; }
-foo::foo (foo& afoo) { afoo.ifoo = 0; }
-foo::~foo () {}
-
-void foo::operator * (foo& afoo) { afoo.ifoo = 0; }
-void foo::operator % (foo& afoo) { afoo.ifoo = 0; }
-void foo::operator - (foo& afoo) { afoo.ifoo = 0; }
-void foo::operator >> (foo& afoo) { afoo.ifoo = 0; }
-void foo::operator != (foo& afoo) { afoo.ifoo = 0; }
-void foo::operator > (foo& afoo) { afoo.ifoo = 0; }
-void foo::operator >= (foo& afoo) { afoo.ifoo = 0; }
-void foo::operator | (foo& afoo) { afoo.ifoo = 0; }
-void foo::operator && (foo& afoo) { afoo.ifoo = 0; }
-void foo::operator ! (void) {}
-void foo::operator ++ (int ival) { ival = 0; }
-void foo::operator = (foo& afoo) { afoo.ifoo = 0; }
-void foo::operator += (foo& afoo) { afoo.ifoo = 0; }
-void foo::operator *= (foo& afoo) { afoo.ifoo = 0; }
-void foo::operator %= (foo& afoo) { afoo.ifoo = 0; }
-void foo::operator >>= (foo& afoo) { afoo.ifoo = 0; }
-void foo::operator |= (foo& afoo) { afoo.ifoo = 0; }
-void foo::operator , (foo& afoo) { afoo.ifoo = 0; }
-void foo::operator / (foo& afoo) { afoo.ifoo = 0; }
-void foo::operator + (foo& afoo) { afoo.ifoo = 0; }
-void foo::operator << (foo& afoo) { afoo.ifoo = 0; }
-void foo::operator == (foo& afoo) { afoo.ifoo = 0; }
-void foo::operator < (foo& afoo) { afoo.ifoo = 0; }
-void foo::operator <= (foo& afoo) { afoo.ifoo = 0; }
-void foo::operator & (foo& afoo) { afoo.ifoo = 0; }
-void foo::operator ^ (foo& afoo) { afoo.ifoo = 0; }
-void foo::operator || (foo& afoo) { afoo.ifoo = 0; }
-void foo::operator ~ (void) {}
-void foo::operator -- (int ival) { ival = 0; }
-foo* foo::operator -> (void) {return this;}
-void foo::operator -= (foo& afoo) { afoo.ifoo = 0; }
-void foo::operator /= (foo& afoo) { afoo.ifoo = 0; }
-void foo::operator <<= (foo& afoo) { afoo.ifoo = 0; }
-void foo::operator &= (foo& afoo) { afoo.ifoo = 0; }
-void foo::operator ^= (foo& afoo) { afoo.ifoo = 0; }
-void foo::operator ->* (foo& afoo) { afoo.ifoo = 0; }
-void foo::operator [] (foo& afoo) { afoo.ifoo = 0; }
-void foo::operator () (foo& afoo) { afoo.ifoo = 0; }
-void* foo::operator new (size_t ival) throw () { ival = 0; return 0; }
-void foo::operator delete (void *ptr) { ptr = 0; }
-/**/ foo::operator int () { return 0; }
-/**/ foo::operator char* () { return 0; }
-
-/* Some functions to test overloading by varying one argument type. */
-
-void overload1arg (void) { }
-void overload1arg (char arg) { arg = 0; }
-void overload1arg (signed char arg) { arg = 0; }
-void overload1arg (unsigned char arg) { arg = 0; }
-void overload1arg (short arg) { arg = 0; }
-void overload1arg (unsigned short arg) { arg = 0; }
-void overload1arg (int arg) { arg = 0; }
-void overload1arg (unsigned int arg) { arg = 0; }
-void overload1arg (long arg) { arg = 0; }
-void overload1arg (unsigned long arg) { arg = 0; }
-void overload1arg (float arg) { arg = 0; }
-void overload1arg (double arg) { arg = 0; }
-
-/* Some functions to test overloading by varying argument count. */
-
-void overloadargs (int a1) { a1 = 0; }
-void overloadargs (int a1, int a2) { a1 = a2 = 0; }
-void overloadargs (int a1, int a2, int a3) { a1 = a2 = a3 = 0; }
-void overloadargs (int a1, int a2, int a3, int a4)
- { a1 = a2 = a3 = a4 = 0; }
-void overloadargs (int a1, int a2, int a3, int a4, int a5)
- { a1 = a2 = a3 = a4 = a5 = 0; }
-void overloadargs (int a1, int a2, int a3, int a4, int a5, int a6)
- { a1 = a2 = a3 = a4 = a5 = a6 = 0; }
-void overloadargs (int a1, int a2, int a3, int a4, int a5, int a6, int a7)
- { a1 = a2 = a3 = a4 = a5 = a6 = a7 = 0; }
-void overloadargs (int a1, int a2, int a3, int a4, int a5, int a6, int a7,
- int a8)
- { a1 = a2 = a3 = a4 = a5 = a6 = a7 = a8 = 0; }
-void overloadargs (int a1, int a2, int a3, int a4, int a5, int a6, int a7,
- int a8, int a9)
- { a1 = a2 = a3 = a4 = a5 = a6 = a7 = a8 = a9 = 0; }
-void overloadargs (int a1, int a2, int a3, int a4, int a5, int a6, int a7,
- int a8, int a9, int a10)
- { a1 = a2 = a3 = a4 = a5 = a6 = a7 = a8 = a9 =
- a10 = 0; }
-void overloadargs (int a1, int a2, int a3, int a4, int a5, int a6, int a7,
- int a8, int a9, int a10, int a11)
- { a1 = a2 = a3 = a4 = a5 = a6 = a7 = a8 = a9 =
- a10 = a11 == 0; }
-
-/* Some hairy function definitions.
- Use typedefs to help maintain sanity. */
-
-typedef int (*PFPc_i)(char *);
-typedef short (*PFPl_s)(long *);
-typedef short (*PFPc_s)(char *);
-typedef int (*PFl_i)(long);
-typedef PFl_i (*PFPc_PFl_i)(char *);
-typedef PFl_i (*PFPi_PFl_i)(int *);
-typedef PFl_i (*PFPFPc_i_PFl_i)(PFPc_i);
-typedef PFl_i (*PFs_PFl_i)(short);
-typedef int (*PFPFPl_s_i)(PFPl_s);
-typedef int (*PFPFPc_s_i)(PFPc_s);
-
-PFs_PFl_i hairyfunc1 (int arg) { arg = 0; return 0; }
-int hairyfunc2 (PFPc_i arg) { arg = 0; return 0; }
-int hairyfunc3 (PFPFPl_s_i arg) { arg = 0; return 0; }
-int hairyfunc4 (PFPFPc_s_i arg) { arg = 0; return 0; }
-int hairyfunc5 (PFPc_PFl_i arg) { arg = 0; return 0; }
-int hairyfunc6 (PFPi_PFl_i arg) { arg = 0; return 0; }
-int hairyfunc7 (PFPFPc_i_PFl_i arg) { arg = 0; return 0; }
-
-/* gdb has two demanglers (one for g++ 2.95, one for g++ 3).
- These marker functions help me figure out which demangler is in use. */
-
-char * dm_type_char_star (char * p) { return p; }
-int dm_type_foo_ref (foo & foo) { return foo.ifoo; }
-int * dm_type_int_star (int * p) { return p; }
-long * dm_type_long_star (long * p) { return p; }
-int dm_type_unsigned_int (unsigned int i) { return i; }
-int dm_type_void (void) { return 0; }
-void * dm_type_void_star (void * p) { return p; }
Index: ref-types.exp
===================================================================
--- ref-types.exp (revision 816)
+++ ref-types.exp (nonexistent)
@@ -1,658 +0,0 @@
-# Tests for reference types with short type variables in GDB.
-# Copyright 1998, 1999, 2000, 2004, 2007, 2008 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see .
-
-# written by Elena Zannoni (ezannoni@cygnus.com)
-
-if $tracelevel then {
- strace $tracelevel
- }
-
-#
-# test running programs
-#
-set prms_id 0
-set bug_id 0
-
-if { [skip_cplus_tests] } { continue }
-
-set testfile "ref-types"
-set srcfile ${testfile}.cc
-set binfile ${objdir}/${subdir}/${testfile}
-
-if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } {
- untested ref-types.exp
- return -1
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binfile}
-
-
-#
-# set it up at a breakpoint so we can play with the variable values
-#
-if ![runto_main] then {
- perror "couldn't run to breakpoint"
- continue
-}
-
-if ![runto 'marker1'] then {
- perror "couldn't run to marker1"
- continue
-}
-
-gdb_test "up" ".*main.*" "up from marker1 1"
-
-proc gdb_start_again {} {
- global srcdir
- global subdir
- global binfile
- global gdb_prompt
- global decimal
-
- gdb_start
- gdb_reinitialize_dir $srcdir/$subdir
- gdb_load ${binfile}
-
- #
- # set it up at a breakpoint so we can play with the variable values
- #
- if ![runto_main] then {
- perror "couldn't run to breakpoint"
- continue
- }
-
- if ![runto 'marker1'] then {
- perror "couldn't run to marker1"
- continue
- }
-
- gdb_test "up" ".*main.*" "up from marker1 2"
-}
-
-
-
-send_gdb "print s\n"
-gdb_expect {
- -re ".\[0-9\]* = -1.*$gdb_prompt $" {
- pass "print value of s"
- }
- -re ".*$gdb_prompt $" { fail "print value of s" }
- timeout { fail "(timeout) print value of s" }
- }
-
-
-send_gdb "ptype s\n"
-gdb_expect {
- -re "type = short.*$gdb_prompt $" { pass "ptype s" }
- -re ".*$gdb_prompt $" { fail "ptype s" }
- timeout { fail "(timeout) ptype s" }
-}
-
-
-send_gdb "print *ps\n"
-gdb_expect {
- -re ".\[0-9\]* = -1.*$gdb_prompt $" {
- pass "print value of ps"
- }
- -re ".*$gdb_prompt $" { fail "print value of ps" }
- timeout { fail "(timeout) print value of ps" }
- }
-
-
-send_gdb "ptype ps\n"
-gdb_expect {
- -re "type = short \*.*$gdb_prompt $" { pass "ptype ps" }
- -re ".*$gdb_prompt $" { fail "ptype ps" }
- timeout { fail "(timeout) ptype ps" }
-}
-
-send_gdb "print as\[0\]\n"
-gdb_expect {
- -re ".\[0-9\]* = 0.*$gdb_prompt $" {
- pass "print value of as\[0\]"
- }
- -re ".*$gdb_prompt $" { fail "print value of as\[0\]" }
- timeout { fail "(timeout) print value of as\[0\]" }
- }
-
-
-send_gdb "ptype as\n"
-gdb_expect {
- -re "type = short \\\[4\\\].*$gdb_prompt $" { pass "ptype as" }
- -re "type = short int \\\[4\\\].*$gdb_prompt $" { pass "ptype as" }
- -re ".*$gdb_prompt $" { fail "ptype as" }
- timeout { fail "(timeout) ptype as" }
-}
-
-send_gdb "print as\[1\]\n"
-gdb_expect {
- -re ".\[0-9\]* = 1.*$gdb_prompt $" {
- pass "print value of as\[1\]"
- }
- -re ".*$gdb_prompt $" { fail "print value of as\[1\]" }
- timeout { fail "(timeout) print value of as\[1\]" }
- }
-
-send_gdb "print as\[2\]\n"
-gdb_expect {
- -re ".\[0-9\]* = 2.*$gdb_prompt $" {
- pass "print value of as\[2\]"
- }
- -re ".*$gdb_prompt $" { fail "print value of as\[2\]" }
- timeout { fail "(timeout) print value of as\[2\]" }
- }
-
-send_gdb "print as\[3\]\n"
-gdb_expect {
- -re ".\[0-9\]* = 3.*$gdb_prompt $" {
- pass "print value of as\[3\]"
- }
- -re ".*$gdb_prompt $" { fail "print value of as\[3\]" }
- timeout { fail "(timeout) print value of as\[3\]" }
- }
-
-send_gdb "print rs\n"
-gdb_expect {
- -re ".\[0-9\]* = \\(short &\\) @$hex: -1.*$gdb_prompt $" {
- pass "print value of rs"
- }
- -re ".\[0-9\]* = \\(short int &\\) @$hex: -1.*$gdb_prompt $" {
- pass "print value of rs"
- }
- -re ".*$gdb_prompt $" { fail "print value of rs" }
- timeout { fail "(timeout) print value of rs" }
- eof { fail "print rs ($GDB dumped core) (FIXME)" ; gdb_start_again ; }
-
- }
-
-send_gdb "ptype rs\n"
-gdb_expect {
- -re "type = short &.*$gdb_prompt $" { pass "ptype rs" }
- -re "type = short int &.*$gdb_prompt $" { pass "ptype rs" }
- -re ".*$gdb_prompt $" { fail "ptype rs" }
- timeout { fail "(timeout) ptype rs" }
-}
-
-
-send_gdb "print *rps\n"
-gdb_expect {
- -re ".\[0-9\]* = -1.*$gdb_prompt $" {
- pass "print value of *rps"
- }
- -re ".*$gdb_prompt $" { fail "print value of *rps" }
- timeout { fail "(timeout) print value of *rps" }
- }
-
-
-send_gdb "ptype rps\n"
-gdb_expect {
- -re "type = short \\*&.*$gdb_prompt $" { pass "ptype rps" }
- -re "type = short int \\*&.*$gdb_prompt $" { pass "ptype rps" }
- -re ".*$gdb_prompt $" { fail "ptype rps" }
- timeout { fail "(timeout) ptype rps" }
-}
-
-
-
-send_gdb "print ras\[0\]\n"
-gdb_expect {
- -re ".\[0-9\]* = 0.*$gdb_prompt $" {
- pass "print value of ras\[0\]"
- }
- -re ".*$gdb_prompt $" { fail "print value of ras\[0\]" }
- timeout { fail "(timeout) print value of ras\[0\]" }
- }
-
-
-send_gdb "ptype ras\n"
-gdb_expect {
- -re "type = short \\\(&\\\)\\\[4\\\].*$gdb_prompt $" { pass "ptype ras" }
- -re "type = short int \\\(&\\\)\\\[4\\\].*$gdb_prompt $" { pass "ptype ras" }
- -re ".*$gdb_prompt $" { fail "ptype ras" }
- timeout { fail "(timeout) ptype ras" }
-}
-
-send_gdb "print ras\[1\]\n"
-gdb_expect {
- -re ".\[0-9\]* = 1.*$gdb_prompt $" {
- pass "print value of ras\[1\]"
- }
- -re ".*$gdb_prompt $" { fail "print value of ras\[1\]" }
- timeout { fail "(timeout) print value of ras\[1\]" }
- }
-
-send_gdb "print ras\[2\]\n"
-gdb_expect {
- -re ".\[0-9\]* = 2.*$gdb_prompt $" {
- pass "print value of ras\[2\]"
- }
- -re ".*$gdb_prompt $" { fail "print value of ras\[2\]" }
- timeout { fail "(timeout) print value of ras\[2\]" }
- }
-
-send_gdb "print ras\[3\]\n"
-gdb_expect {
- -re ".\[0-9\]* = 3.*$gdb_prompt $" {
- pass "print value of ras\[3\]"
- }
- -re ".*$gdb_prompt $" { fail "print value of ras\[3\]" }
- timeout { fail "(timeout) print value of ras\[3\]" }
- }
-
-
-if ![runto 'f'] then {
- perror "couldn't run to f"
- continue
-}
-
-gdb_test "up" ".main2.*" "up from f"
-
-send_gdb "print C\n"
-gdb_expect {
- -re ".\[0-9\]* = 65 \'A\'.*$gdb_prompt $" {
- pass "print value of C"
- }
- -re ".*$gdb_prompt $" { fail "print value of C" }
- timeout { fail "(timeout) print value of C" }
- }
-
-
-send_gdb "ptype C\n"
-gdb_expect {
- -re "type = char.*$gdb_prompt $" { pass "ptype C" }
- -re ".*$gdb_prompt $" { fail "ptype C" }
- timeout { fail "(timeout) ptype C" }
-}
-
-
-send_gdb "print UC\n"
-gdb_expect {
- -re ".\[0-9\]* = 21 '\.025'\.*$gdb_prompt $" {
- pass "print value of UC"
- }
- -re ".*$gdb_prompt $" { fail "print value of UC" }
- timeout { fail "(timeout) print value of UC" }
- }
-
-
-send_gdb "ptype UC\n"
-gdb_expect {
- -re "type = unsigned char.*$gdb_prompt $" { pass "ptype UC" }
- -re ".*$gdb_prompt $" { fail "ptype UC" }
- timeout { fail "(timeout) ptype UC" }
-}
-
-
-send_gdb "print S\n"
-gdb_expect {
- -re ".\[0-9\]* = -14.*$gdb_prompt $" {
- pass "print value of S"
- }
- -re ".*$gdb_prompt $" { fail "print value of S" }
- timeout { fail "(timeout) print value of S" }
- }
-
-
-send_gdb "ptype S\n"
-gdb_expect {
- -re "type = short.*$gdb_prompt $" { pass "ptype S" }
- -re ".*$gdb_prompt $" { fail "ptype S" }
- timeout { fail "(timeout) ptype S" }
-}
-
-
-send_gdb "print US\n"
-gdb_expect {
- -re ".\[0-9\]* = 7.*$gdb_prompt $" {
- pass "print value of US"
- }
- -re ".*$gdb_prompt $" { fail "print value of US" }
- timeout { fail "(timeout) print value of US" }
- }
-
-
-send_gdb "ptype US\n"
-gdb_expect {
- -re "type = unsigned short.*$gdb_prompt $" { pass "ptype US" }
- -re "type = short unsigned.*$gdb_prompt $" { pass "ptype US" }
- -re ".*$gdb_prompt $" { fail "ptype US" }
- timeout { fail "(timeout) ptype US" }
-}
-
-
-send_gdb "print I\n"
-gdb_expect {
- -re ".\[0-9\]* = 102.*$gdb_prompt $" {
- pass "print value of I"
- }
- -re ".*$gdb_prompt $" { fail "print value of I" }
- timeout { fail "(timeout) print value of I" }
- }
-
-
-send_gdb "ptype I\n"
-gdb_expect {
- -re "type = int.*$gdb_prompt $" { pass "ptype I" }
- -re ".*$gdb_prompt $" { fail "ptype I" }
- timeout { fail "(timeout) ptype I" }
-}
-
-
-send_gdb "print UI\n"
-gdb_expect {
- -re ".\[0-9\]* = 1002.*$gdb_prompt $" {
- pass "print value of UI"
- }
- -re ".*$gdb_prompt $" { fail "print value of UI" }
- timeout { fail "(timeout) print value of UI" }
- }
-
-
-send_gdb "ptype UI\n"
-gdb_expect {
- -re "type = unsigned int.*$gdb_prompt $" { pass "ptype UI" }
- -re ".*$gdb_prompt $" { fail "ptype UI" }
- timeout { fail "(timeout) ptype UI" }
-}
-
-
-send_gdb "print L\n"
-gdb_expect {
- -re ".\[0-9\]* = -234.*$gdb_prompt $" {
- pass "print value of L"
- }
- -re ".*$gdb_prompt $" { fail "print value of L" }
- timeout { fail "(timeout) print value of L" }
- }
-
-
-send_gdb "ptype L\n"
-gdb_expect {
- -re "type = long.*$gdb_prompt $" { pass "ptype L" }
- -re ".*$gdb_prompt $" { fail "ptype L" }
- timeout { fail "(timeout) ptype L" }
-}
-
-
-send_gdb "print UL\n"
-gdb_expect {
- -re ".\[0-9\]* = 234.*$gdb_prompt $" {
- pass "print value of UL"
- }
- -re ".*$gdb_prompt $" { fail "print value of UL" }
- timeout { fail "(timeout) print value of UL" }
- }
-
-
-send_gdb "ptype UL\n"
-gdb_expect {
- -re "type = unsigned long.*$gdb_prompt $" { pass "ptype UL" }
- -re "type = long unsigned.*$gdb_prompt $" { pass "ptype UL" }
- -re ".*$gdb_prompt $" { fail "ptype UL" }
- timeout { fail "(timeout) ptype UL" }
-}
-
-
-send_gdb "print F\n"
-gdb_expect {
- -re ".\[0-9\]* = 1.2\[0-9\]*e\\+10.*$gdb_prompt $" {
- pass "print value of F"
- }
- -re ".*$gdb_prompt $" { fail "print value of F" }
- timeout { fail "(timeout) print value of F" }
- }
-
-
-
-send_gdb "ptype F\n"
-gdb_expect {
- -re "type = float.*$gdb_prompt $" { pass "ptype F" }
- -re ".*$gdb_prompt $" { fail "ptype F" }
- timeout { fail "(timeout) ptype F" }
-}
-
-
-send_gdb "print D\n"
-gdb_expect {
- -re ".\[0-9\]* = -1.375e-123.*$gdb_prompt $" {
- pass "print value of D"
- }
- -re ".*$gdb_prompt $" { fail "print value of D" }
- timeout { fail "(timeout) print value of D" }
- }
-
-
-send_gdb "ptype D\n"
-gdb_expect {
- -re "type = double.*$gdb_prompt $" { pass "ptype D" }
- -re ".*$gdb_prompt $" { fail "ptype D" }
- timeout { fail "(timeout) ptype D" }
-}
-
-
-
-#
-# test reference types
-#
-
-
-
-
-send_gdb "ptype rC\n"
-gdb_expect {
- -re "type = char &.*$gdb_prompt $" { pass "ptype rC" }
- -re ".*$gdb_prompt $" { fail "ptype rC" }
- timeout { fail "(timeout) ptype rC" }
-}
-
-
-
-
-send_gdb "ptype rUC\n"
-gdb_expect {
- -re "type = unsigned char &.*$gdb_prompt $" { pass "ptype rUC" }
- -re ".*$gdb_prompt $" { fail "ptype rUC" }
- timeout { fail "(timeout) ptype rUC" }
-}
-
-
-
-send_gdb "ptype rS\n"
-gdb_expect {
- -re "type = short &.*$gdb_prompt $" { pass "ptype rS" }
- -re "type = short int &.*$gdb_prompt $" { pass "ptype rS" }
- -re ".*$gdb_prompt $" { fail "ptype rS" }
- timeout { fail "(timeout) ptype rS" }
-}
-
-
-
-send_gdb "ptype rUS\n"
-gdb_expect {
- -re "type = unsigned short &.*$gdb_prompt $" { pass "ptype rUS" }
- -re "type = short unsigned int &.*$gdb_prompt $" { pass "ptype rUS" }
- -re ".*$gdb_prompt $" { fail "ptype rUS" }
- timeout { fail "(timeout) ptype rUS" }
-}
-
-
-send_gdb "ptype rI\n"
-gdb_expect {
- -re "type = int &.*$gdb_prompt $" { pass "ptype rI" }
- -re ".*$gdb_prompt $" { fail "ptype rI" }
- timeout { fail "(timeout) ptype rI" }
-}
-
-
-
-send_gdb "ptype rUI\n"
-gdb_expect {
- -re "type = unsigned int &.*$gdb_prompt $" { pass "ptype rUI" }
- -re ".*$gdb_prompt $" { fail "ptype rUI" }
- timeout { fail "(timeout) ptype rUI" }
-}
-
-
-
-send_gdb "ptype rL\n"
-gdb_expect {
- -re "type = long &.*$gdb_prompt $" { pass "ptype rL" }
- -re "type = long int &.*$gdb_prompt $" { pass "ptype rL" }
- -re ".*$gdb_prompt $" { fail "ptype rL" }
- timeout { fail "(timeout) ptype rL" }
-}
-
-
-send_gdb "ptype rUL\n"
-gdb_expect {
- -re "type = unsigned long &.*$gdb_prompt $" { pass "ptype rUL" }
- -re "type = long unsigned int &.*$gdb_prompt $" { pass "ptype rUL" }
- -re ".*$gdb_prompt $" { fail "ptype rUL" }
- timeout { fail "(timeout) ptype rUL" }
-}
-
-
-send_gdb "ptype rF\n"
-gdb_expect {
- -re "type = float &.*$gdb_prompt $" { pass "ptype rF" }
- -re ".*$gdb_prompt $" { fail "ptype rF" }
- timeout { fail "(timeout) ptype rF" }
-}
-
-
-send_gdb "ptype rD\n"
-gdb_expect {
- -re "type = double &.*$gdb_prompt $" { pass "ptype rD" }
- -re ".*$gdb_prompt $" { fail "ptype rD" }
- timeout { fail "(timeout) ptype rD" }
-}
-
-
-send_gdb "print rC\n"
-gdb_expect {
- -re ".\[0-9\]* = \\(char &\\) @$hex: 65 \'A\'.*$gdb_prompt $" {
- pass "print value of rC"
- }
- -re ".*$gdb_prompt $" { fail "print value of rC" }
- timeout { fail "(timeout) print value of rC" }
- }
-
-
-send_gdb "print rUC\n"
-gdb_expect {
- -re ".\[0-9\]* = \\(unsigned char &\\) @$hex: 21 \'.025\'.*$gdb_prompt $" {
- pass "print value of rUC"
- }
- -re ".*$gdb_prompt $" { fail "print value of rUC" }
- timeout { fail "(timeout) print value of rUC" }
- }
-
-
-send_gdb "print rS\n"
-gdb_expect {
- -re ".\[0-9\]* = \\(short &\\) @$hex: -14.*$gdb_prompt $" {
- pass "print value of rS"
- }
- -re ".\[0-9\]* = \\(short int &\\) @$hex: -14.*$gdb_prompt $" {
- pass "print value of rS"
- }
- -re ".*$gdb_prompt $" { fail "print value of rS" }
- timeout { fail "(timeout) print value of rS" }
- }
-
-
-send_gdb "print rUS\n"
-gdb_expect {
- -re ".\[0-9\]* = \\(unsigned short &\\) @$hex: 7.*$gdb_prompt $" {
- pass "print value of rUS"
- }
- -re ".\[0-9\]* = \\(short unsigned int &\\) @$hex: 7.*$gdb_prompt $" {
- pass "print value of rUS"
- }
- -re ".*$gdb_prompt $" { fail "print value of rUS" }
- timeout { fail "(timeout) print value of rUS" }
- }
-
-
-send_gdb "print rI\n"
-gdb_expect {
- -re ".\[0-9\]* = \\(int &\\) @$hex: 102.*$gdb_prompt $" {
- pass "print value of rI"
- }
- -re ".*$gdb_prompt $" { fail "print value of rI" }
- timeout { fail "(timeout) print value of rI" }
- }
-
-
-send_gdb "print rUI\n"
-gdb_expect {
- -re ".\[0-9\]* = \\(unsigned int &\\) @$hex: 1002.*$gdb_prompt $" {
- pass "print value of UI"
- }
- -re ".*$gdb_prompt $" { fail "print value of rUI" }
- timeout { fail "(timeout) print value of rUI" }
- }
-
-
-send_gdb "print rL\n"
-gdb_expect {
- -re ".\[0-9\]* = \\(long &\\) @$hex: -234.*$gdb_prompt $" {
- pass "print value of rL"
- }
- -re ".\[0-9\]* = \\(long int &\\) @$hex: -234.*$gdb_prompt $" {
- pass "print value of rL"
- }
- -re ".*$gdb_prompt $" { fail "print value of rL" }
- timeout { fail "(timeout) print value of rL" }
- }
-
-
-
-send_gdb "print rUL\n"
-gdb_expect {
- -re ".\[0-9\]* = \\(unsigned long &\\) @$hex: 234.*$gdb_prompt $" {
- pass "print value of rUL"
- }
- -re ".\[0-9\]* = \\(long unsigned int &\\) @$hex: 234.*$gdb_prompt $" {
- pass "print value of rUL"
- }
- -re ".*$gdb_prompt $" { fail "print value of rUL" }
- timeout { fail "(timeout) print value of rUL" }
- }
-
-
-send_gdb "print rF\n"
-gdb_expect {
- -re ".\[0-9\]* = \\(float &\\) @$hex: 1.2\[0-9\]*e\\+10.*$gdb_prompt $" {
- pass "print value of rF"
- }
- -re ".*$gdb_prompt $" { fail "print value of rF" }
- timeout { fail "(timeout) print value of rF" }
- }
-
-
-send_gdb "print rD\n"
-gdb_expect {
- -re ".\[0-9\]* = \\(double &\\) @$hex: -1.375e-123.*$gdb_prompt $" {
- pass "print value of rD"
- }
- -re ".*$gdb_prompt $" { fail "print value of rD" }
- timeout { fail "(timeout) print value of rD" }
- }
-
Index: pass-by-ref.cc
===================================================================
--- pass-by-ref.cc (revision 816)
+++ pass-by-ref.cc (nonexistent)
@@ -1,79 +0,0 @@
-/* This testcase is part of GDB, the GNU debugger.
-
- Copyright 2007, 2008 Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see . */
-
-class Obj {
-public:
- Obj ();
- Obj (const Obj &);
- ~Obj ();
- int var[2];
-};
-
-int foo (Obj arg)
-{
- return arg.var[0] + arg.var[1];
-}
-
-Obj::Obj ()
-{
- var[0] = 1;
- var[1] = 2;
-}
-
-Obj::Obj (const Obj &obj)
-{
- var[0] = obj.var[0];
- var[1] = obj.var[1];
-}
-
-Obj::~Obj ()
-{
-
-}
-
-struct Derived : public Obj
-{
- int other;
-};
-
-int blap (Derived arg)
-{
- return foo (arg);
-}
-
-struct Container
-{
- Obj obj;
-};
-
-int blip (Container arg)
-{
- return foo (arg.obj);
-}
-
-Obj global_obj;
-Derived global_derived;
-Container global_container;
-
-int
-main ()
-{
- int bar = foo (global_obj);
- blap (global_derived);
- blip (global_container);
- return bar;
-}
Index: m-static.exp
===================================================================
--- m-static.exp (revision 816)
+++ m-static.exp (nonexistent)
@@ -1,136 +0,0 @@
-# Copyright 2002, 2004, 2007, 2008 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see .
-
-# Tests for member static data
-# 2002-05-13 Benjamin Kosnik
-# 2002-08-22 David Carlton
-
-# This file is part of the gdb testsuite
-
-if $tracelevel then {
- strace $tracelevel
- }
-
-if { [skip_cplus_tests] } { continue }
-
-#
-# test running programs
-#
-set prms_id 0
-set bug_id 0
-
-set testfile "m-static"
-set srcfile "${testfile}.cc"
-set srcfile1 "${testfile}1.cc"
-set objfile "${testfile}.o"
-set objfile1 "${testfile}1.o"
-set binfile "${objdir}/${subdir}/${testfile}"
-
-if { [gdb_compile "$srcdir/$subdir/$srcfile" "$objdir/$subdir/$objfile" object {debug c++}] != "" } {
- untested m-static.exp
- return -1
-}
-
-if { [gdb_compile "$srcdir/$subdir/$srcfile1" "$objdir/$subdir/$objfile1" object {debug c++}] != "" } {
- untested m-static.exp
- return -1
-}
-
-if { [gdb_compile "$objdir/$subdir/$objfile $objdir/$subdir/$objfile1" "${binfile}" executable {debug c++}] != "" } {
- untested m-static.exp
- return -1
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binfile}
-
-
-if ![runto_main] then {
- perror "couldn't run to breakpoint"
- continue
-}
-
-# First, run to after we've constructed all the objects:
-
-gdb_breakpoint [gdb_get_line_number "constructs-done"]
-gdb_continue_to_breakpoint "end of constructors"
-
-
-# One.
-
-# simple object, static const bool
-gdb_test "print test1.test" "\\$\[0-9\]* = true" "simple object, static const bool"
-
-# simple object, static const int
-gdb_test "print test1.key1" "\\$\[0-9\]* = 5" "simple object, static const int"
-
-# simple object, static long
-gdb_test "print test1.key2" "\\$\[0-9\]* = 77" "simple object, static long"
-
-# simple object, static enum
-gdb_test "print test1.value" "\\$\[0-9\]* = oriental" "simple object, static enum"
-
-# Two.
-
-# derived template object, base static const bool
-gdb_test "print test2.test" "\\$\[0-9\]* = true" "derived template object, base static const bool"
-
-# derived template object, base static const int
-gdb_test "print test2.key1" "\\$\[0-9\]* = 5" "derived template object, base static const int"
-
-# derived template object, base static long
-gdb_test "print test2.key2" "\\$\[0-9\]* = 77" "derived template object, base static long"
-
-# derived template object, base static enum
-gdb_test "print test2.value" "\\$\[0-9\].* = oriental" "derived template object, base static enum"
-
-# derived template object, static enum
-gdb_test "print test2.value_derived" "\\$\[0-9\].* = etruscan" "derived template object, static enum"
-
-# Three.
-
-# template object, static derived template data member's base static const bool
-gdb_test "print test3.data.test" "\\$\[0-9\].* = true" "template object, static const bool"
-
-# template object, static derived template data member's base static const int
-gdb_test "print test3.data.key1" "\\$\[0-9\].* = 5" "template object, static const int"
-
-# template object, static derived template data member's base static long
-gdb_test "print test3.data.key2" "\\$\[0-9\].* = 77" "template object, static long"
-
-# template object, static derived template data member's base static enum
-gdb_test "print test3.data.value" "\\$\[0-9\].* = oriental" "template object, static enum"
-
-# template object, static derived template data member's static enum
-gdb_test "print test3.data.value_derived" "\\$\[0-9\].* = etruscan" "template object, static derived enum"
-
-# 2002-08-16
-# Four.
-
-# static const int initialized in another file.
-gdb_test "print test4.elsewhere" "\\$\[0-9\].* = 221" "static const int initialized elsewhere"
-
-# static const int that nobody initializes. From PR gdb/635.
-gdb_test "print test4.nowhere" "field nowhere is nonexistent or has been optimised out" "static const int initialized nowhere"
-
-# Perhaps at some point test4 should also include a test for a static
-# const int that was initialized in the header file. But I'm not sure
-# that GDB's current behavior in such situations is either consistent
-# across platforms or optimal, so I'm not including one now.
-
-gdb_exit
-return 0
Index: cttiadd1.cc
===================================================================
--- cttiadd1.cc (revision 816)
+++ cttiadd1.cc (nonexistent)
@@ -1,34 +0,0 @@
-/* This testcase is part of GDB, the GNU debugger.
-
- Copyright 1998, 1999, 2004, 2007, 2008 Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see .
- */
-
-template T add(T v1, T v2);
-
-void add1()
-{
- unsigned char c;
- int i;
- float f;
-
- c = 'b';
- i = 3;
- f = 6.5;
-
- c = add(c, c);
- i = add(i, i);
- f = add(f, f);
-}
Index: pr-574.cc
===================================================================
--- pr-574.cc (revision 816)
+++ pr-574.cc (nonexistent)
@@ -1,40 +0,0 @@
-/* This test script is part of GDB, the GNU debugger.
-
- Copyright 2002, 2004, 2007, 2008 Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see .
- */
-
-/*
- An attempt to replicate PR gdb/574 with a shorter program.
-
- Printing out *theB failed if the program was compiled with GCC 2.95.
-*/
-
-class A {
-public:
- virtual void foo() {}; // Stick in a virtual function.
- int a; // Stick in a data member.
-};
-
-class B : public A {
- static int b; // Stick in a static data member.
-};
-
-int main()
-{
- B *theB = new B;
-
- return 0; // breakpoint: constructs-done
-}
Index: class2.exp
===================================================================
--- class2.exp (revision 816)
+++ class2.exp (nonexistent)
@@ -1,119 +0,0 @@
-# Copyright 2003, 2004, 2007, 2008 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see .
-
-if $tracelevel then {
- strace $tracelevel
- }
-
-if { [skip_cplus_tests] } { continue }
-
-set prms_id 0
-set bug_id 0
-
-set testfile "class2"
-set srcfile ${testfile}.cc
-set binfile ${objdir}/${subdir}/${testfile}
-
-# Create and source the file that provides information about the compiler
-# used to compile the test case.
-if [get_compiler_info ${binfile} "c++"] {
- return -1
-}
-
-if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } {
- untested class2.exp
- return -1
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binfile}
-
-# Start with "set print object off".
-
-gdb_test "set print object off" ""
-
-if ![runto_main] then {
- perror "couldn't run to main"
- continue
-}
-
-get_debug_format
-
-gdb_test "break [gdb_get_line_number "marker return 0"]" \
- "Breakpoint.*at.* file .*" ""
-
-gdb_test "continue" "Breakpoint .* at .*" ""
-
-# Access the "A" object.
-
-gdb_test "print alpha" \
- "= {.*a1 = 100.*}" \
- "print alpha at marker return 0"
-
-# Access the "B" object.
-
-gdb_test "print beta" \
- "= {.*a1 = 200.*b1 = 201.*b2 = 202}" \
- "print beta at marker return 0"
-
-# Access the "A" object through an "A *" pointer.
-
-gdb_test_multiple "print * aap" "print * aap at marker return 0" {
- -re "= {.*a1 = 100.*}\r\n$gdb_prompt $" {
- # gcc 2.95.3 -gstabs+
- # gcc 3.3.2 -gdwarf-2
- # gcc 3.3.2 -gstabs+
- pass "print * aap at marker return 0"
- }
- -re "= {.*a1 = .*}\r\n$gdb_prompt $" {
- if { [test_compiler_info gcc-2-*] && [test_debug_format "DWARF 2"] } {
- # gcc 2.95.3 -gdwarf-2
- setup_kfail "gdb/1465" "*-*-*"
- }
- fail "print * aap at marker return 0"
- }
-}
-
-# Access the "B" object through a "B *" pointer.
-
-gdb_test "print * bbp" \
- "= {.*a1 = 200.*b1 = 201.*b2 = 202}" \
- "print * bbp at marker return 0"
-
-# Access the "B" object through an "A *" pointer.
-# This should print using the "A" type.
-
-gdb_test_multiple "print * abp" "print * abp at marker return 0, s-p-o off" {
- -re "= {.*a1 = 200.*b1 = .*b2 = .*}\r\n$gdb_prompt $" {
- # This would violate the documentation for "set print object off".
- fail "print * abp at marker return 0, s-p-o off"
- }
- -re "= {.*a1 = 200.*}\r\n$gdb_prompt $" {
- pass "print * abp at marker return 0, s-p-o off"
- }
-}
-
-# Access the "B" object through a "B *" pointer expression.
-# This should print using the "B" type.
-
-gdb_test "print * (B *) abp" \
- "= {.*a1 = 200.*b1 = 201.*b2 = 202}" \
- "print * (B *) abp at marker return 0"
-
-# Printing the value of an object containing no data fields:
-
-gdb_test "p e" "= \{\}" "print object with no data fields"
Index: virtfunc.cc
===================================================================
--- virtfunc.cc (revision 816)
+++ virtfunc.cc (nonexistent)
@@ -1,220 +0,0 @@
-/* This test script is part of GDB, the GNU debugger.
-
- Copyright 1993, 1994, 1997, 1998, 1999, 2003, 2004,
- Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see .
- */
-
-// Pls try the following program on virtual functions and try to do print on
-// most of the code in main(). Almost none of them works !
-
-//
-// The inheritance structure is:
-//
-// V : VA VB
-// A : (V)
-// B : A
-// D : AD (V)
-// C : (V)
-// E : B (V) D C
-//
-
-class VA
-{
-public:
- int va;
-};
-
-class VB
-{
-public:
- int vb;
- int fvb();
- virtual int vvb();
-};
-
-class V : public VA, public VB
-{
-public:
- int f();
- virtual int vv();
- int w;
-};
-
-class A : virtual public V
-{
-public:
- virtual int f();
-private:
- int a;
-};
-
-class B : public A
-{
-public:
- int f();
-private:
- int b;
-};
-
-class C : public virtual V
-{
-public:
- int c;
-};
-
-class AD
-{
-public:
- virtual int vg() = 0;
-};
-
-class D : public AD, virtual public V
-{
-public:
- static void s();
- virtual int vg();
- virtual int vd();
- int fd();
- int d;
-};
-
-class E : public B, virtual public V, public D, public C
-{
-public:
- int f();
- int vg();
- int vv();
- int e;
-};
-
-D dd;
-D* ppd = ⅆ
-AD* pAd = ⅆ
-
-A a;
-B b;
-C c;
-D d;
-E e;
-V v;
-VB vb;
-
-
-A* pAa = &a;
-A* pAe = &e;
-
-B* pBe = &e;
-
-D* pDd = &d;
-D* pDe = &e;
-
-V* pVa = &a;
-V* pVv = &v;
-V* pVe = &e;
-V* pVd = &d;
-
-AD* pADe = &e;
-
-E* pEe = &e;
-
-VB* pVB = &vb;
-
-void init()
-{
- a.vb = 1;
- b.vb = 2;
- c.vb = 3;
- d.vb = 4;
- e.vb = 5;
- v.vb = 6;
- vb.vb = 7;
-
- d.d = 1;
- e.d = 2;
-}
-
-extern "C" int printf(const char *, ...);
-
-int all_count = 0;
-int failed_count = 0;
-
-#define TEST(EXPR, EXPECTED) \
- ret = EXPR; \
- if (ret != EXPECTED) {\
- printf("Failed %s is %d, should be %d!\n", #EXPR, ret, EXPECTED); \
- failed_count++; } \
- all_count++;
-
-int ret;
-
-void test_calls()
-{
- TEST(pAe->f(), 20);
- TEST(pAa->f(), 1);
-
- TEST(pDe->vg(), 202);
- TEST(pADe->vg(), 202);
- TEST(pDd->vg(), 101);
-
- TEST(pEe->vvb(), 411);
-
- TEST(pVB->vvb(), 407);
-
- TEST(pBe->vvb(), 411);
- TEST(pDe->vvb(), 411);
-
- TEST(pEe->vd(), 282);
- TEST(pEe->fvb(), 311);
-
- TEST(pEe->D::vg(), 102);
- printf("Did %d tests, of which %d failed.\n", all_count, failed_count);
-}
-#ifdef usestubs
-extern "C" {
- void set_debug_traps();
- void breakpoint();
-};
-#endif
-
-int main()
-{
-#ifdef usestubs
- set_debug_traps();
- breakpoint();
-#endif
- init();
-
- e.w = 7;
- e.vb = 11;
-
- test_calls();
- return 0;
-
-}
-
-int A::f() {return 1;}
-int B::f() {return 2;}
-void D::s() {}
-int E::f() {return 20;}
-int D::vg() {return 100+d;}
-int E::vg() {return 200+d;}
-int V::f() {return 600+w;}
-int V::vv() {return 400+w;}
-int E::vv() {return 450+w;}
-int D::fd() {return 250+d;}
-int D::vd() {return 280+d;}
-int VB::fvb() {return 300+vb;}
-int VB::vvb() {return 400+vb;}
Index: misc.exp
===================================================================
--- misc.exp (revision 816)
+++ misc.exp (nonexistent)
@@ -1,156 +0,0 @@
-# Copyright 1992, 1994, 1995, 1996, 1997, 1999, 2002, 2007, 2008
-# Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see .
-
-# This file was written by Fred Fish. (fnf@cygnus.com)
-
-if $tracelevel then {
- strace $tracelevel
-}
-
-if { [skip_cplus_tests] } { continue }
-
-set testfile "misc"
-set srcfile ${testfile}.cc
-set binfile ${objdir}/${subdir}/${testfile}
-if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } {
- untested misc.exp
- return -1
-}
-
-#
-# Deduce language of main()
-#
-
-proc deduce_language_of_main {} {
- global gdb_prompt
-
- # See what language gdb thinks main() is, prior to reading full symbols.
- # I think this fails for COFF targets.
- send_gdb "show language\n"
- gdb_expect {
- -re ".* source language is \"auto; currently c\[+\]+\".*$gdb_prompt $" {
- pass "deduced language is C++, before full symbols"
- }
- -re ".*$gdb_prompt $" {
- fail "source language not correct for C++ (psymtabs only)"
- return
- }
- timeout {
- fail "can't show language (timeout)"
- return
- }
- }
-
- runto_main
-
- # See if our idea of the language has changed.
-
- send_gdb "show language\n"
- gdb_expect {
- -re ".* source language is \"auto; currently c\[+\]+\".*$gdb_prompt $" {
- pass "deduced language is C++, after full symbols"
- }
- -re ".*$gdb_prompt $" {
- fail "source language not correct for C++ (full symbols)"
- return
- }
- timeout {
- fail "can't show language (timeout)"
- return
- }
- }
-}
-
-proc test_expr { args } {
- if { [llength $args] % 2 } {
- warning "an even # of arguments should be passed to test_expr"
- }
- set last_ent [expr [llength $args] - 1];
- set testname [lindex $args $last_ent];
- if [gdb_test [lindex $args 0] "" "$testname (setup)"] {
- gdb_suppress_tests;
- }
- for {set x 1} {$x < $last_ent} {set x [expr $x + 2]} {
- if [gdb_test [lindex $args $x] [lindex $args [expr $x + 1]] "$testname ([lindex $args $x])"] {
- gdb_suppress_tests;
- }
- }
- gdb_stop_suppressing_tests;
-}
-
-proc do_tests {} {
- global prms_id
- global bug_id
- global subdir
- global objdir
- global srcdir
- global binfile
- global gdb_prompt
-
- set prms_id 0
- set bug_id 0
-
- # Start with a fresh gdb.
-
- gdb_exit
- gdb_start
- gdb_reinitialize_dir $srcdir/$subdir
- gdb_load $binfile
-
- deduce_language_of_main
- # Check for fixes for PRs 8916 and 8630
- gdb_test "print s.a" ".* = 0" "print s.a for foo struct (known gcc 2.7.2 and earlier bug)"
-}
-
-do_tests
-
-test_expr "set language c++" \
- "print 1 == 1" "print.*\\$\[0-9\]* = true" \
- "print 1 == 2" "print.*\\$\[0-9\]* = false" \
- "print as bool"
-
-# Test bool type printing, etc.
-# Note: Language is already set to C++ above!
-gdb_test "print v_bool" "\\$\[0-9\]* = false" "print a bool var"
-
-# set a bool variable
-test_expr "set variable v_bool = true" \
- "print v_bool" "\\$\[0-9\]* = true" \
- "set a bool var"
-
-# next print an array of bool
-gdb_test "print v_bool_array" "\\$\[0-9\]* = \\{false, false\\}" "print a bool array"
-
-# set elements of a bool array
-test_expr "set variable v_bool_array\[1\] = true" \
- "print v_bool_array" "\\$\[0-9\]* = \\{false, true\\}" \
- "set a bool array elem"
-
-# bool constants
-gdb_test "print true" "\\$\[0-9\]* = true" "print true"
-gdb_test "print false" "\\$\[0-9\]* = false" "print false"
-
-# arithmetic conversions
-gdb_test "print 1 + true" "\\$\[0-9\]* = 2" "1 + true"
-gdb_test "print 3 + false" "\\$\[0-9\]* = 3" "3 + false"
-gdb_test "print 1 < 2 < 3" "\\$\[0-9\]* = true" "1 < 2 < 3"
-gdb_test "print 2 < 1 > 4" "\\$\[0-9\]* = false" "2 < 1 > 4"
-gdb_test "print (bool)43" "\\$\[0-9\]* = true" "(bool)43"
-gdb_test "print (bool)0" "\\$\[0-9\]* = false" "(bool)0"
-gdb_test "print (bool)17.93" "\\$\[0-9\]* = true" "(bool)17.93"
-gdb_test "print (bool)0.0" "\\$\[0-9\]* = false" "(bool)0.0"
-gdb_test "print (int)true" "\\$\[0-9\]* = 1" "(int)true"
-gdb_test "print (int)false" "\\$\[0-9\]* = 0" "(int)false"
Index: call-c.exp
===================================================================
--- call-c.exp (revision 816)
+++ call-c.exp (nonexistent)
@@ -1,46 +0,0 @@
-# Copyright 2006, 2007, 2008 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see .
-
-if $tracelevel then {
- strace $tracelevel
-}
-
-set prms_id 0
-set bug_id 0
-
-if { [skip_cplus_tests] } { continue }
-
-set testfile call-c
-set binfile ${objdir}/${subdir}/${testfile}
-set srcfilec ${srcdir}/${subdir}/${testfile}-1.c
-set srcfilecpp ${srcdir}/${subdir}/${testfile}.cc
-set objfilec ${objdir}/${subdir}/${testfile}-1.o
-set objfilecpp ${objdir}/${subdir}/${testfile}.o
-
-if {[gdb_compile "${srcfilec}" "${objfilec}" object {debug}] != ""
- || [gdb_compile "${srcfilecpp}" "${objfilecpp}" object {c++ debug}] != ""
- || [gdb_compile "${objfilecpp} ${objfilec}" "${binfile}" executable {c++ debug}] != ""} {
- untested hang.exp
- return -1
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binfile}
-
-runto_main
-
-gdb_test "print foo(1)" "\\\$$decimal = 1"
Index: printmethod.exp
===================================================================
--- printmethod.exp (revision 816)
+++ printmethod.exp (nonexistent)
@@ -1,73 +0,0 @@
-# Copyright 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see .
-
-# This tries to print out methods of classes.
-
-# 2002-08-16 David Carlton
-
-# This file is part of the gdb testsuite
-
-if $tracelevel then {
- strace $tracelevel
- }
-
-if { [skip_cplus_tests] } { continue }
-
-#
-# test running programs
-#
-set prms_id 0
-set bug_id 0
-
-set testfile "printmethod"
-set srcfile ${testfile}.cc
-set binfile ${objdir}/${subdir}/${testfile}
-
-if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } {
- untested printmethod.exp
- return -1
-}
-
-if [get_compiler_info ${binfile} "c++"] {
- return -1
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binfile}
-
-
-if ![runto_main] then {
- perror "couldn't run to breakpoint"
- continue
-}
-
-# First, run to after we've constructed the object:
-
-gdb_breakpoint [gdb_get_line_number "constructs-done"]
-gdb_continue_to_breakpoint "end of constructors"
-
-# The first of these is for PR gdb/653.
-
-gdb_test "print theA->virt" \
- "\\$\[0-9\]* = {void \\(A \\*\\)} $hex " \
- "print virtual method."
-gdb_test "print theA->nonvirt" \
- "\\$\[0-9\]* = {void \\(A \\*\\)} $hex " \
- "print nonvirtual method."
-
-gdb_exit
-return 0
Index: classes.exp
===================================================================
--- classes.exp (revision 816)
+++ classes.exp (nonexistent)
@@ -1,634 +0,0 @@
-# Copyright 1992, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
-# 2004, 2006, 2007, 2008 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see .
-
-# This file was written by Fred Fish. (fnf@cygnus.com)
-# And rewritten by Michael Chastain .
-
-set nl "\[\r\n\]+"
-
-if $tracelevel then {
- strace $tracelevel
-}
-
-if { [skip_cplus_tests] } { continue }
-
-load_lib "cp-support.exp"
-
-set testfile "classes"
-set srcfile ${testfile}.cc
-set binfile ${objdir}/${subdir}/${testfile}
-
-if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } {
- untested classes.exp
- return -1
-}
-
-# Test ptype of class objects.
-
-proc test_ptype_class_objects {} {
-
- # Simple type.
-
- cp_test_ptype_class \
- "ptype struct default_public_struct" "" "struct" "default_public_struct" \
- {
- { field public "int a;" }
- { field public "int b;" }
- }
-
- # Another simple type.
-
- cp_test_ptype_class \
- "ptype struct explicit_public_struct" "" "struct" "explicit_public_struct" \
- {
- { field public "int a;" }
- { field public "int b;" }
- }
-
- # Another simple type.
-
- cp_test_ptype_class \
- "ptype struct protected_struct" "" "struct" "protected_struct" \
- {
- { field protected "int a;" }
- { field protected "int b;" }
- }
-
- # Another simple type.
-
- cp_test_ptype_class \
- "ptype struct private_struct" "" "struct" "private_struct" \
- {
- { field private "int a;" }
- { field private "int b;" }
- }
-
- # A bigger type.
-
- cp_test_ptype_class \
- "ptype struct mixed_protection_struct" "" "struct" "mixed_protection_struct" \
- {
- { field public "int a;" }
- { field public "int b;" }
- { field private "int c;" }
- { field private "int d;" }
- { field protected "int e;" }
- { field protected "int f;" }
- { field public "int g;" }
- { field private "int h;" }
- { field protected "int i;" }
- }
-
- # All that again with "class" instead of "struct".
- # gdb does not care about the difference anyways.
-
- cp_test_ptype_class \
- "ptype class public_class" "" "class" "public_class" \
- {
- { field public "int a;" }
- { field public "int b;" }
- }
-
- # Another simple type.
-
- cp_test_ptype_class \
- "ptype class protected_class" "" "class" "protected_class" \
- {
- { field protected "int a;" }
- { field protected "int b;" }
- }
-
- # Another simple type.
-
- cp_test_ptype_class \
- "ptype class default_private_class" "" "class" "default_private_class" \
- {
- { field private "int a;" }
- { field private "int b;" }
- }
-
- # Another simple type.
-
- cp_test_ptype_class \
- "ptype class explicit_private_class" "" "class" "explicit_private_class" \
- {
- { field private "int a;" }
- { field private "int b;" }
- }
-
- # A bigger type.
-
- cp_test_ptype_class \
- "ptype class mixed_protection_class" "" "class" "mixed_protection_class" \
- {
-
- { field public "int a;" }
- { field public "int b;" }
- { field private "int c;" }
- { field private "int d;" }
- { field protected "int e;" }
- { field protected "int f;" }
- { field public "int g;" }
- { field private "int h;" }
- { field protected "int i;" }
- }
-
- # Here are some classes with inheritance.
-
- # Base class.
-
- cp_test_ptype_class \
- "ptype class A" "" "class" "A" \
- {
- { field public "int a;" }
- { field public "int x;" }
- }
-
- # Derived class.
-
- cp_test_ptype_class \
- "ptype class B" "" "class" "B" \
- {
- { base "public A" }
- { field public "int b;" }
- { field public "int x;" }
- }
-
- # Derived class.
-
- cp_test_ptype_class \
- "ptype class C" "" "class" "C" \
- {
- { base "public A" }
- { field public "int c;" }
- { field public "int x;" }
- }
-
- # Derived class, multiple inheritance.
-
- cp_test_ptype_class \
- "ptype class D" "" "class" "D" \
- {
- { base "public B" }
- { base "public C" }
- { field public "int d;" }
- { field public "int x;" }
- }
-
- # Derived class.
-
- cp_test_ptype_class \
- "ptype class E" "" "class" "E" \
- {
- { base "public D" }
- { field public "int e;" }
- { field public "int x;" }
- }
-
- # This is a break from inheritance tests.
- #
- # gcc 2.X with stabs (stabs or stabs+?) used to have a problem with
- # static methods whose name is the same as their argument mangling.
-
- cp_test_ptype_class \
- "ptype class Static" "" "class" "Static" \
- {
- { method public "static void ii(int, int);" }
- }
-
- # Here are some virtual inheritance tests.
-
- # A virtual base class.
-
- cp_test_ptype_class \
- "ptype class vA" "" "class" "vA" \
- {
- { field public "int va;" }
- { field public "int vx;" }
- }
-
- # A derived class with a virtual base.
-
- cp_test_ptype_class \
- "ptype class vB" "" "class" "vB" \
- {
- { base "public virtual vA" }
- { vbase "vA" }
- { field public "int vb;" }
- { field public "int vx;" }
- }
-
- # Another derived class with a virtual base.
-
- cp_test_ptype_class \
- "ptype class vC" "" "class" "vC" \
- {
- { base "public virtual vA" }
- { vbase "vA" }
- { field public "int vc;" }
- { field public "int vx;" }
- }
-
- # A classic diamond class.
-
- cp_test_ptype_class \
- "ptype class vD" "" "class" "vD" \
- {
- { base "public virtual vB" }
- { base "public virtual vC" }
- { vbase "vC" }
- { vbase "vB" }
- { field public "int vd;" }
- { field public "int vx;" }
- }
-
- # A class derived from a diamond class.
-
- cp_test_ptype_class \
- "ptype class vE" "" "class" "vE" \
- {
- { base "public virtual vD" }
- { vbase "vD" }
- { field public "int ve;" }
- { field public "int vx;" }
- }
-
- # Another inheritance series.
-
- # A base class.
-
- cp_test_ptype_class \
- "ptype class Base1" "" "class" "Base1" \
- {
- { field public "int x;" }
- { method public "Base1(int);" }
- }
-
- # Another base class.
-
- cp_test_ptype_class \
- "ptype class Foo" "" "class" "Foo" \
- {
- { field public "int x;" }
- { field public "int y;" }
- { field public "static int st;" }
- { method public "Foo(int, int);" }
- { method public "int operator!();" }
- { method public "operator int();" }
- { method public "int times(int);" }
- } \
- "" \
- {
- {
- "operator int();"
- "int operator int();"
- { setup_kfail "gdb/1497" "*-*-*" }
- }
- {
- "operator int();"
- "int operator int(void);"
- { setup_kfail "gdb/1497" "*-*-*" }
- }
- }
-
- # A multiple inheritance derived class.
-
- cp_test_ptype_class \
- "ptype class Bar" "" "class" "Bar" \
- {
- { base "public Base1" }
- { base "public Foo" }
- { field public "int z;" }
- { method public "Bar(int, int, int);" }
- }
-
-}
-
-# Test simple access to class members.
-
-proc test_non_inherited_member_access {} {
-
- # Print non-inherited members of g_A.
- gdb_test "print g_A.a" ".* = 1"
- gdb_test "print g_A.x" ".* = 2"
-
- # Print non-inherited members of g_B.
- gdb_test "print g_B.b" ".* = 5"
- gdb_test "print g_B.x" ".* = 6"
-
- # Print non-inherited members of g_C.
- gdb_test "print g_C.c" ".* = 9"
- gdb_test "print g_C.x" ".* = 10"
-
- # Print non-inherited members of g_D.
- gdb_test "print g_D.d" ".* = 19"
- gdb_test "print g_D.x" ".* = 20"
-
- # Print non-inherited members of g_E.
- gdb_test "print g_E.e" ".* = 31"
- gdb_test "print g_E.x" ".* = 32"
-}
-
-# Test access to members of other classes.
-# gdb should refuse to print them.
-# (I feel old -- I remember when this was legal in C -- chastain).
-
-proc test_wrong_class_members {} {
- gdb_test "print g_A.b" "There is no member( or method|) named b."
- gdb_test "print g_B.c" "There is no member( or method|) named c."
- gdb_test "print g_B.d" "There is no member( or method|) named d."
- gdb_test "print g_C.b" "There is no member( or method|) named b."
- gdb_test "print g_C.d" "There is no member( or method|) named d."
- gdb_test "print g_D.e" "There is no member( or method|) named e."
-}
-
-# Test access to names that are not members of any class.
-
-proc test_nonexistent_members {} {
- gdb_test "print g_A.y" "There is no member( or method|) named y."
- gdb_test "print g_B.z" "There is no member( or method|) named z."
- gdb_test "print g_C.q" "There is no member( or method|) named q."
- gdb_test "print g_D.p" "There is no member( or method|) named p."
-}
-
-# Call a method that expects a base class parameter with base, inherited,
-# and unrelated class arguments.
-
-proc test_method_param_class {} {
- gdb_test "call class_param.Aptr_a (&g_A)" ".* = 1"
- gdb_test "call class_param.Aptr_x (&g_A)" ".* = 2"
- gdb_test "call class_param.Aptr_a (&g_B)" ".* = 3"
- gdb_test "call class_param.Aptr_x (&g_B)" ".* = 4"
- gdb_test "call class_param.Aref_a (g_A)" ".* = 1"
- gdb_test "call class_param.Aref_x (g_A)" ".* = 2"
- gdb_test "call class_param.Aref_a (g_B)" ".* = 3"
- gdb_test "call class_param.Aref_x (g_B)" ".* = 4"
- gdb_test "call class_param.Aval_a (g_A)" ".* = 1"
- gdb_test "call class_param.Aval_x (g_A)" ".* = 2"
- gdb_test "call class_param.Aval_a (g_B)" ".* = 3"
- gdb_test "call class_param.Aval_x (g_B)" ".* = 4"
-
- gdb_test "call class_param.Aptr_a (&foo)" "Cannot resolve .*" "unrelated class *param"
- gdb_test "call class_param.Aref_a (foo)" "Cannot resolve .*" "unrelated class ¶m"
- gdb_test "call class_param.Aval_a (foo)" "Cannot resolve .*" "unrelated class param"
-}
-
-# Examine a class with an enum field.
-
-proc test_enums {} {
- global gdb_prompt
- global nl
-
- # print the object
-
- gdb_test "print obj_with_enum" \
- "\\$\[0-9\]+ = \{priv_enum = red, x = 0\}" \
- "print obj_with_enum (1)"
-
- # advance one line
-
- gdb_test "next" ""
-
- # print the object again
-
- gdb_test "print obj_with_enum" \
- "\\$\[0-9\]+ = \{priv_enum = green, x = 0\}" \
- "print obj_with_enum (2)"
-
- # print the enum member
-
- gdb_test "print obj_with_enum.priv_enum" "\\$\[0-9\]+ = green"
-
- # ptype on the enum member
-
- gdb_test_multiple "ptype obj_with_enum.priv_enum" "ptype obj_with_enum.priv_enum" {
- -re "type = enum ClassWithEnum::PrivEnum \{ ?red, green, blue, yellow = 42 ?\}$nl$gdb_prompt $" {
- pass "ptype obj_with_enum.priv_enum"
- }
- -re "type = enum PrivEnum \{ ?red, green, blue, yellow = 42 ?\}$nl$gdb_prompt $" {
- # gcc 2.95.3 -gdwarf-2
- # gcc 3.3.2 -gdwarf-2
- pass "ptype obj_with_enum.priv_enum"
- }
- -re "type = enum \{ ?red, green, blue, yellow = 42 ?\}$nl$gdb_prompt $" {
- # This case case is a little dubious, but it's not clear what
- # ought to be required of a ptype on a private enum...
- # -sts 19990324
- #
- # It bugs me that this happens with gcc 3.
- # -- chastain 2003-12-30
- #
- # gcc 2.95.3 -gstabs+
- # gcc 3.3.2 -gstabs+
- # gcc HEAD 2003-12-28 21:08:30 UTC -gstabs+
- pass "ptype obj_with_enum.priv_enum"
- }
- }
-
- # ptype on the object
-
- # NOTE: carlton/2003-02-28: One could certainly argue that plain
- # "PrivEnum"
- # is acceptable: PrivEnum is a member of ClassWithEnum, so
- # there's no need to explicitly qualify its name with
- # "ClassWithEnum::". The truth, though, is that GDB is simply
- # forgetting that PrivEnum is a member of ClassWithEnum, so we do
- # that output for a bad reason instead of a good reason. Under
- # stabs, we probably can't get this right; under DWARF-2, we can.
-
- cp_test_ptype_class \
- "ptype obj_with_enum" "" "class" "ClassWithEnum" \
- {
- { field public "ClassWithEnum::PrivEnum priv_enum;" }
- { field public "int x;" }
- } \
- "" \
- {
- {
- "ClassWithEnum::PrivEnum priv_enum;"
- "PrivEnum priv_enum;"
- { setup_kfail "gdb/57" "*-*-*" }
- }
- }
-
- # I'll do this test two different ways, because of a parser bug.
- # See PR gdb/1588.
-
- gdb_test_multiple "print (ClassWithEnum::PrivEnum) 42" "print (ClassWithEnum::PrivEnum) 42" {
- -re "\\$\[0-9\]+ = yellow$nl$gdb_prompt $" {
- pass "print (ClassWithEnum::PrivEnum) 42"
- }
- -re "A (parse|syntax) error in expression, near `42'.$nl$gdb_prompt $" {
- # "parse error" is bison 1.35.
- # "syntax error" is bison 1.875.
- kfail "gdb/1588" "print (ClassWithEnum::PrivEnum) 42"
- }
- }
-
- gdb_test_multiple "print ('ClassWithEnum::PrivEnum') 42" "print ('ClassWithEnum::PrivEnum') 42" {
- -re "\\$\[0-9\]+ = yellow$nl$gdb_prompt $" {
- # gcc 3.3.2 -gstabs+
- # gcc HEAD 2003-12-28 21:08:30 UTC -gstabs+
- pass "print ('ClassWithEnum::PrivEnum') 42"
- }
- -re "No symbol \"ClassWithEnum::PrivEnum\" in current context.$nl$gdb_prompt $" {
- # gcc 2.95.3 -gdwarf-2
- # gcc 3.3.2 -gdwarf-2
- # gcc HEAD 2003-12-28 21:08:30 UTC -gdwarf-2
- # gcc 2.95.3 -gstabs+
- kfail "gdb/57" "print ('ClassWithEnum::PrivEnum') 42"
- }
- }
-}
-
-# Pointers to class members
-
-proc test_pointers_to_class_members {} {
- gdb_test "print Bar::z" "Cannot reference non-static field \"z\""
- gdb_test "print &Foo::x" "\\$\[0-9\]+ = &Foo::x"
- gdb_test "print (int)&Foo::x" "\\$\[0-9\]+ = 0"
- gdb_test "print (int)&Bar::y == 2*sizeof(int)" "\\$\[0-9\]+ = true"
-
- gdb_test "ptype Bar::z" "type = int"
- gdb_test "ptype &Bar::z" "type = int Bar::\\*"
-
- # TODO: this is a bogus test. It's looking at a variable that
- # has not even been declared yet, so it's accessing random junk
- # on the stack and comparing that it's NOT equal to a specific
- # value. It's been like this since gdb 4.10 in 1993!
- # -- chastain 2004-01-01
- gdb_test "print (int)pmi == sizeof(int)" ".* = false"
-}
-
-# Test static members.
-
-proc test_static_members {} {
- global hex
-
- gdb_test "print Foo::st" "\\$\[0-9\]+ = 100"
- gdb_test "set foo.st = 200" "" ""
- gdb_test "print bar.st" "\\$\[0-9\]+ = 200"
- gdb_test "print &foo.st" "\\$\[0-9\]+ = \\(int ?\\*\\) $hex"
- gdb_test "print &Bar::st" "\\$\[0-9\]+ = \\(int ?\\*\\) $hex"
- gdb_test "print *\$" "\\$\[0-9\]+ = 200"
-
- gdb_test "set print static-members off" ""
- gdb_test "print csi" \
- "{x = 10, y = 20}" \
- "print csi without static members"
- gdb_test "print cnsi" \
- "{x = 30, y = 40}" \
- "print cnsi without static members"
-
- gdb_test "set print static-members on" ""
- gdb_test "print csi" \
- "{x = 10, y = 20, static null = {x = 0, y = 0, static null = }}" \
- "print csi with static members"
- gdb_test "print cnsi" \
- "{x = 30, y = 40, static null = {x = 0, y = 0, static null = , static yy = {z = 5, static xx = {x = 1, y = 2, static null = , static yy = }}}, static yy = }" \
- "print cnsi with static members"
-}
-
-proc do_tests {} {
- global prms_id
- global bug_id
- global subdir
- global objdir
- global srcdir
- global binfile
- global gdb_prompt
- global nl
-
- set prms_id 0
- set bug_id 0
-
- # Start with a fresh gdb.
-
- gdb_exit
- gdb_start
- gdb_reinitialize_dir $srcdir/$subdir
- gdb_load $binfile
-
- gdb_test "set language c++" "" ""
- gdb_test "set width 0" "" ""
-
- if ![runto_main ] then {
- perror "couldn't run to breakpoint"
- return
- }
-
- gdb_breakpoint inheritance2
- gdb_test "continue" ".*Breakpoint .* inheritance2.*" ""
-
- test_ptype_class_objects
- test_non_inherited_member_access
- test_wrong_class_members
- test_nonexistent_members
- test_method_param_class
-
- gdb_breakpoint enums2
- gdb_test "continue" ".*Breakpoint .* enums2.*" "continue to enums2(\\(\\)|)"
- # Leave enums2. Make sure we reach the next line, in case there
- # are any more instructions to finish the function call.
- gdb_test_multiple "finish" "" {
- -re "enums2 \\(\\);.*$gdb_prompt $" {
- gdb_test "next" "" ""
- }
- -re "$gdb_prompt $" { }
- }
- test_enums
-
- gdb_test "finish" "" ""
- test_pointers_to_class_members
- test_static_members
-
- # Now some random tests that were just thrown in here.
-
- gdb_breakpoint marker_reg1
- gdb_test "continue" ".*Breakpoint .* marker_reg1.*" ""
- gdb_test "finish" "Run till exit from.*" "finish from marker_reg1"
-
- # This class is so small that an instance of it can fit in a register.
- # When gdb tries to call a method, it gets embarrassed about taking
- # the address of a register.
- #
- # TODO: I think that message should be a PASS, not an XFAIL.
- # gdb prints an informative message and declines to do something
- # impossible.
- #
- # The method call actually succeeds if the compiler allocates very
- # small classes in memory instead of registers. So this test does
- # not tell us anything interesting if the call succeeds.
- #
- # -- chastain 2003-12-31
- gdb_test_multiple "print v.method ()" "calling method for small class" {
- -re "\\$\[0-9\]+ = 82$nl$gdb_prompt $" {
- # gcc 3.3.2 -gdwarf-2
- # gcc HEAD 2003-12-28 21:08:30 UTC -gdwarf-2
- # gcc 3.3.2 -gstabs+
- # gcc HEAD 2003-12-28 21:08:30 UTC -gstabs+
- pass "calling method for small class"
- }
- -re "Address requested for identifier \"v\" which is in register .*$nl$gdb_prompt $" {
- # gcc 2.95.3 -gdwarf-2
- # gcc 2.95.3 -gstabs+
- setup_xfail "*-*-*" 2972
- fail "calling method for small class"
- }
- }
-}
-
-do_tests
Index: pr-574.exp
===================================================================
--- pr-574.exp (revision 816)
+++ pr-574.exp (nonexistent)
@@ -1,72 +0,0 @@
-# Copyright 2002, 2007, 2008 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see .
-
-# Tests for the bug mentioned in PR gdb/574. It's a bit
-# idiosyncratic, so I gave it its own file.
-
-# 2002-08-16 David Carlton
-
-# This file is part of the gdb testsuite
-
-if $tracelevel then {
- strace $tracelevel
- }
-
-if { [skip_cplus_tests] } { continue }
-
-#
-# test running programs
-#
-set prms_id 0
-set bug_id 0
-
-set testfile "pr-574"
-set srcfile ${testfile}.cc
-set binfile ${objdir}/${subdir}/${testfile}
-
-if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } {
- untested pr-574.exp
- return -1
-}
-
-if [get_compiler_info ${binfile} "c++"] {
- return -1
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binfile}
-
-
-if ![runto_main] then {
- perror "couldn't run to breakpoint"
- continue
-}
-
-# First, run to after we've constructed the object:
-
-gdb_breakpoint [gdb_get_line_number "constructs-done"]
-gdb_continue_to_breakpoint "end of constructors"
-
-# This failed, as long as the code was compiled with GCC v. 2.
-
-# Different compilers order the data for differently, so I'm not
-# matching the result exactly.
-
-gdb_test "print *theB" "\\$\[0-9\]* = { = {\[^}\]*}, static b = }" "PR gdb/574"
-
-gdb_exit
-return 0
Index: psmang2.cc
===================================================================
--- psmang2.cc (revision 816)
+++ psmang2.cc (nonexistent)
@@ -1,171 +0,0 @@
-/* This test script is part of GDB, the GNU debugger.
-
- Copyright 2002, 2004,
- Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see .
- */
-
-#include
-
-/* Do not move this definition into a header file! See the comments
- in psmang.exp. */
-struct s
-{
- int value;
- void method1 (void);
- void method2 (void);
-};
-
-void
-s::method2 (void)
-{
- printf ("%d\n", value);
-}
-
-
-/* The presence of these variables ensures there will be so many
- symbols in psmang2.cc's symtab's global block that it will have a
- non-trivial hash table. When there are only a very few symbols,
- the block only has one hash bucket, so even if we compute the hash
- value for the wrong symbol name, we'll still find a symbol that
- matches. */
-int a;
-int b;
-int a1;
-int b1;
-int a2;
-int b2;
-int a12;
-int b12;
-int a3;
-int b3;
-int a13;
-int b13;
-int a23;
-int b23;
-int a123;
-int b123;
-int a4;
-int b4;
-int a14;
-int b14;
-int a24;
-int b24;
-int a124;
-int b124;
-int a34;
-int b34;
-int a134;
-int b134;
-int a234;
-int b234;
-int a1234;
-int b1234;
-int a5;
-int b5;
-int a15;
-int b15;
-int a25;
-int b25;
-int a125;
-int b125;
-int a35;
-int b35;
-int a135;
-int b135;
-int a235;
-int b235;
-int a1235;
-int b1235;
-int a45;
-int b45;
-int a145;
-int b145;
-int a245;
-int b245;
-int a1245;
-int b1245;
-int a345;
-int b345;
-int a1345;
-int b1345;
-int a2345;
-int b2345;
-int a12345;
-int b12345;
-int a6;
-int b6;
-int a16;
-int b16;
-int a26;
-int b26;
-int a126;
-int b126;
-int a36;
-int b36;
-int a136;
-int b136;
-int a236;
-int b236;
-int a1236;
-int b1236;
-int a46;
-int b46;
-int a146;
-int b146;
-int a246;
-int b246;
-int a1246;
-int b1246;
-int a346;
-int b346;
-int a1346;
-int b1346;
-int a2346;
-int b2346;
-int a12346;
-int b12346;
-int a56;
-int b56;
-int a156;
-int b156;
-int a256;
-int b256;
-int a1256;
-int b1256;
-int a356;
-int b356;
-int a1356;
-int b1356;
-int a2356;
-int b2356;
-int a12356;
-int b12356;
-int a456;
-int b456;
-int a1456;
-int b1456;
-int a2456;
-int b2456;
-int a12456;
-int b12456;
-int a3456;
-int b3456;
-int a13456;
-int b13456;
-int a23456;
-int b23456;
-int a123456;
-int b123456;
Index: ovldbreak.cc
===================================================================
--- ovldbreak.cc (revision 816)
+++ ovldbreak.cc (nonexistent)
@@ -1,177 +0,0 @@
-#include
-
-class foo {
-public:
- foo (int);
- foo (int, const char *);
- foo (foo&);
- ~foo ();
- void foofunc (int);
- void foofunc (int, signed char *);
- int ifoo;
- const char *ccpfoo;
-
-int overload1arg (void);
-int overload1arg (char);
-int overload1arg (signed char);
-int overload1arg (unsigned char);
-int overload1arg (short);
-int overload1arg (unsigned short);
-int overload1arg (int);
-int overload1arg (unsigned int);
-int overload1arg (long);
-int overload1arg (unsigned long);
-int overload1arg (float);
-int overload1arg (double);
-
-int overloadargs (int a1);
-int overloadargs (int a1, int a2);
-int overloadargs (int a1, int a2, int a3);
-int overloadargs (int a1, int a2, int a3, int a4);
-int overloadargs (int a1, int a2, int a3, int a4, int a5);
-int overloadargs (int a1, int a2, int a3, int a4, int a5, int a6);
-int overloadargs (int a1, int a2, int a3, int a4, int a5, int a6, int a7);
-int overloadargs (int a1, int a2, int a3, int a4, int a5, int a6, int a7, int a8);
-int overloadargs (int a1, int a2, int a3, int a4, int a5, int a6, int a7, int a8, int a9);
-int overloadargs (int a1, int a2, int a3, int a4, int a5, int a6, int a7,
- int a8, int a9, int a10);
-int overloadargs (int a1, int a2, int a3, int a4, int a5, int a6, int a7,
- int a8, int a9, int a10, int a11);
-
-
-};
-
-void marker1()
-{}
-
-int main ()
-{
- char arg2 = 2;
- signed char arg3 =3;
- unsigned char arg4 =4;
- short arg5 =5;
- unsigned short arg6 =6;
- int arg7 =7;
- unsigned int arg8 =8;
- long arg9 =9;
- unsigned long arg10 =10;
- float arg11 =100.0;
- double arg12 = 200.0;
-
- char ch='A';
- foo foo_instance1(111);
- foo foo_instance2(222, &ch);
- foo foo_instance3(foo_instance2);
-
- foo_instance1.overload1arg();
- foo_instance1.overload1arg(arg2);
- foo_instance1.overload1arg(arg3);
- foo_instance1.overload1arg(arg4);
- foo_instance1.overload1arg(arg5);
- foo_instance1.overload1arg(arg6);
- foo_instance1.overload1arg(arg7);
- foo_instance1.overload1arg(arg8);
- foo_instance1.overload1arg(arg9);
- foo_instance1.overload1arg(arg10);
- foo_instance1.overload1arg(arg11);
- foo_instance1.overload1arg(arg12);
-
- foo_instance1.overloadargs(1);
- foo_instance1.overloadargs(1, 2);
- foo_instance1.overloadargs(1, 2, 3);
- foo_instance1.overloadargs(1, 2, 3, 4);
- foo_instance1.overloadargs(1, 2, 3, 4, 5);
- foo_instance1.overloadargs(1, 2, 3, 4, 5, 6);
- foo_instance1.overloadargs(1, 2, 3, 4, 5, 6, 7);
- foo_instance1.overloadargs(1, 2, 3, 4, 5, 6, 7, 8);
- foo_instance1.overloadargs(1, 2, 3, 4, 5, 6, 7, 8, 9);
- foo_instance1.overloadargs(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
- foo_instance1.overloadargs(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11);
-
-
- #ifdef usestubs
- set_debug_traps();
- breakpoint();
- #endif
-
-
- marker1();
- return 0;
-}
-
-foo::foo (int i) { ifoo = i;}
-foo::foo (int i, const char *ccp) { ifoo = i; ccpfoo = ccp; }
-foo::foo (foo& afoo) { ifoo = afoo.ifoo; ccpfoo = afoo.ccpfoo;}
-foo::~foo () {}
-
-
-/* Some functions to test overloading by varying one argument type. */
-
-int foo::overload1arg (void) { return 1; }
-int foo::overload1arg (char arg) { arg = 0; return 2;}
-int foo::overload1arg (signed char arg) { arg = 0; return 3;}
-int foo::overload1arg (unsigned char arg) { arg = 0; return 4;}
-int foo::overload1arg (short arg) { arg = 0; return 5;}
-int foo::overload1arg (unsigned short arg) { arg = 0; return 6;}
-int foo::overload1arg (int arg) { arg = 0; return 7;}
-int foo::overload1arg (unsigned int arg) { arg = 0; return 8;}
-int foo::overload1arg (long arg) { arg = 0; return 9;}
-int foo::overload1arg (unsigned long arg) { arg = 0; return 10;}
-int foo::overload1arg (float arg) { arg = 0; return 11;}
-int foo::overload1arg (double arg) { arg = 0; return 12;}
-
-
-/* Some functions to test overloading by varying argument count. */
-
-int foo::overloadargs (int a1)
-{ a1 = 0;
-return 1;}
-
-int foo::overloadargs (int a1, int a2)
-{ a1 = a2 = 0;
-return 2;}
-
-int foo::overloadargs (int a1, int a2, int a3)
-{ a1 = a2 = a3 = 0;
-return 3;}
-
-int foo::overloadargs (int a1, int a2, int a3, int a4)
-{ a1 = a2 = a3 = a4 = 0;
-return 4;}
-
-int foo::overloadargs (int a1, int a2, int a3, int a4, int a5)
-{ a1 = a2 = a3 = a4 = a5 = 0;
-return 5;}
-
-int foo::overloadargs (int a1, int a2, int a3, int a4, int a5, int a6)
-{ a1 = a2 = a3 = a4 = a5 = a6 = 0;
-return 6;}
-
-int foo::overloadargs (int a1, int a2, int a3, int a4, int a5, int a6, int a7)
-{ a1 = a2 = a3 = a4 = a5 = a6 = a7 = 0;
-return 7;}
-
-int foo::overloadargs (int a1, int a2, int a3, int a4, int a5, int a6, int a7,
- int a8)
-{ a1 = a2 = a3 = a4 = a5 = a6 = a7 = a8 = 0;
-return 8;}
-
-int foo::overloadargs (int a1, int a2, int a3, int a4, int a5, int a6, int a7,
- int a8, int a9)
-{
- a1 = a2 = a3 = a4 = a5 = a6 = a7 = a8 = a9 = 0;
- return 9;
-}
-
-int foo::overloadargs (int a1, int a2, int a3, int a4, int a5, int a6, int a7,
- int a8, int a9, int a10)
- { a1 = a2 = a3 = a4 = a5 = a6 = a7 = a8 = a9 =
- a10 = 0; return 10;}
-
-int foo::overloadargs (int a1, int a2, int a3, int a4, int a5, int a6, int a7,
- int a8, int a9, int a10, int a11)
- { a1 = a2 = a3 = a4 = a5 = a6 = a7 = a8 = a9 =
- a10 = a11 = 0; return 11;}
-
-
-
Index: mb-ctor.exp
===================================================================
--- mb-ctor.exp (revision 816)
+++ mb-ctor.exp (nonexistent)
@@ -1,87 +0,0 @@
-# Copyright 2007, 2008 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see .
-
-# Test that breakpoints on C++ constructors work, despite the
-# fact that gcc generates several versions of constructor function.
-
-if $tracelevel then {
- strace $tracelevel
-}
-
-if { [skip_cplus_tests] } { continue }
-
-set prms_id 0
-set bug_id 0
-
-set testfile "mb-ctor"
-set srcfile ${testfile}.cc
-set binfile ${objdir}/${subdir}/${testfile}
-
-if [get_compiler_info ${binfile} "c++"] {
- return -1
-}
-
-if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } {
- untested mb-ctor.exp
- return -1
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binfile}
-
-# Set a breakpoint with multiple locations
-# and a condition.
-
-gdb_test "break 'Derived::Derived(int)'" \
- "Breakpoint.*at.* file .*$srcfile, line.*\\(2 locations\\).*" \
- "set-breakpoint at ctor"
-
-gdb_test "break 'Derived::~Derived()'" \
- "Breakpoint.*at.* file .*$srcfile, line.*\\(2 locations\\).*" \
- "set-breakpoint at ctor"
-
-gdb_run_cmd
-gdb_expect {
- -re "Breakpoint \[0-9\]+,.*Derived.*i=7.*$gdb_prompt $" {
- pass "run to breakpoint"
- }
- -re "$gdb_prompt $" {
- fail "run to breakpoint"
- }
- timeout {
- fail "run to breakpoint (timeout)"
- }
-}
-
-gdb_test "continue" \
- ".*Breakpoint.*Derived.*i=15.*" \
- "run to breakpoint 2"
-
-gdb_test "continue" \
- ".*Breakpoint.*~Derived.*" \
- "run to breakpoint 3"
-
-gdb_test "continue" \
- ".*Breakpoint.*~Derived.*" \
- "run to breakpoint 4"
-
-gdb_test "continue" \
- ".*exited normally.*" \
- "run to exit"
-
-
-
Index: pr-1023.exp
===================================================================
--- pr-1023.exp (revision 816)
+++ pr-1023.exp (nonexistent)
@@ -1,79 +0,0 @@
-# Copyright 2003, 2007, 2008 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see .
-
-# Tests for PR gdb/1023.
-# 2003-02-03 Michael Chastain
-
-# This file is part of the gdb testsuite.
-
-if $tracelevel then {
- strace $tracelevel
- }
-
-if { [skip_cplus_tests] } { continue }
-
-#
-# test running programs
-#
-set prms_id 0
-set bug_id 0
-
-set testfile "pr-1023"
-set srcfile ${testfile}.cc
-set binfile ${objdir}/${subdir}/${testfile}
-
-if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } {
- untested pr-1023.exp
- return -1
-}
-
-if [get_compiler_info ${binfile} "c++"] {
- return -1
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binfile}
-
-if ![runto_main] then {
- perror "couldn't run to breakpoint"
- continue
-}
-
-send_gdb "break myClass::performBlocking\n"
-gdb_expect {
- -re "Breakpoint $decimal at $hex: file .*$srcfile, line 12.*$gdb_prompt $" {
- pass "break myClass::performBlocking"
- }
- -re "the class myClass does not have any method named performBlocking.*$gdb_prompt $" {
- # fails with gcc 2.95.3 -gstabs+, native i686-pc-linux-gnu
- # -- chastain 2003-02-03
- kfail "gdb/1023" "break myClass::performBlocking"
- }
- -re ".*$gdb_prompt $" {
- fail "break myClass::performBlocking"
- }
- timeout {
- fail "break myClass::performBlocking (timeout)"
- }
-}
-
-gdb_test \
- "break myClass::performUnblocking" \
- "Breakpoint $decimal at $hex: file .*$srcfile, line 10.*"
-
-gdb_exit
-return 0
Index: mb-inline.h
===================================================================
--- mb-inline.h (revision 816)
+++ mb-inline.h (nonexistent)
@@ -1,30 +0,0 @@
-/* Test gdb support for setting multiple file:line breakpoints on static
- functions. In practice the functions may be inline fns compiled with -O0.
- We avoid using inline here for simplicity's sake.
-
- This testcase is part of GDB, the GNU debugger.
-
- Copyright 2008 Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see .
- */
-
-static int
-foo (int i)
-{
- return i; // set breakpoint here
-}
-
-extern int afn ();
-extern int bfn ();
mb-inline.h
Property changes :
Deleted: svn:eol-style
## -1 +0,0 ##
-native
\ No newline at end of property
Deleted: svn:keywords
## -1 +0,0 ##
-Id
\ No newline at end of property
Index: method.cc
===================================================================
--- method.cc (revision 816)
+++ method.cc (nonexistent)
@@ -1,80 +0,0 @@
-// Class funk has a constructor and an ordinary method
-// Test for CHFts23426
-
-class funk
-{
-public:
- funk();
- void getFunky(int a, int b);
- int data_;
-};
-
-funk::funk()
- : data_(33)
-{
-}
-
-void funk::getFunky(int a, int b)
-{
- int res;
- res = a + b - data_;
- data_ = res;
-}
-
-// Class A has const and volatile methods
-
-class A {
-public:
- int x;
- int y;
- int foo (int arg);
- int bar (int arg) const;
- int baz (int arg, char c) volatile;
- int qux (int arg, float f) const volatile;
-};
-
-int A::foo (int arg)
-{
- x += arg;
- return arg *2;
-}
-
-int A::bar (int arg) const
-{
- return arg + 2 * x;
-}
-
-int A::baz (int arg, char c) volatile
-{
- return arg - 2 * x + c;
-}
-
-int A::qux (int arg, float f) const volatile
-{
- if (f > 0)
- return 2 * arg - x;
- else
- return 2 * arg + x;
-}
-
-
-int main()
-{
- A a;
- int k;
-
- k = 10;
- a.x = k * 2;
-
- k = a.foo(13);
-
- k += a.bar(15);
-
- // Test for CHFts23426 follows
- funk f;
- f.getFunky(1, 2);
- return 0;
-}
-
-
-
Index: m-static.cc
===================================================================
--- m-static.cc (revision 816)
+++ m-static.cc (nonexistent)
@@ -1,73 +0,0 @@
-// 2002-05-13
-
-enum region { oriental, egyptian, greek, etruscan, roman };
-
-// Test one.
-class gnu_obj_1
-{
-protected:
- typedef region antiquities;
- static const bool test = true;
- static const int key1 = 5;
- static long key2;
-
- static antiquities value;
-
-public:
- gnu_obj_1(antiquities a, long l) {}
-};
-
-const bool gnu_obj_1::test;
-const int gnu_obj_1::key1;
-long gnu_obj_1::key2 = 77;
-gnu_obj_1::antiquities gnu_obj_1::value = oriental;
-
-
-// Test two.
-template
-class gnu_obj_2: public virtual gnu_obj_1
-{
-public:
- static antiquities value_derived;
-
-public:
- gnu_obj_2(antiquities b): gnu_obj_1(oriental, 7) { }
-};
-
-template
-typename gnu_obj_2::antiquities gnu_obj_2::value_derived = etruscan;
-
-// Test three.
-template
-class gnu_obj_3
-{
-public:
- typedef region antiquities;
- static gnu_obj_2 data;
-
-public:
- gnu_obj_3(antiquities b) { }
-};
-
-template
-gnu_obj_2 gnu_obj_3::data(etruscan);
-
-// 2002-08-16
-// Test four.
-#include "m-static.h"
-
-// instantiate templates explicitly so their static members will exist
-template class gnu_obj_2;
-template class gnu_obj_2;
-template class gnu_obj_3;
-
-int main()
-{
- gnu_obj_1 test1(egyptian, 4589);
- gnu_obj_2 test2(roman);
- gnu_obj_3 test3(greek);
- gnu_obj_4 test4;
-
- test4.dummy = 0;
- return test4.dummy; // breakpoint: constructs-done
-}
Index: casts.exp
===================================================================
--- casts.exp (revision 816)
+++ casts.exp (nonexistent)
@@ -1,82 +0,0 @@
-# Copyright 2002, 2003, 2004, 2007, 2008 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see .
-
-# This file is part of the gdb testsuite
-
-# Test casting, especially between class types or pointer-to-class
-# types.
-
-# This file is part of the gdb testsuite
-
-if $tracelevel then {
- strace $tracelevel
- }
-
-#
-# test running programs
-#
-
-set prms_id 0
-set bug_id 0
-
-if { [skip_cplus_tests] } { continue }
-
-set testfile "casts"
-set srcfile ${testfile}.cc
-set binfile ${objdir}/${subdir}/${testfile}
-
-if [get_compiler_info ${binfile} "c++"] {
- return -1;
-}
-
-if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } {
- untested casts.exp
- return -1
-}
-
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binfile}
-
-if ![runto_main] then {
- perror "couldn't run to breakpoint"
- continue
-}
-
-gdb_test "break [gdb_get_line_number "casts.exp: 1"]" \
- "Breakpoint.*at.* file .*" \
- ""
-
-gdb_test "continue" "Breakpoint .* at .*casts.cc.*" ""
-
-# Casting a pointer to a base class to a pointer to a derived class
-# should yield the entire derived class. Until August 2002, GDB got
-# the enclosing type on `(B *) a' wrong: while the value's static type
-# was `B *', as it should be, the enclosing type (which is supposed to
-# be the dynamic type) was `A *'. It's senseless to have a static
-# type derived from the dynamic type; it should be the other way
-# 'round. Dereferencing this oddly typed pointer yielded a value in
-# which only the base class's members were initialized, since GDB uses
-# the enclosing type to decide how many bytes to read. Members from
-# the derived class were garbage, from GDB's address space.
-gdb_test "print * (B *) a" ".* = { = {a = 42}, b = 1729}" \
- "cast base class pointer to derived class pointer"
-
-# Check also that we get the same results from letting the compiler do
-# the dereference.
-gdb_test "print * b" ".* = { = {a = 42}, b = 1729}" \
- "let compiler cast base class pointer to derived class pointer"
Index: gdb2384.exp
===================================================================
--- gdb2384.exp (revision 816)
+++ gdb2384.exp (nonexistent)
@@ -1,100 +0,0 @@
-# Copyright 2007 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see .
-
-# When gdb resolves type information for class "derived" from objfile
-# gdb2384, it use to fill in the TYPE_VPTR_BASETYPE field with class "base"
-# from objfile gdb2384-base.so. When the program is rerun the type
-# information for base-in-so-base.so is discarded leaving
-# TYPE_VPTR_BASETYPE dangling.
-
-if $tracelevel then {
- strace $tracelevel
-}
-
-if { [skip_cplus_tests] } { continue }
-if { [skip_shlib_tests] } { continue }
-
-set prms_id 2384
-set bug_id 0
-
-set testfile "gdb2384"
-set srcfile ${testfile}.cc
-set binfile $objdir/$subdir/$testfile
-
-set libfile "gdb2384-base"
-set libsrcfile ${libfile}.cc
-set sofile $objdir/$subdir/${libfile}.so
-
-# Create and source the file that provides information about the compiler
-# used to compile the test case.
-if [get_compiler_info ${binfile} "c++"] {
- return -1
-}
-
-if { [gdb_compile_shlib $srcdir/$subdir/$libsrcfile $sofile {debug c++}] != ""
- || [gdb_compile $srcdir/$subdir/$srcfile $binfile executable [list debug "c++" shlib=${sofile}]] != ""} {
- untested gdb2384.exp
- return -1
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binfile}
-gdb_load_shlibs ${sofile}
-
-set bp_location [gdb_get_line_number "set breakpoint here"]
-
-# Set a breakpoint with multiple locations.
-
-gdb_test "break $srcfile:$bp_location" \
- "Breakpoint.*at.* file .*$srcfile, line.*" \
- "set breakpoint"
-
-gdb_run_cmd
-gdb_expect {
- -re "Breakpoint \[0-9\]+,.*main \\(.*\\).*$gdb_prompt $" {
- pass "run to breakpoint"
- }
- -re "$gdb_prompt $" {
- fail "run to breakpoint"
- }
- timeout {
- fail "run to breakpoint (timeout)"
- }
-}
-
-gdb_test "print d.meth ()" \
- ".*42.*" \
- "print d.meth ()"
-
-# Now try again. gdb's without the fix will hopefully segv here
-
-gdb_run_cmd
-gdb_expect {
- -re "Breakpoint \[0-9\]+,.*main \\(.*\\).*$gdb_prompt $" {
- pass "run to breakpoint #2"
- }
- -re "$gdb_prompt $" {
- fail "run to breakpoint #2"
- }
- timeout {
- fail "run to breakpoint #2 (timeout)"
- }
-}
-
-gdb_test "print d.meth ()" \
- ".*42.*" \
- "gdb2384"
Index: gdb2384-base.cc
===================================================================
--- gdb2384-base.cc (revision 816)
+++ gdb2384-base.cc (nonexistent)
@@ -1,30 +0,0 @@
-/* This testcase is part of GDB, the GNU debugger.
-
- Copyright 2008 Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see .
- */
-
-#include "gdb2384-base.h"
-
-base::base (int _x)
- : x (_x)
-{
-}
-
-int
-base::meth ()
-{
- return x;
-}
Index: anon-union.exp
===================================================================
--- anon-union.exp (revision 816)
+++ anon-union.exp (nonexistent)
@@ -1,344 +0,0 @@
-# Tests for anonymous union support.
-# Copyright 1998, 1999, 2003, 2004, 2007, 2008 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see .
-
-# Written by Satish Pai 1997-08-19
-
-# This file is part of the gdb testsuite
-
-if $tracelevel then {
- strace $tracelevel
- }
-
-#
-# test running programs
-#
-
-set prms_id 0
-set bug_id 0
-
-if { [skip_cplus_tests] } { continue }
-
-set testfile "anon-union"
-set srcfile ${testfile}.cc
-set binfile ${objdir}/${subdir}/${testfile}
-
-if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } {
- perror "Testcase compile failed" 0
- continue
-}
-
-# Start with a fresh gdb
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binfile}
-
-
-if ![runto_main] then {
- perror "couldn't run to breakpoint"
- continue
-}
-
-send_gdb "set width 0\n"
-gdb_expect -re "$gdb_prompt $"
-
-#send_gdb "ptype foo\n"
-#gdb_expect {
-# -re "\r\n$gdb_prompt $" {
-# pass "ptype foo"
-# }
-# -re ".*$gdb_prompt $" { fail "ptype foo" }
-# timeout { fail "(timeout) ptype foo" }
-#}
-
-#send_gdb "ptype bar\n"
-#gdb_expect {
-# -re "\r\n$gdb_prompt $" {
-# pass "ptype foo"
-# }
-# -re ".*$gdb_prompt $" { fail "ptype foo" }
-# timeout { fail "(timeout) ptype foo" }
-#}
-
-# NOTE: Add -- ptype foo.x, etc. when things are working
-
-#Initialize foo
-send_gdb "next\n"
-gdb_expect {
- -re "40\[ \t\]*foo.paper = 33;\r\n$gdb_prompt $" {
- pass "next 1"
- }
- -re ".*$gdb_prompt $" { fail "next 1" }
- timeout { fail "(timeout) next 1" }
-}
-
-# Print out the big anon union.
-send_gdb "print foo\n"
-gdb_expect {
- -re "\\$\[0-9\]* = \{num1 = \{zero = 0, one = 0\}, \{pebble = 0, x = \{rock = 0, rock2 = 0\}, \{qux = 0, mux = 0\}, boulder = 0\}, \{paper = 0, cloth = 0\}, num2 = \{two = 0, three = 0\}\}\r\n$gdb_prompt $" {
- pass "print foo 1"
- }
- -re ".*$gdb_prompt $" { fail "print foo 1" }
- timeout { fail "(timeout) print foo 1" }
-}
-
-# Step over assignment to member
-
-send_gdb "next\n"
-gdb_expect {
- -re "41\[ \t\]*foo.pebble = 44;\r\n$gdb_prompt $" {
- pass "next 1"
- }
- -re ".*$gdb_prompt $" { fail "next 1" }
- timeout { fail "(timeout) next 1" }
-}
-
-# Now print out anon union again
-send_gdb "print foo\n"
-gdb_expect {
- -re "\\$\[0-9\]* = \{num1 = \{zero = 0, one = 0\}, \{pebble = 0, x = \{rock = 0, rock2 = 0\}, \{qux = 0, mux = 0\}, boulder = 0\}, \{paper = 33, cloth = 33\}, num2 = \{two = 0, three = 0\}\}\r\n$gdb_prompt $" {
- pass "print foo 2"
- }
- -re ".*$gdb_prompt $" { fail "print foo 2" }
- timeout { fail "(timeout) print foo 2" }
-}
-
-# Modify the member just set
-send_gdb "set var foo.cloth = 35\n"
-gdb_expect {
- -re "\r\n$gdb_prompt $" {
- pass "set var foo.cloth"
- }
- timeout { fail "(timeout) set var foo.cloth" }
-}
-
-# Now print out anon union again to see if the right member was set
-send_gdb "print foo\n"
-gdb_expect {
- -re "\\$\[0-9\]* = \{num1 = \{zero = 0, one = 0\}, \{pebble = 0, x = \{rock = 0, rock2 = 0\}, \{qux = 0, mux = 0\}, boulder = 0\}, \{paper = 35, cloth = 35\}, num2 = \{two = 0, three = 0\}\}\r\n$gdb_prompt $" {
- pass "print foo 3"
- }
- -re ".*$gdb_prompt $" { fail "print foo 3" }
- timeout { fail "(timeout) print foo 3" }
-}
-
-
-# Step over next assignment to member
-
-send_gdb "next\n"
-gdb_expect {
- -re "42\[ \t\]*foo.mux = 55;\r\n$gdb_prompt $" {
- pass "next 2"
- }
- -re ".*$gdb_prompt $" { fail "next 2" }
- timeout { fail "(timeout) next 2" }
-}
-
-# Now print out anon union again
-send_gdb "print foo\n"
-gdb_expect {
- -re "\\$\[0-9\]* = \{num1 = \{zero = 0, one = 0\}, \{pebble = 44, x = \{rock = 44, rock2 = 0\}, \{qux = 44, mux = 44\}, boulder = 44\}, \{paper = 35, cloth = 35\}, num2 = \{two = 0, three = 0\}\}\r\n$gdb_prompt $" {
- pass "print foo 4"
- }
- -re ".*$gdb_prompt $" { fail "print foo 4" }
- timeout { fail "(timeout) print foo 4" }
-}
-
-# Modify the member just set
-send_gdb "set var foo.pebble = 45\n"
-gdb_expect {
- -re "\r\n$gdb_prompt $" {
- pass "set var foo.pebble"
- }
- timeout { fail "(timeout) set var foo.pebble" }
-}
-
-# Now print out anon union again to see if the right member was set
-send_gdb "print foo\n"
-gdb_expect {
- -re "\\$\[0-9\]* = \{num1 = \{zero = 0, one = 0\}, \{pebble = 45, x = \{rock = 45, rock2 = 0\}, \{qux = 45, mux = 45\}, boulder = 45\}, \{paper = 35, cloth = 35\}, num2 = \{two = 0, three = 0\}\}\r\n$gdb_prompt $" {
- pass "print foo 5"
- }
- -re ".*$gdb_prompt $" { fail "print foo 5" }
- timeout { fail "(timeout) print foo 5" }
-}
-
-# Modify another member at a different level
-send_gdb "set var foo.qux = 46\n"
-gdb_expect {
- -re "\r\n$gdb_prompt $" {
- pass "set var foo.qux"
- }
- timeout { fail "(timeout) set var foo.qux" }
-}
-
-# Now print out anon union again to see if the right member was set
-send_gdb "print foo\n"
-gdb_expect {
- -re "\\$\[0-9\]* = \{num1 = \{zero = 0, one = 0\}, \{pebble = 46, x = \{rock = 46, rock2 = 0\}, \{qux = 46, mux = 46\}, boulder = 46\}, \{paper = 35, cloth = 35\}, num2 = \{two = 0, three = 0\}\}\r\n$gdb_prompt $" {
- pass "print foo 6"
- }
- -re ".*$gdb_prompt $" { fail "print foo 6" }
- timeout { fail "(timeout) print foo 6" }
-}
-
-# Modify the member at another level, but not the first one in the union
-send_gdb "set var foo.mux = 47\n"
-gdb_expect {
- -re "\r\n$gdb_prompt $" {
- pass "set var foo.mux"
- }
- timeout { fail "(timeout) set var foo.mux" }
-}
-
-# Now print out anon union again to see if things worked
-send_gdb "print foo\n"
-gdb_expect {
- -re "\\$\[0-9\]* = \{num1 = \{zero = 0, one = 0\}, \{pebble = 47, x = \{rock = 47, rock2 = 0\}, \{qux = 47, mux = 47\}, boulder = 47\}, \{paper = 35, cloth = 35\}, num2 = \{two = 0, three = 0\}\}\r\n$gdb_prompt $" {
- pass "print foo 7"
- }
- -re ".*$gdb_prompt $" { fail "print foo 7" }
- timeout { fail "(timeout) print foo 7" }
-}
-
-# Modify a member of a struct in an anon union
-send_gdb "set var foo.x.rock = 48\n"
-gdb_expect {
- -re "\r\n$gdb_prompt $" {
- pass "set var foo.x.rock"
- }
- timeout { fail "(timeout) set var foo.x.rock" }
-}
-
-# Now print out anon union again to see if things worked
-send_gdb "print foo\n"
-gdb_expect {
- -re "\\$\[0-9\]* = \{num1 = \{zero = 0, one = 0\}, \{pebble = 48, x = \{rock = 48, rock2 = 0\}, \{qux = 48, mux = 48\}, boulder = 48\}, \{paper = 35, cloth = 35\}, num2 = \{two = 0, three = 0\}\}\r\n$gdb_prompt $" {
- pass "print foo 8"
- }
- -re ".*$gdb_prompt $" { fail "print foo 8" }
- timeout { fail "(timeout) print foo 8" }
-}
-
-# Modify a member of a struct in an anon union, but something
-# that doesn't alias to some other union member
-send_gdb "set var foo.x.rock2 = 49\n"
-gdb_expect {
- -re "\r\n$gdb_prompt $" {
- pass "set var foo.x.rock2"
- }
- timeout { fail "(timeout) set var foo.x.rock2" }
-}
-
-# Now print out anon union again to see if things worked
-send_gdb "print foo\n"
-gdb_expect {
- -re "\\$\[0-9\]* = \{num1 = \{zero = 0, one = 0\}, \{pebble = 48, x = \{rock = 48, rock2 = 49\}, \{qux = 48, mux = 48\}, boulder = 48\}, \{paper = 35, cloth = 35\}, num2 = \{two = 0, three = 0\}\}\r\n$gdb_prompt $" {
- pass "print foo 9"
- }
- -re ".*$gdb_prompt $" { fail "print foo 9" }
- timeout { fail "(timeout) print foo 9" }
-}
-
-
-# Step over next four assignments
-send_gdb "next 4\n"
-gdb_expect {
- -re "53\[ \t\]*w = 45;\r\n$gdb_prompt $" {
- pass "next 3"
- }
- -re ".*$gdb_prompt $" { fail "next 3" }
- timeout { fail "(timeout) next 3" }
-}
-
-# Tests for anon unions that are not members of a class or struct
-
-send_gdb "print w\n"
-gdb_expect {
- -re "\\$\[0-9\]* = 0\r\n$gdb_prompt $" {
- pass "print w 1"
- }
- -re ".*$gdb_prompt $" { fail "print w 1" }
- timeout { fail "(timeout) print w 1" }
-}
-
-send_gdb "print z\n"
-gdb_expect {
- -re "\\$\[0-9\]* = 0\r\n$gdb_prompt $" {
- pass "print z 1"
- }
- -re ".*$gdb_prompt $" { fail "print z 1" }
- timeout { fail "(timeout) print z 1" }
-}
-
-# Step over next assignment to w
-send_gdb "next\n"
-gdb_expect {
- -re "55\[ \t\]*int j = 0;\r\n$gdb_prompt $" {
- pass "next 4"
- }
- -re ".*$gdb_prompt $" { fail "next 4" }
- timeout { fail "(timeout) next 4" }
-}
-
-# See if the change in value is noticed
-send_gdb "print w\n"
-gdb_expect {
- -re "\\$\[0-9\]* = 45\r\n$gdb_prompt $" {
- pass "print w 2"
- }
- -re ".*$gdb_prompt $" { fail "print w 2" }
- timeout { fail "(timeout) print w 2" }
-}
-
-# See if z shows the same value
-send_gdb "print z\n"
-gdb_expect {
- -re "\\$\[0-9\]* = 45\r\n$gdb_prompt $" {
- pass "print z 2"
- }
- -re ".*$gdb_prompt $" { fail "print z 2" }
- timeout { fail "(timeout) print z 2" }
-}
-
-# Set the anon union member
-send_gdb "set var z = 27\n"
-gdb_expect {
- -re "\r\n$gdb_prompt $" {
- pass "set var z"
- }
- timeout { fail "(timeout) set var z" }
-}
-
-# See if the change in value is noticed
-send_gdb "print w\n"
-gdb_expect {
- -re "\\$\[0-9\]* = 27\r\n$gdb_prompt $" {
- pass "print w 3"
- }
- -re ".*$gdb_prompt $" { fail "print w 3" }
- timeout { fail "(timeout) print w 3" }
-}
-
-# See if z shows the same value
-send_gdb "print z\n"
-gdb_expect {
- -re "\\$\[0-9\]* = 27\r\n$gdb_prompt $" {
- pass "print z 3"
- }
- -re ".*$gdb_prompt $" { fail "print z 3" }
- timeout { fail "(timeout) print z 3" }
-}
Index: namespace.cc
===================================================================
--- namespace.cc (revision 816)
+++ namespace.cc (nonexistent)
@@ -1,198 +0,0 @@
-namespace AAA {
- char c;
- int i;
- int A_xyzq (int);
- char xyzq (char);
- class inA {
- public:
- int xx;
- int fum (int);
- };
-};
-
-int AAA::inA::fum (int i)
-{
- return 10 + i;
-}
-
-namespace BBB {
- char c;
- int i;
- int B_xyzq (int);
- char xyzq (char);
-
- namespace CCC {
- char xyzq (char);
- };
-
- class Class {
- public:
- char xyzq (char);
- int dummy;
- };
-};
-
-int AAA::A_xyzq (int x)
-{
- return 2 * x;
-}
-
-char AAA::xyzq (char c)
-{
- return 'a';
-}
-
-
-int BBB::B_xyzq (int x)
-{
- return 3 * x;
-}
-
-char BBB::xyzq (char c)
-{
- return 'b';
-}
-
-char BBB::CCC::xyzq (char c)
-{
- return 'z';
-}
-
-char BBB::Class::xyzq (char c)
-{
- return 'o';
-}
-
-void marker1(void)
-{
- return;
-}
-
-namespace
-{
- int X = 9;
-
- namespace G
- {
- int Xg = 10;
-
- namespace
- {
- int XgX = 11;
- }
- }
-}
-
-namespace C
-{
- int c = 1;
- int shadow = 12;
-
- class CClass {
- public:
- int x;
- class NestedClass {
- public:
- int y;
- };
- };
-
- void ensureRefs () {
- // NOTE (2004-04-23, carlton): This function is here only to make
- // sure that GCC 3.4 outputs debug info for these classes.
- static CClass *c = new CClass();
- static CClass::NestedClass *n = new CClass::NestedClass();
- }
-
- namespace
- {
- int cX = 6;
-
- namespace F
- {
- int cXf = 7;
-
- namespace
- {
- int cXfX = 8;
- }
- }
- }
-
- namespace C
- {
- int cc = 2;
- }
-
- namespace E
- {
- int ce = 4;
- }
-
- namespace D
- {
- int cd = 3;
- int shadow = 13;
-
- namespace E
- {
- int cde = 5;
- }
-
- void marker2 (void)
- {
- // NOTE: carlton/2003-04-23: I'm listing the expressions that I
- // plan to have GDB try to print out, just to make sure that the
- // compiler and I agree which ones should be legal! It's easy
- // to screw up when testing the boundaries of namespace stuff.
- c;
- //cc;
- C::cc;
- cd;
- //C::D::cd;
- E::cde;
- shadow;
- //E::ce;
- cX;
- F::cXf;
- F::cXfX;
- X;
- G::Xg;
- //cXOtherFile;
- //XOtherFile;
- G::XgX;
-
- return;
- }
-
- }
-}
-
-int main ()
-{
- using AAA::inA;
- char c1;
-
- using namespace BBB;
-
- c1 = xyzq ('x');
- c1 = AAA::xyzq ('x');
- c1 = BBB::CCC::xyzq ('m');
-
- inA ina;
-
- ina.xx = 33;
-
- int y;
-
- y = AAA::A_xyzq (33);
- y += B_xyzq (44);
-
- BBB::Class cl;
-
- c1 = cl.xyzq('e');
-
- marker1();
-
- C::D::marker2 ();
-}
Index: hang2.C
===================================================================
--- hang2.C (revision 816)
+++ hang2.C (nonexistent)
@@ -1,8 +0,0 @@
-#include "hang.H"
-
-struct B
-{
- int member_of_B;
-};
-
-int var_in_b = 1729;
hang2.C
Property changes :
Deleted: svn:eol-style
## -1 +0,0 ##
-native
\ No newline at end of property
Deleted: svn:keywords
## -1 +0,0 ##
-Id
\ No newline at end of property
Index: printmethod.cc
===================================================================
--- printmethod.cc (revision 816)
+++ printmethod.cc (nonexistent)
@@ -1,34 +0,0 @@
-/* This test script is part of GDB, the GNU debugger.
-
- Copyright 2002, 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see .
- */
-
-/* Create some objects, and try to print out their methods. */
-
-class A {
-public:
- virtual void virt() {};
- void nonvirt() {};
-};
-
-int main()
-{
- A *theA = new A;
- theA->virt ();
- theA->nonvirt ();
-
- return 0; // breakpoint: constructs-done
-}
Index: classes.cc
===================================================================
--- classes.cc (revision 816)
+++ classes.cc (nonexistent)
@@ -1,607 +0,0 @@
-/* This testcase is part of GDB, the GNU debugger.
-
- Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2004, 2007,
- 2008 Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see .
- */
-
-// Test various -*- C++ -*- things.
-
-// ====================== basic C++ types =======================
-bool v_bool;
-bool v_bool_array[2];
-
-typedef struct fleep fleep;
-struct fleep { int a; } s;
-
-// ====================== simple class structures =======================
-
-struct default_public_struct {
- // defaults to public:
- int a;
- int b;
-};
-
-struct explicit_public_struct {
- public:
- int a;
- int b;
-};
-
-struct protected_struct {
- protected:
- int a;
- int b;
-};
-
-struct private_struct {
- private:
- int a;
- int b;
-};
-
-struct mixed_protection_struct {
- public:
- int a;
- int b;
- private:
- int c;
- int d;
- protected:
- int e;
- int f;
- public:
- int g;
- private:
- int h;
- protected:
- int i;
-};
-
-class public_class {
- public:
- int a;
- int b;
-};
-
-class protected_class {
- protected:
- int a;
- int b;
-};
-
-class default_private_class {
- // defaults to private:
- int a;
- int b;
-};
-
-class explicit_private_class {
- private:
- int a;
- int b;
-};
-
-class mixed_protection_class {
- public:
- int a;
- int b;
- private:
- int c;
- int d;
- protected:
- int e;
- int f;
- public:
- int g;
- private:
- int h;
- protected:
- int i;
-};
-
-class const_vol_method_class {
-public:
- int a;
- int b;
- int foo (int &) const;
- int bar (int &) volatile;
- int baz (int &) const volatile;
-};
-
-int const_vol_method_class::foo (int & ir) const
-{
- return ir + 3;
-}
-int const_vol_method_class::bar (int & ir) volatile
-{
- return ir + 4;
-}
-int const_vol_method_class::baz (int & ir) const volatile
-{
- return ir + 5;
-}
-
-// ========================= simple inheritance ==========================
-
-class A {
- public:
- int a;
- int x;
-};
-
-A g_A;
-
-class B : public A {
- public:
- int b;
- int x;
-};
-
-B g_B;
-
-class C : public A {
- public:
- int c;
- int x;
-};
-
-C g_C;
-
-class D : public B, public C {
- public:
- int d;
- int x;
-};
-
-D g_D;
-
-class E : public D {
- public:
- int e;
- int x;
-};
-
-E g_E;
-
-class class_with_anon_union
-{
- public:
- int one;
- union
- {
- int a;
- long b;
- };
-};
-
-class_with_anon_union g_anon_union;
-
-void inheritance2 (void)
-{
-}
-
-void inheritance1 (void)
-{
- int ival;
- int *intp;
-
- // {A::a, A::x}
-
- g_A.A::a = 1;
- g_A.A::x = 2;
-
- // {{A::a,A::x},B::b,B::x}
-
- g_B.A::a = 3;
- g_B.A::x = 4;
- g_B.B::b = 5;
- g_B.B::x = 6;
-
- // {{A::a,A::x},C::c,C::x}
-
- g_C.A::a = 7;
- g_C.A::x = 8;
- g_C.C::c = 9;
- g_C.C::x = 10;
-
- // {{{A::a,A::x},B::b,B::x},{{A::a,A::x},C::c,C::x},D::d,D::x}
-
- // The following initialization code is non-portable, but allows us
- // to initialize all members of g_D until we can fill in the missing
- // initialization code with legal C++ code.
-
- for (intp = (int *) &g_D, ival = 11;
- intp < ((int *) &g_D + sizeof (g_D) / sizeof (int));
- intp++, ival++)
- {
- *intp = ival;
- }
-
- // Overlay the nonportable initialization with legal initialization.
-
- // ????? = 11; (g_D.A::a = 11; is ambiguous)
- // ????? = 12; (g_D.A::x = 12; is ambiguous)
-/* djb 6-3-2000
-
- This should take care of it. Rather than try to initialize using an ambiguous
- construct, use 2 unambiguous ones for each. Since the ambiguous a/x member is
- coming from C, and B, initialize D's C::a, and B::a, and D's C::x and B::x.
- */
- g_D.C::a = 15;
- g_D.C::x = 12;
- g_D.B::a = 11;
- g_D.B::x = 12;
- g_D.B::b = 13;
- g_D.B::x = 14;
- // ????? = 15;
- // ????? = 16;
- g_D.C::c = 17;
- g_D.C::x = 18;
- g_D.D::d = 19;
- g_D.D::x = 20;
-
-
- // {{{{A::a,A::x},B::b,B::x},{{A::a,A::x},C::c,C::x},D::d,D::x}},E::e,E::x}
-
- // The following initialization code is non-portable, but allows us
- // to initialize all members of g_D until we can fill in the missing
- // initialization code with legal C++ code.
-
- for (intp = (int *) &g_E, ival = 21;
- intp < ((int *) &g_E + sizeof (g_E) / sizeof (int));
- intp++, ival++)
- {
- *intp = ival;
- }
-
- // Overlay the nonportable initialization with legal initialization.
-
- // ????? = 21; (g_E.A::a = 21; is ambiguous)
- // ????? = 22; (g_E.A::x = 22; is ambiguous)
- g_E.B::b = 23;
- g_E.B::x = 24;
- // ????? = 25;
- // ????? = 26;
- g_E.C::c = 27;
- g_E.C::x = 28;
- g_E.D::d = 29;
- g_E.D::x = 30;
- g_E.E::e = 31;
- g_E.E::x = 32;
-
- g_anon_union.one = 1;
- g_anon_union.a = 2;
-
- inheritance2 ();
-}
-
-// ======================== static member functions =====================
-
-class Static {
-public:
- static void ii(int, int);
-};
-void Static::ii (int, int) { }
-
-// ======================== virtual base classes=========================
-
-class vA {
- public:
- int va;
- int vx;
-};
-
-vA g_vA;
-
-class vB : public virtual vA {
- public:
- int vb;
- int vx;
-};
-
-vB g_vB;
-
-class vC : public virtual vA {
- public:
- int vc;
- int vx;
-};
-
-vC g_vC;
-
-class vD : public virtual vB, public virtual vC {
- public:
- int vd;
- int vx;
-};
-
-vD g_vD;
-
-class vE : public virtual vD {
- public:
- int ve;
- int vx;
-};
-
-vE g_vE;
-
-void inheritance4 (void)
-{
-}
-
-void inheritance3 (void)
-{
- int ival;
- int *intp;
-
- // {vA::va, vA::vx}
-
- g_vA.vA::va = 1;
- g_vA.vA::vx = 2;
-
- // {{vA::va, vA::vx}, vB::vb, vB::vx}
-
- g_vB.vA::va = 3;
- g_vB.vA::vx = 4;
- g_vB.vB::vb = 5;
- g_vB.vB::vx = 6;
-
- // {{vA::va, vA::vx}, vC::vc, vC::vx}
-
- g_vC.vA::va = 7;
- g_vC.vA::vx = 8;
- g_vC.vC::vc = 9;
- g_vC.vC::vx = 10;
-
- // {{{{vA::va, vA::vx}, vB::vb, vB::vx}, vC::vc, vC::vx}, vD::vd,vD::vx}
-
- g_vD.vA::va = 11;
- g_vD.vA::vx = 12;
- g_vD.vB::vb = 13;
- g_vD.vB::vx = 14;
- g_vD.vC::vc = 15;
- g_vD.vC::vx = 16;
- g_vD.vD::vd = 17;
- g_vD.vD::vx = 18;
-
-
- // {{{{{vA::va,vA::vx},vB::vb,vB::vx},vC::vc,vC::vx},vD::vd,vD::vx},vE::ve,vE::vx}
-
- g_vD.vA::va = 19;
- g_vD.vA::vx = 20;
- g_vD.vB::vb = 21;
- g_vD.vB::vx = 22;
- g_vD.vC::vc = 23;
- g_vD.vC::vx = 24;
- g_vD.vD::vd = 25;
- g_vD.vD::vx = 26;
- g_vE.vE::ve = 27;
- g_vE.vE::vx = 28;
-
- inheritance4 ();
-}
-
-// ======================================================================
-
-class Base1 {
- public:
- int x;
- Base1(int i) { x = i; }
-};
-
-class Foo
-{
- public:
- int x;
- int y;
- static int st;
- Foo (int i, int j) { x = i; y = j; }
- int operator! ();
- operator int ();
- int times (int y);
-};
-
-class Bar : public Base1, public Foo {
- public:
- int z;
- Bar (int i, int j, int k) : Base1 (10*k), Foo (i, j) { z = k; }
-};
-
-int Foo::operator! () { return !x; }
-
-int Foo::times (int y) { return x * y; }
-
-int Foo::st = 100;
-
-Foo::operator int() { return x; }
-
-Foo foo(10, 11);
-Bar bar(20, 21, 22);
-
-class ClassWithEnum {
-public:
- enum PrivEnum { red, green, blue, yellow = 42 };
- PrivEnum priv_enum;
- int x;
-};
-
-void enums2 (void)
-{
-}
-
-/* classes.exp relies on statement order in this function for testing
- enumeration fields. */
-
-void enums1 ()
-{
- ClassWithEnum obj_with_enum;
- obj_with_enum.priv_enum = ClassWithEnum::red;
- obj_with_enum.x = 0;
- enums2 ();
- obj_with_enum.priv_enum = ClassWithEnum::green;
- obj_with_enum.x = 1;
-}
-
-class ClassParam {
-public:
- int Aptr_a (A *a) { return a->a; }
- int Aptr_x (A *a) { return a->x; }
- int Aref_a (A &a) { return a.a; }
- int Aref_x (A &a) { return a.x; }
- int Aval_a (A a) { return a.a; }
- int Aval_x (A a) { return a.x; }
-};
-
-ClassParam class_param;
-
-class Contains_static_instance
-{
- public:
- int x;
- int y;
- Contains_static_instance (int i, int j) { x = i; y = j; }
- static Contains_static_instance null;
-};
-
-Contains_static_instance Contains_static_instance::null(0,0);
-Contains_static_instance csi(10,20);
-
-class Contains_nested_static_instance
-{
- public:
- class Nested
- {
- public:
- Nested(int i) : z(i) {}
- int z;
- static Contains_nested_static_instance xx;
- };
-
- Contains_nested_static_instance(int i, int j) : x(i), y(j) {}
-
- int x;
- int y;
-
- static Contains_nested_static_instance null;
- static Nested yy;
-};
-
-Contains_nested_static_instance Contains_nested_static_instance::null(0, 0);
-Contains_nested_static_instance::Nested Contains_nested_static_instance::yy(5);
-Contains_nested_static_instance
- Contains_nested_static_instance::Nested::xx(1,2);
-Contains_nested_static_instance cnsi(30,40);
-
-typedef struct {
- int one;
- int two;
-} tagless_struct;
-tagless_struct v_tagless;
-
-/* Try to get the compiler to allocate a class in a register. */
-class small {
- public:
- int x;
- int method ();
-};
-
-int
-small::method ()
-{
- return x + 5;
-}
-
-void marker_reg1 () {}
-
-int
-register_class ()
-{
- /* We don't call any methods for v, so gcc version cygnus-2.3.3-930220
- might put this variable in a register. This is a lose, though, because
- it means that GDB can't call any methods for that variable. */
- register small v;
-
- int i;
-
- /* Perform a computation sufficiently complicated that optimizing compilers
- won't optimized out the variable. If some compiler constant-folds this
- whole loop, maybe using a parameter to this function here would help. */
- v.x = 0;
- for (i = 0; i < 13; ++i)
- v.x += i;
- --v.x; /* v.x is now 77 */
- marker_reg1 ();
- return v.x + 5;
-}
-
-void dummy()
-{
- v_bool = true;
- v_bool_array[0] = false;
- v_bool_array[1] = v_bool;
-}
-
-void use_methods ()
-{
- /* Refer to methods so that they don't get optimized away. */
- int i;
- i = class_param.Aptr_a (&g_A);
- i = class_param.Aptr_x (&g_A);
- i = class_param.Aref_a (g_A);
- i = class_param.Aref_x (g_A);
- i = class_param.Aval_a (g_A);
- i = class_param.Aval_x (g_A);
-}
-
-
-int
-main()
-{
-#ifdef usestubs
- set_debug_traps();
- breakpoint();
-#endif
- dummy();
- inheritance1 ();
- inheritance3 ();
- enums1 ();
- register_class ();
-
- /* FIXME: pmi gets optimized out. Need to do some more computation with
- it or something. (No one notices, because the test is xfail'd anyway,
- but that probably won't always be true...). */
- int Foo::* pmi = &Foo::y;
-
- /* Make sure the AIX linker doesn't remove the variable. */
- v_tagless.one = 5;
-
- use_methods ();
-
- return foo.*pmi;
-}
-
-/* Create an instance for some classes, otherwise they get optimized away. */
-
-default_public_struct default_public_s;
-explicit_public_struct explicit_public_s;
-protected_struct protected_s;
-private_struct private_s;
-mixed_protection_struct mixed_protection_s;
-public_class public_c;
-protected_class protected_c;
-default_private_class default_private_c;
-explicit_private_class explicit_private_c;
-mixed_protection_class mixed_protection_c;
Index: exception.cc
===================================================================
--- exception.cc (revision 816)
+++ exception.cc (nonexistent)
@@ -1,68 +0,0 @@
-/* This testcase is part of GDB, the GNU debugger.
-
- Copyright 1997, 1998, 2004, 2007, 2008 Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see .
- */
-
-
-
-// Test file for exception handling support.
-
-#include
-using namespace std;
-
-int foo (int i)
-{
- if (i < 32)
- throw (int) 13;
- else
- return i * 2;
-}
-
-extern "C" int bar (int k, unsigned long eharg, int flag);
-
-int bar (int k, unsigned long eharg, int flag)
-{
- cout << "k is " << k << " eharg is " << eharg << " flag is " << flag << endl;
- return 1;
-}
-
-int main()
-{
- int j;
-
- try {
- j = foo (20);
- }
- catch (int x) {
- cout << "Got an except " << x << endl;
- }
-
- try {
- try {
- j = foo (20);
- }
- catch (int x) {
- cout << "Got an except " << x << endl;
- throw;
- }
- }
- catch (int y) {
- cout << "Got an except (rethrown) " << y << endl;
- }
-
- // Not caught
- foo (20);
-}
Index: method2.cc
===================================================================
--- method2.cc (revision 816)
+++ method2.cc (nonexistent)
@@ -1,27 +0,0 @@
-struct A
-{
- void method ();
- void method (int a);
- void method (A* a);
-};
-
-void
-A::method ()
-{
-}
-
-void
-A::method (int a)
-{
-}
-
-void
-A::method (A* a)
-{
-}
-
-int
-main (int argc, char** argv)
-{
- return 0;
-}
Index: bs15503.cc
===================================================================
--- bs15503.cc (revision 816)
+++ bs15503.cc (nonexistent)
@@ -1,71 +0,0 @@
-/* This testcase is part of GDB, the GNU debugger.
-
- Copyright 1992, 2004, 2007, 2008 Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see .
- */
-
-#include
-#include
-using namespace std;
-
-template
-class StringTest {
-public:
- virtual void runTest();
- void testFunction();
-};
-
-template
-void StringTest:: runTest() {
- testFunction ();
-}
-
-template
-void StringTest ::testFunction() {
- // initialize s with string literal
- cout << "in StringTest" << endl;
- string s("I am a shot string");
- cout << s << endl;
-
- // insert 'r' to fix "shot"
- s.insert(s.begin()+10,'r' );
- cout << s << endl;
-
- // concatenate another string
- s += "and now a longer string";
- cout << s << endl;
-
- // find position where blank needs to be inserted
- string::size_type spos = s.find("and");
- s.insert(spos, " ");
- cout << s << endl;
-
- // erase the concatenated part
- s.erase(spos);
- cout << s << endl;
-}
-
-int main() {
- StringTest ts;
- ts.runTest();
-}
-
-/* output:
-I am a shot string
-I am a short string
-I am a short stringand now a longer string
-I am a short string and now a longer string
-I am a short string
-*/
Index: annota3.cc
===================================================================
--- annota3.cc (revision 816)
+++ annota3.cc (nonexistent)
@@ -1,28 +0,0 @@
-#include
-
-class A {
-public:
- int x;
- int y;
- int foo (int arg);
-};
-
-
-int A::foo (int arg)
-{
- x += arg;
- return arg *2;
-}
-
-int main()
-{
- A a;
-
- a.x = 0;
- a.x = 1;
- a.y = 2;
-
- printf ("a.x is %d\n", a.x);
- return 0;
-}
-
Index: rtti2.cc
===================================================================
--- rtti2.cc (revision 816)
+++ rtti2.cc (nonexistent)
@@ -1,38 +0,0 @@
-/* Code to go along with tests in rtti.exp.
-
- Copyright 2003, 2004, 2007, 2008 Free Software Foundation, Inc.
-
- Contributed by David Carlton and by Kealia,
- Inc.
-
- This file is part of GDB.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see . */
-
-#include "rtti.h"
-
-namespace n2 {
-
- D2::D2(C2 *expr_1, C2 *expr_2)
- : expr_1_(expr_1), expr_2_(expr_2) { }
-
- C2 *create2() {
- return new D2(0, 0);
- }
-
- n3::C3 *create3() {
- return new n3::C3();
- }
-
-}
Index: ref-params.exp
===================================================================
--- ref-params.exp (revision 816)
+++ ref-params.exp (nonexistent)
@@ -1,80 +0,0 @@
-# Tests for reference parameters of types and their subtypes in GDB.
-# Copyright 2006, 2007, 2008 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see .
-
-# written by Paul N. Hilfinger (Hilfinger@adacore.com)
-
-if $tracelevel then {
- strace $tracelevel
- }
-
-#
-# test running programs
-#
-set prms_id 0
-set bug_id 0
-
-if { [skip_cplus_tests] } { continue }
-
-set testfile "ref-params"
-set srcfile ${testfile}.cc
-set binfile ${objdir}/${subdir}/${testfile}
-
-if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } {
- untested ref-params.exp
- return -1
-}
-
-gdb_exit
-
-proc gdb_start_again { text } {
- global srcdir
- global subdir
- global binfile
- global srcfile
-
- gdb_exit
- gdb_start
- gdb_reinitialize_dir $srcdir/$subdir
- gdb_load ${binfile}
-
- runto ${srcfile}:[gdb_get_line_number $text]
-}
-
-gdb_start_again "marker1 here"
-gdb_test "print Q" ".*id = 42.*" "print value of a Child in main"
-gdb_test "print f1(Q)" ".* = 42.*" "print value of f1 on Child in main"
-gdb_test "print f2(Q)" ".* = 42.*" "print value of f2 on Child in main"
-
-gdb_start_again "marker1 here"
-gdb_test "print f1(QR)" ".* = 42.*" "print value of f1 on (Child&) in main"
-
-gdb_start_again "marker1 here"
-gdb_test "print f2(QR)" ".* = 42.*" "print value of f2 on (Child&) in main"
-
-gdb_start_again "marker2 here"
-gdb_test "print C" ".*id = 42.*" "print value of Child& in f2"
-gdb_test "print f1(C)" ".* = 42.*" "print value of f1 on Child& in f2"
-
-gdb_start_again "marker3 here"
-gdb_test "print R" ".*id = 42.*" "print value of Parent& in f1"
-
-gdb_start_again "breakpoint MQ here"
-gdb_test "print f1(MQ)" ".* = 53"
-gdb_test "print mf1(MQ)" ".* = 106"
-gdb_test "print mf2(MQ)" ".* = 106"
-gdb_test "print f1(MQR)" ".* = 53"
-gdb_test "print mf1(MQR)" ".* = 106"
-gdb_test "print mf2(MQR)" ".* = 106"
Index: derivation.cc
===================================================================
--- derivation.cc (revision 816)
+++ derivation.cc (nonexistent)
@@ -1,240 +0,0 @@
-class A {
-public:
- int a;
- int aa;
-
- A()
- {
- a=1;
- aa=2;
- }
- int afoo();
- int foo();
-
-};
-
-
-
-class B {
-public:
- int b;
- int bb;
-
- B()
- {
- b=3;
- bb=4;
- }
- int bfoo();
- int foo();
-
-};
-
-
-
-class C {
-public:
- int c;
- int cc;
-
- C()
- {
- c=5;
- cc=6;
- }
- int cfoo();
- int foo();
-
-};
-
-
-
-class D : private A, public B, protected C {
-public:
- int d;
- int dd;
-
- D()
- {
- d =7;
- dd=8;
- }
- int dfoo();
- int foo();
-
-};
-
-
-class E : public A, B, protected C {
-public:
- int e;
- int ee;
-
- E()
- {
- e =9;
- ee=10;
- }
- int efoo();
- int foo();
-
-};
-
-
-class F : A, public B, C {
-public:
- int f;
- int ff;
-
- F()
- {
- f =11;
- ff=12;
- }
- int ffoo();
- int foo();
-
-};
-
-class G : private A, public B, protected C {
-public:
- int g;
- int gg;
- int a;
- int b;
- int c;
-
- G()
- {
- g =13;
- gg =14;
- a=15;
- b=16;
- c=17;
-
- }
- int gfoo();
- int foo();
-
-};
-
-
-
-
-int A::afoo() {
- return 1;
-}
-
-int B::bfoo() {
- return 2;
-}
-
-int C::cfoo() {
- return 3;
-}
-
-int D::dfoo() {
- return 4;
-}
-
-int E::efoo() {
- return 5;
-}
-
-int F::ffoo() {
- return 6;
-}
-
-int G::gfoo() {
- return 77;
-}
-
-int A::foo()
-{
- return 7;
-
-}
-
-int B::foo()
-{
- return 8;
-
-}
-
-int C::foo()
-{
- return 9;
-
-}
-
-int D::foo()
-{
- return 10;
-
-}
-
-int E::foo()
-{
- return 11;
-
-}
-
-int F::foo()
-{
- return 12;
-
-}
-
-int G::foo()
-{
- return 13;
-
-}
-
-
-void marker1()
-{
-}
-
-
-int main(void)
-{
-
- A a_instance;
- B b_instance;
- C c_instance;
- D d_instance;
- E e_instance;
- F f_instance;
- G g_instance;
-
- #ifdef usestubs
- set_debug_traps();
- breakpoint();
- #endif
-
-
- marker1(); // marker1-returns-here
-
- a_instance.a = 20; // marker1-returns-here
- a_instance.aa = 21;
- b_instance.b = 22;
- b_instance.bb = 23;
- c_instance.c = 24;
- c_instance.cc = 25;
- d_instance.d = 26;
- d_instance.dd = 27;
- e_instance.e = 28;
- e_instance.ee =29;
- f_instance.f =30;
- f_instance.ff =31;
-
-
-
-
- return 0;
-
-}
-
-
-
Index: exception.exp
===================================================================
--- exception.exp (revision 816)
+++ exception.exp (nonexistent)
@@ -1,226 +0,0 @@
-# Copyright 1997, 1998, 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see .
-
-# This file is part of the gdb testsuite.
-# tests for exception-handling support
-# Written by Satish Pai 1997-07-23
-# Rewritten by Michael Chastain 2004-01-08
-
-# This file used to have two copies of the tests with different
-# compiler flags for hp-ux. Instead, the user should set CXXOPTS
-# or run runtest with --target_board unix/gdb:debug_flags="..."
-# to choose the compiler flags.
-#
-# The interesting compiler flags are: "aCC +A -Wl,-a,-archive" .
-# Static-linked executables use a different mechanism to get the
-# address of the notification hook in the C++ support library.
-
-# TODO: this file is not ready for production yet. If you are working
-# on C++ exception support for gdb, you can take out the "continue"
-# statement and try your luck. -- chastain 2004-01-09
-
-# TODO: this file has many absolute line numbers.
-# Replace them with gdb_get_line_number.
-
-set ws "\[\r\n\t \]+"
-set nl "\[\r\n\]+"
-
-if $tracelevel then {
- strace $tracelevel
-}
-
-if { [skip_cplus_tests] } { continue }
-
-# On SPU this test fails because the executable exceeds local storage size.
-if { [istarget "spu*-*-*"] } {
- return 0
-}
-
-set testfile "exception"
-set srcfile ${testfile}.cc
-set binfile ${objdir}/${subdir}/${testfile}
-
-if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } {
- untested exception.exp
- return -1
-}
-
-# Start with a fresh gdb
-
-set prms_id 0
-set bug_id 0
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binfile}
-
-if ![runto_main] then {
- perror "couldn't run to breakpoint"
- continue
-}
-
-# As I said before, this test script is not ready yet!
-
-continue
-
-# Set a catch catchpoint
-
-gdb_test "catch catch" "Catchpoint \[0-9\]+ \\(catch\\)"
-
-# Set a throw catchpoint
-
-gdb_test "catch throw" "Catchpoint \[0-9\]+ \\(throw\\)" \
- "catch throw (static executable)"
-
-# The catchpoints should be listed in the list of breakpoints.
-
-set re_head "Num${ws}Type${ws}Disp${ws}Enb${ws}Address${ws}What"
-set re_1_main "1${ws}breakpoint${ws}keep${ws}y${ws}$hex${ws}in main.*breakpoint already hit.*"
-set re_2_catch "2${ws}catch catch${ws}keep${ws}y${ws}$hex${ws}exception catch"
-set re_3_catch "3${ws}catch throw${ws}keep${ws}y${ws}$hex${ws}exception throw"
-set re_2_bp "2${ws}breakpoint${ws}keep${ws}y${ws}$hex${ws}exception catch"
-set re_3_bp "3${ws}breakpoint${ws}keep${ws}y${ws}$hex${ws}exception throw"
-
-set name "info breakpoints"
-gdb_test_multiple "info breakpoints" $name {
- -re "$re_head${ws}$re_1_main${ws}$re_2_catch${ws}$re_3_catch\r\n$gdb_prompt $" {
- pass $name
- }
- -re "$re_head${ws}$re_1_main${ws}$re_2_bp${ws}$re_3_bp\r\n$gdb_prompt $" {
- # TODO: gdb HEAD 2004-01-08 does this. Is this okay?
- unresolved $name
- }
-}
-
-# Some targets support "info catch".
-# Some do not.
-
-set name "info catch"
-gdb_test_multiple "info catch" $name {
- -re "Info catch not supported with this target/compiler combination.\r\n$gdb_prompt $" {
- unsupported $name
- }
- -re "No catches.\r\n$gdb_prompt $" {
- # TODO: gdb HEAD 2004-01-08 does this. Is this okay?
- unresolved $name
- }
-}
-
-# Get the first exception thrown
-
-set name "continue to first throw"
-gdb_test_multiple "continue" $name {
- -re "Continuing.${ws}Catchpoint \[0-9\]+ \\(exception thrown\\), throw location.*${srcfile}:30, catch location .*${srcfile}:50\r\n$gdb_prompt $" {
- pass $name
- }
- -re "Continuing.${ws}Catchpoint \[0-9\]+ \\(exception thrown\\)\r\n.*\r\n$gdb_prompt $" {
- # TODO: gdb HEAD 2004-01-08 does this. Is this okay?
- unresolved $name
- }
-}
-
-# Backtrace from the throw point.
-# This should get to user code.
-
-set name "backtrace after first throw"
-gdb_test_multiple "backtrace" $name {
- -re ".*#\[0-9\]+${ws}$hex in foo \\(i=20\\) at .*${srcfile}:30\r\n#\[0-9\]+${ws}$hex in main \\((void|)\\) at .*${srcfile}:48\r\n$gdb_prompt $" {
- pass $name
- }
-}
-
-# Continue to the catch.
-
-set name "continue to first catch"
-gdb_test_multiple "continue" $name {
- -re "Continuing.${ws}Catchpoint \[0-9\]+ \\(exception caught\\), throw location.*${srcfile}:30, catch location .*${srcfile}:50\r\n$gdb_prompt $" {
- pass $name
- }
- -re "Continuing.${ws}Catchpoint \[0-9\]+ \\(exception caught\\)\r\n.*\r\n$gdb_prompt $" {
- # TODO: gdb HEAD 2004-01-08 does this. Is this okay?
- unresolved $name
- }
-}
-
-# Backtrace from the catch point.
-# This should get to user code.
-
-set name "backtrace after first catch"
-gdb_test_multiple "backtrace" $name {
- -re ".*#\[0-9\]+${ws}$hex in main \\((void|)\\) at .*$srcfile:50\r\n$gdb_prompt $" {
- pass $name
- }
-}
-
-# Continue to second throw.
-
-set name "continue to second throw"
-gdb_test_multiple "continue" $name {
- -re "Continuing.${ws}Got an except 13${ws}Catchpoint \[0-9\]+ \\(exception thrown\\), throw location.*${srcfile}:30, catch location .*${srcfile}:58\r\n$gdb_prompt $" {
- pass $name
- }
- -re "Continuing.${ws}Got an except 13${ws}Catchpoint \[0-9\]+ \\(exception thrown\\)\r\n.*\r\n$gdb_prompt $" {
- # TODO: gdb HEAD 2004-01-08 does this. Is this okay?
- unresolved $name
- }
-}
-
-# Backtrace from the throw point.
-# This should get to user code.
-
-set name "backtrace after second throw"
-gdb_test_multiple "backtrace" $name {
- -re ".*#\[0-9\]+${ws}$hex in foo \\(i=20\\) at .*${srcfile}:30\r\n#\[0-9\]+${ws}$hex in main \\((void|)\\) at .*${srcfile}:56\r\n$gdb_prompt $" {
- pass $name
- }
-}
-
-# Continue to second catch.
-
-set name "continue to second catch"
-gdb_test_multiple "continue" $name {
- -re "Continuing.${ws}Catchpoint \[0-9\]+ \\(exception caught\\), throw location.*${srcfile}:30, catch location .*${srcfile}:58\r\n$gdb_prompt $" {
- pass $name
- }
- -re "Continuing.${ws}Catchpoint \[0-9\]+ \\(exception caught\\)\r\n.*\r\n$gdb_prompt $" {
- # TODO: gdb HEAD 2004-01-08 does this. Is this okay?
- unresolved $name
- }
-}
-
-# Backtrace from the catch point.
-# This should get to user code.
-
-set name "backtrace after second catch"
-gdb_test_multiple "backtrace" $name {
- -re ".*#\[0-9\]+${ws}$hex in main \\((void|)\\) at .*$srcfile:58\r\n$gdb_prompt $" {
- pass $name
- }
-}
-
-# That is all for now.
-#
-# The original code had:
-#
-# continue to re-throw ; backtrace
-# continue to catch ; backtrace
-# continue to throw out of main
-#
-# The problem is that "re-throw" does not show a throw; only a catch.
-# I do not know if this is because of a bug, or because the generated
-# code is optimized for a throw into the same function.
-#
-# -- chastain 2004-01-09
Index: psmang1.cc
===================================================================
--- psmang1.cc (revision 816)
+++ psmang1.cc (nonexistent)
@@ -1,178 +0,0 @@
-/* This test script is part of GDB, the GNU debugger.
-
- Copyright 2002, 2004,
- Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see .
- */
-
-/* Do not move this definition into a header file! See the comments
- in psmang.exp. */
-struct s
-{
- int value;
- void method1 (void);
- void method2 (void);
-};
-
-void
-s::method1 ()
-{
- value = 42;
-}
-
-int
-main (int argc, char **argv)
-{
- s si;
-
- si.method1 ();
- si.method2 ();
-}
-
-
-/* The presence of these variables ensures there will be so many
- symbols in psmang1.cc's symtab's global block that it will have a
- non-trivial hash table. When there are only a very few symbols,
- the block only has one hash bucket, so even if we compute the hash
- value for the wrong symbol name, we'll still find a symbol that
- matches. */
-int ax;
-int bx;
-int a1x;
-int b1x;
-int a2x;
-int b2x;
-int a12x;
-int b12x;
-int a3x;
-int b3x;
-int a13x;
-int b13x;
-int a23x;
-int b23x;
-int a123x;
-int b123x;
-int a4x;
-int b4x;
-int a14x;
-int b14x;
-int a24x;
-int b24x;
-int a124x;
-int b124x;
-int a34x;
-int b34x;
-int a134x;
-int b134x;
-int a234x;
-int b234x;
-int a1234x;
-int b1234x;
-int a5x;
-int b5x;
-int a15x;
-int b15x;
-int a25x;
-int b25x;
-int a125x;
-int b125x;
-int a35x;
-int b35x;
-int a135x;
-int b135x;
-int a235x;
-int b235x;
-int a1235x;
-int b1235x;
-int a45x;
-int b45x;
-int a145x;
-int b145x;
-int a245x;
-int b245x;
-int a1245x;
-int b1245x;
-int a345x;
-int b345x;
-int a1345x;
-int b1345x;
-int a2345x;
-int b2345x;
-int a12345x;
-int b12345x;
-int a6x;
-int b6x;
-int a16x;
-int b16x;
-int a26x;
-int b26x;
-int a126x;
-int b126x;
-int a36x;
-int b36x;
-int a136x;
-int b136x;
-int a236x;
-int b236x;
-int a1236x;
-int b1236x;
-int a46x;
-int b46x;
-int a146x;
-int b146x;
-int a246x;
-int b246x;
-int a1246x;
-int b1246x;
-int a346x;
-int b346x;
-int a1346x;
-int b1346x;
-int a2346x;
-int b2346x;
-int a12346x;
-int b12346x;
-int a56x;
-int b56x;
-int a156x;
-int b156x;
-int a256x;
-int b256x;
-int a1256x;
-int b1256x;
-int a356x;
-int b356x;
-int a1356x;
-int b1356x;
-int a2356x;
-int b2356x;
-int a12356x;
-int b12356x;
-int a456x;
-int b456x;
-int a1456x;
-int b1456x;
-int a2456x;
-int b2456x;
-int a12456x;
-int b12456x;
-int a3456x;
-int b3456x;
-int a13456x;
-int b13456x;
-int a23456x;
-int b23456x;
-int a123456x;
-int b123456x;
Index: bs15503.exp
===================================================================
--- bs15503.exp (revision 816)
+++ bs15503.exp (nonexistent)
@@ -1,106 +0,0 @@
-# Copyright 1992, 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see . */
-
-# Test case for CLLbs15503
-# This file was written by Sue Kimura (sue_kimura@hp.com)
-# Rewritten by Michael Chastain (mec.gnu@mindspring.com)
-
-if $tracelevel {
- strace $tracelevel
-}
-
-if { [skip_cplus_tests] } { continue }
-
-# On SPU this test fails because the executable exceeds local storage size.
-if { [istarget "spu*-*-*"] } {
- return 0
-}
-
-set testfile "bs15503"
-set srcfile ${testfile}.cc
-set binfile ${objdir}/${subdir}/${testfile}
-
-if [get_compiler_info ${binfile}] {
- return -1
-}
-
-if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable "debug c++"] != "" } {
- perror "Couldn't compile ${srcfile}"
- return -1
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binfile}
-
-if ![runto_main] then {
- perror "couldn't run to breakpoint"
- continue
-}
-
-# Set breakpoint on template function
-
-gdb_test "break StringTest::testFunction" \
- "Breakpoint $decimal at $hex: file .*${srcfile}, line $decimal."
-
-gdb_test "continue" \
- ".*Breakpoint $decimal, StringTest::testFunction \\(this=$hex\\).*" \
- "continue to StringTest"
-
-# Run to some random point in the middle of the function.
-
-gdb_breakpoint [gdb_get_line_number "find position where blank needs to be inserted"]
-gdb_continue_to_breakpoint "find position where blank needs to be inserted"
-
-# Call some string methods.
-
-gdb_test "print s.length()" "\\$\[0-9\]+ = 42"
-gdb_test "print s\[0\]" "\\$\[0-9\]+ =.* 'I'"
-gdb_test "print s\[s.length()-1\]" "\\$\[0-9\]+ =.* 'g'"
-gdb_test "print (const char *) s" \
- "\\$\[0-9\]+ = $hex \"I am a short stringand now a longer string\""
-
-# TODO: tests that do not work with gcc 2.95.3
-# -- chastain 2004-01-07
-#
-# gdb_test "print s.compare(s)" "\\$\[0-9\]+ = 0"
-# gdb_test "print s.compare(\"AAA\")" "\\$\[0-9\]+ = 1"
-# gdb_test "print s.compare(\"ZZZ\")" "\\$\[0-9\]+ = -1"
-
-# TODO: tests that do not work with gcc 2.95.3 and gcc 3.3.2.
-# cannot call overloaded non-member operator. -- chastain 2004-01-07
-#
-# gdb_test "print s == s" "\\$\[0-9\]+ = true"
-# gdb_test "print s > "AAA" "\\$\[0-9\]+ = true"
-# gdb_test "print s < "ZZZ" "\\$\[0-9\]+ = true"
-
-# TODO: GDB doesn't know to convert the string to a const char *, and
-# instead tries to use the string as a structure initializer.
-#
-# gdb_test "print s == \"I am a short stringand now a longer string\"" \
-# "\\$\[0-9\]+ = true"
-
-gdb_test "print (const char *) s.substr(0,4)" "\\$\[0-9\]+ = $hex \"I am\""
-gdb_test "print (const char *) (s=s.substr(0,4))" \
- "\\$\[0-9\]+ = $hex \"I am\""
-
-# TODO: cannot call overloaded non-member operator again.
-# -- chastain 2004-01-07
-#
-# gdb_test "print (const char *) (s + s)" \
-# "\\$\[0-9\]+ = $hex \"I amI am\""
-# gdb_test "print (const char *) (s + \" \" + s)" \
-# "\\$\[0-9\]+ = $hex \"I am I am\""
Index: method2.exp
===================================================================
--- method2.exp (revision 816)
+++ method2.exp (nonexistent)
@@ -1,68 +0,0 @@
-# Copyright 2007, 2008 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see .
-
-# This file is part of the gdb testsuite
-
-# This tests setting a break in an ambiguous c++ method with
-# current_language set to c.
-
-if { [skip_cplus_tests] } { continue }
-
-set testfile "method2"
-set srcfile ${testfile}.cc
-set binfile ${objdir}/${subdir}/${testfile}
-
-if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } {
- untested method2.exp
- return -1
-}
-
-if [get_compiler_info $binfile "c++"] {
- return -1
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binfile}
-
-if ![runto_main] then {
- perror "couldn't run to breakpoint"
- continue
-}
-
-proc test_break { lang } {
- global gdb_prompt
-
- gdb_test "set lang $lang" \
- "" \
- "setting language $lang"
-
- send_gdb "break A::method\n"
- gdb_expect {
- -re ".0. cancel.*\[\r\n\]*.1. all.*\[\r\n\]*.2. A::method\\(A\\*\\) at .*\[\r\n\]*.3. A::method\\(int\\) at .*\[\r\n\]*\[\r\n\]*.4. A::method\\(\\) at .*\[\r\n\]*> $" {
- gdb_test "0" \
- "canceled" \
- "breaking in method ($lang)"
- }
- -re ".*$gdb_prompt $" { fail "breaking in method ($lang)" }
- default { fail "breaking in method ($lang) (timeout)" }
- }
-}
-
-test_break "c"
-test_break "c++"
-
-gdb_continue_to_end "continue to end"
Index: ctti.exp
===================================================================
--- ctti.exp (revision 816)
+++ ctti.exp (nonexistent)
@@ -1,212 +0,0 @@
-# Copyright 1998, 1999, 2001, 2003, 2004, 2007, 2008
-# Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see .
-
-# This file is part of the gdb testsuite
-# file written by Elena Zannoni (ezannoni@cygnus.com)
-# rewritten by Michael Chastain (mec.gnu@mindspring.com)
-#
-# source files cttiadd.cc, cttiadd1.cc, cttiadd2.cc, cttiadd3.cc
-
-# Call to template instantiations.
-
-if $tracelevel then {
- strace $tracelevel
-}
-
-if { [skip_cplus_tests] } { continue }
-
-set testfile "cttiadd"
-set srcfile "${testfile}.cc"
-set srcfile1 "${testfile}1.cc"
-set srcfile2 "${testfile}2.cc"
-set srcfile3 "${testfile}3.cc"
-set objfile "${testfile}.o"
-set objfile1 "${testfile}1.o"
-set objfile2 "${testfile}2.o"
-set objfile3 "${testfile}3.o"
-set binfile "${objdir}/${subdir}/${testfile}"
-
-if { [gdb_compile "$srcdir/$subdir/$srcfile" "$objdir/$subdir/$objfile" object {debug c++}] != "" } {
- untested ctti.exp
- return -1
-}
-
-if { [gdb_compile "$srcdir/$subdir/$srcfile1" "$objdir/$subdir/$objfile1" object {debug c++}] != "" } {
- untested ctti.exp
- return -1
-}
-
-if { [gdb_compile "$srcdir/$subdir/$srcfile2" "$objdir/$subdir/$objfile2" object {debug c++}] != "" } {
- untested ctti.exp
- return -1
-}
-
-if { [gdb_compile "$srcdir/$subdir/$srcfile3" "$objdir/$subdir/$objfile3" object {debug c++}] != "" } {
- untested ctti.exp
- return -1
-}
-
-if { [gdb_compile "$objdir/$subdir/$objfile $objdir/$subdir/$objfile1 $objdir/$subdir/$objfile2 $objdir/$subdir/$objfile3" "${binfile}" executable {debug c++}] != "" } {
- untested ctti.exp
- return -1
-}
-
-if [get_compiler_info ${binfile} "c++"] {
- return -1;
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binfile}
-
-if ![runto_main] then {
- perror "couldn't run to breakpoint"
- continue
-}
-
-gdb_breakpoint [gdb_get_line_number "marker add1"]
-gdb_continue_to_breakpoint "marker add1"
-
-gdb_test "print c" "\\$\[0-9\]+ = 194 .*"
-gdb_test "print f" "\\$\[0-9\]+ = 9"
-gdb_test "print i" "\\$\[0-9\]+ = 4"
-
-# TODO: this needs more work before actually deploying it.
-# So bail out here.
-
-if { [ test_compiler_info gcc-*] } then { continue }
-
-gdb_test_multiple "print add(2,2)" "print add(2,2)" {
- -re "\\$\[0-9\]+ = 4\r\n$gdb_prompt $" {
- pass "print add(2,2)"
- }
- -re "No symbol \"add\" in current context.\r\n$gdb_prompt $" {
- # TODO: kfail or xfail this
- fail "print add(2,2)"
- }
-}
-
-# Note: 2.25 and 4.5 are exactly representable in IEEE-ish formats
-gdb_test_multiple "print add(2.25,2.25)" "print add(2.25,2.25)" {
- -re "\\$\[0-9\]+ = 4\\.5\r\n$gdb_prompt $" {
- pass "print add(2.25,2.25)"
- }
- -re "No symbol \"add\" in current context.\r\n$gdb_prompt $" {
- # TODO: kfail or xfail this
- fail "print add(2.25,2.25)"
- }
-}
-
-gdb_test_multiple "print add('A','A')" "print add('A','A')" {
- -re "\\$\[0-9\]+ = -126 .*\r\n$gdb_prompt $" {
- pass "print add('A','A')"
- }
- -re "No symbol \"add\" in current context.\r\n$gdb_prompt $" {
- # TODO: kfail or xfail this
- fail "print add('A','A')"
- }
-}
-
-gdb_test_multiple "print add2(2,2)" "print add2(2,2)" {
- -re "\\$\[0-9\]+ = 4\r\n$gdb_prompt $" {
- pass "print add2(2,2)"
- }
- -re "No symbol \"add2\" in current context.\r\n$gdb_prompt $" {
- # TODO: kfail or xfail this
- fail "print add2(2,2)"
- }
-}
-
-gdb_test_multiple "print add2(2.25,2.25)" "print add2(2.25,2.25)" {
- -re "\\$\[0-9\]+ = 4\\.5\r\n$gdb_prompt $" {
- pass "print add2(2.25,2.25)"
- }
- -re "No symbol \"add2\" in current context.\r\n$gdb_prompt $" {
- # TODO: kfail or xfail this
- fail "print add2(2.25,2.25)"
- }
-}
-
-gdb_test_multiple "print add2('A','A')" "print add2('A','A')" {
- -re "\\$\[0-9]+ = -126 .*$gdb_prompt $" {
- pass "print add2('A','A')"
- }
- -re "No symbol \"add2\" in current context.\r\n$gdb_prompt $" {
- # TODO: kfail or xfail this
- fail "print add2('A','A')"
- }
-}
-
-gdb_test_multiple "print add3(2,2)" "print add3(2,2)" {
- -re "\\$\[0-9\]+ = 4\r\n$gdb_prompt $" {
- pass "print add3(2,2)"
- }
- -re "No symbol \"add3\" in current context.\r\n$gdb_prompt $" {
- # TODO: kfail or xfail this
- fail "print add3(2,2)"
- }
-}
-
-gdb_test_multiple "print add3(2.25,2.25)" "print add3(2.25,2.25)" {
- -re "\\$\[0-9\]+ = 4\\.5\r\n$gdb_prompt $" {
- pass "print add3(2.25,2.25)"
- }
- -re "No symbol \"add3\" in current context.\r\n$gdb_prompt $" {
- # TODO: kfail or xfail this
- fail "print add3(2.25,2.25)"
- }
-}
-
-gdb_test_multiple "print add3('A','A')" "print add3('A','A')" {
- -re "\\$\[0-9]+ = -126 .*$gdb_prompt $" {
- pass "print add3('A','A')"
- }
- -re "No symbol \"add3\" in current context.\r\n$gdb_prompt $" {
- # TODO: kfail or xfail this
- fail "print add3('A','A')"
- }
-}
-
-gdb_test_multiple "print add4(2,2)" "print add4(2,2)" {
- -re "\\$\[0-9\]+ = 4\r\n$gdb_prompt $" {
- pass "print add4(2,2)"
- }
- -re "No symbol \"add4\" in current context.\r\n$gdb_prompt $" {
- # TODO: kfail or xfail this
- fail "print add4(2,2)"
- }
-}
-
-gdb_test_multiple "print add4(2.25,2.25)" "print add4(2.25,2.25)" {
- -re "\\$\[0-9\]+ = 4\\.5\r\n$gdb_prompt $" {
- pass "print add4(2.25,2.25)"
- }
- -re "No symbol \"add4\" in current context.\r\n$gdb_prompt $" {
- # TODO: kfail or xfail this
- fail "print add4(2.25,2.25)"
- }
-}
-
-gdb_test_multiple "print add4('A','A')" "print add4('A','A')" {
- -re "\\$\[0-9]+ = -126 .*$gdb_prompt $" {
- pass "print add4('A','A')"
- }
- -re "No symbol \"add4\" in current context.\r\n$gdb_prompt $" {
- # TODO: kfail or xfail this
- fail "print add4('A','A')"
- }
-}
Index: overload.cc
===================================================================
--- overload.cc (revision 816)
+++ overload.cc (nonexistent)
@@ -1,194 +0,0 @@
-#include
-
-class foo {
-public:
- foo (int);
- foo (int, const char *);
- foo (foo&);
- ~foo ();
- void foofunc (int);
- void foofunc (int, signed char *);
- int ifoo;
- const char *ccpfoo;
-
-int overload1arg (void);
-int overload1arg (char);
-int overload1arg (signed char);
-int overload1arg (unsigned char);
-int overload1arg (short);
-int overload1arg (unsigned short);
-int overload1arg (int);
-int overload1arg (unsigned int);
-int overload1arg (long);
-int overload1arg (unsigned long);
-int overload1arg (float);
-int overload1arg (double);
-
-int overloadfnarg (void);
-int overloadfnarg (int);
-int overloadfnarg (int, int (*) (int));
-
-int overloadargs (int a1);
-int overloadargs (int a1, int a2);
-int overloadargs (int a1, int a2, int a3);
-int overloadargs (int a1, int a2, int a3, int a4);
-int overloadargs (int a1, int a2, int a3, int a4, int a5);
-int overloadargs (int a1, int a2, int a3, int a4, int a5, int a6);
-int overloadargs (int a1, int a2, int a3, int a4, int a5, int a6, int a7);
-int overloadargs (int a1, int a2, int a3, int a4, int a5, int a6, int a7, int a8);
-int overloadargs (int a1, int a2, int a3, int a4, int a5, int a6, int a7, int a8, int a9);
-int overloadargs (int a1, int a2, int a3, int a4, int a5, int a6, int a7,
- int a8, int a9, int a10);
-int overloadargs (int a1, int a2, int a3, int a4, int a5, int a6, int a7,
- int a8, int a9, int a10, int a11);
-
-
-};
-
-int intToChar (char c)
-{
- return 297;
-}
-
-void marker1()
-{}
-
-// Now test how overloading and namespaces interact.
-
-class dummyClass {};
-
-dummyClass dummyInstance;
-
-int overloadNamespace(int i)
-{
- return 1;
-}
-
-int overloadNamespace(dummyClass d)
-{
- return 2;
-}
-
-namespace XXX {
- int overloadNamespace (char c)
- {
- return 3;
- }
-
- void marker2() {}
-}
-
-int main ()
-{
- char arg2 = 2;
- signed char arg3 =3;
- unsigned char arg4 =4;
- short arg5 =5;
- unsigned short arg6 =6;
- int arg7 =7;
- unsigned int arg8 =8;
- long arg9 =9;
- unsigned long arg10 =10;
- float arg11 =100.0;
- double arg12 = 200.0;
-
- char *str = (char *) "A";
- foo foo_instance1(111);
- foo foo_instance2(222, str);
- foo foo_instance3(foo_instance2);
-
- #ifdef usestubs
- set_debug_traps();
- breakpoint();
- #endif
-
- // Verify that intToChar should work:
- intToChar(1);
-
- marker1(); // marker1-returns-here
- XXX::marker2(); // marker1-returns-here
- return 0;
-}
-
-foo::foo (int i) { ifoo = i; ccpfoo = NULL; }
-foo::foo (int i, const char *ccp) { ifoo = i; ccpfoo = ccp; }
-foo::foo (foo& afoo) { ifoo = afoo.ifoo; ccpfoo = afoo.ccpfoo;}
-foo::~foo () {}
-
-
-/* Some functions to test overloading by varying one argument type. */
-
-int foo::overload1arg (void) { return 1; }
-int foo::overload1arg (char arg) { arg = 0; return 2;}
-int foo::overload1arg (signed char arg) { arg = 0; return 3;}
-int foo::overload1arg (unsigned char arg) { arg = 0; return 4;}
-int foo::overload1arg (short arg) { arg = 0; return 5;}
-int foo::overload1arg (unsigned short arg) { arg = 0; return 6;}
-int foo::overload1arg (int arg) { arg = 0; return 7;}
-int foo::overload1arg (unsigned int arg) { arg = 0; return 8;}
-int foo::overload1arg (long arg) { arg = 0; return 9;}
-int foo::overload1arg (unsigned long arg) { arg = 0; return 10;}
-int foo::overload1arg (float arg) { arg = 0; return 11;}
-int foo::overload1arg (double arg) { arg = 0; return 12;}
-
-/* Test to see that we can explicitly request overloaded functions
- with function pointers in the prototype. */
-
-int foo::overloadfnarg (void) { return ifoo * 20; }
-int foo::overloadfnarg (int arg) { arg = 0; return 13;}
-int foo::overloadfnarg (int arg, int (*foo) (int)) { return foo(arg); }
-
-/* Some functions to test overloading by varying argument count. */
-
-int foo::overloadargs (int a1)
-{ a1 = 0;
-return 1;}
-
-int foo::overloadargs (int a1, int a2)
-{ a1 = a2 = 0;
-return 2;}
-
-int foo::overloadargs (int a1, int a2, int a3)
-{ a1 = a2 = a3 = 0;
-return 3;}
-
-int foo::overloadargs (int a1, int a2, int a3, int a4)
-{ a1 = a2 = a3 = a4 = 0;
-return 4;}
-
-int foo::overloadargs (int a1, int a2, int a3, int a4, int a5)
-{ a1 = a2 = a3 = a4 = a5 = 0;
-return 5;}
-
-int foo::overloadargs (int a1, int a2, int a3, int a4, int a5, int a6)
-{ a1 = a2 = a3 = a4 = a5 = a6 = 0;
-return 6;}
-
-int foo::overloadargs (int a1, int a2, int a3, int a4, int a5, int a6, int a7)
-{ a1 = a2 = a3 = a4 = a5 = a6 = a7 = 0;
-return 7;}
-
-int foo::overloadargs (int a1, int a2, int a3, int a4, int a5, int a6, int a7,
- int a8)
-{ a1 = a2 = a3 = a4 = a5 = a6 = a7 = a8 = 0;
-return 8;}
-
-int foo::overloadargs (int a1, int a2, int a3, int a4, int a5, int a6, int a7,
- int a8, int a9)
-{
- a1 = a2 = a3 = a4 = a5 = a6 = a7 = a8 = a9 = 0;
- return 9;
-}
-
-int foo::overloadargs (int a1, int a2, int a3, int a4, int a5, int a6, int a7,
- int a8, int a9, int a10)
- { a1 = a2 = a3 = a4 = a5 = a6 = a7 = a8 = a9 =
- a10 = 0; return 10;}
-
-int foo::overloadargs (int a1, int a2, int a3, int a4, int a5, int a6, int a7,
- int a8, int a9, int a10, int a11)
- { a1 = a2 = a3 = a4 = a5 = a6 = a7 = a8 = a9 =
- a10 = a11 = 0; return 11;}
-
-
-
Index: gdb2384.cc
===================================================================
--- gdb2384.cc (revision 816)
+++ gdb2384.cc (nonexistent)
@@ -1,40 +0,0 @@
-/* This testcase is part of GDB, the GNU debugger.
-
- Copyright 2008 Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see .
- */
-
-#include "gdb2384-base.h"
-
-class derived : public base
-{
- public:
- derived (int);
-};
-
-derived::derived (int _x)
- : base (_x)
-{
-}
-
-int g;
-
-int
-main ()
-{
- derived d (42);
- g = d.meth (); // set breakpoint here
- return 0;
-}
Index: casts.cc
===================================================================
--- casts.cc (revision 816)
+++ casts.cc (nonexistent)
@@ -1,20 +0,0 @@
-struct A
-{
- int a;
- A (int aa): a (aa) {}
-};
-
-struct B: public A
-{
- int b;
- B (int aa, int bb): A (aa), b(bb) {}
-};
-
-int
-main (int argc, char **argv)
-{
- A *a = new B(42, 1729);
- B *b = (B *) a;
-
- return 0; /* breakpoint spot: casts.exp: 1 */
-}
Index: hang.H
===================================================================
--- hang.H (revision 816)
+++ hang.H (nonexistent)
@@ -1,12 +0,0 @@
-struct A
-{
- struct B *b_ptr_in_a;
-};
-
-struct C
-{
- struct B
- {
- int member_of_B_in_C;
- };
-};
hang.H
Property changes :
Deleted: svn:eol-style
## -1 +0,0 ##
-native
\ No newline at end of property
Deleted: svn:keywords
## -1 +0,0 ##
-Id
\ No newline at end of property
Index: anon-union.cc
===================================================================
--- anon-union.cc (revision 816)
+++ anon-union.cc (nonexistent)
@@ -1,56 +0,0 @@
-
-struct Foo {
- union {
- int zero;
- unsigned int one;
- } num1;
- struct X {
- int rock;
- unsigned int rock2;
- };
- union {
- int pebble;
- X x;
- union {
- int qux;
- unsigned int mux;
- };
- unsigned int boulder;
- };
- union {
- int paper;
- unsigned int cloth;
- };
- union {
- int two;
- unsigned int three;
- } num2;
-};
-
-union Bar {
- int x;
- unsigned int y;
-};
-
-
-int main()
-{
- Foo foo = {0, 0};
-
- foo.paper = 33;
- foo.pebble = 44;
- foo.mux = 55;
-
- Bar bar = {0};
-
- union {
- int z;
- unsigned int w;
- }; w = 0;
-
- bar.x = 33;
-
- w = 45;
-
- int j = 0;
-}
Index: try_catch.exp
===================================================================
--- try_catch.exp (revision 816)
+++ try_catch.exp (nonexistent)
@@ -1,82 +0,0 @@
-# Copyright 2002, 2007, 2008 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see .
-
-# Tests for member data
-# 2002-05-27 Benjamin Kosnik
-
-# This file is part of the gdb testsuite
-
-if $tracelevel then {
- strace $tracelevel
- }
-
-if { [skip_cplus_tests] } { continue }
-
-#
-# test running programs
-#
-set prms_id 0
-set bug_id 0
-
-set testfile "try_catch"
-set srcfile ${testfile}.cc
-set binfile ${objdir}/${subdir}/${testfile}
-
-if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } {
- untested try_catch.exp
- return -1
-}
-
-if [get_compiler_info ${binfile} "c++"] {
- return -1
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binfile}
-
-
-if ![runto_main] then {
- perror "couldn't run to breakpoint"
- continue
-}
-
-gdb_breakpoint [gdb_get_line_number "marker 1-throw"]
-gdb_continue_to_breakpoint "marker 1-throw"
-
-gdb_breakpoint [gdb_get_line_number "marker 1-catch"]
-gdb_continue_to_breakpoint "marker 1-catch"
-
-gdb_breakpoint [gdb_get_line_number "marker 2-start"]
-gdb_continue_to_breakpoint "marker 2-start"
-
-gdb_breakpoint [gdb_get_line_number "marker 2-next"]
-gdb_continue_to_breakpoint "marker 2-next"
-
-gdb_breakpoint [gdb_get_line_number "marker 2-throw"]
-gdb_continue_to_breakpoint "marker 2-throw"
-
-gdb_breakpoint [gdb_get_line_number "marker 2-catch"]
-gdb_continue_to_breakpoint "marker 2-catch"
-
-gdb_breakpoint [gdb_get_line_number "marker 3-throw"]
-gdb_continue_to_breakpoint "marker 3-throw"
-
-gdb_breakpoint [gdb_get_line_number "marker 3-catch"]
-gdb_continue_to_breakpoint "marker 3-catch"
-
-gdb_exit
-return 0
Index: mb-templates.cc
===================================================================
--- mb-templates.cc (revision 816)
+++ mb-templates.cc (nonexistent)
@@ -1,19 +0,0 @@
-
-#include
-using namespace std;
-
-template
-void foo(T i)
-{
- std::cout << "hi\n"; // set breakpoint here
-}
-
-int main()
-{
- foo(0);
- foo(0);
- foo(1);
- foo(1);
- foo(2);
- foo(2);
-}
Index: bool.cc
===================================================================
--- bool.cc (revision 816)
+++ bool.cc (nonexistent)
@@ -1,37 +0,0 @@
-/* This testcase is part of GDB, the GNU debugger.
-
- Copyright (C) 2006, 2007, 2008 Free Software Foundation, Inc.
-
- This file is part of GDB.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see . */
-
-bool
-return_true ()
-{
- return true;
-}
-
-bool
-return_false ()
-{
- return false;
-}
-
-int
-main ()
-{
- return_true ();
- return_false ();
-}
Index: ambiguous.cc
===================================================================
--- ambiguous.cc (revision 816)
+++ ambiguous.cc (nonexistent)
@@ -1,110 +0,0 @@
-
-void marker1()
-{
- return;
-}
-
-class A1 {
-public:
- int x;
- int y;
-};
-
-class A2 {
-public:
- int x;
- int y;
-};
-
-class A3 {
-public:
- int x;
- int y;
-};
-
-class X : public A1, public A2 {
-public:
- int z;
-};
-
-class L : public A1 {
-public:
- int z;
-};
-
-class LV : public virtual A1 {
-public:
- int z;
-};
-
-class M : public A2 {
-public:
- int w;
-};
-
-class N : public L, public M {
-public:
- int r;
-};
-
-class K : public A1 {
-public:
- int i;
-};
-
-class KV : public virtual A1 {
-public:
- int i;
-};
-
-class J : public K, public L {
-public:
- int j;
-};
-
-class JV : public KV, public LV {
-public:
- int jv;
-};
-
-class JVA1 : public KV, public LV, public A1 {
-public:
- int jva1;
-};
-
-class JVA2 : public KV, public LV, public A2 {
-public:
- int jva2;
-};
-
-class JVA1V : public KV, public LV, public virtual A1 {
-public:
- int jva1v;
-};
-
-int main()
-{
- A1 a1;
- A2 a2;
- A3 a3;
- X x;
- L l;
- M m;
- N n;
- K k;
- J j;
- JV jv;
- JVA1 jva1;
- JVA2 jva2;
- JVA1V jva1v;
-
- int i;
-
- i += k.i + m.w + a1.x + a2.x + a3.x + x.z + l.z + n.r + j.j;
-
- marker1();
-
-}
-
-
-
Index: mb-inline2.cc
===================================================================
--- mb-inline2.cc (revision 816)
+++ mb-inline2.cc (nonexistent)
@@ -1,25 +0,0 @@
-/* This testcase is part of GDB, the GNU debugger.
-
- Copyright 2008 Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see .
- */
-
-#include "mb-inline.h"
-
-int
-bfn ()
-{
- return foo (1);
-}
Index: psmang.exp
===================================================================
--- psmang.exp (revision 816)
+++ psmang.exp (nonexistent)
@@ -1,225 +0,0 @@
-# Copyright 2002, 2004, 2007, 2008 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see .
-
-# This file is part of the gdb testsuite
-
-# Looking up methods by name, in programs with multiple compilation units.
-
-# ====== PLEASE BE VERY CAREFUL WHEN CHANGING THIS TEST. =====
-#
-# The bug we're testing for (circa October 2002) is very sensitive to
-# various conditions that are hard to control directly in the test
-# suite. If you change the test, please revert this change, and make
-# sure the test still fails:
-#
-# 2002-08-29 Jim Blandy
-#
-# * symtab.c (lookup_symbol_aux): In the cases where we find a
-# minimal symbol of an appropriate name and use its address to
-# select a symtab to read and search, use `name' (as passed to us)
-# as the demangled name when searching the symtab's global and
-# static blocks, not the minsym's name.
-#
-# The original bug was that you'd try to set a breakpoint on a method
-# (e.g., `break s::method1'), and you'd get an error, but if you
-# repeated the command, it would work the second time:
-#
-# (gdb) break s::method1
-# the class s does not have any method named method1
-# Hint: try 's::method1 or 's::method1
-# (Note leading single quote.)
-# (gdb) break s::method1
-# Breakpoint 1 at 0x804841b: file psmang1.cc, line 13.
-# (gdb)
-#
-# We observed this bug first using Stabs, and then using Dwarf 2.
-#
-# The problem was in lookup_symbol_aux: when looking up s::method1, it
-# would fail to find it in any symtabs, find the minsym with the
-# corresponding mangled name (say, `_ZN1S7method1Ev'), pass the
-# minsym's address to find_pc_sect_symtab to look up the symtab
-# (causing the compilation unit's full symbols to be read in), and
-# then look up the symbol in that symtab's global block. All that is
-# correct. However, it would pass the minsym's name as the NAME
-# argument to lookup_block_symbol; a minsym's name is mangled, whereas
-# lookup_block_symbol's NAME argument should be demangled.
-#
-# This is a pretty simple bug, but it turns out to be a bear to
-# construct a test for. That's why this test case is so delicate. If
-# you can see how to make it less so, please contribute a patch.
-#
-# Here are the twists:
-#
-# The bug only manifests itself when we call lookup_symbol to look up
-# a method name (like "s::method1" or "s::method2"), and that method's
-# definition is in a compilation unit for which we have read partial
-# symbols, but not full symbols. The partial->full conversion must be
-# caused by that specific lookup. (If we already have full symbols
-# for the method's compilation unit, we won't need to look up the
-# minsym, find the symtab for the minsym's address, and then call
-# lookup_block_symbol; it's that last call where things go awry.)
-#
-# Now, when asked to set a breakpoint at `s::method1', GDB will first
-# look up `s' to see if that is, in fact, the name of a class, and
-# then look up 's::method1'. So we have to make sure that looking up
-# `s' doesn't cause full symbols to be read for the compilation unit
-# containing the definition of `s::method1'.
-#
-# The partial symbol tables for `psmang1.cc' and `psmang2.cc' will
-# both have entries for `s'; GDB will read full symbols for whichever
-# compilation unit's partial symbol table appears first in the
-# objfile's list. The order in which compilation units appear in the
-# partial symbol table list depends on how the program is linked, and
-# how the debug info reader does the partial symbol scan. Ideally,
-# the test shouldn't rely on them appearing in any particular order.
-#
-# So, since we don't know which compilation unit's full symbols are
-# going to get read, we simply try looking up one method from each of
-# the two compilation units. One of them has to come after the other
-# in the partial symbol table list, so whichever comes later will
-# still need its partial symbols read by the time we go to look up
-# 's::methodX'.
-#
-# Second twist: don't move the common definition of `struct s' into a
-# header file. If the compiler emits identical stabs for the
-# #inclusion of that header file into psmang1.cc and into psmang2.cc,
-# then the linker will do stabs compression, and replace one of the
-# BINCL/EINCL regions with an EXCL stab, pointing to the other
-# BINCL/EINCL region. GDB will read this, and record that the
-# compilation unit that got the EXCL depends on the compilation unit
-# that kept the BINCL/EINCL. Then, when it decides it needs to read
-# full symbols for the former, it'll also read full symbols for the
-# latter. Now, if it just so happens that the compilation unit that
-# got the EXCL is also the first one with a definition of `s' in the
-# partial symbol table list, then that first probe for `s' will cause
-# both compilation units' full symbols to be read --- again defeating
-# the test.
-#
-# We could work around this by having three compilation units, or by
-# ensuring that the header file produces different stabs each time
-# it's #included, but it seems simplest just to avoid compilation unit
-# dependencies altogether, drop the header file, and duplicate the
-# (pretty trivial) struct definition.
-#
-# Note that #including any header file at all into both compilation
-# units --- say, --- could create this sort of dependency.
-#
-# This is the aspect of the test which the debug format is most likely
-# to affect, I think. The different formats create different kinds of
-# inter-CU dependencies, which could mask the bug. It might be
-# possible for the test to check that at least one of the partial
-# symtabs remains unread, and fail otherwise --- the failure
-# indicating that the test itself isn't going to catch the bug it was
-# meant to, not that GDB is misbehaving.
-#
-# Third twist: given the way lookup_block_symbol is written, it's
-# possible to find the symbol even when it gets passed a mangled name
-# for its NAME parameter. There are three ways lookup_block_symbol
-# might search a block, depending on how it was constructed:
-#
-# linear search. In this case, this bug will never manifest itself,
-# since we check every symbol against NAME using SYMBOL_MATCHES_NAME.
-# Since that macro checks its second argument (NAME) against both the
-# mangled and demangled names of the symbol, this will always find the
-# symbol successfully, so, no bug.
-#
-# hash table. If both the mangled and demangled names hash to the
-# same bucket, then you'll again find the symbol "by accident", since
-# we search the entire bucket using SYMBOL_SOURCE_NAME. Since GDB
-# chooses the number of buckets based on the number of symbols, small
-# compilation units may have only one hash bucket; in this case, the
-# search always succeeds, even though we hashed on the wrong name.
-# This test works around that by having a lot of dummy variables,
-# making it less likely that the mangled and demangled names fall in
-# the same bucket.
-#
-# binary search. (GDB 5.2 produced these sorts of blocks, and this
-# test tries to detect the bug there, but subsequent versions of GDB
-# almost never build them, and they may soon be removed entirely.) In
-# this case, the symbols in the block are sorted by their
-# SYMBOL_SOURCE_NAME (whose behavior depends on the current demangling
-# setting, so that's wrong, but let's try to stay focussed).
-# lookup_block_symbol does a binary search comparing NAME with
-# SYMBOL_SOURCE_NAME until the range has been narrowed down to only a
-# few symbols; then it starts a linear search forward from the lower
-# end of that range, until it reaches a symbol whose
-# SYMBOL_SOURCE_NAME follows NAME in lexicographic order. This means
-# that, if you're doing a binary search for a mangled name in a block
-# sorted by SYMBOL_SOURCE_NAME, you might find the symbol `by
-# accident' if the mangled and demangled names happen to fall near
-# each other in the ordering. The initial version of this patch used
-# a class called `S'; all the other symbols in the compilation unit
-# started with lower-case letters, so the demangled name `S::method1'
-# sorted at the same place as the mangled name `_ZN1S7method1Ev': at
-# the very beginning. Using a lower-case 's' as the name ensures that
-# the demangled name falls after all the dummy symbols introduced for
-# the hash table, as described above.
-#
-# This is all so tortured, someone will probably come up with still
-# other ways this test could fail to do its job. If you need to make
-# revisions, please be very careful.
-
-if $tracelevel then {
- strace $tracelevel
-}
-
-#
-# test running programs
-#
-
-set prms_id 0
-set bug_id 0
-
-if { [skip_cplus_tests] } { continue }
-
-set testfile "psmang"
-set binfile ${objdir}/${subdir}/${testfile}
-
-if [get_compiler_info ${binfile} "c++"] {
- return -1;
-}
-
-if { [gdb_compile "${srcdir}/${subdir}/${testfile}1.cc" "${testfile}1.o" object {debug c++}] != "" } {
- untested psmang.exp
- return -1
-}
-
-if { [gdb_compile "${srcdir}/${subdir}/${testfile}2.cc" "${testfile}2.o" object {debug c++}] != "" } {
- untested psmang.exp
- return -1
-}
-
-if { [gdb_compile "${testfile}1.o ${testfile}2.o" ${binfile} executable {debug c++}] != "" } {
- untested psmang.exp
- return -1
-}
-
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binfile}
-
-gdb_test "break s::method1" "Breakpoint .* at .*: file .*psmang1.cc.*"
-
-# We have to exit and restart GDB here, to make sure that all the
-# compilation units are psymtabs again.
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binfile}
-
-gdb_test "break s::method2" "Breakpoint .* at .*: file .*psmang2.cc.*"
Index: ref-params.cc
===================================================================
--- ref-params.cc (revision 816)
+++ ref-params.cc (nonexistent)
@@ -1,78 +0,0 @@
-/* This test script is part of GDB, the GNU debugger.
-
- Copyright 2006, 2007, 2008 Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see .
- */
-
-/* Author: Paul N. Hilfinger, AdaCore Inc. */
-
-struct Parent {
- Parent (int id0) : id(id0) { }
- int id;
-};
-
-struct Child : public Parent {
- Child (int id0) : Parent(id0) { }
-};
-
-int f1(Parent& R)
-{
- return R.id; /* Set breakpoint marker3 here. */
-}
-
-int f2(Child& C)
-{
- return f1(C); /* Set breakpoint marker2 here. */
-}
-
-struct OtherParent {
- OtherParent (int other_id0) : other_id(other_id0) { }
- int other_id;
-};
-
-struct MultiChild : public Parent, OtherParent {
- MultiChild (int id0) : Parent(id0), OtherParent(id0 * 2) { }
-};
-
-int mf1(OtherParent& R)
-{
- return R.other_id;
-}
-
-int mf2(MultiChild& C)
-{
- return mf1(C);
-}
-
-int main(void)
-{
- Child Q(42);
- Child& QR = Q;
-
- #ifdef usestubs
- set_debug_traps();
- breakpoint();
- #endif
-
- /* Set breakpoint marker1 here. */
-
- f2(Q);
- f2(QR);
-
- MultiChild MQ(53);
- MultiChild& MQR = MQ;
-
- mf2(MQ); /* Set breakpoint MQ here. */
-}
Index: cp-relocate.cc
===================================================================
--- cp-relocate.cc (revision 816)
+++ cp-relocate.cc (nonexistent)
@@ -1,26 +0,0 @@
-/* This test file is part of GDB, the GNU debugger.
-
- Copyright 2007, 2008 Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see . */
-
-template int func(int)
-{
- return X;
-}
-
-int caller()
-{
- return func<1>(1) + func<2>(2);
-}
Index: templates.cc
===================================================================
--- templates.cc (revision 816)
+++ templates.cc (nonexistent)
@@ -1,785 +0,0 @@
-/* This test code is from Wendell Baker (wbaker@comet.berkeley.edu) */
-
-#include
-
-int a_i;
-char a_c;
-double a_d;
-
-typedef void *Pix;
-
-int
-f(int i)
-{ return 0; }
-
-int
-f(int i, char c)
-{ return 0; }
-
-int
-f(int i, char c, double d)
-{ return 0; }
-
-int
-f(int i, char c, double d, char *cs)
-{ return 0; }
-
-int
-f(int i, char c, double d, char *cs, void (*fig)(int, char))
-{ return 0; }
-
-int
-f(int i, char c, double d, char *cs, void (*fig)(char, int))
-{ return 0; }
-
-class R {
-public:
- int i;
-};
-class S {
-public:
- int i;
-};
-class T {
-public:
- int i;
-};
-
-char g(char, const char, volatile char)
-{ return 'c'; }
-char g(R, char&, const char&, volatile char&)
-{ return 'c'; }
-char g(char*, const char*, volatile char*)
-{ return 'c'; }
-char g(S, char*&, const char*&, volatile char*&)
-{ return 'c'; }
-
-signed char g(T,signed char, const signed char, volatile signed char)
-{ return 'c'; }
-signed char g(T, R, signed char&, const signed char&, volatile signed char&)
-{ return 'c'; }
-signed char g(T, signed char*, const signed char*, volatile signed char*)
-{ return 'c'; }
-signed char g(T, S, signed char*&, const signed char*&, volatile signed char*&)
-{ return 'c'; }
-
-unsigned char g(unsigned char, const unsigned char, volatile unsigned char)
-{ return 'c'; }
-unsigned char g(R, unsigned char&, const unsigned char&, volatile unsigned char&)
-{ return 'c'; }
-unsigned char g(unsigned char*, const unsigned char*, volatile unsigned char*)
-{ return 'c'; }
-unsigned char g(S, unsigned char*&, const unsigned char*&, volatile unsigned char*&)
-{ return 'c'; }
-
-short g(short, const short, volatile short)
-{ return 0; }
-short g(R, short&, const short&, volatile short&)
-{ return 0; }
-short g(short*, const short*, volatile short*)
-{ return 0; }
-short g(S, short*&, const short*&, volatile short*&)
-{ return 0; }
-
-signed short g(T, signed short, const signed short, volatile signed short)
-{ return 0; }
-signed short g(T, R, signed short&, const signed short&, volatile signed short&)
-{ return 0; }
-signed short g(T, signed short*, const signed short*, volatile signed short*)
-{ return 0; }
-signed short g(T, S, double, signed short*&, const signed short*&, volatile signed short*&)
-{ return 0; }
-
-unsigned short g(unsigned short, const unsigned short, volatile unsigned short)
-{ return 0; }
-unsigned short g(R, unsigned short&, const unsigned short&, volatile unsigned short&)
-{ return 0; }
-unsigned short g(unsigned short*, const unsigned short*, volatile unsigned short*)
-{ return 0; }
-unsigned short g(S, unsigned short*&, const unsigned short*&, volatile unsigned short*&)
-{ return 0; }
-
-int g(int, const int, volatile int)
-{ return 0; }
-int g(R, int&, const int&, volatile int&)
-{ return 0; }
-int g(int*, const int*, volatile int*)
-{ return 0; }
-int g(S, int*&, const int*&, volatile int*&)
-{ return 0; }
-
-signed int g(T, signed int, const signed int, volatile signed int)
-{ return 0; }
-signed int g(T, R, signed int&, const signed int&, volatile signed int&)
-{ return 0; }
-signed int g(T, signed int*, const signed int*, volatile signed int*)
-{ return 0; }
-signed int g(T, S, signed int*&, const signed int*&, volatile signed int*&)
-{ return 0; }
-
-unsigned int g(unsigned int, const unsigned int, volatile unsigned int)
-{ return 0; }
-unsigned int g(R, unsigned int&, const unsigned int&, volatile unsigned int&)
-{ return 0; }
-unsigned int g(unsigned int*, const unsigned int*, volatile unsigned int*)
-{ return 0; }
-unsigned int g(S, unsigned int*&, const unsigned int*&, volatile unsigned int*&)
-{ return 0; }
-
-long g(long, const long, volatile long)
-{ return 0; }
-long g(R, long&, const long&, volatile long&)
-{ return 0; }
-long g(long*, const long*, volatile long*)
-{ return 0; }
-long g(S, long*&, const long*&, volatile long*&)
-{ return 0; }
-
-signed long g(T, signed long, const signed long, volatile signed long)
-{ return 0; }
-signed long g(T, R, signed long&, const signed long&, volatile signed long&)
-{ return 0; }
-signed long g(T, signed long*, const signed long*, volatile signed long*)
-{ return 0; }
-signed long g(T, S, signed long*&, const signed long*&, volatile signed long*&)
-{ return 0; }
-
-unsigned long g(unsigned long, const unsigned long, volatile unsigned long)
-{ return 0; }
-unsigned long g(S, unsigned long&, const unsigned long&, volatile unsigned long&)
-{ return 0; }
-unsigned long g(unsigned long*, const unsigned long*, volatile unsigned long*)
-{ return 0; }
-unsigned long g(S, unsigned long*&, const unsigned long*&, volatile unsigned long*&)
-{ return 0; }
-
-#ifdef __GNUC__
-long long g(long long, const long long, volatile long long)
-{ return 0; }
-long long g(S, long long&, const long long&, volatile long long&)
-{ return 0; }
-long long g(long long*, const long long*, volatile long long*)
-{ return 0; }
-long long g(R, long long*&, const long long*&, volatile long long*&)
-{ return 0; }
-
-signed long long g(T, signed long long, const signed long long, volatile signed long long)
-{ return 0; }
-signed long long g(T, R, signed long long&, const signed long long&, volatile signed long long&)
-{ return 0; }
-signed long long g(T, signed long long*, const signed long long*, volatile signed long long*)
-{ return 0; }
-signed long long g(T, S, signed long long*&, const signed long long*&, volatile signed long long*&)
-{ return 0; }
-
-unsigned long long g(unsigned long long, const unsigned long long, volatile unsigned long long)
-{ return 0; }
-unsigned long long g(R, unsigned long long*, const unsigned long long*, volatile unsigned long long*)
-{ return 0; }
-unsigned long long g(unsigned long long&, const unsigned long long&, volatile unsigned long long&)
-{ return 0; }
-unsigned long long g(S, unsigned long long*&, const unsigned long long*&, volatile unsigned long long*&)
-{ return 0; }
-#endif
-
-float g(float, const float, volatile float)
-{ return 0; }
-float g(char, float&, const float&, volatile float&)
-{ return 0; }
-float g(float*, const float*, volatile float*)
-{ return 0; }
-float g(char, float*&, const float*&, volatile float*&)
-{ return 0; }
-
-double g(double, const double, volatile double)
-{ return 0; }
-double g(char, double&, const double&, volatile double&)
-{ return 0; }
-double g(double*, const double*, volatile double*)
-{ return 0; }
-double g(char, double*&, const double*&, volatile double*&)
-{ return 0; }
-
-#ifdef __GNUC__
-long double g(long double, const long double, volatile long double)
-{ return 0; }
-long double g(char, long double&, const long double&, volatile long double&)
-{ return 0; }
-long double g(long double*, const long double*, volatile long double*)
-{ return 0; }
-long double g(char, long double*&, const long double*&, volatile long double*&)
-{ return 0; }
-#endif
-
-class c {
-public:
- c(int) {};
- int i;
-};
-
-class c g(c, const c, volatile c)
-{ return 0; }
-c g(char, c&, const c&, volatile c&)
-{ return 0; }
-c g(c*, const c*, volatile c*)
-{ return 0; }
-c g(char, c*&, const c*&, volatile c*&)
-{ return 0; }
-
-/*
-void h(char = 'a')
-{ }
-void h(char, signed char = 'a')
-{ }
-void h(unsigned char = 'a')
-{ }
-*/
-/*
-void h(char = (char)'a')
-{ }
-void h(char, signed char = (signed char)'a')
-{ }
-void h(unsigned char = (unsigned char)'a')
-{ }
-
-
-void h(short = (short)43)
-{ }
-void h(char, signed short = (signed short)43)
-{ }
-void h(unsigned short = (unsigned short)43)
-{ }
-
-void h(int = (int)43)
-{ }
-void h(char, signed int = (signed int)43)
-{ }
-void h(unsigned int = (unsigned int)43)
-{ }
-
-
-void h(long = (long)43)
-{ }
-void h(char, signed long = (signed long)43)
-{ }
-void h(unsigned long = (unsigned long)43)
-{ }
-
-#ifdef __GNUC__
-void h(long long = 43)
-{ }
-void h(char, signed long long = 43)
-{ }
-void h(unsigned long long = 43)
-{ }
-#endif
-
-void h(float = 4.3e-10)
-{ }
-void h(double = 4.3)
-{ }
-#ifdef __GNUC__
-void h(long double = 4.33e33)
-{ }
-#endif
-*/
-
-/* An unneeded printf() definition - actually, just a stub - used to occupy
- this space. It has been removed and replaced with this comment which
- exists to occupy some lines so that templates.exp won't need adjustment. */
-
-class T1 {
-public:
- static void* operator new(size_t) throw ();
- static void operator delete(void *pointer);
-
- void operator=(const T1&);
- T1& operator=(int);
-
- int operator==(int) const;
- int operator==(const T1&) const;
- int operator!=(int) const;
- int operator!=(const T1&) const;
-
- int operator<=(int) const;
- int operator<=(const T1&) const;
- int operator<(int) const;
- int operator<(const T1&) const;
- int operator>=(int) const;
- int operator>=(const T1&) const;
- int operator>(int) const;
- int operator>(const T1&) const;
-
- void operator+(int) const;
- T1& operator+(const T1&) const;
- void operator+=(int) const;
- T1& operator+=(const T1&) const;
-
- T1& operator++() const;
-
- void operator-(int) const;
- T1& operator-(const T1&) const;
- void operator-=(int) const;
- T1& operator-=(const T1&) const;
-
- T1& operator--() const;
-
- void operator*(int) const;
- T1& operator*(const T1&) const;
- void operator*=(int) const;
- T1& operator*=(const T1&) const;
-
- void operator/(int) const;
- T1& operator/(const T1&) const;
- void operator/=(int) const;
- T1& operator/=(const T1&) const;
-
- void operator%(int) const;
- T1& operator%(const T1&) const;
- void operator%=(int) const;
- T1& operator%=(const T1&) const;
-
- void operator&&(int) const;
- T1& operator&&(const T1&) const;
-
- void operator||(int) const;
- T1& operator||(const T1&) const;
-
- void operator&(int) const;
- T1& operator&(const T1&) const;
- void operator&=(int) const;
- T1& operator&=(const T1&) const;
-
- void operator|(int) const;
- T1& operator|(const T1&) const;
- void operator|=(int) const;
- T1& operator|=(const T1&) const;
-
- void operator^(int) const;
- T1& operator^(const T1&) const;
- void operator^=(int) const;
- T1& operator^=(const T1&) const;
-
- T1& operator!() const;
- T1& operator~() const;
-};
-
-void*
-T1::operator new(size_t) throw ()
-{ return 0; }
-
-void
-T1::operator delete(void *pointer)
-{ }
-
-class T2 {
-public:
- T2(int i): integer(i)
- { }
- int integer;
-};
-
-int operator==(const T2&, const T2&)
-{ return 0; }
-int operator==(const T2&, char)
-{ return 0; }
-int operator!=(const T2&, const T2&)
-{ return 0; }
-int operator!=(const T2&, char)
-{ return 0; }
-
-int operator<=(const T2&, const T2&)
-{ return 0; }
-int operator<=(const T2&, char)
-{ return 0; }
-int operator<(const T2&, const T2&)
-{ return 0; }
-int operator<(const T2&, char)
-{ return 0; }
-int operator>=(const T2&, const T2&)
-{ return 0; }
-int operator>=(const T2&, char)
-{ return 0; }
-int operator>(const T2&, const T2&)
-{ return 0; }
-int operator>(const T2&, char)
-{ return 0; }
-
-T2 operator+(const T2 t, int i)
-{ return t.integer + i; }
-T2 operator+(const T2 a, const T2& b)
-{ return a.integer + b.integer; }
-T2& operator+=(T2& t, int i)
-{ t.integer += i; return t; }
-T2& operator+=(T2& a, const T2& b)
-{ a.integer += b.integer; return a; }
-
-T2 operator-(const T2 t, int i)
-{ return t.integer - i; }
-T2 operator-(const T2 a, const T2& b)
-{ return a.integer - b.integer; }
-T2& operator-=(T2& t, int i)
-{ t.integer -= i; return t; }
-T2& operator-=(T2& a, const T2& b)
-{ a.integer -= b.integer; return a; }
-
-T2 operator*(const T2 t, int i)
-{ return t.integer * i; }
-T2 operator*(const T2 a, const T2& b)
-{ return a.integer * b.integer; }
-T2& operator*=(T2& t, int i)
-{ t.integer *= i; return t; }
-T2& operator*=(T2& a, const T2& b)
-{ a.integer *= b.integer; return a; }
-
-T2 operator/(const T2 t, int i)
-{ return t.integer / i; }
-T2 operator/(const T2 a, const T2& b)
-{ return a.integer / b.integer; }
-T2& operator/=(T2& t, int i)
-{ t.integer /= i; return t; }
-T2& operator/=(T2& a, const T2& b)
-{ a.integer /= b.integer; return a; }
-
-T2 operator%(const T2 t, int i)
-{ return t.integer % i; }
-T2 operator%(const T2 a, const T2& b)
-{ return a.integer % b.integer; }
-T2& operator%=(T2& t, int i)
-{ t.integer %= i; return t; }
-T2& operator%=(T2& a, const T2& b)
-{ a.integer %= b.integer; return a; }
-
-template
-class T5 {
-public:
- T5(int);
- T5(const T5&);
- ~T5();
- static void* operator new(size_t) throw ();
- static void operator delete(void *pointer);
- int value();
-
- static T X;
- T x;
- int val;
-};
-
-template
-T5::T5(int v)
-{ val = v; }
-
-template
-T5::T5(const T5&)
-{}
-
-template
-T5::~T5()
-{}
-
-template
-void*
-T5::operator new(size_t) throw ()
-{ return 0; }
-
-template
-void
-T5::operator delete(void *pointer)
-{ }
-
-template
-int
-T5::value()
-{ return val; }
-
-
-#if ! defined(__GNUC__) || defined(GCC_BUG)
-template
-T T5::X;
-#endif
-
-
-
-
-T5 t5c(1);
-T5 t5i(2);
-T5 t5fi1(3);
-T5 t5fi2(4);
-
-
-
-
-
-
-class x {
-public:
- int (*manage[5])(double,
- void *(*malloc)(unsigned size),
- void (*free)(void *pointer));
- int (*device[5])(int open(const char *, unsigned mode, unsigned perms, int extra),
- int *(*read)(int fd, void *place, unsigned size),
- int *(*write)(int fd, void *place, unsigned size),
- void (*close)(int fd));
-};
-T5 t5x(5);
-
-#if !defined(__GNUC__) || (__GNUC__ > 2) || (__GNUC__ == 2 && __GNUC_MINOR__ >= 6)
-template class T5;
-template class T5;
-template class T5;
-template class T5;
-template class T5;
-#endif
-
-class T7 {
-public:
- static int get();
- static void put(int);
-};
-
-int
-T7::get()
-{ return 1; }
-
-void
-T7::put(int i)
-{
- // nothing
-}
-
-// More template kinds. GDB 4.16 didn't handle these, but
-// Wildebeest does. Note: Assuming HP aCC is used to compile
-// this file; with g++ or HP cfront or other compilers the
-// demangling may not get done correctly.
-
-// Ordinary template, to be instantiated with different types
-template
-class Foo {
-public:
- int x;
- T t;
- T foo (int, T);
-};
-
-
-template T Foo::foo (int i, T tt)
-{
- return tt;
-}
-
-// Template with int parameter
-
-template
-class Bar {
-public:
- int x;
- T t;
- T bar (int, T);
-};
-
-
-template T Bar::bar (int i, T tt)
-{
- if (i < sz)
- return tt;
- else
- return 0;
-}
-
-// function template with int parameter
-template int dummy (T tt, int i)
-{
- return tt;
-}
-
-// Template with partial specializations
-template
-class Spec {
-public:
- int x;
- T1 spec (T2);
-};
-
-template
-T1 Spec::spec (T2 t2)
-{
- return 0;
-}
-
-template
-class Spec {
-public:
- int x;
- T spec (T*);
-};
-
-template
-T Spec::spec (T * tp)
-{
- return *tp;
-}
-
-// Template with char parameter
-template
-class Baz {
-public:
- int x;
- T t;
- T baz (int, T);
-};
-
-template T Baz::baz (int i, T tt)
-{
- if (i < sz)
- return tt;
- else
- return 0;
-}
-
-// Template with char * parameter
-template
-class Qux {
-public:
- int x;
- T t;
- T qux (int, T);
-};
-
-template T Qux::qux (int i, T tt)
-{
- if (sz[0] == 'q')
- return tt;
- else
- return 0;
-}
-
-// Template with a function pointer parameter
-template
-class Qux1 {
-public:
- int x;
- T t;
- T qux (int, T);
-};
-
-template T Qux1::qux (int i, T tt)
-{
- if (f != 0)
- return tt;
- else
- return 0;
-}
-
-// Some functions to provide as arguments to template
-int gf1 (int a) {
- return a * 2 + 13;
-}
-int gf2 (int a) {
- return a * 2 + 26;
-}
-
-char string[3];
-
-
-// Template for nested instantiations
-
-template
-class Garply {
-public:
- int x;
- T t;
- T garply (int, T);
-};
-
-template T Garply::garply (int i, T tt)
-{
- if (i > x)
- return tt;
- else
- {
- x += i;
- return tt;
- }
-}
-
-
-int main()
-{
- int i;
-#ifdef usestubs
- set_debug_traps();
- breakpoint();
-#endif
- i = i + 1;
-
- // New tests added here
-
- Foo fint={0,0};
- Foo fchar={0,0};
- Foo fvpchar = {0, 0};
-
- Bar bint;
- Bar 3)> bint2;
-
- Baz bazint;
- Baz bazint2;
-
- Qux quxint2;
- Qux quxint;
-
- Qux1 qux11;
-
- int x = fint.foo(33, 47);
- char c = fchar.foo(33, 'x');
- volatile char * cp = fvpchar.foo(33, 0);
-
- int y = dummy (400, 600);
-
- int z = bint.bar(55, 66);
- z += bint2.bar(55, 66);
-
- c = bazint2.baz(4, 'y');
- c = quxint2.qux(4, 'z');
-
- y = bazint.baz(4,3);
- y = quxint.qux(4, 22);
- y += qux11.qux(4, 22);
-
- y *= gf1(y) - gf2(y);
-
- Spec sic;
- Spec siip;
-
- sic.spec ('c');
- siip.spec (&x);
-
- Garply f;
- Garply fc;
- f.x = 13;
-
- Garply > nf;
- nf.x = 31;
-
- x = f.garply (3, 4);
-
- fc = nf.garply (3, fc);
-
- y = x + fc.x;
-
-
- return 0;
-
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
Index: formatted-ref.cc
===================================================================
--- formatted-ref.cc (revision 816)
+++ formatted-ref.cc (nonexistent)
@@ -1,48 +0,0 @@
-/* Copyright 2007, 2008 Free Software Foundation, Inc.
-
- This file is part of GDB.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see . */
-
-/* Author: Paul N. Hilfinger, AdaCore Inc. */
-
-enum Enum1 { Val10=10, Val11, Val12 };
-
-struct Struct1
-{
- int x, y;
-};
-
-int f1 (Struct1& s, Enum1& e, int& i)
-{
- return s.x; /* Set breakpoint marker here. */
-}
-
-Struct1 s1 = { 13, 19 };
-
-int i1 = 23;
-
-Enum1 e1 = Val11;
-
-int main(void)
-{
-
- #ifdef usestubs
- set_debug_traps();
- breakpoint();
- #endif
-
- f1 (s1, e1, i1);
-
-}
Index: cttiadd3.cc
===================================================================
--- cttiadd3.cc (revision 816)
+++ cttiadd3.cc (nonexistent)
@@ -1,51 +0,0 @@
-/* This testcase is part of GDB, the GNU debugger.
-
- Copyright 1998, 1999, 2004, 2007, 2008 Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see .
- */
-
-template T add3(T v1, T v2)
-{
- T v3;
- v3 = v1;
- v3 += v2;
- return v3;
-}
-
-template T add4(T v1, T v2)
-{
- T v3;
- v3 = v1;
- v3 += v2;
- return v3;
-}
-
-void subr3()
-{
- unsigned char c;
- int i;
- float f;
-
- c = 'b';
- i = 3;
- f = 6.5;
-
- c = add3(c, c);
- i = add3(i, i);
- f = add3(f, f);
- c = add4(c, c);
- i = add4(i, i);
- f = add4(f, f);
-}
Index: pass-by-ref.exp
===================================================================
--- pass-by-ref.exp (revision 816)
+++ pass-by-ref.exp (nonexistent)
@@ -1,41 +0,0 @@
-# Copyright 2007, 2008 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see .
-
-# Check that GDB can call C++ functions whose parameters have
-# object type, but are passed by reference.
-
-if { [skip_cplus_tests] } { continue }
-
-set testfile "pass-by-ref"
-set srcfile ${testfile}.cc
-set binfile ${objdir}/${subdir}/${testfile}
-if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" \
- executable {debug c++}] != "" } {
- untested pass-by-ref.exp
- return -1
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binfile}
-
-if ![runto_main] then {
- return -1
-}
-
-gdb_test "print foo (global_obj)" " = 3" "call function in obj"
-gdb_test "print blap (global_derived)" " = 3" "call function in derived"
-gdb_test "print blip (global_container)" " = 3" "call function in container"
Index: mb-templates.exp
===================================================================
--- mb-templates.exp (revision 816)
+++ mb-templates.exp (nonexistent)
@@ -1,162 +0,0 @@
-# Copyright 2007, 2008 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see .
-
-# This test verifies that setting breakpoint on line in template
-# function will fire in all instantiations of that template.
-
-if $tracelevel then {
- strace $tracelevel
-}
-
-if { [skip_cplus_tests] } { continue }
-
-set prms_id 0
-set bug_id 0
-
-set testfile "mb-templates"
-set srcfile ${testfile}.cc
-set binfile ${objdir}/${subdir}/${testfile}
-
-if [get_compiler_info ${binfile} "c++"] {
- return -1
-}
-
-if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } {
- untested mb-templates.exp
- return -1
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binfile}
-
-set bp_location [gdb_get_line_number "set breakpoint here"]
-
-# Set a breakpoint with multiple locations
-# and a condition.
-
-gdb_test "break $srcfile:$bp_location if i==1" \
- "Breakpoint.*at.* file .*$srcfile, line.*\\(2 locations\\).*" \
- "initial condition: set breakpoint"
-
-gdb_run_cmd
-gdb_expect {
- -re "Breakpoint \[0-9\]+,.*foo \\(i=1\\).*$gdb_prompt $" {
- pass "initial condition: run to breakpoint"
- }
- -re "$gdb_prompt $" {
- fail "initial condition: run to breakpoint"
- }
- timeout {
- fail "initial condition: run to breakpoint (timeout)"
- }
-}
-
-gdb_test "continue" \
- ".*Breakpoint.*foo \\(i=1\\).*" \
- "initial condition: run to breakpoint 2"
-
-# Set breakpoint with multiple locations.
-# Separately set the condition.
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binfile}
-
-gdb_test "break $srcfile:$bp_location" \
- "Breakpoint.*at.* file .*$srcfile, line.*\\(2 locations\\).*" \
- "separate condition: set breakpoint"
-
-gdb_test "condition 1 i==1" "" \
- "separate condition: set condition"
-
-gdb_run_cmd
-gdb_expect {
- -re "Breakpoint \[0-9\]+,.*foo \\(i=1\\).*$gdb_prompt $" {
- pass "separate condition: run to breakpoint"
- }
- -re "$gdb_prompt $" {
- fail "separate condition: run to breakpoint"
- }
- timeout {
- fail "separate condition: run to breakpoint (timeout)"
- }
-}
-
-gdb_test "continue" \
- ".*Breakpoint.*foo \\(i=1\\).*" \
- "separate condition: run to breakpoint 2"
-
-# Try disabling a single location. We also test
-# that at least in simple cases, the enable/disable
-# state of locations surive "run".
-gdb_test "disable 1.1" "" "disabling location: disable"
-
-gdb_run_cmd
-gdb_expect {
- -re "Breakpoint \[0-9\]+,.*foo \\(i=1\\).*$gdb_prompt $" {
- pass "disabling location: run to breakpoint"
- }
- -re "$gdb_prompt $" {
- fail "disabling location: run to breakpoint"
- }
- timeout {
- fail "disabling location: run to breakpoint (timeout)"
- }
-}
-
-# Try disabling entire breakpoint
-gdb_test "enable 1.1" "" "disabling location: enable"
-
-
-gdb_test "disable 1" "" "disable breakpoint: disable"
-
-gdb_run_cmd
-gdb_expect {
- -re "Program exited normally.*$gdb_prompt $" {
- pass "disable breakpoint: run to breakpoint"
- }
- -re "$gdb_prompt $" {
- fail "disable breakpoint: run to breakpoint"
- }
- timeout {
- fail "disable breakpoint: run to breakpoint (timeout)"
- }
-}
-
-# Make sure breakpoint can be set on a specific instantion.
-delete_breakpoints
-gdb_test "break 'void foo(int)'" ".*" \
- "instantiation: set breakpoint"
-
-
-gdb_run_cmd
-gdb_expect {
- -re ".*Breakpoint \[0-9\]+,.*foo \\(i=0\\).*$gdb_prompt $" {
- pass "instantiation: run to breakpoint"
- }
- -re "$gdb_prompt $" {
- fail "instantiation: run to breakpoint"
- }
- timeout {
- fail "instantiation: run to breakpoint (timeout)"
- }
-}
-
-gdb_test "continue" \
- ".*Breakpoint.*foo \\(i=1\\).*" \
- "instantiation: run to breakpoint 2"
-
Index: annota2.cc
===================================================================
--- annota2.cc (revision 816)
+++ annota2.cc (nonexistent)
@@ -1,28 +0,0 @@
-#include
-
-class A {
-public:
- int x;
- int y;
- int foo (int arg);
-};
-
-
-int A::foo (int arg)
-{
- x += arg;
- return arg *2;
-}
-
-int main()
-{
- A a;
-
- a.x = 0;
- a.x = 1;
- a.y = 2;
-
- printf ("a.x is %d\n", a.x);
- return 0;
-}
-
Index: m-data.cc
===================================================================
--- m-data.cc (revision 816)
+++ m-data.cc (nonexistent)
@@ -1,64 +0,0 @@
-// 2002-05-13
-
-enum region { oriental, egyptian, greek, etruscan, roman };
-
-// Test one.
-class gnu_obj_1
-{
-protected:
- typedef region antiquities;
- const bool test;
- const int key1;
- long key2;
-
- antiquities value;
-
-public:
- gnu_obj_1(antiquities a, long l): test(true), key1(5), key2(l), value(a) {}
-};
-
-// Test two.
-template
-class gnu_obj_2: public virtual gnu_obj_1
-{
-protected:
- antiquities value_derived;
-
-public:
- gnu_obj_2(antiquities b): gnu_obj_1(oriental, 7), value_derived(b) { }
-};
-
-// Test three.
-template
-class gnu_obj_3
-{
-protected:
- typedef region antiquities;
- gnu_obj_2 data;
-
-public:
- gnu_obj_3(antiquities b): data(etruscan) { }
-};
-
-int shadow = 0;
-
-class C
-{
-public:
- C (int x) : shadow (x) {}
- void marker () {}
-private:
- int shadow;
-};
-
-int main()
-{
- gnu_obj_1 test1(egyptian, 4589);
- gnu_obj_2 test2(roman);
- gnu_obj_3 test3(greek);
-
- C theC (1); // breakpoint: first-constructs-done
- theC.marker ();
-
- return 0;
-}
Index: rtti1.cc
===================================================================
--- rtti1.cc (revision 816)
+++ rtti1.cc (nonexistent)
@@ -1,105 +0,0 @@
-/* Code to go along with tests in rtti.exp.
-
- Copyright 2003, 2004, 2007, 2008 Free Software Foundation, Inc.
-
- Contributed by David Carlton and by Kealia,
- Inc.
-
- This file is part of GDB.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see . */
-
-#include "rtti.h"
-
-namespace n1 {
-
- class C1;
-
- class Base1 {
- public:
- virtual ~Base1() { }
- };
-
-
- class C1: public Base1 {
- public:
- };
-
- class D1 : public C1{
- public:
- D1(C1 *, C1 *);
-
- C1* expr_1_;
- C1* expr_2_;
- };
-
- D1::D1(C1 *expr_1, C1 *expr_2)
- : expr_1_(expr_1), expr_2_(expr_2) { }
-
- C1 *create1() {
- return new D1(0, 0);
- }
-
-} // n1
-
-// NOTE: carlton/2004-01-23: This call exists only to convince GCC to
-// keep around a reference to 'obj' in n2::func - GCC 3.4 had been
-// optimizing it away.
-void refer_to (n2::C2 *obj)
-{
- // Do nothing.
-}
-
-void refer_to (n2::n3::C3 *obj)
-{
- // Do nothing.
-}
-
-namespace n2
-{
- void func ()
- {
- C2 *obj = create2 ();
-
- refer_to (obj); // func-constructs-done
-
- return;
- }
-
- namespace n3
- {
- void func3 ()
- {
- C3 *obj3 = create3 ();
-
- refer_to (obj3); // func3-constructs-done
-
- return;
- }
- }
-}
-
-int main()
-{
- using namespace n1;
- using namespace n2;
-
- C1 *e1 = create1();
- C2 *e2 = create2();
-
- n2::func(); // main-constructs-done
- n2::n3::func3();
-
- return 0;
-}
Index: pr-1023.cc
===================================================================
--- pr-1023.cc (revision 816)
+++ pr-1023.cc (nonexistent)
@@ -1,20 +0,0 @@
-class myClass
-{
- public:
- myClass() {};
- ~myClass() {};
- void performUnblocking( short int cell_index );
- void performBlocking( int cell_index );
-};
-
-void myClass::performUnblocking( short int cell_index ) {}
-
-void myClass::performBlocking( int cell_index ) {}
-
-int main ()
-{
- myClass mc;
- mc.performBlocking (0);
- mc.performUnblocking (0);
-}
-
Index: userdef.exp
===================================================================
--- userdef.exp (revision 816)
+++ userdef.exp (nonexistent)
@@ -1,159 +0,0 @@
-# Tests of overloaded operators resolution.
-# Copyright 1998, 1999, 2002, 2004, 2005, 2006, 2007, 2008
-# Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see .
-
-# written by Elena Zannoni (ezannoni@cygnus.com)
-#
-# source file "userdef.cc"
-#
-
-if $tracelevel then {
- strace $tracelevel
-}
-
-if { [skip_cplus_tests] } { continue }
-
-# On SPU this test fails because the executable exceeds local storage size.
-if { [istarget "spu*-*-*"] } {
- return 0
-}
-
-set testfile "userdef"
-set srcfile ${testfile}.cc
-set binfile ${objdir}/${subdir}/${testfile}
-
-if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } {
- untested userdef.exp
- return -1
-}
-
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binfile}
-
-
-if ![runto_main] then {
- perror "couldn't run to breakpoint"
- continue
-}
-
-send_gdb "break marker1\n" ; gdb_expect -re ".*$gdb_prompt $"
- send_gdb "cont\n"
- gdb_expect {
- -re "Break.* marker1(\\(\\)|) \\(\\) at .*:$decimal.*$gdb_prompt $" {
- send_gdb "up\n"
- gdb_expect {
- -re ".*$gdb_prompt $" { pass "up from marker1" }
- timeout { fail "up from marker1" }
- }
- }
- -re "$gdb_prompt $" { fail "continue to marker1" }
- timeout { fail "(timeout) continue to marker1" }
- }
-
-
-gdb_test "print one + two" "\\\$\[0-9\]* = {x = 6, y = 8}"
-
-# If GDB fails to restore the selected frame properly after the
-# inferior function call above (see GDB PR 1155 for an explanation of
-# why this might happen), all the subsequent tests will fail. We
-# should detect report that failure, but let the marker call finish so
-# that the rest of the tests can run undisturbed.
-gdb_test_multiple "frame" "re-selected 'main' frame after inferior call" {
- -re "#0 marker1.*$gdb_prompt $" {
- setup_kfail "gdb/1155" s390-*-linux-gnu
- fail "re-selected 'main' frame after inferior call"
- gdb_test "finish" ".*main.*at .*userdef.cc:.*// marker1-returns-here.*" \
- "finish call to marker1"
- }
- -re "#1 ($hex in )?main.*$gdb_prompt $" {
- pass "re-selected 'main' frame after inferior call"
- }
-}
-
-gdb_test "print one - two" "\\\$\[0-9\]* = {x = -2, y = -2}"
-
-gdb_test "print one * two" "\\\$\[0-9\]* = {x = 8, y = 15}"
-
-gdb_test "print one / two" "\\\$\[0-9\]* = {x = 0, y = 0}"
-
-gdb_test "print one % two" "\\\$\[0-9\]* = {x = 2, y = 3}"
-
-gdb_test "print one && two" "\\\$\[0-9\]* = 1\[\r\n\]"
-
-gdb_test "print one || two" "\\\$\[0-9\]* = 1\[\r\n\]"
-
-gdb_test "print one & two" "\\\$\[0-9\]* = {x = 0, y = 1}"
-
-gdb_test "print one | two" "\\\$\[0-9\]* = {x = 6, y = 7}"
-
-gdb_test "print one ^ two" "\\\$\[0-9\]* = {x = 6, y = 6}"
-
-gdb_test "print one < two" "\\\$\[0-9\]* = 1\[\r\n\]"
-
-gdb_test "print one <= two" "\\\$\[0-9\]* = 1\[\r\n\]"
-
-gdb_test "print one > two" "\\\$\[0-9\]* = 0\[\r\n\]"
-
-gdb_test "print one >= two" "\\\$\[0-9\]* = 0\[\r\n\]"
-
-gdb_test "print one == two" "\\\$\[0-9\]* = 0\[\r\n\]"
-
-gdb_test "print one != two" "\\\$\[0-9\]* = 1\[\r\n\]"
-
-# Can't really check the output of this one without knowing
-# target integer width. Make sure we don't try to call
-# the iostreams operator instead, though.
-gdb_test "print one << 31" "\\\$\[0-9\]* = {x = -?\[0-9\]*, y = -?\[0-9\]*}"
-
-# Should be fine even on < 32-bit targets.
-gdb_test "print one >> 31" "\\\$\[0-9\]* = {x = 0, y = 0}"
-
-gdb_test "print !one" "\\\$\[0-9\]* = 0\[\r\n\]"
-
-# Assumes 2's complement. So does everything...
-gdb_test "print +one" "\\\$\[0-9\]* = {x = 2, y = 3}"
-
-gdb_test "print ~one" "\\\$\[0-9\]* = {x = -3, y = -4}"
-
-gdb_test "print -one" "\\\$\[0-9\]* = {x = -2, y = -3}"
-
-gdb_test "print one++" "\\\$\[0-9\]* = {x = 2, y = 4}"
-
-gdb_test "print ++one" "\\\$\[0-9\]* = {x = 3, y = 4}"
-
-gdb_test "print one--" "\\\$\[0-9\]* = {x = 3, y = 3}"
-
-gdb_test "print --one" "\\\$\[0-9\]* = {x = 2, y = 3}"
-
-gdb_test "print one += 7" "\\\$\[0-9\]* = {x = 9, y = 10}"
-
-gdb_test "print two = one" "\\\$\[0-9\]* = {x = 9, y = 10}"
-
-# Check that GDB tolerates whitespace in operator names.
-gdb_test "break A2::'operator+'" ".*Breakpoint $decimal at.*"
-gdb_test "break A2::'operator +'" ".*Breakpoint $decimal at.*"
-
-# Check that GDB handles operator* correctly.
-gdb_test "print c" "\\\$\[0-9\]* = {m = {z = .*}}"
-gdb_test "print *c" "\\\$\[0-9\]* = \\(Member &\\) @$hex: {z = .*}"
-gdb_test "print &*c" "\\\$\[0-9\]* = \\(Member \\*\\) $hex"
-gdb_test "ptype &*c" "type = struct Member {\[\r\n \]+int z;\[\r\n\]+} &\\*"
-
-gdb_exit
-return 0
Index: cp-relocate.exp
===================================================================
--- cp-relocate.exp (revision 816)
+++ cp-relocate.exp (nonexistent)
@@ -1,136 +0,0 @@
-# Copyright 2007, 2008 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see . */
-
-# Test loading symbols from unrelocated C++ object files.
-
-set testfile cp-relocate
-set srcfile ${testfile}.cc
-set binfile ${objdir}/${subdir}/${testfile}.o
-
-if { [skip_cplus_tests] } { continue }
-
-if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" object {c++ debug}] != "" } {
- untested cp-relocate.exp
- return -1
-}
-
-proc get_func_address { func } {
- global gdb_prompt hex
-
- set rfunc [string_to_regexp $func]
- gdb_test_multiple "print '${func}'" "get address of ${func}" {
- -re "\\\$\[0-9\]+ = \\{.*\\} (0|($hex) <${rfunc}>)\[\r\n\]+${gdb_prompt} $" {
- # $1 = {int ()} 0x24
- # But if the function is at zero, the name may be omitted.
- pass "get address of ${func}"
- if { $expect_out(1,string) == "0" } {
- return "0x0"
- } else {
- return $expect_out(2,string)
- }
- }
- }
- return ""
-}
-
-# Load the file as an executable; GDB should assign non-overlapping
-# section offsets.
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_file_cmd ${binfile}
-
-# Find the interesting functions. We go to a little effort to find
-# the right function names here, to work around PR c++/40.
-set func1_name ""
-set func2_name ""
-gdb_test_multiple "info functions func<.>" "info functions" {
- -re "\r\nint (\[^\r\]*func<1>\[^\r]*);" {
- set func1_name $expect_out(1,string)
- exp_continue
- }
- -re "\r\nint (\[^\r\]*func<2>\[^\r]*);" {
- set func2_name $expect_out(1,string)
- exp_continue
- }
- -re "$gdb_prompt $" {
- if { ${func1_name} != "" && ${func2_name} != "" } {
- pass "info functions"
- } else {
- fail "info functions"
- return -1
- }
- }
-}
-
-# Check that all the functions have different addresses.
-set func1_addr [get_func_address "$func1_name"]
-set func2_addr [get_func_address "$func2_name"]
-set caller_addr [get_func_address "caller"]
-
-if { "${func1_addr}" == "${func2_addr}"
- || "${func1_addr}" == "${func2_addr}"
- || "${func2_addr}" == "${caller_addr}" } {
- fail "C++ functions have different addresses"
-} else {
- pass "C++ functions have different addresses"
-}
-
-# Figure out the names of the sections containing the template
-# functions.
-set func1_sec ""
-set func2_sec ""
-gdb_test_multiple "info file" "info file" {
- -re "($hex) - ($hex) is (\[^\r\]*)\r" {
- if { $expect_out(1,string) <= $func1_addr
- && $expect_out(2,string) > $func1_addr } {
- set func1_sec $expect_out(3,string)
- } elseif { $expect_out(1,string) <= $func2_addr
- && $expect_out(2,string) > $func2_addr } {
- set func2_sec $expect_out(3,string)
- }
- exp_continue
- }
- -re "$gdb_prompt $" {
- if { ${func1_sec} != "" && ${func2_sec} != "" } {
- pass "info file"
- } else {
- fail "info file"
- return -1
- }
- }
-}
-
-if { $func1_sec == $func2_sec } {
- untested "cp-relocate.exp - template functions in same sections"
- return -1
-}
-
-# Now start a clean GDB, for add-symbol-file tests.
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-
-gdb_test "add-symbol-file ${binfile} 0 -s ${func1_sec} 0x10000 -s ${func2_sec} 0x20000" \
- "Reading symbols from .*${testfile}\\.o\\.\\.\\.done\\.(|\r\nUsing host libthread_db library .*libthread_db.so.*\\.)" \
- "add-symbol-file ${testfile}.o" \
- "add symbol table from file \".*${testfile}\\.o\" at.*\\(y or n\\) " \
- "y"
-
-# Make sure the function addresses were updated.
-gdb_test "break *'$func1_name'" \
- "Breakpoint $decimal at 0x1....: file .*"
-gdb_test "break *'$func2_name'" \
- "Breakpoint $decimal at 0x2....: file .*"
Index: templates.exp
===================================================================
--- templates.exp (revision 816)
+++ templates.exp (nonexistent)
@@ -1,540 +0,0 @@
-# Copyright 1992, 1994, 1995, 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2007,
-# 2008 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see .
-
-# This file was written by Fred Fish. (fnf@cygnus.com)
-
-set ws "\[\r\n\t \]+"
-
-if $tracelevel then {
- strace $tracelevel
-}
-
-if { [skip_cplus_tests] } { continue }
-
-set testfile "templates"
-set srcfile ${testfile}.cc
-set binfile ${objdir}/${subdir}/${testfile}
-
-# Create and source the file that provides information about the compiler
-# used to compile the test case.
-if [get_compiler_info ${binfile} "c++"] {
- return -1
-}
-
-if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } {
- untested templates.exp
- return -1
-}
-
-#
-# Test printing of the types of templates.
-#
-
-proc test_ptype_of_templates {} {
- global gdb_prompt
- global ws
-
- send_gdb "ptype T5\n"
- gdb_expect {
- -re "type = class T5 \{${ws}public:${ws}static int X;${ws}int x;${ws}int val;${ws}T5 & operator=\\(T5 const ?&\\);${ws}T5\\(int\\);${ws}T5\\((T5 const|const T5) ?&\\);${ws}~T5\\((void|)\\);${ws}static void \\* operator new\\(unsigned( int| long)?\\);${ws}static void operator delete\\(void ?\\*\\);${ws}int value\\((void|)\\);${ws}\}\r\n$gdb_prompt $" {
- pass "ptype T5"
- }
- -re "type = class T5 \{${ws}public:${ws}static int X;${ws}int x;${ws}int val;${ws}T5\\(int\\);${ws}T5\\((T5 const|const T5) ?&\\);${ws}~T5\\((void|)\\);${ws}static void \\* operator new\\(unsigned( int| long)?\\);${ws}static void operator delete\\(void ?\\*\\);${ws}int value\\((void|)\\);${ws}T5 & operator=\\(T5 const ?&\\);${ws}\}\r\n$gdb_prompt $" {
- pass "ptype T5"
- }
- -re "type = class T5 \\{${ws}public:${ws}static int X;${ws}int x;${ws}int val;${ws}${ws}T5 \\(int\\);${ws}T5 \\(const class T5 &\\);${ws}void ~T5 \\(int\\);${ws}static void \\* new \\(unsigned int\\);${ws}static void delete \\(void ?\\*\\);${ws}int value \\((void|)\\);${ws}\\}${ws}$gdb_prompt $" { pass "ptype T5 -- new with unsigned int" }
- -re "type = class T5 \\{.*public:.*static int X;.*int x;.*int val;.*T5 \\(int\\);.*T5 \\(const class T5 &\\);.*void ~T5 \\(int\\);.*static void \\* new \\(unsigned long\\);.*static void delete \\(void ?\\*\\);.*int value \\((void|)\\);.*\\}\r\n$gdb_prompt $" { pass "ptype T5 -- new with unsigned long" }
- -re "type = class T5 \{${ws}public:${ws}static int X;${ws}int x;${ws}int val;((${ws}T5 & operator=\\(T5 const ?&\\);)|(${ws}T5\\(int\\);)|(${ws}T5\\((T5 const|const T5) ?&\\);)|(${ws}~T5\\((void|)\\);)|(${ws}static void \\* operator new\\(unsigned( int| long)?\\);)|(${ws}static void operator delete\\(void ?\\*\\);)|(${ws}int value\\((void|)\\);))*${ws}\}\r\n$gdb_prompt $" {
- pass "ptype T5 (obsolescent gcc or gdb)"
- }
- -re "type = class T5 \{${ws}public:${ws}static int X;${ws}int x;${ws}int val;${ws}void T5\\(int\\);${ws}void T5\\((T5 const|const T5) ?&\\);${ws}~T5\\(int\\);${ws}static void \\* operator new\\(unsigned( int| long|)\\);${ws}static void operator delete\\(void ?\\*\\);${ws}int value\\((void|)\\);${ws}\}\r\n$gdb_prompt $" {
- # This also triggers gdb/1113...
- kfail "gdb/1111" "ptype T5"
- }
- -re ".*$gdb_prompt $" {
- fail "ptype T5"
- }
- timeout {
- fail "ptype T5 (timeout)"
- }
- }
-
- send_gdb "ptype t5i\n"
- gdb_expect {
- -re "type = class T5 \\{${ws}public:${ws}static int X;${ws}int x;${ws}int val;\r\n${ws}T5\\(int\\);${ws}T5\\(T5 const ?&\\);${ws}~T5\\((void|)\\);${ws}static void \\* operator new\\(unsigned( int| long)?\\);${ws}static void operator delete\\(void ?\\*\\);${ws}int value\\((void|)\\);${ws}\\}\r\n$gdb_prompt $" { pass "ptype T5 -- with several fixes from 4.17" }
- -re "type = class T5 \\{${ws}public:${ws}static int X;${ws}int x;${ws}int val;\r\n${ws}T5 \\(int\\);${ws}T5 \\(const class T5 &\\);${ws}void ~T5 \\(int\\);${ws}static void \\* new \\(unsigned int\\);${ws}static void delete \\(void ?\\*\\);${ws}int value \\((void|)\\);${ws}\\}\r\n$gdb_prompt $" { pass "ptype t5i -- new with unsigned int" }
- -re "type = class T5 \\{${ws}public:${ws}static int X;${ws}int x;${ws}int val;\r\n${ws}T5 \\(int\\);${ws}T5 \\(const class T5 &\\);${ws}void ~T5 \\(int\\);${ws}static void \\* new \\(unsigned long\\);${ws}static void delete \\(void ?\\*\\);${ws}int value \\((void|)\\);${ws}\\}\r\n$gdb_prompt $" { pass "ptype t5i -- new with unsigned long" }
- -re "type = class T5 \{.*public:.*static int X;.*int x;.*int val;.*.*T5 \\(int\\);.*.*void ~T5 \\(int\\).*.*.*int value \\((void|)\\);.*\}.*$gdb_prompt $" {
- pass "ptype t5i"
- }
- -re "type = class T5 \{${ws}public:${ws}static int X;${ws}int x;${ws}int val;${ws}T5 & operator=\\(T5 const ?&\\);${ws}T5\\(int\\);${ws}T5\\((T5 const|const T5) ?&\\);${ws}~T5\\((void|)\\);${ws}static void \\* operator new\\(unsigned( int| long)?\\);${ws}static void operator delete\\(void ?\\*\\);${ws}int value\\((void|)\\);${ws}\}\r\n$gdb_prompt $" {
- pass "ptype t5i"
- }
- -re "type = class T5 \{${ws}public:${ws}static int X;${ws}int x;${ws}int val;${ws}T5\\(int\\);${ws}T5\\((T5 const|const T5) ?&\\);${ws}~T5\\((void|)\\);${ws}static void \\* operator new\\(unsigned( int| long)?\\);${ws}static void operator delete\\(void ?\\*\\);${ws}int value\\((void|)\\);${ws}T5 & operator=\\(T5 const ?&\\);${ws}\}\r\n$gdb_prompt $" {
- pass "ptype t5i"
- }
- -re "type = class T5 \{${ws}public:${ws}static int X;${ws}int x;${ws}int val;((${ws}T5 & operator=\\(T5 const ?&\\);)|(${ws}T5\\(int\\);)|(${ws}T5\\(T5 const ?&\\);)|(${ws}~T5\\((void|)\\);)|(${ws}static void \\* operator new\\(unsigned( int| long)?\\);)|(${ws}static void operator delete\\(void ?\\*\\);)|(${ws}int value\\((void|)\\);))*${ws}\}\r\n$gdb_prompt $" {
- pass "ptype t5i (obsolescent gcc or gdb)"
- }
- -re "type = class T5 \{${ws}public:${ws}static int X;${ws}int x;${ws}int val;${ws}void T5\\(int\\);${ws}void T5\\((T5 const|const T5) ?&\\);${ws}~T5\\(int\\);${ws}static void \\* operator new\\(unsigned( int| long|)\\);${ws}static void operator delete\\(void ?\\*\\);${ws}int value\\((void|)\\);${ws}\}\r\n$gdb_prompt $" {
- # This also triggers gdb/1113...
- kfail "gdb/1111" "ptype T5"
- }
- -re ".*$gdb_prompt $" {
- fail "ptype t5i"
- }
- timeout {
- fail "ptype t5i (timeout)"
- }
- }
-}
-
-#
-# Test breakpoint setting on template methods.
-#
-
-proc test_template_breakpoints {} {
- global gdb_prompt
- global testfile
- global srcdir
- global hp_aCC_compiler
-
- send_gdb "break T5::T5\n"
- gdb_expect {
- -re "0. cancel.*\[\r\n\]*.1. all.*\[\r\n\]*.2. T5::T5\\(int\\) at .*\[\r\n\]*.3. T5::T5\\((T5 const|const T5) ?&\\) at .*\[\r\n\]*> $" {
- gdb_test "0" \
- "canceled" \
- "constructor breakpoint (obsolete format!)"
- }
- -re ".0. cancel\[\r\n\]*.1. all\[\r\n\]*.2. T5::T5\\((T5 const|const T5) ?&\\) at .*templates.cc:.*\[\r\n\]*.3. T5::T5\\(int\\) at .*templates.cc:.*\[\r\n\]*> $" {
- gdb_test "0" \
- "canceled" \
- "constructor breakpoint"
- }
- -re "0. cancel.*\[\r\n\]*.1. all.*\[\r\n\]*.2. T5 at .*\[\r\n\]*.3. T5 at .*\[\r\n\]*> $" {
- setup_kfail "gdb/1062" "*-*-*"
- gdb_test "0" \
- "nonsense intended to insure that this test fails" \
- "constructor breakpoint"
- }
- -re ".*\n> $" {
- gdb_test "0" \
- "nonsense intended to insure that this test fails" \
- "constructor breakpoint (bad menu choices)"
- }
- -re ".*$gdb_prompt $" { fail "constructor breakpoint" }
- default { fail "constructor breakpoint (timeout)" }
- }
-
-# See CLLbs14792
- if {$hp_aCC_compiler} {setup_xfail hppa*-*-* CLLbs14792}
-
- gdb_test_multiple "break T5::~T5" "destructor_breakpoint" {
- -re "Breakpoint.*at.* file .*${testfile}.cc, line.*$gdb_prompt $"
- {
- pass "destructor breakpoint"
- }
- -re "the class `T5' does not have destructor defined\r\nHint: try 'T5::~T5 or 'T5::~T5\r\n\\(Note leading single quote.\\)\r\n$gdb_prompt $"
- {
- kfail "gdb/1112" "destructor breakpoint"
- }
- }
-
- gdb_test "break T5::value" \
- "Breakpoint.*at.* file .*${testfile}.cc, line.*" \
- "value method breakpoint"
-
- delete_breakpoints
-}
-
-#
-# Test calling of template methods.
-#
-
-proc test_template_calls {} {
- global gdb_prompt
- global hp_aCC_compiler
-
- if [target_info exists gdb,cannot_call_functions] {
- setup_xfail "*-*-*" 2416
- fail "This target can not call functions"
- return
- }
-
- if {!$hp_aCC_compiler} {setup_xfail hppa*-*-*}
- send_gdb "print t5i.value()\n"
- gdb_expect {
- -re ".* = 2\[\r\n\]*$gdb_prompt $" { pass "print t5i.value()" }
- -re "Cannot invoke functions on this machine.*$gdb_prompt $" {
- fail "print t5i.value()"
- }
- -re "Cannot resolve .* to any overloaded instance.*$gdb_prompt $" {
- setup_xfail hppa*-*-* CLLbs16899
- xfail "print t5i.value"
- }
- -re ".*$gdb_prompt $" { fail "print t5i.value()" }
- timeout { fail "print t5i.value() (timeout)" }
- }
-}
-
-
-proc do_tests {} {
- global prms_id
- global bug_id
- global subdir
- global objdir
- global srcdir
- global binfile
- global gdb_prompt
-
- set prms_id 0
- set bug_id 0
-
- # Start with a fresh gdb.
-
- gdb_exit
- gdb_start
- gdb_reinitialize_dir $srcdir/$subdir
- gdb_load $binfile
-
- runto_main
-
- test_ptype_of_templates
- test_template_breakpoints
-
- if [ runto_main] {
- test_template_calls
- }
-}
-
-do_tests
-
-
-# More tests for different kinds of template parameters,
-# templates with partial specializations, nested templates, etc.
-# These have been tested only with HP aCC. They probably won't
-# work with other compilers because of differences in mangling
-# schemes.
-# Added by Satish Pai 1997-09-25
-# As of 2000-06-03, C++ support has been improved to the point that g++ can
-# pass all of theses, excluding what appears to be one that exposes a stabs bug. - djb
-
-# I don't know how HP could be passing these tests without this. They
-# weren't breakpointing past a point where the below expressions were
-# initialized in the actual source. - djb
-
-send_gdb "b 770\n"
-gdb_expect {
- -re ".*$gdb_prompt $"
-}
-send_gdb "c\n"
-gdb_expect {
- -re ".*$gdb_prompt $"
-}
-send_gdb "print fint\n"
-gdb_expect {
- -re "\\$\[0-9\]* = \\{x = 0, t = 0\\}\r\n$gdb_prompt $" { pass "print fint" }
- -re "$gdb_prompt $" { fail "print fint" }
- timeout { fail "(timeout) print fint" }
-}
-
-send_gdb "print fvpchar\n"
-gdb_expect {
- -re "\\$\[0-9\]* = \\{x = 0, t = 0x0\\}\r\n$gdb_prompt $" { pass "print fvpchar" }
- -re "$gdb_prompt $" { fail "print fvpchar" }
- timeout { fail "(timeout) print fvpchar" }
-}
-
-# Template Foo
-
-# Neither stabs nor DWARF-2 contains type information about templates
-# (as opposed to instantiations of templates), so in those
-# circumstances we expect GDB to not find a symbol. HP has a debug
-# format that contains more info, though, so it's also correct to
-# print out template info. (This affects several subsequent tests as
-# well.)
-
-# NOTE: carlton/2003-02-26: However, because of a bug in the way GDB
-# handles nested types, we don't get this right in the DWARF-2 case.
-
-send_gdb "ptype Foo\n"
-gdb_expect {
- -re "type = template <(class |)T> (class |)Foo \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*T t;\r\n\\}\r\ntemplate instantiations:\r\n\[ \t\]*(class |)Foo\r\n\[ \t\]*(class |)Foo\r\n\[ \t\]*(class |)Foo\r\n$gdb_prompt $" { pass "ptype Foo" }
- -re "type = template <(class |)T> (class |)Foo \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*T t;\r\n\\}\r\n$gdb_prompt $" { xfail "ptype Foo" }
- -re "type = class Foo \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*int t;\r\n\r\n\[ \t\]*int foo\\(int, int\\);\r\n\\}\r\n$gdb_prompt $"
- { # GCC 3.1, DWARF-2 output.
- kfail "gdb/57" "ptype Foo" }
- -re "No symbol \"Foo\" in current context.\r\n$gdb_prompt $"
- { # GCC 2.95.3, stabs+ output.
- pass "ptype Foo" }
- -re "$gdb_prompt $" { fail "ptype Foo" }
- timeout { fail "(timeout) ptype Foo" }
-}
-# -re "type = class Foo \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*int t;\r\n\r\n\[ \t\]*int foo(int, int);\r\n\\}\r\n$gdb_prompt $"
-
-# ptype Foo
-
-send_gdb "ptype fint\n"
-gdb_expect {
- -re "type = (class |)Foo \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*int t;\r\n\r\n\[ \t\]*.*int foo\\(int, int\\);\r\n\\}\r\n$gdb_prompt $" { pass "ptype fint" }
- -re "type = (class |)Foo \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*int t;\r\n\r\n\[ \t\]*int foo\\(int, int\\);.*\r\n\\}\r\n$gdb_prompt $" { pass "ptype fint" }
- -re "$gdb_prompt $" { fail "ptype fint" }
- timeout { fail "(timeout) ptype fint" }
-}
-
-# ptype Foo
-
-send_gdb "ptype fchar\n"
-gdb_expect {
- -re "type = (class |)Foo \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*char t;\r\n\r\n\[ \t\]*.*char foo\\(int, char\\);\r\n\\}\r\n$gdb_prompt $" { pass "ptype fchar" }
- -re "type = (class |)Foo \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*char t;\r\n\r\n\[ \t\]*char foo\\(int, char\\);.*\r\n\\}\r\n$gdb_prompt $" { pass "ptype fchar" }
- -re "$gdb_prompt $" { fail "ptype fchar" }
- timeout { fail "(timeout) ptype fchar" }
-}
-
-# ptype Foo
-
-send_gdb "ptype fvpchar\n"
-gdb_expect {
- -re "type = (class |)Foo \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*.*char.*\\*t;\r\n\r\n\[ \t\]*.*char \\* foo\\(int,.*char.*\\*\\);\r\n\\}\r\n$gdb_prompt $" { pass "ptype fvpchar" }
- -re "type = (class |)Foo \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*.*char.*\\*t;\r\n\r\n\[ \t\]*.*char \\* foo\\(int,.*char.*\\*\\);.*\r\n\\}\r\n$gdb_prompt $" { pass "ptype fvpchar" }
- -re "type = (class |)Foo \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*.*char.*\\*t;\r\n\r\n\[ \t\]*.*char \\* foo\\(int,.*char.*\\*\\);\r\n\\}\r\n$gdb_prompt $" {
- kfail "gdb/1512" "ptype fvpchar"
- }
- -re "$gdb_prompt $" { fail "ptype fvpchar" }
- timeout { fail "(timeout) ptype fvpchar" }
-}
-
-# print a function from Foo
-
-# This test is sensitive to whitespace matching, so we'll do it twice,
-# varying the spacing, because of PR gdb/33.
-
-send_gdb "print Foo::foo\n"
-gdb_expect {
- -re "\\$\[0-9\]* = \\{.*char \\*\\((class |)Foo \\*(| const), int, .*char \\*\\)\\} $hex ::foo\\(int, .*char.*\\*\\)>\r\n$gdb_prompt $" { pass "print Foo::foo" }
- -re "No symbol \"Foo\" in current context.\r\n$gdb_prompt $"
- {
- # This used to be a kfail gdb/33. That problem has been
- # fixed, but now gdb/931 and gdb/1512 are rearing their ugly
- # heads.
- kfail "gdb/931" "print Foo::foo"
- }
- -re "$gdb_prompt $" { fail "print Foo::foo" }
- timeout { fail "(timeout) print Foo::foo" }
-}
-
-send_gdb "print Foo::foo\n"
-gdb_expect {
- -re "\\$\[0-9\]* = \\{.*char \\*\\((class |)Foo \\*(| const), int, .*char \\*\\)\\} $hex ::foo\\(int, .*char.*\\*\\)>\r\n$gdb_prompt $" { pass "print Foo::foo" }
- -re "No symbol \"Foo\" in current context.\r\n$gdb_prompt $"
- {
- # This used to be a kfail gdb/33. That problem has been
- # fixed, but now gdb/931 and gdb/1512 are rearing their ugly
- # heads.
- kfail "gdb/931" "print Foo::foo"
- }
- -re "$gdb_prompt $" { fail "print Foo::foo" }
- timeout { fail "(timeout) print Foo::foo" }
-}
-
-# Template Bar
-
-# same as Foo for g++
-send_gdb "ptype Bar\n"
-gdb_expect {
- -re "type = template <(class |)T, (class |)sz> (class |)Bar \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*T t;\r\n\\}\r\ntemplate instantiations:\r\n\[ \t\]*(class |)Bar\r\n\[ \t\]*(class |)Bar\r\n$gdb_prompt $" { pass "ptype Bar" }
- -re "type = <(class |)T, (class |)sz> (class |)Bar \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*T t;\r\n\\}\r\n$gdb_prompt $" { xfail "ptype Bar" }
- -re "ptype Bar\r\ntype = class Bar {\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*int t;\r\n\r\n\[ \t\]*int bar\\(int, int\\);\r\n}\r\n$gdb_prompt $"
- { # GCC 3.1, DWARF-2 output.
- kfail "gdb/57" "ptype Bar" }
- -re "No symbol \"Bar\" in current context.\r\n$gdb_prompt $"
- { # GCC 2.95.3, stabs+ output.
- pass "ptype Bar" }
- -re "$gdb_prompt $" { fail "ptype Bar" }
- timeout { fail "(timeout) ptype Bar" }
-}
-
-
-# ptype Bar
-
-send_gdb "ptype bint\n"
-gdb_expect {
- -re "type = (class |)Bar \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*int t;\r\n\r\n\[ \t\]*.*int bar\\(int, int\\);\r\n\\}\r\n$gdb_prompt $" { pass "ptype bint" }
- -re "type = (class |)Bar \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*int t;\r\n\r\n\[ \t\]*int bar\\(int, int\\);.*\r\n\\}\r\n$gdb_prompt $" { pass "ptype bint" }
- -re "$gdb_prompt $" { fail "ptype bint" }
- timeout { fail "(timeout) ptype bint" }
-}
-
-# ptype Bar3)>
-
-send_gdb "ptype bint2\n"
-gdb_expect {
- -re "type = (class |)Bar \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*int t;\r\n\r\n\[ \t\]*.*int bar\\(int, int\\);\r\n\\}\r\n$gdb_prompt $" { pass "ptype bint2" }
- -re "type = (class |)Bar \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*int t;\r\n\r\n\[ \t\]*int bar\\(int, int\\);.*\r\n\\}\r\n$gdb_prompt $" { pass "ptype bint2" }
- -re "$gdb_prompt $" { fail "ptype bint2" }
- timeout { fail "(timeout) ptype bint2" }
-}
-
-# Template Baz
-
-# Same as Foo, for g++
-send_gdb "ptype Baz\n"
-gdb_expect {
- -re "type = template <(class |)T, ?(class |)sz> (class |)Baz \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*T t;\r\n\\}\r\ntemplate instantiations:\r\n\[ \t\]*(class |)Baz\r\n\[ \t\]*(class |)Baz\r\n$gdb_prompt $" { pass "ptype Baz" }
- -re "type = <(class |)T, ?(class |)sz> (class |)Baz \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*T t;\r\n\\}\r\n$gdb_prompt $" { xfail "ptype Baz" }
- -re "type = class Baz {\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*int t;\r\n\r\n\[ \t\]*int baz\\(int, int\\);\r\n}\r\n$gdb_prompt $"
- { # GCC 3.1, DWARF-2 output.
- kfail "gdb/57" "ptype Baz" }
- -re "type = class Baz {\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*int t;\r\n\r\n\[ \t\]*int baz\\(int, int\\);\r\n}\r\n$gdb_prompt $"
- { # GCC 3.x, DWARF-2 output, running into gdb/57 and gdb/1512.
- kfail "gdb/57" "ptype Baz" }
- -re "No symbol \"Baz\" in current context.\r\n$gdb_prompt $"
- { # GCC 2.95.3, stabs+ output.
- pass "ptype Baz" }
- -re "$gdb_prompt $" { fail "ptype Baz" }
- timeout { fail "(timeout) ptype Baz" }
-}
-
-
-# ptype Baz
-
-send_gdb "ptype bazint\n"
-gdb_expect {
- -re "type = (class |)Baz \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*int t;\r\n\r\n\[ \t\]*.*int baz\\(int, int\\);\r\n\\}\r\n$gdb_prompt $" { pass "ptype bazint" }
- -re "type = (class |)Baz \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*int t;\r\n\r\n\[ \t\]*int baz\\(int, int\\).*;\r\n\\}\r\n$gdb_prompt $" { pass "ptype bazint" }
- -re "$gdb_prompt $" { fail "ptype bazint" }
- timeout { fail "(timeout) ptype bazint" }
-}
-
-# ptype Baz
-
-send_gdb "ptype bazint2\n"
-gdb_expect {
- -re "type = (class |)Baz \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*char t;\r\n\r\n\[ \t\]*.*char baz\\(int, char\\);\r\n\\}\r\n$gdb_prompt $" { pass "ptype bazint2" }
- -re "type = (class |)Baz \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*char t;\r\n\r\n\[ \t\]*char baz\\(int, char\\);.*\r\n\\}\r\n$gdb_prompt $" { pass "ptype bazint2" }
- -re "$gdb_prompt $" { fail "ptype bazint2" }
- timeout { fail "(timeout) ptype bazint2" }
-}
-
-# Template Qux
-# Same as Foo for g++
-send_gdb "ptype Qux\n"
-gdb_expect {
- -re "type = template <(class |)T, ?(class |)sz> (class |)Qux \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*T t;\r\n\\}\r\ntemplate instantiations:\r\n\[ \t\]*(class |)Qux\r\n\[ \t\]*(class |)Qux\r\n$gdb_prompt $" { pass "ptype Qux" }
- -re ".*type = template <(class |)T.*, ?(class |)sz> (class |)Qux \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*T t;\r\n\\}.*$gdb_prompt $" { pass "ptype Qux" }
- -re "type = class Qux {\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*char t;\r\n\r\n\[ \t\]*char qux\\(int, char\\);\r\n}\r\n$gdb_prompt $"
- { # GCC 3.1, DWARF-2 output.
- kfail "gdb/57" "ptype Qux" }
- -re "type = class Qux {\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*char t;\r\n\r\n\[ \t\]*char qux\\(int, char\\);\r\n}\r\n$gdb_prompt $"
- { # GCC 3.x, DWARF-2 output; gdb/57 + gdb/1512.
- kfail "gdb/57" "ptype Qux" }
- -re "No symbol \"Qux\" in current context.\r\n$gdb_prompt $"
- { # GCC 2.95.3, stabs+ output.
- pass "ptype Qux" }
- -re "$gdb_prompt $" { fail "ptype Qux" }
- timeout { fail "(timeout) ptype Qux" }
-}
-
-# pt Qux
-
-send_gdb "ptype quxint\n"
-gdb_expect {
- -re "type = class Qux \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*int t;\r\n\r\n\[ \t\]*.*int qux\\(int, int\\);\r\n\\}\r\n$gdb_prompt $" { pass "ptype quxint" }
- -re "type = class Qux \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*int t;\r\n\r\n\[ \t\]*int qux\\(int, int\\);.*\r\n\\}\r\n$gdb_prompt $" { pass "ptype quxint" }
- -re "type = class Qux \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*int t;\r\n\r\n\[ \t\]*int qux\\(int, int\\);.*\r\n\\}\r\n$gdb_prompt $" { pass "ptype quxint" }
- -re "type = class Qux