gdb/testsuite: add XFAIL to gdb.cp/ptype-flags.exp when using clang
authorBruno Larsen <blarsen@redhat.com>
Fri, 9 Sep 2022 18:34:27 +0000 (20:34 +0200)
committerBruno Larsen <blarsen@redhat.com>
Mon, 31 Oct 2022 12:43:56 +0000 (13:43 +0100)
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.

gdb/testsuite/gdb.cp/ptype-flags.exp

index f88c83e03ce0812f704e4a666db314d2c31610ba..371a2a5f128ceb598133644a145521a4413ad15f 100644 (file)
@@ -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;" }
     }