gdb/testsuite: disable some tests of gdb.cp/typeid.exp when using Clang

Since Clang chooses to not add any debug information for base types,
expecting it to be included with libraries' informations, gdb.cp/typeid.exp
will always fail if the program hasn't started.  This commit fixes that by
making it so when using Clang, the base type variables aren't tested.

Approved-by: Tom Tromey <tom@tromey.com>
This commit is contained in:
Bruno Larsen
2022-09-29 14:51:34 +02:00
parent ad9421bb15
commit ebe9ddbce7

View File

@ -29,8 +29,16 @@ proc do_typeid_tests {started} {
# We might see the standard type or gdb's internal type. # We might see the standard type or gdb's internal type.
set type_re "(std::type_info|gdb_gnu_v3_type_info)" set type_re "(std::type_info|gdb_gnu_v3_type_info)"
set var {ca b}
if {$started || ![test_compiler_info clang-*-* c++]} {
# Clang doesn't place type information for the base types in
# the executable, and relies on this being linked in from the
# standard library. As a result, type information for these
# variables is only available once the inferior is started.
lappend var i cp ccp
}
foreach simple_var {i cp ccp ca b} { foreach simple_var $var {
gdb_test "print &typeid($simple_var)" \ gdb_test "print &typeid($simple_var)" \
" = \\($type_re \\*\\) $hex.*" " = \\($type_re \\*\\) $hex.*"