forked from Imagelibrary/binutils-gdb
[gdb/testsuite] Handle gdb.cp/*.exp with older compiler
When running test-cases gdb.cp/*.exp with gcc 4.8.4, I run into compilation failures due to the test-cases requiring c++11 and the compiler defaulting to less than that. Fix this by compiling with -std=c++11. This exposes two FAILs in gdb/testsuite/gdb.cp/empty-enum.exp due to gcc PR debug/16063, so xfail those. Also require have_compile_flag -std=c++17 in gdb.cp/constexpr-field.exp to prevent compilation failure. Tested on x86_64-linux.
This commit is contained in:
@@ -29,7 +29,12 @@ require allow_cplus_tests
|
||||
|
||||
standard_testfile .cc casts03.cc
|
||||
|
||||
if {[prepare_for_testing "failed to prepare" $testfile $srcfile {debug c++}]} {
|
||||
set opts {}
|
||||
lappend opts debug
|
||||
lappend opts c++
|
||||
lappend opts additional_flags=-std=c++11
|
||||
|
||||
if {[prepare_for_testing "failed to prepare" $testfile $srcfile $opts]} {
|
||||
return -1
|
||||
}
|
||||
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
# This file is part of the gdb testsuite.
|
||||
|
||||
require allow_cplus_tests
|
||||
require {have_compile_flag -std=c++17}
|
||||
|
||||
standard_testfile .cc
|
||||
|
||||
|
||||
@@ -29,7 +29,11 @@
|
||||
|
||||
standard_testfile .cc
|
||||
|
||||
if {[prepare_for_testing "failed to prepare" $testfile $srcfile]} {
|
||||
set opts {}
|
||||
lappend opts debug
|
||||
lappend opts additional_flags=-std=c++11
|
||||
|
||||
if {[prepare_for_testing "failed to prepare" $testfile $srcfile $opts]} {
|
||||
return -1
|
||||
}
|
||||
|
||||
@@ -44,5 +48,30 @@ gdb_continue_to_breakpoint "stop in breakpt"
|
||||
gdb_test "print arg1" " = 8"
|
||||
gdb_test "print arg2" " = 4"
|
||||
|
||||
gdb_test "ptype arg1" "type = enum enum1 : unsigned int \\{\\}"
|
||||
gdb_test "ptype arg2" "type = enum class enum2 : unsigned char \\{\\}"
|
||||
|
||||
# Xfail for missing DW_AT_type in DW_TAG_enumeration_type, gcc PR debug/16063.
|
||||
set have_xfail [expr [test_compiler_info gcc-*] && [gcc_major_version] < 5]
|
||||
|
||||
gdb_test_multiple "ptype arg1" "" {
|
||||
-re -wrap "type = enum enum1 : unsigned int \\{\\}" {
|
||||
pass $gdb_test_name
|
||||
}
|
||||
-re -wrap "type = enum enum1 \\{\\}" {
|
||||
if { $have_xfail } {
|
||||
setup_xfail *-*-* gcc/16063
|
||||
}
|
||||
fail $gdb_test_name
|
||||
}
|
||||
}
|
||||
|
||||
gdb_test_multiple "ptype arg2" "" {
|
||||
-re -wrap "type = enum class enum2 : unsigned char \\{\\}" {
|
||||
pass $gdb_test_name
|
||||
}
|
||||
-re -wrap "type = enum class enum2 \\{\\}" {
|
||||
if { $have_xfail } {
|
||||
setup_xfail *-*-* gcc/16063
|
||||
}
|
||||
fail $gdb_test_name
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,8 +15,13 @@
|
||||
|
||||
standard_testfile .cc
|
||||
|
||||
if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} \
|
||||
{debug c++ additional_flags=-Wno-unused-comparison}] } {
|
||||
set opts {}
|
||||
lappend opts debug
|
||||
lappend opts c++
|
||||
lappend opts additional_flags=-Wno-unused-comparison
|
||||
lappend opts additional_flags=-std=c++11
|
||||
|
||||
if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} $opts] } {
|
||||
return -1
|
||||
}
|
||||
|
||||
|
||||
@@ -20,7 +20,11 @@
|
||||
|
||||
standard_testfile .cc
|
||||
|
||||
if { [prepare_for_testing "failed to prepare" $testfile $srcfile] } {
|
||||
set opts {}
|
||||
lappend opts debug
|
||||
lappend opts additional_flags=-std=c++11
|
||||
|
||||
if { [prepare_for_testing "failed to prepare" $testfile $srcfile $opts] } {
|
||||
return -1
|
||||
}
|
||||
|
||||
|
||||
@@ -21,7 +21,12 @@ require allow_cplus_tests
|
||||
|
||||
standard_testfile .cc
|
||||
|
||||
if {[prepare_for_testing "failed to prepare" $testfile $srcfile {debug c++}]} {
|
||||
set opts {}
|
||||
lappend opts debug
|
||||
lappend opts c++
|
||||
lappend opts additional_flags=-std=c++11
|
||||
|
||||
if {[prepare_for_testing "failed to prepare" $testfile $srcfile $opts]} {
|
||||
return -1
|
||||
}
|
||||
|
||||
|
||||
@@ -22,6 +22,8 @@ require allow_cplus_tests
|
||||
standard_testfile .cc
|
||||
|
||||
set flags [list debug c++]
|
||||
lappend flags additional_flags=-std=c++11
|
||||
|
||||
if { [test_compiler_info gcc-*] && [gcc_major_version] >= 10 } {
|
||||
# Work around PR gcc/101452.
|
||||
lappend flags additional_flags=-DGCC_BUG
|
||||
|
||||
@@ -19,7 +19,12 @@ require allow_cplus_tests
|
||||
|
||||
standard_testfile .cc
|
||||
|
||||
if {[prepare_for_testing "failed to prepare" $testfile $srcfile {debug c++}]} {
|
||||
set opts {}
|
||||
lappend opts debug
|
||||
lappend opts c++
|
||||
lappend opts additional_flags=-std=c++11
|
||||
|
||||
if {[prepare_for_testing "failed to prepare" $testfile $srcfile $opts]} {
|
||||
return -1
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user