Enable gdb.cp/ambiguous.exp with GCC and clang

gdb.cp/ambiguous.exp failed to build using clang with the following
error:

 gdb compile failed, /gdbtest/src/gdb/testsuite/gdb.cp/ambiguous.cc:70:36:
   warning: direct base 'A1' is inaccessible due to ambiguity:
     class JVA1 -> class KV -> class A1
     class JVA1 -> class A1 [-Winaccessible-base]
 class JVA1 : public KV, public LV, public A1 {
                                   ^~~~~~~~~

This commit builds this testcase with -Wno-inaccessible-base when
using clang, to avoid this failure.

Furthermore, gdb.cp/ambiguous.exp has been disabled when using GCC
since 1998.  This commit enables this testcase, building with
-Wno-inaccessible-base when using GCC >= 10.1, and -w otherwise.

gdb/testsuite/ChangeLog:

	* gdb.cp/ambiguous.exp: Enable test when compiling with GCC.
	Add additional_flags=-Wno-inaccessible-base when compiling
	with GCC >= 10.1 or clang.  Add additional_flags=-w when
	compiling with GCC < 10.
This commit is contained in:
Gary Benson
2020-08-25 15:14:46 +01:00
parent 1ab8d92897
commit 9f68b45348
2 changed files with 17 additions and 2 deletions

View File

@ -1,3 +1,10 @@
2020-08-25 Gary Benson <gbenson@redhat.com>
* gdb.cp/ambiguous.exp: Enable test when compiling with GCC.
Add additional_flags=-Wno-inaccessible-base when compiling
with GCC >= 10.1 or clang. Add additional_flags=-w when
compiling with GCC < 10.
2020-08-25 Gaius Mulley <gaiusmod2@gmail.com>
PR m2/26372

View File

@ -30,12 +30,20 @@ if { [skip_cplus_tests] } { continue }
standard_testfile .cc
if [get_compiler_info "c++"] {
unsupported "couldn't find a valid c++ compiler"
return -1
}
if { [test_compiler_info gcc-*] } then { continue }
set additional_flags ""
if {[test_compiler_info {gcc-[0-9]-*}]} {
# GCCs prior to 10.1 do not support -Wno-inaccessible-base.
set additional_flags "additional_flags=-w"
} elseif {[test_compiler_info gcc*] || [test_compiler_info clang*]} {
set additional_flags "additional_flags=-Wno-inaccessible-base"
}
if {[prepare_for_testing "failed to prepare" $testfile $srcfile {debug c++}]} {
if {[prepare_for_testing "failed to prepare" $testfile $srcfile \
[list debug c++ $additional_flags]]} {
return -1
}