Commit 8a0963c3 by Joseph Myers Committed by Joseph Myers

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
parent 7da13f1d
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> 2009-01-07 Nathan Froyd <froydnj@codesourcery.com>
Alan Modra <amodra@bigpond.net.au> Alan Modra <amodra@bigpond.net.au>
......
// PR target/29487 // PR target/29487
// { dg-do run { xfail { hppa*-*-hpux* && { ! hppa*64*-*-* } } } } // { dg-do run { xfail { hppa*-*-hpux* && { ! hppa*64*-*-* } } } }
// { dg-require-weak "" } // { dg-require-weak-override "" }
// { dg-additional-sources "weak1-a.cc" } // { dg-additional-sources "weak1-a.cc" }
// { dg-options "-O2" } // { dg-options "-O2" }
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-require-weak "" } */ /* { dg-require-weak-override "" } */
/* { dg-options "-O2 -fdump-tree-optimized" } */ /* { dg-options "-O2 -fdump-tree-optimized" } */
void __attribute__((weak)) func(void) void __attribute__((weak)) func(void)
......
...@@ -45,6 +45,21 @@ proc dg-require-weak { args } { ...@@ -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 # If this target does not support the "visibility" attribute, skip this
# test. # test.
......
...@@ -251,6 +251,20 @@ proc check_weak_available { } { ...@@ -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 } # proc check_visibility_available { what_kind }
############################### ###############################
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment