Commit 4c33b2da by Richard Sandiford

testsuite: Add target/xfail argument to check-function-bodies

check-function-bodies allows individual function tests to be
annotated with target/xfail selectors, but sometimes it's
useful to have the same selector for all functions.

2020-01-23  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
	* doc/sourcebuild.texi (check-function-bodies): Add an
	optional target/xfail selector.

gcc/testsuite/
	* lib/scanasm.exp (check-function-bodies): Add an optional
	target/xfail selector.
parent ccb68179
2020-01-23 Richard Sandiford <richard.sandiford@arm.com>
* doc/sourcebuild.texi (check-function-bodies): Add an
optional target/xfail selector.
2020-01-23 Richard Sandiford <richard.sandiford@arm.com>
PR rtl-optimization/93124
* auto-inc-dec.c (merge_in_block): Don't add auto inc/decs to
bare USE and CLOBBER insns.
......
......@@ -2723,7 +2723,7 @@ assembly output.
Passes if @var{symbol} is not defined as a hidden symbol in the test's
assembly output.
@item check-function-bodies @var{prefix} @var{terminator} [@var{option}]
@item check-function-bodies @var{prefix} @var{terminator} [@var{option} [@{ target/xfail @var{selector} @}]]
Looks through the source file for comments that give the expected assembly
output for selected functions. Each line of expected output starts with the
prefix string @var{prefix} and the expected output for a function as a whole
......
2020-01-23 Richard Sandiford <richard.sandiford@arm.com>
* lib/scanasm.exp (check-function-bodies): Add an optional
target/xfail selector.
2020-01-23 Richard Sandiford <richard.sandiford@arm.com>
* gcc.dg/torture/pr93124.c: New test.
2020-01-22 David Malcolm <dmalcolm@redhat.com>
......
......@@ -604,7 +604,7 @@ proc check_function_body { functions name body_regexp } {
# Check the implementations of functions against expected output. Used as:
#
# { dg-do { check-function-bodies PREFIX TERMINATOR[ OPTION] } }
# { dg-do { check-function-bodies PREFIX TERMINATOR[ OPTION[ SELECTOR]] } }
#
# See sourcebuild.texi for details.
......@@ -612,11 +612,11 @@ proc check-function-bodies { args } {
if { [llength $args] < 2 } {
error "too few arguments to check-function-bodies"
}
if { [llength $args] > 3 } {
if { [llength $args] > 4 } {
error "too many arguments to check-function-bodies"
}
if { [llength $args] == 3 } {
if { [llength $args] >= 3 } {
set required_flag [lindex $args 2]
upvar 2 dg-extra-tool-flags extra_tool_flags
......@@ -631,6 +631,16 @@ proc check-function-bodies { args } {
}
}
set xfail_all 0
if { [llength $args] >= 4 } {
switch [dg-process-target [lindex $args 3]] {
"S" { }
"N" { return }
"F" { set xfail_all 1 }
"P" { }
}
}
set testcase [testname-for-summary]
# The name might include a list of options; extract the file name.
set filename [lindex $testcase 0]
......@@ -694,7 +704,7 @@ proc check-function-bodies { args } {
}
} elseif { [string equal -length $terminator_len $line $terminator] } {
if { ![string equal $selector "N"] } {
if { [string equal $selector "F"] } {
if { $xfail_all || [string equal $selector "F"] } {
setup_xfail "*-*-*"
}
set testname "$testcase check-function-bodies $function_name"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment