Fix gdb.cp/step-and-next-inline.exp with Clang
authorGary Benson <gbenson@redhat.com>
Tue, 10 Nov 2020 16:07:36 +0000 (16:07 +0000)
committerGary Benson <gbenson@redhat.com>
Tue, 10 Nov 2020 16:07:36 +0000 (16:07 +0000)
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
gdb/testsuite/gdb.cp/step-and-next-inline.exp

index d3e81a2f08d3753eec20e6ed7214f15e7847bdf5..863dcc43463548aa8bec50de469582b49068315d 100644 (file)
@@ -1,3 +1,10 @@
+2020-11-10  Gary Benson <gbenson@redhat.com>
+
+       * 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  <andrew.burgess@embecosm.com>
 
        * gdb.base/debug-expr.c: Add extra function to allow for an
index a95e21194f9c92b1e9f2bfd543ec83942558164e..43a7101150c9d0d2fb51aaa4e5f0efd237abf28f 100644 (file)
 
 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"