aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Ellcey <sje@cup.hp.com>2006-01-30 17:06:16 +0000
committerSteve Ellcey <sje@gcc.gnu.org>2006-01-30 17:06:16 +0000
commit3b1a6677a716307298abb22c2c0b191b69e5903e (patch)
tree6d3e38911f239d99f2238bf3cececd2d9b0ba7bf
parent6bb862cc973aa22427c41dd482821b7c11c331e2 (diff)
downloadgcc-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/ChangeLog8
-rw-r--r--gcc/testsuite/g++.dg/other/pr22003.C4
-rw-r--r--gcc/testsuite/lib/target-supports.exp35
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.