diff options
author | Tom Tromey <tromey@redhat.com> | 2011-06-10 16:21:47 +0000 |
---|---|---|
committer | Tom Tromey <tromey@redhat.com> | 2011-06-10 16:21:47 +0000 |
commit | d0e53741e00a0b5a4555217337f0faeaa77dd71a (patch) | |
tree | f42845dd37f57488c56a41031fbcf201533065f9 /gdb/testsuite/gdb.cp/temargs.exp | |
parent | 894891db7f1ff09f021a0d2c8bb471f3a73a776a (diff) | |
download | gdb-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.exp | 39 |
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" |