diff options
author | Steve Ellcey <sje@cup.hp.com> | 2006-01-30 17:06:16 +0000 |
---|---|---|
committer | Steve Ellcey <sje@gcc.gnu.org> | 2006-01-30 17:06:16 +0000 |
commit | 3b1a6677a716307298abb22c2c0b191b69e5903e (patch) | |
tree | 6d3e38911f239d99f2238bf3cececd2d9b0ba7bf | |
parent | 6bb862cc973aa22427c41dd482821b7c11c331e2 (diff) | |
download | gcc-3b1a6677a716307298abb22c2c0b191b69e5903e.zip gcc-3b1a6677a716307298abb22c2c0b191b69e5903e.tar.gz gcc-3b1a6677a716307298abb22c2c0b191b69e5903e.tar.bz2 |
re PR testsuite/25318 (g++.dg/other/pr22003.C (test for excess errors) fails)
PR testsuite/25318
* lib/target-supports.exp (check_effective_target_freorder):
Check to see if target supports -freorder-blocks-and-partition.
* g++.dg/other/pr22003.C: Use "dg-require-effective-target freorder"
instead of "dg-require-named-sections".
From-SVN: r110405
-rw-r--r-- | gcc/testsuite/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/other/pr22003.C | 4 | ||||
-rw-r--r-- | gcc/testsuite/lib/target-supports.exp | 35 |
3 files changed, 44 insertions, 3 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 56b8eae..3a6d317 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,11 @@ +2006-01-30 Steve Ellcey <sje@cup.hp.com> + + PR testsuite/25318 + * lib/target-supports.exp (check_effective_target_freorder): + Check to see if target supports -freorder-blocks-and-partition. + * g++.dg/other/pr22003.C: Use "dg-require-effective-target freorder" + instead of "dg-require-named-sections". + 2006-01-30 J"orn Rennecke <joern.rennecke@st.com> PR target/14798: diff --git a/gcc/testsuite/g++.dg/other/pr22003.C b/gcc/testsuite/g++.dg/other/pr22003.C index 5b7a1a4..222ccac 100644 --- a/gcc/testsuite/g++.dg/other/pr22003.C +++ b/gcc/testsuite/g++.dg/other/pr22003.C @@ -1,8 +1,6 @@ /* PR rtl-optimization/22003 */ /* { dg-do compile } */ -/* -freorder-blocks-and-partition is not supported on machines */ -/* that do not support named sections. */ -/* { dg-require-named-sections "" } */ +/* { dg-require-effective-target freorder } */ /* { dg-options "-O2 -fno-exceptions -freorder-blocks-and-partition" } */ struct c1 diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp index 5fee9ea..f9ca1a1 100644 --- a/gcc/testsuite/lib/target-supports.exp +++ b/gcc/testsuite/lib/target-supports.exp @@ -503,6 +503,41 @@ proc check_effective_target_fopenmp {} { return $et_fopenmp_saved } +# Return 1 if compilation with -freorder-blocks-and-partition is error-free +# for trivial code, 0 otherwise. + +proc check_effective_target_freorder {} { + global et_freorder_saved + global et_freorder_target_name + + if { ![info exists et_freorder_target_name] } { + set et_freorder_target_name "" + } + + # If the target has changed since we set the cached value, clear it. + set current_target [current_target_name] + if { $current_target != $et_freorder_target_name } { + verbose "check_effective_target_freorder: `$et_freorder_target_name'" 2 + set et_freorder_target_name $current_target + if [info exists et_freorder_saved] { + verbose "check_effective_target_freorder: removing cached result" 2 + unset et_freorder_saved + } + } + + if [info exists et_freorder_saved] { + verbose "check_effective_target_freorder: using cached result" 2 + } else { + verbose "check_effective_target_freorder: compiling source" 2 + + set et_freorder_saved [string match "" [get_compiler_messages freorder object { + void foo (void) { } + } "-freorder-blocks-and-partition"]] + } + verbose "check_effective_target_freorder: returning $et_freorder_saved" 2 + return $et_freorder_saved +} + # Return 1 if -fpic and -fPIC are supported, as in no warnings or errors # emitted, 0 otherwise. Whether a shared library can actually be built is # out of scope for this test. |