commit 7fa92f9a15f440129dd5a989511f3bbda646afa5 Author: David Blaikie Date: Sun Apr 13 11:15:44 2014 -0700 Mark some tests as XFAIL/UNSUPPORTED hidden due to GCC's omission of typedefs in inheritance. gdb/testsuite/ * gdb.cp/impl-this.exp: Mark several tests XFAIL/UNSUPPORTED due to PR16841 and GCC PR60833 diff --git gdb/testsuite/ChangeLog gdb/testsuite/ChangeLog index 730c116..678ee68 100644 --- gdb/testsuite/ChangeLog +++ gdb/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2014-04-12 David Blaikie + + * gdb.cp/impl-this.exp: Mark several tests XFAIL/UNSUPPORTED due to + PR16841 and GCC PR60833 + 2014-04-12 Siva Chandra Reddy Doug Evans diff --git gdb/testsuite/gdb.cp/impl-this.exp gdb/testsuite/gdb.cp/impl-this.exp index dd1bc64..518b380 100644 --- gdb/testsuite/gdb.cp/impl-this.exp +++ gdb/testsuite/gdb.cp/impl-this.exp @@ -30,13 +30,22 @@ if {[prepare_for_testing $testfile.exp $testfile $srcfile {debug c++}]} { with_test_prefix "before run" { gdb_test "print i" "No symbol \"i\" in current context." gdb_test "print D::i" "Cannot reference non-static field \"i\"" - gdb_test "print D::B::i" "Cannot reference non-static field \"i\"" - gdb_test "print B::i" "Cannot reference non-static field \"i\"" gdb_test "print D::C::i" "Cannot reference non-static field \"i\"" gdb_test "print C::i" "Cannot reference non-static field \"i\"" - gdb_test "print D::B::A::i" \ - "Cannot reference non-static field \"i\"" - gdb_test "print B::A::i" "Cannot reference non-static field \"i\"" + if {[test_compiler_info {gcc-*-*}]} { + unsupported "gdb/16841" + } else { + setup_kfail gdb/x *-*-* + gdb_test "print D::B::i" "Cannot reference non-static field \"i\"" + gdb_test "print D::Bint::i" "Cannot reference non-static field \"i\"" + gdb_test "print B::i" "Cannot reference non-static field \"i\"" + setup_kfail gdb/x *-*-* + gdb_test "print D::B::A::i" \ + "Cannot reference non-static field \"i\"" + gdb_test "print D::Bint::A::i" \ + "Cannot reference non-static field \"i\"" + gdb_test "print B::A::i" "Cannot reference non-static field \"i\"" + } gdb_test "print A::i" "Cannot reference non-static field \"i\"" gdb_test "print D::C::A::i" "Cannot reference non-static field \"i\"" gdb_test "print C::A::i" "Cannot reference non-static field \"i\"" @@ -61,18 +70,27 @@ gdb_continue_to_breakpoint "continue to D::f" with_test_prefix "at D::f (valid expressions)" { gdb_test "print i" "= 4" gdb_test "print D::i" "= 4" - gdb_test "print D::B::i" "= 2" - gdb_test "print B::i" "= 2" - gdb_test "print D::Bint::i" \ - "No type \"Bint\" within class or namespace \"D\"." - gdb_test "print Bint::i" "= 2" + if {[test_compiler_info {gcc-*-*}]} { + unsupported "gdb/16841" + } else { + setup_kfail gdb/x *-*-* + gdb_test "print D::B::i" "= 2" + setup_kfail gdb/y *-*-* + gdb_test "print B::i" "= 2" + setup_kfail gdb/y *-*-* + gdb_test "print Bint::i" "= 2" + setup_kfail gdb/y *-*-* + gdb_test "print D::Bint::i" "= 2" + setup_kfail gdb/y *-*-* + gdb_test "print Bint::i" "= 2" + setup_kfail gdb/x *-*-* + gdb_test "print D::B::A::i" "= 1" + gdb_test "print B::A::i" "= 1" + gdb_test "print D::Bint::A::i" "= 1" + gdb_test "print Bint::A::i" "= 1" + } gdb_test "print D::C::i" "= 3" gdb_test "print C::i" "= 3" - gdb_test "print D::B::A::i" "= 1" - gdb_test "print B::A::i" "= 1" - gdb_test "print D::Bint::A::i" \ - "No type \"Bint\" within class or namespace \"D\"." - gdb_test "print Bint::A::i" "= 1" gdb_test "print A::i" "= 1" gdb_test "print D::C::A::i" "= 1" gdb_test "print C::A::i" "= 1" @@ -86,29 +104,40 @@ with_test_prefix "at D::f (valid expressions)" { # Test some invalid expressions with_test_prefix "at D::f (invalid expressions)" { - gdb_test "print D::B::c" "There is no field named c" - gdb_test "print D::B::A::c" "There is no field named c" - gdb_test "print D::Bint::c" \ - "No type \"Bint\" within class or namespace \"D\"." - - gdb_test "print D::Bint::A::c" \ - "No type \"Bint\" within class or namespace \"D\"." - gdb_test "print D::C::A::c" "There is no field named c" - gdb_test "print B::c" "There is no field named c" - gdb_test "print B::A::c" "There is no field named c" - gdb_test "print Bint::c" "There is no field named c" - gdb_test "print Bint::A::c" "There is no field named c" + if {[test_compiler_info {gcc-*-*}]} { + unsupported "gdb/16841" + } else { + setup_kfail gdb/x *-*-* + gdb_test "print D::B::c" "There is no field named c" + setup_kfail gdb/x *-*-* + gdb_test "print D::B::A::c" "There is no field named c" + setup_kfail gdb/x *-*-* + gdb_test "print D::Bint::c" \ + "No type \"Bint\" within class or namespace \"D\"." + setup_kfail gdb/x *-*-* + gdb_test "print D::Bint::A::c" \ + "No type \"Bint\" within class or namespace \"D\"." + gdb_test "print B::c" "There is no field named c" + gdb_test "print B::A::c" "There is no field named c" + gdb_test "print Bint::c" "There is no field named c" + gdb_test "print Bint::A::c" "There is no field named c" + setup_kfail gdb/x *-*-* + gdb_test "print D::B::x" "There is no field named x" + setup_kfail gdb/x *-*-* + gdb_test "print D::B::A::x" "There is no field named x" + setup_kfail gdb/x *-*-* + gdb_test "print D::Bint::x" \ + "No type \"Bint\" within class or namespace \"D\"." + setup_kfail gdb/x *-*-* + gdb_test "print D::Bint::A::x" \ + "No type \"Bint\" within class or namespace \"D\"." + gdb_test "print B::x" "There is no field named x" + gdb_test "print B::A::x" "There is no field named x" + gdb_test "print Bint::x" "There is no field named x" + gdb_test "print Bint::A::x" "There is no field named x" + } gdb_test "print C::A::c" "There is no field named c" - gdb_test "print D::B::x" "There is no field named x" - gdb_test "print D::B::A::x" "There is no field named x" - gdb_test "print D::Bint::x" \ - "No type \"Bint\" within class or namespace \"D\"." - gdb_test "print D::Bint::A::x" \ - "No type \"Bint\" within class or namespace \"D\"." - gdb_test "print B::x" "There is no field named x" - gdb_test "print B::A::x" "There is no field named x" - gdb_test "print Bint::x" "There is no field named x" - gdb_test "print Bint::A::x" "There is no field named x" + gdb_test "print D::C::A::c" "There is no field named c" gdb_test "print D::C::x" "There is no field named x" gdb_test "print C::x" "There is no field named x" gdb_test "print D::C::A::x" "There is no field named x" @@ -117,8 +146,14 @@ with_test_prefix "at D::f (invalid expressions)" { # Test some ambiguous names with_test_prefix "at D::f (ambiguous names)" { - gdb_test "print B::common" " = 200" - gdb_test "print Bint::common" " = 200" + if {[test_compiler_info {gcc-*-*}]} { + unsupported "gdb/16841" + } else { + setup_kfail gdb/x *-*-* + gdb_test "print B::common" " = 200" + setup_kfail gdb/x *-*-* + gdb_test "print Bint::common" " = 200" + } gdb_test "print C::common" " = 300" gdb_test "print am.i" " = 1000" gdb_test "print am.A::i" \