[binutils-gdb] gdb/testsuite: add XFAIL to gdb.cp/ptype-flags.exp when using clang

Bruno Larsen blarsen@sourceware.org
Mon Oct 31 12:44:45 GMT 2022


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=2ce385da88704170ba6922743c437177eef2c09d

commit 2ce385da88704170ba6922743c437177eef2c09d
Author: Bruno Larsen <blarsen@redhat.com>
Date:   Fri Sep 9 20:34:27 2022 +0200

    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.

Diff:
---
 gdb/testsuite/gdb.cp/ptype-flags.exp | 12 ++++++++++++
 1 file changed, 12 insertions(+)

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;" }
     }


More information about the Gdb-cvs mailing list