This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[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



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]