This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH/testsuite] handle excessively large tests on spu-*-*
- From: Ben Elliston <bje at au1 dot ibm dot com>
- To: gcc-patches at gcc dot gnu dot org
- Cc: janis187 at us dot ibm dot com
- Date: Thu, 21 Dec 2006 14:14:26 +1100
- Subject: [PATCH/testsuite] handle excessively large tests on spu-*-*
This patch marks excessively large test cases (that generate linker
errors on spu-*-*) as UNSUPPORTED. Previously, this was handled with a
patch I submitted on 2006-11-28 that marked the tests XFAIL. I have
just discovered that this is not the proper way to do it in the dg
framework.
Attached is a patch that does it the proper way, plus reverts my
2006-11-28 patch. Okay for the trunk?
2006-12-21 Ben Elliston <bje@au.ibm.com>
* lib/gcc-dg.exp (gcc-dg-prune): Return "::unsupported::memory
full" if the linker on spu-*-* warns about exceeding local store.
* lib/g++-dg.exp (g++-dg-prune): Likewise.
And revert this patch:
* lib/gcc-defs.exp (${tool}_check_compile): xfail test cases that
fail to link due to relocation overflows on spu-*-*.
Index: gcc-dg.exp
===================================================================
--- gcc-dg.exp (revision 120090)
+++ gcc-dg.exp (working copy)
@@ -183,6 +183,14 @@ proc gcc-dg-prune { system text } {
return "::unsupported::memory full"
}
+ # Likewise, if we see ".text exceeds local store range" or
+ # similar.
+ if {[string match "spu-*" $system] && \
+ [string match "*exceeds local store range*" $text]} {
+ # The format here is important. See dg.exp.
+ return "::unsupported::memory full"
+ }
+
return $text
}
Index: g++-dg.exp
===================================================================
--- g++-dg.exp (revision 120090)
+++ g++-dg.exp (working copy)
@@ -22,7 +22,11 @@ proc g++-dg-test { prog do_what extra_to
return [gcc-dg-test-1 g++_target_compile $prog $do_what $extra_tool_flags]
}
-
proc g++-dg-prune { system text } {
+ if {[string match "spu-*" $system] && \
+ [string match "*exceeds local store range*" $text]} {
+ # The format here is important. See dg.exp.
+ return "::unsupported::memory full"
+ }
return [gcc-dg-prune $system $text]
}
Index: gcc-defs.exp
===================================================================
--- gcc-defs.exp (revision 120090)
+++ gcc-defs.exp (working copy)
@@ -24,12 +24,6 @@ proc ${tool}_check_compile {testcase opt
global tool
set fatal_signal "*cc: Internal compiler error: program*got fatal signal"
- if {[istarget spu-*-*] && [string match "*exceeds local store range*" $gcc_output]} {
- setup_xfail [istarget]
- ${tool}_fail $testcase $option
- return 0
- }
-
if [string match "$fatal_signal 6" $gcc_output] then {
${tool}_fail $testcase "Got Signal 6, $option"
return 0