diff options
author | Thomas Schwinge <thomas@codesourcery.com> | 2022-12-14 17:16:42 +0100 |
---|---|---|
committer | Thomas Schwinge <thomas@codesourcery.com> | 2023-02-22 09:19:51 +0100 |
commit | 320dc51c2d9969f644885cc1afa0d8a924f0ab87 (patch) | |
tree | 0f1c8ad8634499ef4b4c2d4ccb06c90bd9c9889c /libgomp/testsuite | |
parent | 7411eca498beb13729cc2acec77e68250940aa81 (diff) | |
download | gcc-320dc51c2d9969f644885cc1afa0d8a924f0ab87.zip gcc-320dc51c2d9969f644885cc1afa0d8a924f0ab87.tar.gz gcc-320dc51c2d9969f644885cc1afa0d8a924f0ab87.tar.bz2 |
Add '-Wno-complain-wrong-lang', and use it in 'gcc/testsuite/lib/target-supports.exp:check_compile' and elsewhere
I noticed that GCC/Rust recently lost all LTO variants in torture testing:
PASS: rust/compile/torture/all_doc_comment_line_blocks.rs -O0 (test for excess errors)
PASS: rust/compile/torture/all_doc_comment_line_blocks.rs -O1 (test for excess errors)
PASS: rust/compile/torture/all_doc_comment_line_blocks.rs -O2 (test for excess errors)
-PASS: rust/compile/torture/all_doc_comment_line_blocks.rs -O2 -flto -fno-use-linker-plugin -flto-partition=none (test for excess errors)
-PASS: rust/compile/torture/all_doc_comment_line_blocks.rs -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects (test for excess errors)
PASS: rust/compile/torture/all_doc_comment_line_blocks.rs -O3 -g (test for excess errors)
PASS: rust/compile/torture/all_doc_comment_line_blocks.rs -Os (test for excess errors)
Etc.
The reason is that when probing for availability of LTO, we run into:
spawn [...]/build-gcc/gcc/testsuite/rust/../../gccrs -B[...]/build-gcc/gcc/testsuite/rust/../../ -fdiagnostics-plain-output -frust-incomplete-and-experimental-compiler-do-not-use -flto -c -o lto8274.o lto8274.c
cc1: warning: command-line option '-frust-incomplete-and-experimental-compiler-do-not-use' is valid for Rust but not for C
For GCC/Rust testing, this flag is (as of recently) defaulted in
'gcc/testsuite/lib/rust.exp:rust_init':
lappend ALWAYS_RUSTFLAGS "additional_flags=-frust-incomplete-and-experimental-compiler-do-not-use"
A few more "command-line option [...] is valid for [...] but not for [...]"
instances were found in the test suite logs, when more than one language is
involved.
With '-Wno-complain-wrong-lang' used in
'gcc/testsuite/lib/target-supports.exp:check_compile', we get back:
PASS: rust/compile/torture/all_doc_comment_line_blocks.rs -O0 (test for excess errors)
PASS: rust/compile/torture/all_doc_comment_line_blocks.rs -O1 (test for excess errors)
PASS: rust/compile/torture/all_doc_comment_line_blocks.rs -O2 (test for excess errors)
+PASS: rust/compile/torture/all_doc_comment_line_blocks.rs -O2 -flto -fno-use-linker-plugin -flto-partition=none (test for excess errors)
+PASS: rust/compile/torture/all_doc_comment_line_blocks.rs -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects (test for excess errors)
PASS: rust/compile/torture/all_doc_comment_line_blocks.rs -O3 -g (test for excess errors)
PASS: rust/compile/torture/all_doc_comment_line_blocks.rs -Os (test for excess errors)
Etc., and in total:
=== rust Summary for unix ===
# of expected passes [-4990-]{+6718+}
# of expected failures [-39-]{+51+}
Anything that 'gcc/opts-global.cc:complain_wrong_lang' might do is cut
short by '-Wno-complain-wrong-lang', not just the one 'warning'
diagnostic. This corresponds to what already exists via
'lang_hooks.complain_wrong_lang_p'.
The 'gcc/opts-common.cc:prune_options' changes follow the same rationale
as PR67640 "driver passes -fdiagnostics-color= always last": we need to
process '-Wno-complain-wrong-lang' early, so that it properly affects
other options appearing before it on the command line.
gcc/
* common.opt (-Wcomplain-wrong-lang): New.
* doc/invoke.texi (-Wno-complain-wrong-lang): Document it.
* opts-common.cc (prune_options): Handle it.
* opts-global.cc (complain_wrong_lang): Use it.
gcc/testsuite/
* gcc.dg/Wcomplain-wrong-lang-1.c: New.
* gcc.dg/Wcomplain-wrong-lang-2.c: Likewise.
* gcc.dg/Wcomplain-wrong-lang-3.c: Likewise.
* gcc.dg/Wcomplain-wrong-lang-4.c: Likewise.
* gcc.dg/Wcomplain-wrong-lang-5.c: Likewise.
* lib/target-supports.exp (check_compile): Use
'-Wno-complain-wrong-lang'.
* g++.dg/abi/empty12.C: Likewise.
* g++.dg/abi/empty13.C: Likewise.
* g++.dg/abi/empty14.C: Likewise.
* g++.dg/abi/empty15.C: Likewise.
* g++.dg/abi/empty16.C: Likewise.
* g++.dg/abi/empty17.C: Likewise.
* g++.dg/abi/empty18.C: Likewise.
* g++.dg/abi/empty19.C: Likewise.
* g++.dg/abi/empty22.C: Likewise.
* g++.dg/abi/empty25.C: Likewise.
* g++.dg/abi/empty26.C: Likewise.
* gfortran.dg/bind-c-contiguous-1.f90: Likewise.
* gfortran.dg/bind-c-contiguous-4.f90: Likewise.
* gfortran.dg/bind-c-contiguous-5.f90: Likewise.
libgomp/
* testsuite/libgomp.fortran/alloc-10.f90: Use
'-Wno-complain-wrong-lang'.
* testsuite/libgomp.fortran/alloc-11.f90: Likewise.
* testsuite/libgomp.fortran/alloc-7.f90: Likewise.
* testsuite/libgomp.fortran/alloc-9.f90: Likewise.
* testsuite/libgomp.fortran/allocate-1.f90: Likewise.
* testsuite/libgomp.fortran/depend-4.f90: Likewise.
* testsuite/libgomp.fortran/depend-5.f90: Likewise.
* testsuite/libgomp.fortran/depend-6.f90: Likewise.
* testsuite/libgomp.fortran/depend-7.f90: Likewise.
* testsuite/libgomp.fortran/depend-inoutset-1.f90: Likewise.
* testsuite/libgomp.fortran/examples-4/declare_target-1.f90:
Likewise.
* testsuite/libgomp.fortran/examples-4/declare_target-2.f90:
Likewise.
* testsuite/libgomp.fortran/order-reproducible-1.f90: Likewise.
* testsuite/libgomp.fortran/order-reproducible-2.f90: Likewise.
* testsuite/libgomp.oacc-fortran/parallel-dims.f90: Likewise.
* testsuite/libgomp.fortran/task-detach-6.f90: Remove left-over
'dg-prune-output'.
Diffstat (limited to 'libgomp/testsuite')
16 files changed, 21 insertions, 17 deletions
diff --git a/libgomp/testsuite/libgomp.fortran/alloc-10.f90 b/libgomp/testsuite/libgomp.fortran/alloc-10.f90 index 3eab859..834a2d2 100644 --- a/libgomp/testsuite/libgomp.fortran/alloc-10.f90 +++ b/libgomp/testsuite/libgomp.fortran/alloc-10.f90 @@ -1,5 +1,6 @@ ! { dg-additional-sources alloc-7.c } -! { dg-prune-output "command-line option '-fintrinsic-modules-path=.*' is valid for Fortran but not for C" } +! { dg-additional-options -Wno-complain-wrong-lang } + module m use omp_lib use iso_c_binding diff --git a/libgomp/testsuite/libgomp.fortran/alloc-11.f90 b/libgomp/testsuite/libgomp.fortran/alloc-11.f90 index b02c68f..e85e2fa 100644 --- a/libgomp/testsuite/libgomp.fortran/alloc-11.f90 +++ b/libgomp/testsuite/libgomp.fortran/alloc-11.f90 @@ -1,5 +1,6 @@ ! { dg-additional-sources alloc-7.c } -! { dg-prune-output "command-line option '-fintrinsic-modules-path=.*' is valid for Fortran but not for C" } +! { dg-additional-options -Wno-complain-wrong-lang } + module m use omp_lib use iso_c_binding diff --git a/libgomp/testsuite/libgomp.fortran/alloc-7.f90 b/libgomp/testsuite/libgomp.fortran/alloc-7.f90 index 57ecd83..8ef40ff 100644 --- a/libgomp/testsuite/libgomp.fortran/alloc-7.f90 +++ b/libgomp/testsuite/libgomp.fortran/alloc-7.f90 @@ -1,5 +1,6 @@ ! { dg-additional-sources alloc-7.c } -! { dg-prune-output "command-line option '-fintrinsic-modules-path=.*' is valid for Fortran but not for C" } +! { dg-additional-options -Wno-complain-wrong-lang } + module m use omp_lib use iso_c_binding diff --git a/libgomp/testsuite/libgomp.fortran/alloc-9.f90 b/libgomp/testsuite/libgomp.fortran/alloc-9.f90 index 1da1416..4a1c6a7 100644 --- a/libgomp/testsuite/libgomp.fortran/alloc-9.f90 +++ b/libgomp/testsuite/libgomp.fortran/alloc-9.f90 @@ -1,5 +1,6 @@ ! { dg-additional-sources alloc-7.c } -! { dg-prune-output "command-line option '-fintrinsic-modules-path=.*' is valid for Fortran but not for C" } +! { dg-additional-options -Wno-complain-wrong-lang } + module m use omp_lib use iso_c_binding diff --git a/libgomp/testsuite/libgomp.fortran/allocate-1.f90 b/libgomp/testsuite/libgomp.fortran/allocate-1.f90 index 1547d2b..c10820e 100644 --- a/libgomp/testsuite/libgomp.fortran/allocate-1.f90 +++ b/libgomp/testsuite/libgomp.fortran/allocate-1.f90 @@ -1,6 +1,6 @@ ! { dg-do run } ! { dg-additional-sources allocate-1.c } -! { dg-prune-output "command-line option '-fintrinsic-modules-path=.*' is valid for Fortran but not for C" } +! { dg-additional-options -Wno-complain-wrong-lang } module m use omp_lib diff --git a/libgomp/testsuite/libgomp.fortran/depend-4.f90 b/libgomp/testsuite/libgomp.fortran/depend-4.f90 index 80d00ca..35b47e9 100644 --- a/libgomp/testsuite/libgomp.fortran/depend-4.f90 +++ b/libgomp/testsuite/libgomp.fortran/depend-4.f90 @@ -1,7 +1,7 @@ ! { dg-additional-options "-fdump-tree-gimple" } ! ! { dg-additional-sources my-usleep.c } -! { dg-prune-output "command-line option '-fintrinsic-modules-path=.*' is valid for Fortran but not for C" } +! { dg-additional-options -Wno-complain-wrong-lang } ! ! Ensure that 'depend(...: var)' and 'depobj(...) depend(...: var)' ! depend on the same variable when 'var' is a pointer diff --git a/libgomp/testsuite/libgomp.fortran/depend-5.f90 b/libgomp/testsuite/libgomp.fortran/depend-5.f90 index b812b6d..7c3f297 100644 --- a/libgomp/testsuite/libgomp.fortran/depend-5.f90 +++ b/libgomp/testsuite/libgomp.fortran/depend-5.f90 @@ -1,5 +1,5 @@ ! { dg-additional-sources my-usleep.c } -! { dg-prune-output "command-line option '-fintrinsic-modules-path=.*' is valid for Fortran but not for C" } +! { dg-additional-options -Wno-complain-wrong-lang } module m implicit none diff --git a/libgomp/testsuite/libgomp.fortran/depend-6.f90 b/libgomp/testsuite/libgomp.fortran/depend-6.f90 index b5032e9..bb085f2 100644 --- a/libgomp/testsuite/libgomp.fortran/depend-6.f90 +++ b/libgomp/testsuite/libgomp.fortran/depend-6.f90 @@ -1,5 +1,5 @@ ! { dg-additional-sources my-usleep.c } -! { dg-prune-output "command-line option '-fintrinsic-modules-path=.*' is valid for Fortran but not for C" } +! { dg-additional-options -Wno-complain-wrong-lang } module m use omp_lib diff --git a/libgomp/testsuite/libgomp.fortran/depend-7.f90 b/libgomp/testsuite/libgomp.fortran/depend-7.f90 index 771a59c..86e310c 100644 --- a/libgomp/testsuite/libgomp.fortran/depend-7.f90 +++ b/libgomp/testsuite/libgomp.fortran/depend-7.f90 @@ -1,5 +1,5 @@ ! { dg-additional-sources my-usleep.c } -! { dg-prune-output "command-line option '-fintrinsic-modules-path=.*' is valid for Fortran but not for C" } +! { dg-additional-options -Wno-complain-wrong-lang } program main implicit none diff --git a/libgomp/testsuite/libgomp.fortran/depend-inoutset-1.f90 b/libgomp/testsuite/libgomp.fortran/depend-inoutset-1.f90 index 46161c3..6953b59 100644 --- a/libgomp/testsuite/libgomp.fortran/depend-inoutset-1.f90 +++ b/libgomp/testsuite/libgomp.fortran/depend-inoutset-1.f90 @@ -1,5 +1,5 @@ ! { dg-additional-sources my-usleep.c } -! { dg-prune-output "command-line option '-fintrinsic-modules-path=.*' is valid for Fortran but not for C" } +! { dg-additional-options -Wno-complain-wrong-lang } program main use omp_lib diff --git a/libgomp/testsuite/libgomp.fortran/examples-4/declare_target-1.f90 b/libgomp/testsuite/libgomp.fortran/examples-4/declare_target-1.f90 index 5fbf036..fcc7f51 100644 --- a/libgomp/testsuite/libgomp.fortran/examples-4/declare_target-1.f90 +++ b/libgomp/testsuite/libgomp.fortran/examples-4/declare_target-1.f90 @@ -1,6 +1,6 @@ ! { dg-do run } ! { dg-additional-sources ../on_device_arch.c } -! { dg-prune-output "command-line option '-fintrinsic-modules-path=.*' is valid for Fortran but not for C" } +! { dg-additional-options -Wno-complain-wrong-lang } module e_53_1_mod integer :: THRESHOLD = 20 diff --git a/libgomp/testsuite/libgomp.fortran/examples-4/declare_target-2.f90 b/libgomp/testsuite/libgomp.fortran/examples-4/declare_target-2.f90 index 1bcdac9..d43d9ab 100644 --- a/libgomp/testsuite/libgomp.fortran/examples-4/declare_target-2.f90 +++ b/libgomp/testsuite/libgomp.fortran/examples-4/declare_target-2.f90 @@ -1,6 +1,6 @@ ! { dg-do run } ! { dg-additional-sources ../on_device_arch.c } -! { dg-prune-output "command-line option '-fintrinsic-modules-path=.*' is valid for Fortran but not for C" } +! { dg-additional-options -Wno-complain-wrong-lang } program e_53_2 !$omp declare target (fib) diff --git a/libgomp/testsuite/libgomp.fortran/order-reproducible-1.f90 b/libgomp/testsuite/libgomp.fortran/order-reproducible-1.f90 index ba416b9..35a030e 100644 --- a/libgomp/testsuite/libgomp.fortran/order-reproducible-1.f90 +++ b/libgomp/testsuite/libgomp.fortran/order-reproducible-1.f90 @@ -1,5 +1,6 @@ ! { dg-additional-sources my-usleep.c } -! { dg-prune-output "command-line option '-fintrinsic-modules-path=.*' is valid for Fortran but not for C" } +! { dg-additional-options -Wno-complain-wrong-lang } + program main implicit none interface diff --git a/libgomp/testsuite/libgomp.fortran/order-reproducible-2.f90 b/libgomp/testsuite/libgomp.fortran/order-reproducible-2.f90 index 9d72020..c888251 100644 --- a/libgomp/testsuite/libgomp.fortran/order-reproducible-2.f90 +++ b/libgomp/testsuite/libgomp.fortran/order-reproducible-2.f90 @@ -1,5 +1,6 @@ ! { dg-additional-sources my-usleep.c } -! { dg-prune-output "command-line option '-fintrinsic-modules-path=.*' is valid for Fortran but not for C" } +! { dg-additional-options -Wno-complain-wrong-lang } + program main implicit none interface diff --git a/libgomp/testsuite/libgomp.fortran/task-detach-6.f90 b/libgomp/testsuite/libgomp.fortran/task-detach-6.f90 index 03a3b61..b2c476f 100644 --- a/libgomp/testsuite/libgomp.fortran/task-detach-6.f90 +++ b/libgomp/testsuite/libgomp.fortran/task-detach-6.f90 @@ -1,7 +1,5 @@ ! { dg-do run } - ! { dg-prune-output "command-line option '-fintrinsic-modules-path=.*' is valid for Fortran but not for C" } - ! Test tasks with detach clause on an offload device. Each device ! thread spawns off a chain of tasks, that can then be executed by ! any available thread. diff --git a/libgomp/testsuite/libgomp.oacc-fortran/parallel-dims.f90 b/libgomp/testsuite/libgomp.oacc-fortran/parallel-dims.f90 index d2050e6..178a66d 100644 --- a/libgomp/testsuite/libgomp.oacc-fortran/parallel-dims.f90 +++ b/libgomp/testsuite/libgomp.oacc-fortran/parallel-dims.f90 @@ -2,8 +2,8 @@ ! vector_length. ! { dg-additional-sources parallel-dims-aux.c } +! { dg-additional-options -Wno-complain-wrong-lang } ! { dg-do run } -! { dg-prune-output "command-line option '-fintrinsic-modules-path=.*' is valid for Fortran but not for C" } ! { dg-additional-options "-DEXPENSIVE" { target run_expensive_tests } } ! { dg-additional-options "-cpp" } |