From 3b1a6677a716307298abb22c2c0b191b69e5903e Mon Sep 17 00:00:00 2001 From: Steve Ellcey Date: Mon, 30 Jan 2006 17:06:16 +0000 Subject: [PATCH] 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 --- gcc/testsuite/ChangeLog | 8 ++++++ gcc/testsuite/g++.dg/other/pr22003.C | 4 +-- 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 56b8eae371c..3a6d317aad7 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,11 @@ +2006-01-30 Steve Ellcey + + 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 PR target/14798: diff --git a/gcc/testsuite/g++.dg/other/pr22003.C b/gcc/testsuite/g++.dg/other/pr22003.C index 5b7a1a4af95..222ccac7beb 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 5fee9eac269..f9ca1a1652d 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. -- 2.30.2