From 4a737c625c652bd552ea2da6885021776296d96c Mon Sep 17 00:00:00 2001 From: hp Date: Tue, 14 Feb 2012 22:06:56 +0000 Subject: [PATCH] * lib/target-supports.exp (check_effective_target_fgnu_tm): New proc. * gfortran.dg/trans-mem-skel.f90: Gate test on effective_target fgnu_tm. * gcc.dg/lto/trans-mem-1_0.c, gcc.dg/lto/trans-mem-2_0.c, gcc.dg/lto/trans-mem-3_0.c, gcc.dg/lto/trans-mem-4_0.c: Ditto. * gcc.dg/tm/tm.exp: Gate the whole of gcc.dg/tm on effective_target fgnu_tm. * g++.dg/tm/tm.exp: Ditto for g++.dg/tm. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@184237 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/testsuite/ChangeLog | 12 ++++++++++++ gcc/testsuite/g++.dg/tm/tm.exp | 4 ++++ gcc/testsuite/gcc.dg/lto/trans-mem-1_0.c | 1 + gcc/testsuite/gcc.dg/lto/trans-mem-2_0.c | 1 + gcc/testsuite/gcc.dg/lto/trans-mem-3_0.c | 1 + gcc/testsuite/gcc.dg/lto/trans-mem-4_0.c | 1 + gcc/testsuite/gcc.dg/tm/tm.exp | 4 ++++ gcc/testsuite/gfortran.dg/trans-mem-skel.f90 | 1 + gcc/testsuite/lib/target-supports.exp | 9 +++++++++ 9 files changed, 34 insertions(+) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index d82d7d5..1a583e5 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,15 @@ +2012-02-14 Hans-Peter Nilsson + + * lib/target-supports.exp (check_effective_target_fgnu_tm): New + proc. + * gfortran.dg/trans-mem-skel.f90: Gate test on effective_target + fgnu_tm. + * gcc.dg/lto/trans-mem-1_0.c, gcc.dg/lto/trans-mem-2_0.c, + gcc.dg/lto/trans-mem-3_0.c, gcc.dg/lto/trans-mem-4_0.c: Ditto. + * gcc.dg/tm/tm.exp: Gate the whole of gcc.dg/tm on + effective_target fgnu_tm. + * g++.dg/tm/tm.exp: Ditto for g++.dg/tm. + 2012-02-14 Jakub Jelinek PR c++/52247 diff --git a/gcc/testsuite/g++.dg/tm/tm.exp b/gcc/testsuite/g++.dg/tm/tm.exp index df40cdc..f191abc 100644 --- a/gcc/testsuite/g++.dg/tm/tm.exp +++ b/gcc/testsuite/g++.dg/tm/tm.exp @@ -19,6 +19,10 @@ # Load support procs. load_lib g++-dg.exp +if ![check_effective_target_fgnu_tm] { + return +} + # If a testcase doesn't have special options, use these. global DEFAULT_CXXFLAGS if ![info exists DEFAULT_CXXFLAGS] then { diff --git a/gcc/testsuite/gcc.dg/lto/trans-mem-1_0.c b/gcc/testsuite/gcc.dg/lto/trans-mem-1_0.c index 556c99b..379f4ea 100644 --- a/gcc/testsuite/gcc.dg/lto/trans-mem-1_0.c +++ b/gcc/testsuite/gcc.dg/lto/trans-mem-1_0.c @@ -1,6 +1,7 @@ /* { dg-lto-options {{-flto -fgnu-tm}} } */ /* { dg-lto-do link } */ /* { dg-require-effective-target stdint_types } */ +/* { dg-require-effective-target fgnu_tm } */ int i; diff --git a/gcc/testsuite/gcc.dg/lto/trans-mem-2_0.c b/gcc/testsuite/gcc.dg/lto/trans-mem-2_0.c index b270602..f86d444 100644 --- a/gcc/testsuite/gcc.dg/lto/trans-mem-2_0.c +++ b/gcc/testsuite/gcc.dg/lto/trans-mem-2_0.c @@ -1,6 +1,7 @@ /* { dg-lto-options {{-flto -fgnu-tm}} } */ /* { dg-lto-do link } */ /* { dg-require-effective-target stdint_types } */ +/* { dg-require-effective-target fgnu_tm } */ #include "trans-mem.h" diff --git a/gcc/testsuite/gcc.dg/lto/trans-mem-3_0.c b/gcc/testsuite/gcc.dg/lto/trans-mem-3_0.c index 8a5ca75..f622823 100644 --- a/gcc/testsuite/gcc.dg/lto/trans-mem-3_0.c +++ b/gcc/testsuite/gcc.dg/lto/trans-mem-3_0.c @@ -1,6 +1,7 @@ /* { dg-lto-options {{-flto}} } */ /* { dg-lto-do link } */ /* { dg-require-effective-target stdint_types } */ +/* { dg-require-effective-target fgnu_tm } */ /* Test that we can build one object file with -fgnu-tm (trans-mem-3_1.c), but do the final link of all objects without diff --git a/gcc/testsuite/gcc.dg/lto/trans-mem-4_0.c b/gcc/testsuite/gcc.dg/lto/trans-mem-4_0.c index 16332ee..e3f471f 100644 --- a/gcc/testsuite/gcc.dg/lto/trans-mem-4_0.c +++ b/gcc/testsuite/gcc.dg/lto/trans-mem-4_0.c @@ -1,6 +1,7 @@ /* { dg-lto-options {{-flto -fgnu-tm}} } */ /* { dg-lto-do link } */ /* { dg-require-effective-target stdint_types } */ +/* { dg-require-effective-target fgnu_tm } */ extern void foo() __attribute__((transaction_safe)); diff --git a/gcc/testsuite/gcc.dg/tm/tm.exp b/gcc/testsuite/gcc.dg/tm/tm.exp index 3d24481..07c1493 100644 --- a/gcc/testsuite/gcc.dg/tm/tm.exp +++ b/gcc/testsuite/gcc.dg/tm/tm.exp @@ -19,6 +19,10 @@ # Load support procs. load_lib gcc-dg.exp +if ![check_effective_target_fgnu_tm] { + return +} + # If a testcase doesn't have special options, use these. global DEFAULT_CFLAGS if ![info exists DEFAULT_CFLAGS] then { diff --git a/gcc/testsuite/gfortran.dg/trans-mem-skel.f90 b/gcc/testsuite/gfortran.dg/trans-mem-skel.f90 index 7e56fad..f02dfaf 100644 --- a/gcc/testsuite/gfortran.dg/trans-mem-skel.f90 +++ b/gcc/testsuite/gfortran.dg/trans-mem-skel.f90 @@ -1,5 +1,6 @@ ! { dg-do compile } ! { dg-options "-fgnu-tm" } +! { dg-require-effective-target fgnu_tm } program foo real x end program foo diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp index 02490d9..13f68df 100644 --- a/gcc/testsuite/lib/target-supports.exp +++ b/gcc/testsuite/lib/target-supports.exp @@ -716,6 +716,15 @@ proc check_effective_target_fopenmp {} { } "-fopenmp"] } +# Return 1 if compilation with -fgnu-tm is error-free for trivial +# code, 0 otherwise. + +proc check_effective_target_fgnu_tm {} { + return [check_no_compiler_messages fgnu_tm object { + void foo (void) { } + } "-fgnu-tm"] +} + # Return 1 if the target supports mmap, 0 otherwise. proc check_effective_target_mmap {} { -- 2.7.4