diff options
author | Nick Clifton <nickc@redhat.com> | 2004-06-18 15:41:47 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2004-06-18 15:41:47 +0000 |
commit | 23a75657ad37b290eb7df6ce34de22b1c614f5d6 (patch) | |
tree | b410613f682747ea9a54622e3f859ed8d4d4b49b /ld | |
parent | cad48f8ed941582fae2acf284a23db5c8c448f70 (diff) | |
download | gdb-23a75657ad37b290eb7df6ce34de22b1c614f5d6.zip gdb-23a75657ad37b290eb7df6ce34de22b1c614f5d6.tar.gz gdb-23a75657ad37b290eb7df6ce34de22b1c614f5d6.tar.bz2 |
* ld-elfvsb/main.c: Ensure visibility_def and visibility_func are
actually referenced (gcc 3.4 eliminates comparisons of addresses
of global symbols with NULL).
* ld-selective/selective.exp: Suppress -fvtable-gc tests for gcc
3.4.0 and above, as this option and its functionality is no longer
supported, making these tests fail).
Diffstat (limited to 'ld')
-rw-r--r-- | ld/testsuite/ChangeLog | 9 | ||||
-rw-r--r-- | ld/testsuite/ld-elfvsb/main.c | 36 | ||||
-rw-r--r-- | ld/testsuite/ld-selective/selective.exp | 8 |
3 files changed, 35 insertions, 18 deletions
diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog index aeebbd8..4685492 100644 --- a/ld/testsuite/ChangeLog +++ b/ld/testsuite/ChangeLog @@ -1,3 +1,12 @@ +2004-06-18 Jan Beulich <jbeulich@novell.com> + + * ld-elfvsb/main.c: Ensure visibility_def and visibility_func are + actually referenced (gcc 3.4 eliminates comparisons of addresses + of global symbols with NULL). + * ld-selective/selective.exp: Suppress -fvtable-gc tests for gcc + 3.4.0 and above, as this option and its functionality is no longer + supported, making these tests fail). + 2004-05-18 Nick Clifton <nickc@redhat.com> * ld-elf/frame.s: Replace @ with % so that the file can be diff --git a/ld/testsuite/ld-elfvsb/main.c b/ld/testsuite/ld-elfvsb/main.c index f071260..b498d43 100644 --- a/ld/testsuite/ld-elfvsb/main.c +++ b/ld/testsuite/ld-elfvsb/main.c @@ -74,13 +74,13 @@ extern int visibility_var; #if !defined (HIDDEN_TEST) && defined (PROTECTED_TEST) int -visibility () +visibility (void) { return 1; } static int -main_visibility_check () +main_visibility_check (void) { return ((int (*) (void)) visibility_funptr ()) != visibility; } @@ -88,7 +88,7 @@ main_visibility_check () int visibility_var = 1; static int -main_visibility_checkvar () +main_visibility_checkvar (void) { return visibility_varval () != visibility_var && visibility_varptr () != &visibility_var; @@ -99,7 +99,7 @@ int shared_data = 1; asm (".protected shared_data"); int -shared_func () +shared_func (void) { return 1; } @@ -112,7 +112,7 @@ extern func shared_func_p (); #endif #else static int -main_visibility_check () +main_visibility_check (void) { #ifdef WEAK_TEST return visibility_funptr () == NULL; @@ -122,7 +122,7 @@ main_visibility_check () } static int -main_visibility_checkvar () +main_visibility_checkvar (void) { #ifdef WEAK_TEST return visibility_varval () == 0 @@ -137,7 +137,7 @@ main_visibility_checkvar () /* This function is called by the shared library. */ int -main_called () +main_called (void) { return 6; } @@ -145,7 +145,7 @@ main_called () /* This function overrides a function in the shared library. */ int -shlib_overriddencall2 () +shlib_overriddencall2 (void) { return 8; } @@ -155,19 +155,19 @@ int visibility_com; asm (".hidden visibility_com"); int -main_visibility_checkcom () +main_visibility_checkcom (void) { return visibility_com == 0; } int -main_visibility_checkweak () +main_visibility_checkweak (void) { return 1; } #elif defined (HIDDEN_WEAK_TEST) int -main_visibility_checkcom () +main_visibility_checkcom (void) { return 1; } @@ -203,32 +203,32 @@ extern int visibility_func (); asm (".hidden visibility_func"); int -main_visibility_checkcom () +main_visibility_checkcom (void) { - return &visibility_def != NULL; + return & visibility_def != NULL && visibility_def == 2; } int -main_visibility_checkweak () +main_visibility_checkweak (void) { - return &visibility_func != NULL; + return & visibility_func != NULL && visibility_func () == 2; } #else int -main_visibility_checkcom () +main_visibility_checkcom (void) { return 1; } int -main_visibility_checkweak () +main_visibility_checkweak (void) { return 1; } #endif int -main () +main (void) { int (*p) (); int ret = 0; diff --git a/ld/testsuite/ld-selective/selective.exp b/ld/testsuite/ld-selective/selective.exp index ba1ebd9..6672911 100644 --- a/ld/testsuite/ld-selective/selective.exp +++ b/ld/testsuite/ld-selective/selective.exp @@ -89,6 +89,14 @@ foreach testitem $seltests { # It's either C or C++ at the moment. if { $testtype == "C++" } { set testflags "$cflags $cxxflags" + if [string match "*gcc*" [lindex $CC 0]] { + # Starting with 3.4.0, -fvtable-gc is no longer supported and thus + # the functionality we try to test for cannot be expected to work. + catch "exec -- $CC -dumpversion" version + if [regexp "^(\[1-9\]\[0-9\]+|\[4-9\]|3.(\[1-9\]\[0-9\]+|\[4-9\]))\\." $version] { + setup_xfail {*-*-*} + } + } } { set testflags "$cflags" } |