From dbb29a2a37900549c9d90f4d33bf7e00641655c6 Mon Sep 17 00:00:00 2001 From: Andrew Bennett Date: Fri, 18 Nov 2016 12:34:19 +0000 Subject: [PATCH] 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 From-SVN: r242587 --- gcc/testsuite/ChangeLog | 40 +++++++++++++++++++ .../gcc.target/mips/inline-memcpy-1.c | 2 +- .../gcc.target/mips/inline-memcpy-2.c | 2 +- .../gcc.target/mips/inline-memcpy-3.c | 2 +- .../gcc.target/mips/inline-memcpy-4.c | 2 +- .../gcc.target/mips/inline-memcpy-5.c | 2 +- .../mips/loongson-shift-count-truncated-1.c | 2 +- gcc/testsuite/gcc.target/mips/loongson-simd.c | 2 +- gcc/testsuite/gcc.target/mips/memcpy-1.c | 2 +- gcc/testsuite/gcc.target/mips/mips-3d-1.c | 2 +- gcc/testsuite/gcc.target/mips/mips-3d-2.c | 2 +- gcc/testsuite/gcc.target/mips/mips-3d-3.c | 2 +- gcc/testsuite/gcc.target/mips/mips-3d-4.c | 2 +- gcc/testsuite/gcc.target/mips/mips-3d-5.c | 2 +- gcc/testsuite/gcc.target/mips/mips-3d-6.c | 2 +- gcc/testsuite/gcc.target/mips/mips-3d-7.c | 2 +- gcc/testsuite/gcc.target/mips/mips-3d-8.c | 2 +- gcc/testsuite/gcc.target/mips/mips-3d-9.c | 2 +- gcc/testsuite/gcc.target/mips/mips-ps-1.c | 2 +- gcc/testsuite/gcc.target/mips/mips-ps-2.c | 2 +- gcc/testsuite/gcc.target/mips/mips-ps-3.c | 2 +- gcc/testsuite/gcc.target/mips/mips-ps-4.c | 2 +- gcc/testsuite/gcc.target/mips/mips-ps-6.c | 2 +- gcc/testsuite/gcc.target/mips/mips.exp | 36 +++++++++++++++-- .../gcc.target/mips/mips16-attributes.c | 2 +- .../gcc.target/mips/mips32-dsp-run.c | 2 +- gcc/testsuite/gcc.target/mips/mips32-dsp.c | 2 +- .../gcc.target/mips/save-restore-1.c | 2 +- 28 files changed, 98 insertions(+), 30 deletions(-) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index c039ecaba50..58dba0ca4de 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,43 @@ +2016-11-18 Andrew Bennett + Toma Tabacu + + * 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 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 5a254b1eaa9..8b1ad80520d 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 e144e61a800..e9feb93409b 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 96a0387fce5..3bdb28b514e 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 0e7a22e8a33..d64eb5d48c0 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 1b9fa16b2a7..55ee38a1d73 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 f57a18ce12e..baed48cf5d5 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 6d2ceb6371d..f263b4393e9 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 diff --git a/gcc/testsuite/gcc.target/mips/memcpy-1.c b/gcc/testsuite/gcc.target/mips/memcpy-1.c index 94786a7371f..bd8519fe088 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 9c675130927..cb827ad4cf5 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 diff --git a/gcc/testsuite/gcc.target/mips/mips-3d-2.c b/gcc/testsuite/gcc.target/mips/mips-3d-2.c index 4da059f9ec0..52ec3a529bc 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 diff --git a/gcc/testsuite/gcc.target/mips/mips-3d-3.c b/gcc/testsuite/gcc.target/mips/mips-3d-3.c index fcdcf24e6c0..cfb9ea8f57a 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 diff --git a/gcc/testsuite/gcc.target/mips/mips-3d-4.c b/gcc/testsuite/gcc.target/mips/mips-3d-4.c index 340921c586e..ca4923c7921 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 diff --git a/gcc/testsuite/gcc.target/mips/mips-3d-5.c b/gcc/testsuite/gcc.target/mips/mips-3d-5.c index e7dbfebef63..86523d27377 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 diff --git a/gcc/testsuite/gcc.target/mips/mips-3d-6.c b/gcc/testsuite/gcc.target/mips/mips-3d-6.c index d75faa1a91b..8e8fbb6b338 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 diff --git a/gcc/testsuite/gcc.target/mips/mips-3d-7.c b/gcc/testsuite/gcc.target/mips/mips-3d-7.c index 8e69d49b122..20f01997216 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 diff --git a/gcc/testsuite/gcc.target/mips/mips-3d-8.c b/gcc/testsuite/gcc.target/mips/mips-3d-8.c index 0ad8c482aa1..c59f5474635 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 diff --git a/gcc/testsuite/gcc.target/mips/mips-3d-9.c b/gcc/testsuite/gcc.target/mips/mips-3d-9.c index 0c302528506..281584186c1 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 diff --git a/gcc/testsuite/gcc.target/mips/mips-ps-1.c b/gcc/testsuite/gcc.target/mips/mips-ps-1.c index 980dd05db84..56ba68c87b6 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 diff --git a/gcc/testsuite/gcc.target/mips/mips-ps-2.c b/gcc/testsuite/gcc.target/mips/mips-ps-2.c index 654aa062d80..e0ff4d1864d 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 diff --git a/gcc/testsuite/gcc.target/mips/mips-ps-3.c b/gcc/testsuite/gcc.target/mips/mips-ps-3.c index fc892a805a1..a16bd4b214f 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 diff --git a/gcc/testsuite/gcc.target/mips/mips-ps-4.c b/gcc/testsuite/gcc.target/mips/mips-ps-4.c index 7871e56d2b9..893358d4c10 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 diff --git a/gcc/testsuite/gcc.target/mips/mips-ps-6.c b/gcc/testsuite/gcc.target/mips/mips-ps-6.c index 42c1756136f..8aa704d376f 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 diff --git a/gcc/testsuite/gcc.target/mips/mips.exp b/gcc/testsuite/gcc.target/mips/mips.exp index 97b2aea8f1c..c0b9680cb33 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 + } 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 d90ec66d037..e1497c01d73 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 diff --git a/gcc/testsuite/gcc.target/mips/mips32-dsp-run.c b/gcc/testsuite/gcc.target/mips/mips32-dsp-run.c index ccd9d380fb3..ca12d0406d6 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 #include diff --git a/gcc/testsuite/gcc.target/mips/mips32-dsp.c b/gcc/testsuite/gcc.target/mips/mips32-dsp.c index 9aaf120184f..d212bcfae23 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 b3ce1b18dc2..5e1e838c7d8 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 -- 2.30.2