diff options
author | Joseph Myers <joseph@codesourcery.com> | 2009-01-07 23:53:03 +0000 |
---|---|---|
committer | Joseph Myers <jsm28@gcc.gnu.org> | 2009-01-07 23:53:03 +0000 |
commit | 8a0963c32789e582dc5b60e71822ee6fe5db40e9 (patch) | |
tree | ded040516e1b86fef5c43a9bf45e66bc0e5ea049 /gcc | |
parent | 7da13f1d80b35d3e00ef1a4c785f49f58d8fa767 (diff) | |
download | gcc-8a0963c32789e582dc5b60e71822ee6fe5db40e9.zip gcc-8a0963c32789e582dc5b60e71822ee6fe5db40e9.tar.gz gcc-8a0963c32789e582dc5b60e71822ee6fe5db40e9.tar.bz2 |
target-supports.exp (check_weak_override_available): New.
* lib/target-supports.exp (check_weak_override_available): New.
* lib/target-supports-dg.exp (dg-require-weak-override): New.
* gcc.dg/tree-ssa/pr27781.c, g++.dg/eh/weak1.C: Use
dg-require-weak-override.
From-SVN: r143172
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/eh/weak1.C | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/tree-ssa/pr27781.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/lib/target-supports-dg.exp | 15 | ||||
-rw-r--r-- | gcc/testsuite/lib/target-supports.exp | 14 |
5 files changed, 38 insertions, 2 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index ccd555e..196f191 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,10 @@ +2009-01-07 Joseph Myers <joseph@codesourcery.com> + + * lib/target-supports.exp (check_weak_override_available): New. + * lib/target-supports-dg.exp (dg-require-weak-override): New. + * gcc.dg/tree-ssa/pr27781.c, g++.dg/eh/weak1.C: Use + dg-require-weak-override. + 2009-01-07 Nathan Froyd <froydnj@codesourcery.com> Alan Modra <amodra@bigpond.net.au> diff --git a/gcc/testsuite/g++.dg/eh/weak1.C b/gcc/testsuite/g++.dg/eh/weak1.C index 4dd08d1..f78d195 100644 --- a/gcc/testsuite/g++.dg/eh/weak1.C +++ b/gcc/testsuite/g++.dg/eh/weak1.C @@ -1,6 +1,6 @@ // PR target/29487 // { dg-do run { xfail { hppa*-*-hpux* && { ! hppa*64*-*-* } } } } -// { dg-require-weak "" } +// { dg-require-weak-override "" } // { dg-additional-sources "weak1-a.cc" } // { dg-options "-O2" } diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr27781.c b/gcc/testsuite/gcc.dg/tree-ssa/pr27781.c index 0e1a02a..233c93d 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/pr27781.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/pr27781.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-require-weak "" } */ +/* { dg-require-weak-override "" } */ /* { dg-options "-O2 -fdump-tree-optimized" } */ void __attribute__((weak)) func(void) diff --git a/gcc/testsuite/lib/target-supports-dg.exp b/gcc/testsuite/lib/target-supports-dg.exp index 321daac..fe6453b 100644 --- a/gcc/testsuite/lib/target-supports-dg.exp +++ b/gcc/testsuite/lib/target-supports-dg.exp @@ -45,6 +45,21 @@ proc dg-require-weak { args } { } } +# If this target does not support overriding weak symbols, skip this +# test. + +proc dg-require-weak-override { args } { + set weak_override_available [ check_weak_override_available ] + if { $weak_override_available == -1 } { + upvar name name + unresolved "$name" + } + if { $weak_override_available != 1 } { + upvar dg-do-what dg-do-what + set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"] + } +} + # If this target does not support the "visibility" attribute, skip this # test. diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp index 79e77f2..0eb40c6 100644 --- a/gcc/testsuite/lib/target-supports.exp +++ b/gcc/testsuite/lib/target-supports.exp @@ -251,6 +251,20 @@ proc check_weak_available { } { } ############################### +# proc check_weak_override_available { } +############################### + +# Like check_weak_available, but return 0 if weak symbol definitions +# cannot be overridden. + +proc check_weak_override_available { } { + if { [istarget "*-*-mingw*"] } { + return 0 + } + return [check_weak_available] +} + +############################### # proc check_visibility_available { what_kind } ############################### |