target-supports-dg.exp (check-flags): Provide defaults for include-opts and exclude-opts...

* lib/target-supports-dg.exp (check-flags): Provide defaults for
	include-opts and exclude-opts; skip checking the flags if arguments
	are the same as the defaults.
	(dg-xfail-if): Verify the number of arguments, supply defaults
	for unspecified optional arguments.
	(dg-skip-if, dg-xfail-run-if): Verify the number of arguments.

From-SVN: r157390
This commit is contained in:
Janis Johnson 2010-03-11 17:32:39 +00:00 committed by Janis Johnson
parent c5d8838685
commit cdd16cd5ec
2 changed files with 61 additions and 9 deletions

View File

@ -1,3 +1,12 @@
2010-03-11 Janis Johnson <janis187@us.ibm.com>
* lib/target-supports-dg.exp (check-flags): Provide defaults for
include-opts and exclude-opts; skip checking the flags if arguments
are the same as the defaults.
(dg-xfail-if): Verify the number of arguments, supply defaults
for unspecified optional arguments.
(dg-skip-if, dg-xfail-run-if): Verify the number of arguments.
2010-03-11 Tobias Burnus <burnus@net-b.de
PR fortran/43303

View File

@ -235,9 +235,26 @@ proc check-flags { args } {
append compiler_flags "[board_info $dest multilib_flags] "
}
# The target list might be an effective-target keyword, so replace
# the original list with "*-*-*", since we already know it matches.
set result [check_conditional_xfail [lreplace $args 1 1 "*-*-*"]]
# The next two arguments are optional. If they were not specified,
# use the defaults.
if { [llength $args] == 2 } {
lappend $args [list "*"]
}
if { [llength $args] == 3 } {
lappend $args [list ""]
}
# If the option strings are the defaults, or the same as the
# defaults, there is no need to call check_conditional_xfail to
# compare them to the actual options.
if { [string compare [lindex $args 2] "*"] == 0
&& [string compare [lindex $args 3] "" ] == 0 } {
set result 1
} else {
# The target list might be an effective-target keyword, so replace
# the original list with "*-*-*", since we already know it matches.
set result [check_conditional_xfail [lreplace $args 1 1 "*-*-*"]]
}
# Any value in this variable was left over from an earlier test.
set compiler_flags ""
@ -256,14 +273,18 @@ proc check-flags { args } {
# group of tests or flags specified with a previous dg-options command.
proc dg-skip-if { args } {
# Verify the number of arguments. The last two are optional.
set args [lreplace $args 0 0]
if { [llength $args] < 2 || [llength $args] > 4 } {
error "dg-skip-if 2: need 2, 3, or 4 arguments"
}
# Don't bother if we're already skipping the test.
upvar dg-do-what dg-do-what
if { [lindex ${dg-do-what} 1] == "N" } {
return
}
set args [lreplace $args 0 0]
set selector [list target [lindex $args 1]]
if { [dg-process-target $selector] == "S" } {
if [check-flags $args] {
@ -276,31 +297,53 @@ proc dg-skip-if { args } {
# Like check_conditional_xfail, but callable from a dg test.
proc dg-xfail-if { args } {
# Verify the number of arguments. The last three are optional.
set args [lreplace $args 0 0]
if { [llength $args] < 2 || [llength $args] > 4 } {
error "dg-xfail-if: need 2, 3, or 4 arguments"
}
# Don't change anything if we're already skipping the test.
upvar dg-do-what dg-do-what
if { [lindex ${dg-do-what} 1] == "N" } {
return
}
set args [lreplace $args 0 0]
set selector [list target [lindex $args 1]]
if { [dg-process-target $selector] == "S" } {
global compiler_conditional_xfail_data
set compiler_conditional_xfail_data [lreplace $args 1 1 "*-*-*"]
# The target list might be an effective-target keyword. Replace
# the original list with "*-*-*", since we already know it matches.
set args [lreplace $args 1 1 "*-*-*"]
# Supply default values for unspecified optional arguments.
if { [llength $args] == 2 } {
lappend $args [list "*"]
}
if { [llength $args] == 3 } {
lappend $args [list ""]
}
set compiler_conditional_xfail_data $args
}
}
# Like dg-xfail-if but for the execute step.
proc dg-xfail-run-if { args } {
# Verify the number of arguments. The last two are optional.
set args [lreplace $args 0 0]
if { [llength $args] < 2 || [llength $args] > 4 } {
error "dg-xfail-run-if: need 2, 3, or 4 arguments"
}
# Don't bother if we're already skipping the test.
upvar dg-do-what dg-do-what
if { [lindex ${dg-do-what} 1] == "N" } {
return
}
set args [lreplace $args 0 0]
set selector [list target [lindex $args 1]]
if { [dg-process-target $selector] == "S" } {
if [check-flags $args] {