aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Bennett <andrew.bennett@imgtec.com>2016-11-18 12:34:19 +0000
committerMatthew Fortune <mpf@gcc.gnu.org>2016-11-18 12:34:19 +0000
commitdbb29a2a37900549c9d90f4d33bf7e00641655c6 (patch)
treea66c3bb29a1476ab1d34dee908c744f2fc2dd999
parentf079167a3064f11a7d8c17ef78389559435bad9d (diff)
downloadgcc-dbb29a2a37900549c9d90f4d33bf7e00641655c6.zip
gcc-dbb29a2a37900549c9d90f4d33bf7e00641655c6.tar.gz
gcc-dbb29a2a37900549c9d90f4d33bf7e00641655c6.tar.bz2
MIPS: Check for sysroot support when upgrading/downgrading test options
gcc/testsuite/ * gcc.target/mips/inline-memcpy-1.c (dg-options): Add (REQUIRES_STDLIB). * gcc.target/mips/inline-memcpy-2.c: Ditto. * gcc.target/mips/inline-memcpy-3.c: Ditto. * gcc.target/mips/inline-memcpy-4.c: Ditto. * gcc.target/mips/inline-memcpy-5.c: Ditto. * gcc.target/mips/loongson-shift-count-truncated-1.c: Ditto. * gcc.target/mips/loongson-simd.c: Ditto. * gcc.target/mips/memcpy-1.c: Ditto. * gcc.target/mips/mips-3d-1.c: Ditto. * gcc.target/mips/mips-3d-2.c: Ditto. * gcc.target/mips/mips-3d-3.c: Ditto. * gcc.target/mips/mips-3d-4.c: Ditto. * gcc.target/mips/mips-3d-5.c: Ditto. * gcc.target/mips/mips-3d-6.c: Ditto. * gcc.target/mips/mips-3d-7.c: Ditto. * gcc.target/mips/mips-3d-8.c: Ditto. * gcc.target/mips/mips-3d-9.c: Ditto. * gcc.target/mips/mips-ps-1.c: Ditto. * gcc.target/mips/mips-ps-2.c: Ditto. * gcc.target/mips/mips-ps-3.c: Ditto. * gcc.target/mips/mips-ps-4.c: Ditto. * gcc.target/mips/mips-ps-6.c: Ditto. * gcc.target/mips/mips16-attributes.c: Ditto. * gcc.target/mips/mips32-dsp-run.c: Ditto. * gcc.target/mips/mips32-dsp.c: Ditto. * gcc.target/mips/save-restore-1.c: Ditto. * gcc.target/mips/mips.exp (mips_option_groups): Add stdlib. (mips_preprocess): Add ignore_output argument that when set will not return the pre-processed output. (mips_arch_info): Update arguments for the call to mips_preprocess. (mips-dg-init): Ditto. (mips-dg-options): Check if a test having test option (REQUIRES_STDLIB) has the required sysroot support for the current test options. Co-Authored-By: Toma Tabacu <toma.tabacu@imgtec.com> From-SVN: r242587
-rw-r--r--gcc/testsuite/ChangeLog40
-rw-r--r--gcc/testsuite/gcc.target/mips/inline-memcpy-1.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/inline-memcpy-2.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/inline-memcpy-3.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/inline-memcpy-4.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/inline-memcpy-5.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/loongson-shift-count-truncated-1.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/loongson-simd.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/memcpy-1.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/mips-3d-1.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/mips-3d-2.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/mips-3d-3.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/mips-3d-4.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/mips-3d-5.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/mips-3d-6.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/mips-3d-7.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/mips-3d-8.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/mips-3d-9.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/mips-ps-1.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/mips-ps-2.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/mips-ps-3.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/mips-ps-4.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/mips-ps-6.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/mips.exp36
-rw-r--r--gcc/testsuite/gcc.target/mips/mips16-attributes.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/mips32-dsp-run.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/mips32-dsp.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/save-restore-1.c2
28 files changed, 98 insertions, 30 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index c039eca..58dba0c 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,43 @@
+2016-11-18 Andrew Bennett <andrew.bennett@imgtec.com>
+ Toma Tabacu <toma.tabacu@imgtec.com>
+
+ * gcc.target/mips/inline-memcpy-1.c (dg-options): Add
+ (REQUIRES_STDLIB).
+ * gcc.target/mips/inline-memcpy-2.c: Ditto.
+ * gcc.target/mips/inline-memcpy-3.c: Ditto.
+ * gcc.target/mips/inline-memcpy-4.c: Ditto.
+ * gcc.target/mips/inline-memcpy-5.c: Ditto.
+ * gcc.target/mips/loongson-shift-count-truncated-1.c: Ditto.
+ * gcc.target/mips/loongson-simd.c: Ditto.
+ * gcc.target/mips/memcpy-1.c: Ditto.
+ * gcc.target/mips/mips-3d-1.c: Ditto.
+ * gcc.target/mips/mips-3d-2.c: Ditto.
+ * gcc.target/mips/mips-3d-3.c: Ditto.
+ * gcc.target/mips/mips-3d-4.c: Ditto.
+ * gcc.target/mips/mips-3d-5.c: Ditto.
+ * gcc.target/mips/mips-3d-6.c: Ditto.
+ * gcc.target/mips/mips-3d-7.c: Ditto.
+ * gcc.target/mips/mips-3d-8.c: Ditto.
+ * gcc.target/mips/mips-3d-9.c: Ditto.
+ * gcc.target/mips/mips-ps-1.c: Ditto.
+ * gcc.target/mips/mips-ps-2.c: Ditto.
+ * gcc.target/mips/mips-ps-3.c: Ditto.
+ * gcc.target/mips/mips-ps-4.c: Ditto.
+ * gcc.target/mips/mips-ps-6.c: Ditto.
+ * gcc.target/mips/mips16-attributes.c: Ditto.
+ * gcc.target/mips/mips32-dsp-run.c: Ditto.
+ * gcc.target/mips/mips32-dsp.c: Ditto.
+ * gcc.target/mips/save-restore-1.c: Ditto.
+ * gcc.target/mips/mips.exp (mips_option_groups): Add stdlib.
+ (mips_preprocess): Add ignore_output argument that when set
+ will not return the pre-processed output.
+ (mips_arch_info): Update arguments for the call to
+ mips_preprocess.
+ (mips-dg-init): Ditto.
+ (mips-dg-options): Check if a test having test option
+ (REQUIRES_STDLIB) has the required sysroot support for
+ the current test options.
+
2016-11-17 Jeff Law <law@redhat.com>
PR middle-end/38219
diff --git a/gcc/testsuite/gcc.target/mips/inline-memcpy-1.c b/gcc/testsuite/gcc.target/mips/inline-memcpy-1.c
index 5a254b1..8b1ad80 100644
--- a/gcc/testsuite/gcc.target/mips/inline-memcpy-1.c
+++ b/gcc/testsuite/gcc.target/mips/inline-memcpy-1.c
@@ -1,4 +1,4 @@
-/* { dg-options "-fno-common isa_rev>=6" } */
+/* { dg-options "-fno-common isa_rev>=6 (REQUIRES_STDLIB)" } */
/* { dg-skip-if "code quality test" { *-*-* } { "-O0" "-Os" } { "" } } */
/* { dg-final { scan-assembler-not "\tmemcpy" } } */
diff --git a/gcc/testsuite/gcc.target/mips/inline-memcpy-2.c b/gcc/testsuite/gcc.target/mips/inline-memcpy-2.c
index e144e61..e9feb93 100644
--- a/gcc/testsuite/gcc.target/mips/inline-memcpy-2.c
+++ b/gcc/testsuite/gcc.target/mips/inline-memcpy-2.c
@@ -1,4 +1,4 @@
-/* { dg-options "-fno-common isa_rev>=6" } */
+/* { dg-options "-fno-common isa_rev>=6 (REQUIRES_STDLIB)" } */
/* { dg-skip-if "code quality test" { *-*-* } { "-O0" "-Os"} { "" } } */
/* { dg-final { scan-assembler-not "\tmemcpy" } } */
/* { dg-final { scan-assembler-times "\tsh\t" 16 } } */
diff --git a/gcc/testsuite/gcc.target/mips/inline-memcpy-3.c b/gcc/testsuite/gcc.target/mips/inline-memcpy-3.c
index 96a0387..3bdb28b 100644
--- a/gcc/testsuite/gcc.target/mips/inline-memcpy-3.c
+++ b/gcc/testsuite/gcc.target/mips/inline-memcpy-3.c
@@ -1,4 +1,4 @@
-/* { dg-options "-fno-common isa_rev<=5" } */
+/* { dg-options "-fno-common isa_rev<=5 (REQUIRES_STDLIB)" } */
/* { dg-skip-if "code quality test" { *-*-* } { "-O0" "-Os"} { "" } } */
/* { dg-final { scan-assembler-not "\tmemcpy" } } */
/* { dg-final { scan-assembler-times "swl" 8 } } */
diff --git a/gcc/testsuite/gcc.target/mips/inline-memcpy-4.c b/gcc/testsuite/gcc.target/mips/inline-memcpy-4.c
index 0e7a22e..d64eb5d 100644
--- a/gcc/testsuite/gcc.target/mips/inline-memcpy-4.c
+++ b/gcc/testsuite/gcc.target/mips/inline-memcpy-4.c
@@ -1,4 +1,4 @@
-/* { dg-options "-fno-common isa_rev<=5 -mabi=64" } */
+/* { dg-options "-fno-common isa_rev<=5 -mabi=64 (REQUIRES_STDLIB)" } */
/* { dg-skip-if "code quality test" { *-*-* } { "-O0" "-Os"} { "" } } */
/* { dg-final { scan-assembler-not "\tmemcpy" } } */
/* { dg-final { scan-assembler-times "sdl" 4 } } */
diff --git a/gcc/testsuite/gcc.target/mips/inline-memcpy-5.c b/gcc/testsuite/gcc.target/mips/inline-memcpy-5.c
index 1b9fa16..55ee38a 100644
--- a/gcc/testsuite/gcc.target/mips/inline-memcpy-5.c
+++ b/gcc/testsuite/gcc.target/mips/inline-memcpy-5.c
@@ -1,4 +1,4 @@
-/* { dg-options "-fno-common isa_rev<=5 -mabi=n32" } */
+/* { dg-options "-fno-common isa_rev<=5 -mabi=n32 (REQUIRES_STDLIB)" } */
/* { dg-skip-if "code quality test" { *-*-* } { "-O0" "-Os"} { "" } } */
/* { dg-final { scan-assembler-not "\tmemcpy" } } */
/* { dg-final { scan-assembler-times "sdl" 4 } } */
diff --git a/gcc/testsuite/gcc.target/mips/loongson-shift-count-truncated-1.c b/gcc/testsuite/gcc.target/mips/loongson-shift-count-truncated-1.c
index f57a18c..baed48c 100644
--- a/gcc/testsuite/gcc.target/mips/loongson-shift-count-truncated-1.c
+++ b/gcc/testsuite/gcc.target/mips/loongson-shift-count-truncated-1.c
@@ -4,7 +4,7 @@
/* loongson.h does not handle or check for MIPS16ness. There doesn't
seem any good reason for it to, given that the Loongson processors
do not support MIPS16. */
-/* { dg-options "isa=loongson -mhard-float -mno-mips16" } */
+/* { dg-options "isa=loongson -mhard-float -mno-mips16 (REQUIRES_STDLIB)" } */
/* See PR 52155. */
/* { dg-options "isa=loongson -mhard-float -mno-mips16 -mlong64" { mips*-*-elf* && ilp32 } } */
diff --git a/gcc/testsuite/gcc.target/mips/loongson-simd.c b/gcc/testsuite/gcc.target/mips/loongson-simd.c
index 6d2ceb6..f263b43 100644
--- a/gcc/testsuite/gcc.target/mips/loongson-simd.c
+++ b/gcc/testsuite/gcc.target/mips/loongson-simd.c
@@ -26,7 +26,7 @@ along with GCC; see the file COPYING3. If not see
because inclusion of some system headers e.g. stdint.h will fail due to not
finding stubs-o32_hard.h. */
/* { dg-require-effective-target mips_nanlegacy } */
-/* { dg-options "isa=loongson -mhard-float -mno-micromips -mno-mips16 -flax-vector-conversions" } */
+/* { dg-options "isa=loongson -mhard-float -mno-micromips -mno-mips16 -flax-vector-conversions (REQUIRES_STDLIB)" } */
#include "loongson.h"
#include <stdio.h>
diff --git a/gcc/testsuite/gcc.target/mips/memcpy-1.c b/gcc/testsuite/gcc.target/mips/memcpy-1.c
index 94786a7..bd8519f 100644
--- a/gcc/testsuite/gcc.target/mips/memcpy-1.c
+++ b/gcc/testsuite/gcc.target/mips/memcpy-1.c
@@ -1,4 +1,4 @@
-/* { dg-options "-fno-common" } */
+/* { dg-options "-fno-common (REQUIRES_STDLIB)" } */
/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler-not "\tlbu\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/mips-3d-1.c b/gcc/testsuite/gcc.target/mips/mips-3d-1.c
index 9c67513..cb827ad 100644
--- a/gcc/testsuite/gcc.target/mips/mips-3d-1.c
+++ b/gcc/testsuite/gcc.target/mips/mips-3d-1.c
@@ -1,5 +1,5 @@
/* { dg-do run } */
-/* { dg-options "-mips3d forbid_cpu=octeon.*" } */
+/* { dg-options "-mips3d forbid_cpu=octeon.* (REQUIRES_STDLIB)" } */
/* Test MIPS-3D builtin functions */
#include <stdlib.h>
diff --git a/gcc/testsuite/gcc.target/mips/mips-3d-2.c b/gcc/testsuite/gcc.target/mips/mips-3d-2.c
index 4da059f..52ec3a5 100644
--- a/gcc/testsuite/gcc.target/mips/mips-3d-2.c
+++ b/gcc/testsuite/gcc.target/mips/mips-3d-2.c
@@ -1,5 +1,5 @@
/* { dg-do run } */
-/* { dg-options "-mips3d forbid_cpu=octeon.*" } */
+/* { dg-options "-mips3d forbid_cpu=octeon.* (REQUIRES_STDLIB)" } */
/* Test MIPS-3D branch-if-any-two builtin functions */
#include <stdlib.h>
diff --git a/gcc/testsuite/gcc.target/mips/mips-3d-3.c b/gcc/testsuite/gcc.target/mips/mips-3d-3.c
index fcdcf24..cfb9ea8 100644
--- a/gcc/testsuite/gcc.target/mips/mips-3d-3.c
+++ b/gcc/testsuite/gcc.target/mips/mips-3d-3.c
@@ -1,5 +1,5 @@
/* { dg-do run } */
-/* { dg-options "-mips3d forbid_cpu=octeon.*" } */
+/* { dg-options "-mips3d forbid_cpu=octeon.* (REQUIRES_STDLIB)" } */
/* Test MIPS-3D absolute compare builtin functions */
#include <stdlib.h>
diff --git a/gcc/testsuite/gcc.target/mips/mips-3d-4.c b/gcc/testsuite/gcc.target/mips/mips-3d-4.c
index 340921c..ca4923c 100644
--- a/gcc/testsuite/gcc.target/mips/mips-3d-4.c
+++ b/gcc/testsuite/gcc.target/mips/mips-3d-4.c
@@ -1,5 +1,5 @@
/* { dg-do run } */
-/* { dg-options "-mips3d forbid_cpu=octeon.*" } */
+/* { dg-options "-mips3d forbid_cpu=octeon.* (REQUIRES_STDLIB)" } */
/* Test MIPS-3D branch-if-any-four builtin functions */
#include <stdlib.h>
diff --git a/gcc/testsuite/gcc.target/mips/mips-3d-5.c b/gcc/testsuite/gcc.target/mips/mips-3d-5.c
index e7dbfeb..86523d2 100644
--- a/gcc/testsuite/gcc.target/mips/mips-3d-5.c
+++ b/gcc/testsuite/gcc.target/mips/mips-3d-5.c
@@ -1,5 +1,5 @@
/* { dg-do run } */
-/* { dg-options "-mips3d forbid_cpu=octeon.*" } */
+/* { dg-options "-mips3d forbid_cpu=octeon.* (REQUIRES_STDLIB)" } */
/* Test MIPS-3D absolute-compare & branch-if-any-four builtin functions */
#include <stdlib.h>
diff --git a/gcc/testsuite/gcc.target/mips/mips-3d-6.c b/gcc/testsuite/gcc.target/mips/mips-3d-6.c
index d75faa1..8e8fbb6 100644
--- a/gcc/testsuite/gcc.target/mips/mips-3d-6.c
+++ b/gcc/testsuite/gcc.target/mips/mips-3d-6.c
@@ -1,5 +1,5 @@
/* { dg-do run } */
-/* { dg-options "-mips3d forbid_cpu=octeon.*" } */
+/* { dg-options "-mips3d forbid_cpu=octeon.* (REQUIRES_STDLIB)" } */
/* Test MIPS-3D absolute compare (floats) builtin functions */
#include <stdlib.h>
diff --git a/gcc/testsuite/gcc.target/mips/mips-3d-7.c b/gcc/testsuite/gcc.target/mips/mips-3d-7.c
index 8e69d49..20f0199 100644
--- a/gcc/testsuite/gcc.target/mips/mips-3d-7.c
+++ b/gcc/testsuite/gcc.target/mips/mips-3d-7.c
@@ -1,5 +1,5 @@
/* { dg-do run } */
-/* { dg-options "-mips3d forbid_cpu=octeon.*" } */
+/* { dg-options "-mips3d forbid_cpu=octeon.* (REQUIRES_STDLIB)" } */
/* Test MIPS-3D absolute compare (doubles) builtin functions */
#include <stdlib.h>
diff --git a/gcc/testsuite/gcc.target/mips/mips-3d-8.c b/gcc/testsuite/gcc.target/mips/mips-3d-8.c
index 0ad8c48..c59f547 100644
--- a/gcc/testsuite/gcc.target/mips/mips-3d-8.c
+++ b/gcc/testsuite/gcc.target/mips/mips-3d-8.c
@@ -1,5 +1,5 @@
/* { dg-do run } */
-/* { dg-options "-mips3d forbid_cpu=octeon.*" } */
+/* { dg-options "-mips3d forbid_cpu=octeon.* (REQUIRES_STDLIB)" } */
/* Test MIPS-3D absolute compare and conditional move builtin functions */
#include <stdlib.h>
diff --git a/gcc/testsuite/gcc.target/mips/mips-3d-9.c b/gcc/testsuite/gcc.target/mips/mips-3d-9.c
index 0c30252..2815841 100644
--- a/gcc/testsuite/gcc.target/mips/mips-3d-9.c
+++ b/gcc/testsuite/gcc.target/mips/mips-3d-9.c
@@ -1,5 +1,5 @@
/* { dg-do run } */
-/* { dg-options "-mips3d forbid_cpu=octeon.*" } */
+/* { dg-options "-mips3d forbid_cpu=octeon.* (REQUIRES_STDLIB)" } */
/* Matrix Multiplications */
#include <stdlib.h>
diff --git a/gcc/testsuite/gcc.target/mips/mips-ps-1.c b/gcc/testsuite/gcc.target/mips/mips-ps-1.c
index 980dd05..56ba68c 100644
--- a/gcc/testsuite/gcc.target/mips/mips-ps-1.c
+++ b/gcc/testsuite/gcc.target/mips/mips-ps-1.c
@@ -1,5 +1,5 @@
/* { dg-do run } */
-/* { dg-options "-mpaired-single forbid_cpu=octeon.*" } */
+/* { dg-options "-mpaired-single forbid_cpu=octeon.* (REQUIRES_STDLIB)" } */
/* Test v2sf calculations */
#include <stdlib.h>
diff --git a/gcc/testsuite/gcc.target/mips/mips-ps-2.c b/gcc/testsuite/gcc.target/mips/mips-ps-2.c
index 654aa06..e0ff4d1 100644
--- a/gcc/testsuite/gcc.target/mips/mips-ps-2.c
+++ b/gcc/testsuite/gcc.target/mips/mips-ps-2.c
@@ -1,5 +1,5 @@
/* { dg-do run } */
-/* { dg-options "-mpaired-single forbid_cpu=octeon.*" } */
+/* { dg-options "-mpaired-single forbid_cpu=octeon.* (REQUIRES_STDLIB)" } */
/* Test MIPS paired-single builtin functions */
#include <stdlib.h>
diff --git a/gcc/testsuite/gcc.target/mips/mips-ps-3.c b/gcc/testsuite/gcc.target/mips/mips-ps-3.c
index fc892a8..a16bd4b 100644
--- a/gcc/testsuite/gcc.target/mips/mips-ps-3.c
+++ b/gcc/testsuite/gcc.target/mips/mips-ps-3.c
@@ -1,5 +1,5 @@
/* { dg-do run } */
-/* { dg-options "-mpaired-single forbid_cpu=octeon.*" } */
+/* { dg-options "-mpaired-single forbid_cpu=octeon.* (REQUIRES_STDLIB)" } */
/* Test MIPS paired-single conditional move */
#include <stdlib.h>
diff --git a/gcc/testsuite/gcc.target/mips/mips-ps-4.c b/gcc/testsuite/gcc.target/mips/mips-ps-4.c
index 7871e56..893358d 100644
--- a/gcc/testsuite/gcc.target/mips/mips-ps-4.c
+++ b/gcc/testsuite/gcc.target/mips/mips-ps-4.c
@@ -1,5 +1,5 @@
/* { dg-do run } */
-/* { dg-options "-mpaired-single forbid_cpu=octeon.*" } */
+/* { dg-options "-mpaired-single forbid_cpu=octeon.* (REQUIRES_STDLIB)" } */
/* Test MIPS paired-single comparisons */
#include <stdlib.h>
diff --git a/gcc/testsuite/gcc.target/mips/mips-ps-6.c b/gcc/testsuite/gcc.target/mips/mips-ps-6.c
index 42c1756..8aa704d 100644
--- a/gcc/testsuite/gcc.target/mips/mips-ps-6.c
+++ b/gcc/testsuite/gcc.target/mips/mips-ps-6.c
@@ -1,7 +1,7 @@
/* mips-ps-2.c with an extra -ffinite-math-only option. This option
changes the way that abs.ps is handled. */
/* { dg-do run } */
-/* { dg-options "-mpaired-single -ffinite-math-only forbid_cpu=octeon.*" } */
+/* { dg-options "-mpaired-single -ffinite-math-only forbid_cpu=octeon.* (REQUIRES_STDLIB)" } */
/* Test MIPS paired-single builtin functions */
#include <stdlib.h>
diff --git a/gcc/testsuite/gcc.target/mips/mips.exp b/gcc/testsuite/gcc.target/mips/mips.exp
index 97b2aea..c0b9680 100644
--- a/gcc/testsuite/gcc.target/mips/mips.exp
+++ b/gcc/testsuite/gcc.target/mips/mips.exp
@@ -261,6 +261,7 @@ set mips_option_groups {
section_start "-Wl,--section-start=.*"
frame-header "-mframe-header-opt|-mno-frame-header-opt"
stack-protector "-fstack-protector"
+ stdlib "REQUIRES_STDLIB"
}
for { set option 0 } { $option < 32 } { incr option } {
@@ -447,14 +448,19 @@ proc mips_same_option_p { option1 option2 } {
# Preprocess CODE using target_compile options OPTIONS. Return the
# compiler output.
-proc mips_preprocess { options code } {
+proc mips_preprocess { options code ignore_output } {
global tool
set src dummy[pid].c
set f [open $src "w"]
puts $f $code
close $f
- set output [${tool}_target_compile $src "" preprocess $options]
+ if { $ignore_output } {
+ set output [${tool}_target_compile $src dummy[pid].i preprocess $options]
+ file delete dummy[pid].i
+ } else {
+ set output [${tool}_target_compile $src "" preprocess $options]
+ }
file delete $src
return $output
@@ -504,7 +510,7 @@ proc mips_arch_info { arch prop } {
#else
int isa_rev = 0;
#endif
- }]
+ } 0]
foreach lhs { isa isa_rev } {
regsub ".*$lhs = (\[^;\]*).*" $output {\1} rhs
verbose -log "Architecture $arch has $lhs $rhs"
@@ -863,7 +869,7 @@ proc mips-dg-init {} {
0
};
- }]
+ } 0]
foreach line [split $output "\r\n"] {
# Poor man's string concatenation.
regsub -all {" "} $line "" line
@@ -1454,6 +1460,28 @@ proc mips-dg-options { args } {
}
}
+ # If the test is marked as requiring standard libraries check
+ # that the sysroot has support for the current set of test options.
+ if { [mips_have_test_option_p options "REQUIRES_STDLIB"] } {
+ mips_push_test_options saved_options $extra_tool_flags
+ set output [mips_preprocess "" {
+ #include <stdlib.h>
+ } 1]
+ mips_pop_test_options saved_options
+
+ # If the preprocessing of the stdlib.h file produced errors,
+ # mark the test as unsupported by changing the second element of
+ # do_what to "N".
+ # The second element of do_what holds information about test selection
+ # and it can have one of two values:
+ # "S" - the test is selected and will be run
+ # "N" - the test is not selected and will not be run
+ # This mirrors the format of dg-do-what from lib/dg.exp in DejaGNU.
+ if { ![string equal $output ""] } {
+ set do_what [lreplace $do_what 1 1 "N"]
+ }
+ }
+
# If the test is MIPS16-compatible, provide a counterpart to the
# NOMIPS16 convenience macro.
if { [mips_have_test_option_p options "-mips16"] } {
diff --git a/gcc/testsuite/gcc.target/mips/mips16-attributes.c b/gcc/testsuite/gcc.target/mips/mips16-attributes.c
index d90ec66..e1497c0 100644
--- a/gcc/testsuite/gcc.target/mips/mips16-attributes.c
+++ b/gcc/testsuite/gcc.target/mips/mips16-attributes.c
@@ -2,7 +2,7 @@
of calling a nomips16/mips16/default function from a nomips16/mips16/default
function. */
/* { dg-do run } */
-/* { dg-options "(-mips16)" } */
+/* { dg-options "(-mips16) (REQUIRES_STDLIB)" } */
/* { dg-skip-if "" { *-*-* } { "-mmicromips" } { "" } } */
#include <stdlib.h>
diff --git a/gcc/testsuite/gcc.target/mips/mips32-dsp-run.c b/gcc/testsuite/gcc.target/mips/mips32-dsp-run.c
index ccd9d38..ca12d04 100644
--- a/gcc/testsuite/gcc.target/mips/mips32-dsp-run.c
+++ b/gcc/testsuite/gcc.target/mips/mips32-dsp-run.c
@@ -1,6 +1,6 @@
/* Test MIPS32 DSP instructions */
/* { dg-do run } */
-/* { dg-options "-mdsp" } */
+/* { dg-options "-mdsp (REQUIRES_STDLIB)" } */
#include <stdlib.h>
#include <stdio.h>
diff --git a/gcc/testsuite/gcc.target/mips/mips32-dsp.c b/gcc/testsuite/gcc.target/mips/mips32-dsp.c
index 9aaf120..d212bcf 100644
--- a/gcc/testsuite/gcc.target/mips/mips32-dsp.c
+++ b/gcc/testsuite/gcc.target/mips/mips32-dsp.c
@@ -1,6 +1,6 @@
/* Test MIPS32 DSP instructions */
/* { dg-do compile } */
-/* { dg-options "-mgp32 -mdsp" } */
+/* { dg-options "-mgp32 -mdsp (REQUIRES_STDLIB)" } */
/* { dg-final { scan-assembler "\taddq.ph\t" } } */
/* { dg-final { scan-assembler "\taddq_s.ph\t" } } */
/* { dg-final { scan-assembler "\taddq_s.w\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/save-restore-1.c b/gcc/testsuite/gcc.target/mips/save-restore-1.c
index b3ce1b1..5e1e838 100644
--- a/gcc/testsuite/gcc.target/mips/save-restore-1.c
+++ b/gcc/testsuite/gcc.target/mips/save-restore-1.c
@@ -1,5 +1,5 @@
/* Check that we can use the save instruction to save varargs. */
-/* { dg-options "(-mips16) isa_rev>=1 -mabi=32" } */
+/* { dg-options "(-mips16) isa_rev>=1 -mabi=32 (REQUIRES_STDLIB)" } */
#include <stdarg.h>