From eb24648c453c28f2898fb599311ba004394a8b41 Mon Sep 17 00:00:00 2001 From: Gary Benson Date: Tue, 10 Nov 2020 16:07:36 +0000 Subject: [PATCH] Fix gdb.cp/step-and-next-inline.exp with Clang Clang fails to compile gdb.cp/step-and-next-inline.cc, with the following error: clang-12: error: unknown argument: '-gstatement-frontiers' compiler exited with status 1 This commit fixes the testcase by only passing -gstatement-frontiers when building with GCC. This commit also alters two checks marked as known failures, to mark them as known failures only when built using GCC. gdb/testsuite/ChangeLog: * gdb.cp/step-and-next-inline.exp: Only require -gstatement-frontiers when building with GCC. Only setup KFAIL's for GCC issues when using a GCC-built executable. --- gdb/testsuite/ChangeLog | 7 +++++++ gdb/testsuite/gdb.cp/step-and-next-inline.exp | 20 +++++++++++++++---- 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index d3e81a2f08d..863dcc43463 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,10 @@ +2020-11-10 Gary Benson + + * gdb.cp/step-and-next-inline.exp: Only require + -gstatement-frontiers when building with GCC. + Only setup KFAIL's for GCC issues when using + a GCC-built executable. + 2020-11-06 Andrew Burgess * gdb.base/debug-expr.c: Add extra function to allow for an diff --git a/gdb/testsuite/gdb.cp/step-and-next-inline.exp b/gdb/testsuite/gdb.cp/step-and-next-inline.exp index a95e21194f9..43a7101150c 100644 --- a/gdb/testsuite/gdb.cp/step-and-next-inline.exp +++ b/gdb/testsuite/gdb.cp/step-and-next-inline.exp @@ -15,7 +15,12 @@ standard_testfile .cc -if { ![supports_statement_frontiers] } { +if [get_compiler_info "c++"] { + unsupported "couldn't find a valid c++ compiler" + return -1 +} + +if {[test_compiler_info gcc*] && ![supports_statement_frontiers] } { return -1 } @@ -31,7 +36,10 @@ proc do_test { use_header } { return } - set options {c++ debug nowarnings optimize=-O2\ -gstatement-frontiers} + set options {c++ debug nowarnings optimize=-O2} + if { [supports_statement_frontiers] } { + lappend options -gstatement-frontiers + } if { $use_header } { lappend options additional_flags=-DUSE_NEXT_INLINE_H set executable "$testfile-with-header" @@ -65,14 +73,18 @@ proc do_test { use_header } { # that some easier heuristic could be figured out). Still, it is # not certain that the first failure wouldn't also be fixed by # having location view support, so for now it is tagged as such. - if {!$use_header} { setup_kfail "*-*-*" symtab/25507 } + if {[test_compiler_info gcc*] && !$use_header} { + setup_kfail "*-*-*" symtab/25507 + } gdb_test "next" ".*TREE_TYPE.*" "next step 1" gdb_test "bt" "\\s*\\#0\\s+get_alias_set\[^\r\]*${srcfile}:.*" \ "not in inline 2" gdb_test "next" ".*TREE_TYPE.*" "next step 2" gdb_test "bt" "\\s*\\#0\\s+get_alias_set\[^\r\]*${srcfile}:.*" \ "not in inline 3" - if {!$use_header} { setup_kfail "*-*-*" symtab/25507 } + if {[test_compiler_info gcc*] && !$use_header} { + setup_kfail "*-*-*" symtab/25507 + } gdb_test "next" ".*TREE_TYPE.*" "next step 3" gdb_test "bt" "\\s*\\#0\\s+get_alias_set\[^\r\]*${srcfile}:.*" \ "not in inline 4" -- 2.30.2