aboutsummaryrefslogtreecommitdiff
path: root/gdb/testsuite/gdb.cp/temargs.exp
diff options
context:
space:
mode:
authorTom Tromey <tromey@redhat.com>2011-06-10 16:21:47 +0000
committerTom Tromey <tromey@redhat.com>2011-06-10 16:21:47 +0000
commitd0e53741e00a0b5a4555217337f0faeaa77dd71a (patch)
treef42845dd37f57488c56a41031fbcf201533065f9 /gdb/testsuite/gdb.cp/temargs.exp
parent894891db7f1ff09f021a0d2c8bb471f3a73a776a (diff)
downloadgdb-d0e53741e00a0b5a4555217337f0faeaa77dd71a.zip
gdb-d0e53741e00a0b5a4555217337f0faeaa77dd71a.tar.gz
gdb-d0e53741e00a0b5a4555217337f0faeaa77dd71a.tar.bz2
* gdb.cp/temargs.exp: Let tests pass if compiler bug is fixed.
Add tests for pointer-to-member-function. * gdb.cp/temargs.cc (S::somefunc): New function. (K2): New class. (main): Instantiate K2; call method.
Diffstat (limited to 'gdb/testsuite/gdb.cp/temargs.exp')
-rw-r--r--gdb/testsuite/gdb.cp/temargs.exp39
1 files changed, 33 insertions, 6 deletions
diff --git a/gdb/testsuite/gdb.cp/temargs.exp b/gdb/testsuite/gdb.cp/temargs.exp
index ed31deb..9774138 100644
--- a/gdb/testsuite/gdb.cp/temargs.exp
+++ b/gdb/testsuite/gdb.cp/temargs.exp
@@ -41,9 +41,18 @@ if {![runto_main]} {
# gcc 4.4 and earlier don't emit enough info for some of our template tests.
verbose -log "compiler_info: $compiler_info"
set have_older_template_gcc 0
+set have_pr_41736_fixed 1
+set have_pr_45024_fixed 1
if {[test_compiler_info {gcc-[0-3]-*}]
|| [test_compiler_info {gcc-4-[0-4]-*}]} {
set have_older_template_gcc 1
+ set have_pr_41736_fixed 0
+ set have_pr_45024_fixed 0
+} elseif {[test_compiler_info {gcc-4-5-*}]} {
+ set have_pr_41736_fixed 0
+ set have_pr_45024_fixed 0
+} elseif {[test_compiler_info {gcc-4-6-*}]} {
+ set have_pr_45024_fixed 0
}
set line [gdb_get_line_number "Breakpoint 1" $srcfile]
@@ -62,6 +71,10 @@ set line [gdb_get_line_number "Breakpoint 4" $srcfile]
gdb_test "break $srcfile:$line" "Breakpoint 5.*" \
"set fourth breakpoint for temargs"
+set line [gdb_get_line_number "Breakpoint 5" $srcfile]
+gdb_test "break $srcfile:$line" "Breakpoint 6.*" \
+ "set fifth breakpoint for temargs"
+
#
# Tests in Base::base_m.
#
@@ -77,7 +90,7 @@ gdb_test "print I" " = 23" "test value of I in base_m"
if $have_older_template_gcc { setup_xfail "*-*-*" }
gdb_test "print P == &a_global" " = true" "test value of P in base_m"
-setup_kfail "gcc/41736" *-*-*
+if {!$have_pr_41736_fixed} { setup_xfail *-*-* }
gdb_test "print MP" "&S::f" "test value of MP in base_m"
#
@@ -86,16 +99,17 @@ gdb_test "print MP" "&S::f" "test value of MP in base_m"
gdb_continue_to_breakpoint "continue to second breakpoint for temargs"
-setup_kfail "gcc/45024" *-*-*
+
+if {!$have_pr_45024_fixed} { setup_xfail *-*-* }
gdb_test "ptype T" "long" "test type of T in inner_m"
-setup_kfail "gcc/45024" *-*-*
+if {!$have_pr_45024_fixed} { setup_xfail *-*-* }
gdb_test "print I" " = 47" "test value of I in inner_m"
if $have_older_template_gcc { setup_xfail "*-*-*" }
gdb_test "print P == &a_global" " = true" "test value of P in inner_m"
-setup_kfail "gcc/41736" *-*-*
+if {!$have_pr_41736_fixed} { setup_xfail *-*-* }
gdb_test "print MP" "&S::f" "test value of MP in inner_m"
if $have_older_template_gcc { setup_xfail "*-*-*" }
@@ -116,7 +130,7 @@ gdb_test "print I" " = 91" "test value of I in func"
if $have_older_template_gcc { setup_xfail "*-*-*" }
gdb_test "print P == &a_global" " = true" "test value of P in func"
-setup_kfail "gcc/41736" *-*-*
+if {!$have_pr_41736_fixed} { setup_xfail *-*-* }
gdb_test "print MP" "&S::f" "test value of MP in func"
#
@@ -134,8 +148,21 @@ gdb_test "print I" " = 23" "test value of I in templ_m"
if $have_older_template_gcc { setup_xfail "*-*-*" }
gdb_test "print P == &a_global" " = true" "test value of P in templ_m"
-setup_kfail "gcc/41736" *-*-*
+if {!$have_pr_41736_fixed} { setup_xfail *-*-* }
gdb_test "print MP" "&S::f" "test value of MP in templ_m"
if $have_older_template_gcc { setup_xfail "*-*-*" }
gdb_test "whatis Q" "short" "test type of Q in templ_m"
+
+#
+# Tests in K2::k2_m.
+#
+
+gdb_continue_to_breakpoint "continue to fifth breakpoint for temargs"
+
+if $have_older_template_gcc { setup_xfail "*-*-*" }
+gdb_test "ptype F" "type = void \\\(S::\\\*\\\)\\\(S \\\* const\\\)" \
+ "test type of F in k2_m"
+
+setup_kfail gcc/49366 "*-*-*"
+gdb_test "print F" "&S::somefunc" "test value of F in k2_m"