summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruno Larsen <blarsen@redhat.com>2022-09-09 20:34:27 +0200
committerBruno Larsen <blarsen@redhat.com>2022-10-31 13:43:56 +0100
commit2ce385da88704170ba6922743c437177eef2c09d (patch)
treefd6f819c075c8c6d205bcab183c23fcd047428b6
parentde1fbe7889eb4f363b979c14735b8fd51131621b (diff)
downloadbinutils-gdb-2ce385da88704170ba6922743c437177eef2c09d.tar.gz
gdb/testsuite: add XFAIL to gdb.cp/ptype-flags.exp when using clang
When running gdb.cp/ptype-flags.exp using Clang, we get an unexpected failure when printing the type of a class with an internal typedef. This happens because Clang doesn't add accessibility information for typedefs inside classes (see https://github.com/llvm/llvm-project/issues/57608 for more info). To help with Clang testing, an XFAIL was added to this test.
-rw-r--r--gdb/testsuite/gdb.cp/ptype-flags.exp12
1 files changed, 12 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.cp/ptype-flags.exp b/gdb/testsuite/gdb.cp/ptype-flags.exp
index f88c83e03ce..371a2a5f128 100644
--- a/gdb/testsuite/gdb.cp/ptype-flags.exp
+++ b/gdb/testsuite/gdb.cp/ptype-flags.exp
@@ -30,11 +30,18 @@ if ![runto_main] then {
return
}
+if {[test_compiler_info {clang-*-*} c++]} {
+ set using_clang true
+} else {
+ set using_clang false
+}
+
gdb_test_no_output "set language c++" ""
gdb_test_no_output "set width 0" ""
proc do_check_holder {name {flags ""} {show_typedefs 1} {show_methods 1}
{raw 0}} {
+ global using_clang
set contents {
{ base "public Base<T>" }
@@ -49,6 +56,11 @@ proc do_check_holder {name {flags ""} {show_typedefs 1} {show_methods 1}
}
if {$show_typedefs} {
+ # Clang does not add accessibility information for typedefs:
+ # https://github.com/llvm/llvm-project/issues/57608
+ if {$using_clang} {
+ setup_xfail "clang 57608" *-*-*
+ }
lappend contents { typedef public "typedef Simple<Simple<T> > Z;" }
}