diff options
author | Tom de Vries <tdevries@suse.de> | 2023-08-28 13:46:36 +0200 |
---|---|---|
committer | Tom de Vries <tdevries@suse.de> | 2023-08-28 13:46:36 +0200 |
commit | c67caa51e47ca301f6d95b34e8d7c89993ba4039 (patch) | |
tree | e4b641ef6fa48e300b506cc191bb807f44c18ce7 /gdb | |
parent | 025e84f93566c8ced594ef48ddee1dec7e5b4cdd (diff) | |
download | gdb-c67caa51e47ca301f6d95b34e8d7c89993ba4039.zip gdb-c67caa51e47ca301f6d95b34e8d7c89993ba4039.tar.gz gdb-c67caa51e47ca301f6d95b34e8d7c89993ba4039.tar.bz2 |
[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.
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/testsuite/gdb.cp/casts.exp | 7 | ||||
-rw-r--r-- | gdb/testsuite/gdb.cp/constexpr-field.exp | 1 | ||||
-rw-r--r-- | gdb/testsuite/gdb.cp/empty-enum.exp | 35 | ||||
-rw-r--r-- | gdb/testsuite/gdb.cp/koenig.exp | 9 | ||||
-rw-r--r-- | gdb/testsuite/gdb.cp/method-call-in-c.exp | 6 | ||||
-rw-r--r-- | gdb/testsuite/gdb.cp/paramless.exp | 7 | ||||
-rw-r--r-- | gdb/testsuite/gdb.cp/templates.exp | 2 | ||||
-rw-r--r-- | gdb/testsuite/gdb.cp/typed-enum.exp | 7 |
8 files changed, 65 insertions, 9 deletions
diff --git a/gdb/testsuite/gdb.cp/casts.exp b/gdb/testsuite/gdb.cp/casts.exp index ac798f9..41bb125 100644 --- a/gdb/testsuite/gdb.cp/casts.exp +++ b/gdb/testsuite/gdb.cp/casts.exp @@ -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 } diff --git a/gdb/testsuite/gdb.cp/constexpr-field.exp b/gdb/testsuite/gdb.cp/constexpr-field.exp index 18dcb0e..dd8bf9a 100644 --- a/gdb/testsuite/gdb.cp/constexpr-field.exp +++ b/gdb/testsuite/gdb.cp/constexpr-field.exp @@ -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 diff --git a/gdb/testsuite/gdb.cp/empty-enum.exp b/gdb/testsuite/gdb.cp/empty-enum.exp index 83cb8cb..9ab3abf 100644 --- a/gdb/testsuite/gdb.cp/empty-enum.exp +++ b/gdb/testsuite/gdb.cp/empty-enum.exp @@ -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 + } +} diff --git a/gdb/testsuite/gdb.cp/koenig.exp b/gdb/testsuite/gdb.cp/koenig.exp index 5343f2c..dbec6d2 100644 --- a/gdb/testsuite/gdb.cp/koenig.exp +++ b/gdb/testsuite/gdb.cp/koenig.exp @@ -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 } diff --git a/gdb/testsuite/gdb.cp/method-call-in-c.exp b/gdb/testsuite/gdb.cp/method-call-in-c.exp index 2696570..1c18d81 100644 --- a/gdb/testsuite/gdb.cp/method-call-in-c.exp +++ b/gdb/testsuite/gdb.cp/method-call-in-c.exp @@ -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 } diff --git a/gdb/testsuite/gdb.cp/paramless.exp b/gdb/testsuite/gdb.cp/paramless.exp index 579f363..895b449 100644 --- a/gdb/testsuite/gdb.cp/paramless.exp +++ b/gdb/testsuite/gdb.cp/paramless.exp @@ -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 } diff --git a/gdb/testsuite/gdb.cp/templates.exp b/gdb/testsuite/gdb.cp/templates.exp index ba21c47..7603d89 100644 --- a/gdb/testsuite/gdb.cp/templates.exp +++ b/gdb/testsuite/gdb.cp/templates.exp @@ -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 diff --git a/gdb/testsuite/gdb.cp/typed-enum.exp b/gdb/testsuite/gdb.cp/typed-enum.exp index 1d11fb5..6a1df70 100644 --- a/gdb/testsuite/gdb.cp/typed-enum.exp +++ b/gdb/testsuite/gdb.cp/typed-enum.exp @@ -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 } |