From 15e7a617a1098885541dba049335163a33a3bee6 Mon Sep 17 00:00:00 2001 From: Janis Johnson Date: Mon, 1 Mar 2010 23:29:18 +0000 Subject: [PATCH] sourcebuild.texi (Test directives): Clarify options to dg-skip-if. * doc/sourcebuild.texi (Test directives): Clarify options to dg-skip-if. Co-Authored-By: Daniel Jacobowitz From-SVN: r157154 --- gcc/ChangeLog | 6 +++++ gcc/doc/sourcebuild.texi | 52 ++++++++++++++++++++++++++++++++++------ 2 files changed, 51 insertions(+), 7 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 57ca4f47e89..47e217f9497 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2010-03-01 Janis Johnson + Daniel Jacobowitz + + * doc/sourcebuild.texi (Test directives): Clarify options to + dg-skip-if. + 2010-03-01 Rainer Orth * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]: diff --git a/gcc/doc/sourcebuild.texi b/gcc/doc/sourcebuild.texi index 4cbc36f14a3..2c52faca6f9 100644 --- a/gcc/doc/sourcebuild.texi +++ b/gcc/doc/sourcebuild.texi @@ -1021,14 +1021,52 @@ the test @end itemize @item @{ dg-skip-if @var{comment} @{ @var{selector} @} @{ @var{include-opts} @} @{ @var{exclude-opts} @} @} -Skip the test if the test system is included in @var{selector} and if -each of the options in @var{include-opts} is in the set of options with -which the test would be compiled and if none of the options in -@var{exclude-opts} is in the set of options with which the test would be -compiled. +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: +@itemize @bullet +@item the test system is included in @var{selector} -Use @samp{"*"} for an empty @var{include-opts} list and @samp{""} for -an empty @var{exclude-opts} list. +@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 + +@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 +@end itemize + +For example, to skip a test if option @code{-Os} is present: + +@smallexample +/* @{ dg-skip-if "" @{ *-*-* @} @{ "-Os" @} @{ "" @} @} */ +@end smallexample + +To skip a test if both options @code{-O2} and @code{-g} are present: + +@smallexample +/* @{ dg-skip-if "" @{ *-*-* @} @{ "-O2 -g" @} @{ "" @} @} */ +@end smallexample + +To skip a test if either @code{-O2} or @code{-O3} is present: + +@smallexample +/* @{ dg-skip-if "" @{ *-*-* @} @{ "-O2" "-O3" @} @{ "" @} @} */ +@end smallexample + +To skip a test unless option @code{-OS} is present: + +@smallexample +/* @{ dg-skip-if "" @{ *-*-* @} @{ "*" @} @{ "-Os" @} @} */ +@end smallexample + +To skip a test if either @code{-O2} or @code{-O3} is used with @code{-g} +but not if @code{-fpic} is also present: + +@smallexample +/* @{ dg-skip-if "" @{ *-*-* @} @{ "-O2 -g" "-O3 -g" @} @{ "-fpic" @} @} */ +@end smallexample @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