aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKyrylo Tkachov <kyrylo.tkachov@arm.com>2014-08-20 09:28:25 +0000
committerKyrylo Tkachov <ktkachov@gcc.gnu.org>2014-08-20 09:28:25 +0000
commit0febb26e6e31a7da9932eb7337884f8717eaea5f (patch)
tree6e684a38c032237db7928e5e9e51f29013d76cb6
parenta9442c7ac09b1140740c96eded9ce4ddc4885a57 (diff)
downloadgcc-0febb26e6e31a7da9932eb7337884f8717eaea5f.zip
gcc-0febb26e6e31a7da9932eb7337884f8717eaea5f.tar.gz
gcc-0febb26e6e31a7da9932eb7337884f8717eaea5f.tar.bz2
[testsuite] Mark tests unsupported when relocation truncation occurs on tiny memory targets
* lib/gcc-defs.exp (${tool}_check_unsupported_p): Return memory full when we have a tiny target and relocation truncation occurs. * lib/gcc-dg.exp (gcc-dg-prune): Likewise. * lib/objc.exp (${tool}_check_unsupported_p): Likewise. * lib/target-supports.exp (check_effective_target_tiny): New function. From-SVN: r214215
-rw-r--r--gcc/testsuite/ChangeLog9
-rw-r--r--gcc/testsuite/lib/gcc-defs.exp5
-rw-r--r--gcc/testsuite/lib/gcc-dg.exp5
-rw-r--r--gcc/testsuite/lib/objc.exp4
-rw-r--r--gcc/testsuite/lib/target-supports.exp8
5 files changed, 31 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index b8473c3..16d0c07 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,12 @@
+2014-08-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
+
+ * lib/gcc-defs.exp (${tool}_check_unsupported_p):
+ Return memory full when we have a tiny target and relocation
+ truncation occurs.
+ * lib/gcc-dg.exp (gcc-dg-prune): Likewise.
+ * lib/objc.exp (${tool}_check_unsupported_p): Likewise.
+ * lib/target-supports.exp (check_effective_target_tiny): New function.
+
2014-08-20 Joost VandeVondele <Joost.VandeVondele@mat.ethz.ch>
* gfortran.dg/errnocheck_1.f90: New test.
diff --git a/gcc/testsuite/lib/gcc-defs.exp b/gcc/testsuite/lib/gcc-defs.exp
index 69a5971..1ea7028 100644
--- a/gcc/testsuite/lib/gcc-defs.exp
+++ b/gcc/testsuite/lib/gcc-defs.exp
@@ -157,6 +157,11 @@ proc ${tool}_check_unsupported_p { output } {
if [regexp "(^|\n)\[^\n\]*: region \[^\n\]* is full" $output] {
return "memory full"
}
+ if { [regexp "(^|\n)\[^\n\]*: relocation truncated to fit" $output]
+ && [check_effective_target_tiny] } {
+ return "memory full"
+ }
+
if { [istarget spu-*-*] && \
[string match "*exceeds local store*" $output] } {
return "memory full"
diff --git a/gcc/testsuite/lib/gcc-dg.exp b/gcc/testsuite/lib/gcc-dg.exp
index 3390caa..dfdb257 100644
--- a/gcc/testsuite/lib/gcc-dg.exp
+++ b/gcc/testsuite/lib/gcc-dg.exp
@@ -233,6 +233,11 @@ proc gcc-dg-prune { system text } {
return "::unsupported::memory full"
}
+ if { [regexp "(^|\n)\[^\n\]*: relocation truncated to fit" $text]
+ && [check_effective_target_tiny] } {
+ return "::unsupported::memory full"
+ }
+
# Likewise, if we see ".text exceeds local store range" or
# similar.
if {[string match "spu-*" $system] && \
diff --git a/gcc/testsuite/lib/objc.exp b/gcc/testsuite/lib/objc.exp
index 5ecefa9..e19b264 100644
--- a/gcc/testsuite/lib/objc.exp
+++ b/gcc/testsuite/lib/objc.exp
@@ -357,6 +357,10 @@ proc ${tool}_check_unsupported_p { output } {
if [regexp "(^|\n)\[^\n\]*: region \[^\n\]* is full" $output] {
return "memory full"
}
+ if { [regexp "(^|\n)\[^\n\]*: relocation truncated to fit" $output]
+ && [check_effective_target_tiny] } {
+ return "memory full"
+ }
return ""
}
diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
index 6506e42..ca20099 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -5950,6 +5950,14 @@ proc check_effective_target_fenv_exceptions {} {
} [add_options_for_ieee "-std=gnu99"]]
}
+proc check_effective_target_tiny {} {
+ if { [istarget aarch64*-*-*]
+ && [check_effective_target_aarch64_tiny] } {
+ return 1
+ }
+ return 0
+}
+
# Return 1 if LOGICAL_OP_NON_SHORT_CIRCUIT is set to 0 for the current target.
proc check_effective_target_logical_op_short_circuit {} {