From db9a0df07fc938a874309c5af28895bc347c0673 Mon Sep 17 00:00:00 2001 From: Richard Sandiford Date: Sat, 22 Sep 2007 08:25:43 +0000 Subject: [PATCH] sourcebuild.texi (dg-add-c99-runtime-options): Document. gcc/ * doc/sourcebuild.texi (dg-add-c99-runtime-options): Document. gcc/testsuite/ * lib/target-supports.exp (add_options_for_c99_runtime): New procedure. * lib/target-supports-dg.exp (dg-add-options): Likewise. * gcc.dg/builtins-18.c: Use { dg-add-options c99_runtime } instead of target-specific dg-options. * gcc.dg/builtins-20.c: Likewise. * gcc.dg/builtins-53.c: Likewise. * gcc.dg/builtins-55.c: Likewise. * gcc.dg/single-precision-constant.c: Likewise. * gcc.dg/torture/builtin-convert-1.c: Likewise. * gcc.dg/torture/builtin-convert-2.c: Likewise. * gcc.dg/torture/builtin-convert-3.c: Likewise. * gcc.dg/torture/builtin-convert-4.c: Likewise. * gcc.dg/torture/builtin-power-1.c: Likewise. From-SVN: r128663 --- gcc/ChangeLog | 4 ++++ gcc/doc/sourcebuild.texi | 12 ++++++++++++ gcc/testsuite/ChangeLog | 16 ++++++++++++++++ gcc/testsuite/gcc.dg/builtins-18.c | 3 +-- gcc/testsuite/gcc.dg/builtins-20.c | 3 +-- gcc/testsuite/gcc.dg/builtins-53.c | 3 +-- gcc/testsuite/gcc.dg/builtins-55.c | 3 +-- gcc/testsuite/gcc.dg/single-precision-constant.c | 3 +-- gcc/testsuite/gcc.dg/torture/builtin-convert-1.c | 3 +-- gcc/testsuite/gcc.dg/torture/builtin-convert-2.c | 3 +-- gcc/testsuite/gcc.dg/torture/builtin-convert-3.c | 3 +-- gcc/testsuite/gcc.dg/torture/builtin-convert-4.c | 3 +-- gcc/testsuite/gcc.dg/torture/builtin-power-1.c | 3 +-- gcc/testsuite/lib/target-supports-dg.exp | 16 ++++++++++++++++ gcc/testsuite/lib/target-supports.exp | 12 ++++++++++++ 15 files changed, 70 insertions(+), 20 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ffd7bb07519..116aa78558a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2007-09-22 Richard Sandiford + + * doc/sourcebuild.texi (dg-add-c99-runtime-options): Document. + 2007-09-19 Michael Meissner * gcc/config/i386/i386.c: Delete trailing whitespace. diff --git a/gcc/doc/sourcebuild.texi b/gcc/doc/sourcebuild.texi index 684069189dc..4f78d735572 100644 --- a/gcc/doc/sourcebuild.texi +++ b/gcc/doc/sourcebuild.texi @@ -973,6 +973,18 @@ This DejaGnu directive provides a list of compiler options, to be used if the target system matches @var{selector}, that replace the default options used for this set of tests. +@item @{ dg-add-options @var{feature} ... @} +Add any compiler options that are needed to access certain features. +This directive does nothing on targets that enable the features by +default, or that don't provide them at all. It must come after +all @code{dg-options} directives. + +The supported values of @var{feature} are: +@table @code +@item c99_runtime +The target's C99 runtime (both headers and libraries). +@end table + @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 diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 7558f8f3671..84681ecbf99 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,19 @@ +2007-09-22 Richard Sandiford + + * lib/target-supports.exp (add_options_for_c99_runtime): New procedure. + * lib/target-supports-dg.exp (dg-add-options): Likewise. + * gcc.dg/builtins-18.c: Use { dg-add-options c99_runtime } instead of + target-specific dg-options. + * gcc.dg/builtins-20.c: Likewise. + * gcc.dg/builtins-53.c: Likewise. + * gcc.dg/builtins-55.c: Likewise. + * gcc.dg/single-precision-constant.c: Likewise. + * gcc.dg/torture/builtin-convert-1.c: Likewise. + * gcc.dg/torture/builtin-convert-2.c: Likewise. + * gcc.dg/torture/builtin-convert-3.c: Likewise. + * gcc.dg/torture/builtin-convert-4.c: Likewise. + * gcc.dg/torture/builtin-power-1.c: Likewise. + 2007-09-21 Chao-ying Fu * lib/target-supports.exp (check_effective_target_fixed_point): New to diff --git a/gcc/testsuite/gcc.dg/builtins-18.c b/gcc/testsuite/gcc.dg/builtins-18.c index f4f64c1acb3..9afaca23ada 100644 --- a/gcc/testsuite/gcc.dg/builtins-18.c +++ b/gcc/testsuite/gcc.dg/builtins-18.c @@ -7,8 +7,7 @@ /* { dg-do link } */ /* { dg-options "-O2 -ffast-math" } */ -/* { dg-options "-O2 -ffast-math -mmacosx-version-min=10.3" { target powerpc-*-darwin* } } */ -/* { dg-options "-O2 -ffast-math -std=c99" { target *-*-solaris2* } } */ +/* { dg-add-options c99_runtime } */ #include "builtins-config.h" diff --git a/gcc/testsuite/gcc.dg/builtins-20.c b/gcc/testsuite/gcc.dg/builtins-20.c index 9df23c4eb60..4acb9218cff 100644 --- a/gcc/testsuite/gcc.dg/builtins-20.c +++ b/gcc/testsuite/gcc.dg/builtins-20.c @@ -7,8 +7,7 @@ /* { dg-do link } */ /* { dg-options "-O2 -ffast-math" } */ -/* { dg-options "-O2 -ffast-math -mmacosx-version-min=10.3" { target powerpc-*-darwin* } } */ -/* { dg-options "-O2 -ffast-math -std=c99" { target *-*-solaris2* } } */ +/* { dg-add-options c99_runtime } */ #include "builtins-config.h" diff --git a/gcc/testsuite/gcc.dg/builtins-53.c b/gcc/testsuite/gcc.dg/builtins-53.c index 048cda92afb..9a50bf5ad3c 100644 --- a/gcc/testsuite/gcc.dg/builtins-53.c +++ b/gcc/testsuite/gcc.dg/builtins-53.c @@ -10,8 +10,7 @@ /* { dg-do compile } */ /* { dg-options "-O2 -ffast-math" } */ -/* { dg-options "-O2 -ffast-math -mmacosx-version-min=10.3" { target powerpc-*-darwin* } } */ -/* { dg-options "-O2 -ffast-math -std=c99" { target *-*-solaris2* } } */ +/* { dg-add-options c99_runtime } */ #include "builtins-config.h" diff --git a/gcc/testsuite/gcc.dg/builtins-55.c b/gcc/testsuite/gcc.dg/builtins-55.c index 7eebd6395ca..0db7976a480 100644 --- a/gcc/testsuite/gcc.dg/builtins-55.c +++ b/gcc/testsuite/gcc.dg/builtins-55.c @@ -1,7 +1,6 @@ /* { dg-do link } */ /* { dg-options "-O2 -ffast-math" } */ -/* { dg-options "-ffast-math -mmacosx-version-min=10.3" { target powerpc-*-darwin* } } */ -/* { dg-options "-O2 -ffast-math -std=c99" { target *-*-solaris2* } } */ +/* { dg-add-options c99_runtime } */ #include "builtins-config.h" diff --git a/gcc/testsuite/gcc.dg/single-precision-constant.c b/gcc/testsuite/gcc.dg/single-precision-constant.c index 3cf9f8ffe87..ffd893d93ad 100644 --- a/gcc/testsuite/gcc.dg/single-precision-constant.c +++ b/gcc/testsuite/gcc.dg/single-precision-constant.c @@ -4,8 +4,7 @@ /* { dg-do run } */ /* { dg-options "-fsingle-precision-constant" } */ -/* { dg-options "-fsingle-precision-constant -mmacosx-version-min=10.3" { target powerpc-*-darwin* } } */ -/* { dg-options "-fsingle-precision-constant -std=c99" { target *-*-solaris2* } } */ +/* { dg-add-options c99_runtime } */ #include #include diff --git a/gcc/testsuite/gcc.dg/torture/builtin-convert-1.c b/gcc/testsuite/gcc.dg/torture/builtin-convert-1.c index 7886b9a531f..f13d29e6779 100644 --- a/gcc/testsuite/gcc.dg/torture/builtin-convert-1.c +++ b/gcc/testsuite/gcc.dg/torture/builtin-convert-1.c @@ -7,8 +7,7 @@ /* { dg-do link } */ /* { dg-options "-ffast-math" } */ -/* { dg-options "-ffast-math -mmacosx-version-min=10.3" { target powerpc-*-darwin* } } */ -/* { dg-options "-ffast-math -std=c99" { target *-*-solaris2* } } */ +/* { dg-add-options c99_runtime } */ #include "../builtins-config.h" diff --git a/gcc/testsuite/gcc.dg/torture/builtin-convert-2.c b/gcc/testsuite/gcc.dg/torture/builtin-convert-2.c index 312b2d4db3b..167ecddcb9a 100644 --- a/gcc/testsuite/gcc.dg/torture/builtin-convert-2.c +++ b/gcc/testsuite/gcc.dg/torture/builtin-convert-2.c @@ -7,8 +7,7 @@ /* { dg-do link } */ /* { dg-options "-ffast-math" } */ -/* { dg-options "-ffast-math -mmacosx-version-min=10.3" { target powerpc-*-darwin* } } */ -/* { dg-options "-ffast-math -std=c99" { target *-*-solaris2* } } */ +/* { dg-add-options c99_runtime } */ #include "../builtins-config.h" diff --git a/gcc/testsuite/gcc.dg/torture/builtin-convert-3.c b/gcc/testsuite/gcc.dg/torture/builtin-convert-3.c index 9be570bb592..2034b4190cf 100644 --- a/gcc/testsuite/gcc.dg/torture/builtin-convert-3.c +++ b/gcc/testsuite/gcc.dg/torture/builtin-convert-3.c @@ -7,8 +7,7 @@ /* { dg-do link } */ /* { dg-options "-ffast-math" } */ -/* { dg-options "-ffast-math -mmacosx-version-min=10.3" { target powerpc-*-darwin* } } */ -/* { dg-options "-ffast-math -std=c99" { target *-*-solaris2* } } */ +/* { dg-add-options c99_runtime } */ #include "../builtins-config.h" diff --git a/gcc/testsuite/gcc.dg/torture/builtin-convert-4.c b/gcc/testsuite/gcc.dg/torture/builtin-convert-4.c index c37bd5e2e8a..3dc47ad1ed2 100644 --- a/gcc/testsuite/gcc.dg/torture/builtin-convert-4.c +++ b/gcc/testsuite/gcc.dg/torture/builtin-convert-4.c @@ -7,8 +7,7 @@ /* { dg-do compile } */ /* { dg-options "-ftrapping-math -fdump-tree-original" } */ -/* { dg-options "-ftrapping-math -fdump-tree-original -mmacosx-version-min=10.3" { target powerpc-*-darwin* } } */ -/* { dg-options "-ftrapping-math -fdump-tree-original -std=c99" { target *-*-solaris2* } } */ +/* { dg-add-options c99_runtime } */ #include "../builtins-config.h" diff --git a/gcc/testsuite/gcc.dg/torture/builtin-power-1.c b/gcc/testsuite/gcc.dg/torture/builtin-power-1.c index 58eabfea18c..a63ebf55423 100644 --- a/gcc/testsuite/gcc.dg/torture/builtin-power-1.c +++ b/gcc/testsuite/gcc.dg/torture/builtin-power-1.c @@ -7,8 +7,7 @@ /* { dg-do link } */ /* { dg-options "-ffast-math" } */ -/* { dg-options "-ffast-math -mmacosx-version-min=10.3" { target powerpc-*-darwin* } } */ -/* { dg-options "-ffast-math -std=c99" { target *-*-solaris2* } } */ +/* { dg-add-options c99_runtime } */ #include "../builtins-config.h" diff --git a/gcc/testsuite/lib/target-supports-dg.exp b/gcc/testsuite/lib/target-supports-dg.exp index e7f9175fa6f..c4731c15917 100644 --- a/gcc/testsuite/lib/target-supports-dg.exp +++ b/gcc/testsuite/lib/target-supports-dg.exp @@ -162,6 +162,22 @@ proc dg-require-host-local { args } { } } +# Add any target-specific flags needed for accessing the given list +# of features. This must come after all dg-options. + +proc dg-add-options { args } { + upvar dg-extra-tool-flags extra-tool-flags + + foreach arg [lrange $args 1 end] { + if { [info procs add_options_for_$arg] != "" } { + set extra-tool-flags \ + [eval [list add_options_for_$arg ${extra-tool-flags}]] + } else { + error "Unrecognized option type: $arg" + } + } +} + # Check the flags with which the test will be run against options in # a test directive that will skip or xfail that test. The DejaGnu proc # check_conditional_xfail will look at the options in compiler_flags, so diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp index 2aa8bcc1465..8bbb141ec10 100644 --- a/gcc/testsuite/lib/target-supports.exp +++ b/gcc/testsuite/lib/target-supports.exp @@ -2562,3 +2562,15 @@ proc check_effective_target_wchar { } { #include }] } + +# Add to FLAGS all the target-specific flags needed to access the c99 runtime. + +proc add_options_for_c99_runtime { flags } { + if { [istarget *-*-solaris2*] } { + return "$flags -std=c99" + } + if { [istarget powerpc-*-darwin*] } { + return "$flags -mmacosx-version-min=10.3" + } + return $flags +} -- 2.11.4.GIT