sourcebuild.texi (Test directives): Document that arguments include-opts and exclude-opts are now optional for...
* doc/sourcebuild.texi (Test directives): Document that arguments include-opts and exclude-opts are now optional for dg-skip-if, dg-xfail-if, dg-xfail-run-if, and dg-shouldfail. * 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: r157206
This commit is contained in:
parent
a84713ad26
commit
8ec49cffc2
|
@ -1,3 +1,9 @@
|
|||
2010-03-03 Janis Johnson <janis187@us.ibm.com>
|
||||
|
||||
* doc/sourcebuild.texi (Test directives): Document that arguments
|
||||
include-opts and exclude-opts are now optional for dg-skip-if,
|
||||
dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
|
||||
|
||||
2010-03-03 Jason Merrill <jason@redhat.com>
|
||||
|
||||
PR c++/12909
|
||||
|
|
|
@ -1019,7 +1019,7 @@ the test
|
|||
@item 300
|
||||
@end itemize
|
||||
|
||||
@item @{ dg-skip-if @var{comment} @{ @var{selector} @} @{ @var{include-opts} @} @{ @var{exclude-opts} @} @}
|
||||
@item @{ dg-skip-if @var{comment} @{ @var{selector} @} [@{ @var{include-opts} @} [@{ @var{exclude-opts} @}]] @}
|
||||
Arguments @var{include-opts} and @var{exclude-opts} are lists in which
|
||||
each element is a string of zero or more GCC options.
|
||||
Skip the test if all of the following conditions are met:
|
||||
|
@ -1029,11 +1029,13 @@ Skip the test if all of the following conditions are met:
|
|||
@item for at least one of the option strings in @var{include-opts},
|
||||
every option from that string is in the set of options with which
|
||||
the test would be compiled; use @samp{"*"} for an @var{include-opts} list
|
||||
that matches any options
|
||||
that matches any options; that is the default if @var{include-opts} is
|
||||
not specified
|
||||
|
||||
@item for each of the option strings in @var{exclude-opts}, at least one
|
||||
option from that string is not in the set of options with which the test
|
||||
would be compiled; use @samp{""} for an empty @var{exclude-opts} list
|
||||
would be compiled; use @samp{""} for an empty @var{exclude-opts} list;
|
||||
that is the default if @var{exclude-opts} is not specified
|
||||
@end itemize
|
||||
|
||||
For example, to skip a test if option @code{-Os} is present:
|
||||
|
@ -1067,11 +1069,11 @@ but not if @code{-fpic} is also present:
|
|||
/* @{ dg-skip-if "" @{ *-*-* @} @{ "-O2 -g" "-O3 -g" @} @{ "-fpic" @} @} */
|
||||
@end smallexample
|
||||
|
||||
@item @{ dg-xfail-if @var{comment} @{ @var{selector} @} @{ @var{include-opts} @} @{ @var{exclude-opts} @} @}
|
||||
@item @{ dg-xfail-if @var{comment} @{ @var{selector} @} [@{ @var{include-opts} @} [@{ @var{exclude-opts} @}]] @}
|
||||
Expect the test to fail if the conditions (which are the same as for
|
||||
@code{dg-skip-if}) are met. This does not affect the execute step.
|
||||
|
||||
@item @{ dg-xfail-run-if @var{comment} @{ @var{selector} @} @{ @var{include-opts} @} @{ @var{exclude-opts} @} @}
|
||||
@item @{ dg-xfail-run-if @var{comment} @{ @var{selector} @} [@{ @var{include-opts} @} [@{ @var{exclude-opts} @}]] @}
|
||||
Expect the execute step of a test to fail if the conditions (which are
|
||||
the same as for @code{dg-skip-if}) and @code{dg-xfail-if}) are met.
|
||||
|
||||
|
@ -1089,7 +1091,7 @@ is not covered by the effective-target keyword.
|
|||
This directive must appear after any @code{dg-do} directive in the test
|
||||
and before any @code{dg-additional-sources} directive.
|
||||
|
||||
@item @{ dg-shouldfail @var{comment} @{ @var{selector} @} @{ @var{include-opts} @} @{ @var{exclude-opts} @} @}
|
||||
@item @{ dg-shouldfail @var{comment} [@{ @var{selector} @} [@{ @var{include-opts} @} [@{ @var{exclude-opts} @}]]] @}
|
||||
Expect the test executable to return a nonzero exit status if the
|
||||
conditions (which are the same as for @code{dg-skip-if}) are met.
|
||||
|
||||
|
|
|
@ -1,3 +1,12 @@
|
|||
2010-03-03 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-03 Jason Merrill <jason@redhat.com>
|
||||
|
||||
* g++.dg/abi/mangle19-1.C: Adjust for default -Wabi.
|
||||
|
|
|
@ -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] {
|
||||
|
|
Loading…
Reference in New Issue