public inbox for gcc-rust@gcc.gnu.org
 help / color / mirror / Atom feed
From: Thomas Schwinge <thomas@codesourcery.com>
To: Jakub Jelinek <jakub@redhat.com>,
	"Joseph S. Myers" <joseph@codesourcery.com>,
	<gcc-patches@gcc.gnu.org>
Cc: Arthur Cohen <arthur.cohen@embecosm.com>, <gcc-rust@gcc.gnu.org>,
	"Richard Biener" <richard.guenther@gmail.com>,
	Iain Buclaw <ibuclaw@gdcproject.org>
Subject: [PING, v2] Add '-Wno-complain-wrong-lang', and use it in 'gcc/testsuite/lib/target-supports.exp:check_compile' and elsewhere
Date: Tue, 21 Feb 2023 11:21:51 +0100	[thread overview]
Message-ID: <87cz63xqrk.fsf@euler.schwinge.homeip.net> (raw)
In-Reply-To: <Y76sPN4TW1sovXDs@tucnak>

[-- Attachment #1: Type: text/plain, Size: 2959 bytes --]

Hi!

On 2023-01-11T13:31:56+0100, Jakub Jelinek via Gcc-patches <gcc-patches@gcc.gnu.org> wrote:
> On Wed, Jan 11, 2023 at 12:41:06PM +0100, Thomas Schwinge wrote:
>
> I think this should be reviewed by Joseph as option handling maintainer.

Joseph, please?

>> +@item -Wno-complain-wrong-lang
>> +@opindex Wcomplain-wrong-lang
>> +@opindex Wno-complain-wrong-lang
>> +By default, we complain about command-line options that are not valid
>> +for this front end.
>> +This may be disabled with @code{-Wno-complain-wrong-lang}.
>
> I think this description is too short and confusing, it isn't clear what
> "this" front end is, perhaps say "that are not valid for a front end
> which compiles a particular source file"?
> And certainly give an example and more explanation that the option is
> mostly useful when a single compiler driver invocation is compiling
> multiple sources written in different languages.

Good suggestion, thanks.  I've changed the documentation as follows:

    --- gcc/common.opt
    +++ gcc/common.opt
     Wcomplain-wrong-lang
     Common Var(warn_complain_wrong_lang) Init(1) Warning
    -Complain when a command-line option is not valid for this front end.
    +Complain when a command-line option is valid, but not applicable to the current front end.

    --- gcc/doc/invoke.texi
    +++ gcc/doc/invoke.texi
    @@ -8943,9 +8943,21 @@ Warn for variables that might be changed by @code{longjmp} or
     @item -Wno-complain-wrong-lang
     @opindex Wcomplain-wrong-lang
     @opindex Wno-complain-wrong-lang
    -By default, we complain about command-line options that are not valid
    -for this front end.
    -This may be disabled with @code{-Wno-complain-wrong-lang}.
    +By default, language front ends complain when a command-line option is
    +valid, but not applicable to that front end.
    +This may be disabled with @option{-Wno-complain-wrong-lang},
    +which is mostly useful when invoking a single compiler driver for
    +multiple source files written in different languages, for example:
    +
    +@smallexample
    +$ g++ -fno-rtti a.cc b.f90
    +@end smallexample
    +
    +The driver @file{g++} invokes the C++ front end to compile @file{a.cc}
    +and the Fortran front end to compile @file{b.f90}.
    +The latter front end diagnoses
    +@samp{f951: Warning: command-line option '-fno-rtti' is valid for C++/D/ObjC++ but not for Fortran},
    +which may be disabled with @option{-Wno-complain-wrong-lang}.

Is the attached v2
"Add '-Wno-complain-wrong-lang', and use it in 'gcc/testsuite/lib/target-supports.exp:check_compile' and elsewhere"
OK?


Grüße
 Thomas


-----------------
Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-Add-Wno-complain-wrong-lang-and-use-it-in-gcc-testsu.patch --]
[-- Type: text/x-diff, Size: 33410 bytes --]

From 76c852eb86dc80a5391bdbc4ae58832695a565c9 Mon Sep 17 00:00:00 2001
From: Thomas Schwinge <thomas@codesourcery.com>
Date: Wed, 14 Dec 2022 17:16:42 +0100
Subject: [PATCH] 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'.
---
 gcc/common.opt                                |  4 ++
 gcc/doc/invoke.texi                           | 20 ++++++++
 gcc/opts-common.cc                            | 46 +++++++++++++++----
 gcc/opts-global.cc                            |  3 ++
 gcc/testsuite/g++.dg/abi/empty12.C            |  2 +-
 gcc/testsuite/g++.dg/abi/empty13.C            |  2 +-
 gcc/testsuite/g++.dg/abi/empty14.C            |  2 +-
 gcc/testsuite/g++.dg/abi/empty15.C            |  2 +-
 gcc/testsuite/g++.dg/abi/empty16.C            |  2 +-
 gcc/testsuite/g++.dg/abi/empty17.C            |  2 +-
 gcc/testsuite/g++.dg/abi/empty18.C            |  2 +-
 gcc/testsuite/g++.dg/abi/empty19.C            |  2 +-
 gcc/testsuite/g++.dg/abi/empty22.C            |  2 +-
 gcc/testsuite/g++.dg/abi/empty25.C            |  2 +-
 gcc/testsuite/g++.dg/abi/empty26.C            |  2 +-
 gcc/testsuite/gcc.dg/Wcomplain-wrong-lang-1.c |  2 +
 gcc/testsuite/gcc.dg/Wcomplain-wrong-lang-2.c |  2 +
 gcc/testsuite/gcc.dg/Wcomplain-wrong-lang-3.c |  2 +
 gcc/testsuite/gcc.dg/Wcomplain-wrong-lang-4.c |  2 +
 gcc/testsuite/gcc.dg/Wcomplain-wrong-lang-5.c |  2 +
 .../gfortran.dg/bind-c-contiguous-1.f90       |  2 +-
 .../gfortran.dg/bind-c-contiguous-4.f90       |  2 +-
 .../gfortran.dg/bind-c-contiguous-5.f90       |  2 +-
 gcc/testsuite/lib/target-supports.exp         |  4 ++
 .../testsuite/libgomp.fortran/alloc-10.f90    |  3 +-
 .../testsuite/libgomp.fortran/alloc-11.f90    |  3 +-
 libgomp/testsuite/libgomp.fortran/alloc-7.f90 |  3 +-
 libgomp/testsuite/libgomp.fortran/alloc-9.f90 |  3 +-
 .../testsuite/libgomp.fortran/allocate-1.f90  |  2 +-
 .../testsuite/libgomp.fortran/depend-4.f90    |  2 +-
 .../testsuite/libgomp.fortran/depend-5.f90    |  2 +-
 .../testsuite/libgomp.fortran/depend-6.f90    |  2 +-
 .../testsuite/libgomp.fortran/depend-7.f90    |  2 +-
 .../libgomp.fortran/depend-inoutset-1.f90     |  2 +-
 .../examples-4/declare_target-1.f90           |  2 +-
 .../examples-4/declare_target-2.f90           |  2 +-
 .../libgomp.fortran/order-reproducible-1.f90  |  3 +-
 .../libgomp.fortran/order-reproducible-2.f90  |  3 +-
 .../libgomp.fortran/task-detach-6.f90         |  2 -
 .../libgomp.oacc-fortran/parallel-dims.f90    |  2 +-
 40 files changed, 112 insertions(+), 41 deletions(-)
 create mode 100644 gcc/testsuite/gcc.dg/Wcomplain-wrong-lang-1.c
 create mode 100644 gcc/testsuite/gcc.dg/Wcomplain-wrong-lang-2.c
 create mode 100644 gcc/testsuite/gcc.dg/Wcomplain-wrong-lang-3.c
 create mode 100644 gcc/testsuite/gcc.dg/Wcomplain-wrong-lang-4.c
 create mode 100644 gcc/testsuite/gcc.dg/Wcomplain-wrong-lang-5.c

diff --git a/gcc/common.opt b/gcc/common.opt
index d0371aec8db..50bcc523fd2 100644
--- a/gcc/common.opt
+++ b/gcc/common.opt
@@ -582,6 +582,10 @@ Wcast-align=strict
 Common Var(warn_cast_align,2) Warning
 Warn about pointer casts which increase alignment.
 
+Wcomplain-wrong-lang
+Common Var(warn_complain_wrong_lang) Init(1) Warning
+Complain when a command-line option is valid, but not applicable to the current front end.
+
 Wcpp
 Common Var(warn_cpp) Init(1) Warning
 Warn when a #warning directive is encountered.
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index 51447a78584..65854c65bd3 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -343,6 +343,7 @@ Objective-C and Objective-C++ Dialects}.
 -Wcast-align  -Wcast-align=strict  -Wcast-function-type  -Wcast-qual  @gol
 -Wchar-subscripts @gol
 -Wclobbered  -Wcomment @gol
+-Wno-complain-wrong-lang @gol
 -Wconversion  -Wno-coverage-mismatch  -Wno-cpp @gol
 -Wdangling-else  -Wdangling-pointer  -Wdangling-pointer=@var{n}  @gol
 -Wdate-time @gol
@@ -8939,6 +8940,25 @@ programs.
 Warn for variables that might be changed by @code{longjmp} or
 @code{vfork}.  This warning is also enabled by @option{-Wextra}.
 
+@item -Wno-complain-wrong-lang
+@opindex Wcomplain-wrong-lang
+@opindex Wno-complain-wrong-lang
+By default, language front ends complain when a command-line option is
+valid, but not applicable to that front end.
+This may be disabled with @option{-Wno-complain-wrong-lang},
+which is mostly useful when invoking a single compiler driver for
+multiple source files written in different languages, for example:
+
+@smallexample
+$ g++ -fno-rtti a.cc b.f90
+@end smallexample
+
+The driver @file{g++} invokes the C++ front end to compile @file{a.cc}
+and the Fortran front end to compile @file{b.f90}.
+The latter front end diagnoses
+@samp{f951: Warning: command-line option '-fno-rtti' is valid for C++/D/ObjC++ but not for Fortran},
+which may be disabled with @option{-Wno-complain-wrong-lang}.
+
 @item -Wconversion
 @opindex Wconversion
 @opindex Wno-conversion
diff --git a/gcc/opts-common.cc b/gcc/opts-common.cc
index c3ede438ac0..23ddcaa3b55 100644
--- a/gcc/opts-common.cc
+++ b/gcc/opts-common.cc
@@ -1112,7 +1112,8 @@ cancel_option (int opt_idx, int next_opt_idx, int orig_next_opt_idx)
   return false;
 }
 
-/* Filter out options canceled by the ones after them.  */
+/* Filter out options canceled by the ones after them, and related
+   rearrangement.  */
 
 static void
 prune_options (struct cl_decoded_option **decoded_options,
@@ -1125,6 +1126,8 @@ prune_options (struct cl_decoded_option **decoded_options,
     = XNEWVEC (struct cl_decoded_option, old_decoded_options_count);
   unsigned int i;
   const struct cl_option *option;
+  unsigned int options_to_prepend = 0;
+  unsigned int Wcomplain_wrong_lang_idx = 0;
   unsigned int fdiagnostics_color_idx = 0;
 
   /* Remove arguments which are negated by others after them.  */
@@ -1146,8 +1149,17 @@ prune_options (struct cl_decoded_option **decoded_options,
 	case OPT_SPECIAL_input_file:
 	  goto keep;
 
-	/* Do not save OPT_fdiagnostics_color_, just remember the last one.  */
+	/* Do not handle the following yet, just remember the last one.  */
+	case OPT_Wcomplain_wrong_lang:
+	  gcc_checking_assert (i != 0);
+	  if (Wcomplain_wrong_lang_idx == 0)
+	    ++options_to_prepend;
+	  Wcomplain_wrong_lang_idx = i;
+	  continue;
 	case OPT_fdiagnostics_color_:
+	  gcc_checking_assert (i != 0);
+	  if (fdiagnostics_color_idx == 0)
+	    ++options_to_prepend;
 	  fdiagnostics_color_idx = i;
 	  continue;
 
@@ -1191,15 +1203,29 @@ keep:
 	}
     }
 
-  if (fdiagnostics_color_idx >= 1)
+  /* For those not yet handled, put (only) the last at a front position after
+     'argv[0]', so they can take effect immediately.  */
+  if (options_to_prepend)
     {
-      /* We put the last -fdiagnostics-color= at the first position
-	 after argv[0] so it can take effect immediately.  */
-      memmove (new_decoded_options + 2, new_decoded_options + 1,
-	       sizeof (struct cl_decoded_option) 
-	       * (new_decoded_options_count - 1));
-      new_decoded_options[1] = old_decoded_options[fdiagnostics_color_idx];
-      new_decoded_options_count++;
+      const unsigned int argv_0 = 1;
+      memmove (new_decoded_options + argv_0 + options_to_prepend,
+	       new_decoded_options + argv_0,
+	       sizeof (struct cl_decoded_option)
+	       * (new_decoded_options_count - argv_0));
+      unsigned int options_prepended = 0;
+      if (Wcomplain_wrong_lang_idx != 0)
+	{
+	  new_decoded_options[argv_0 + options_prepended++]
+	    = old_decoded_options[Wcomplain_wrong_lang_idx];
+	  new_decoded_options_count++;
+	}
+      if (fdiagnostics_color_idx != 0)
+	{
+	  new_decoded_options[argv_0 + options_prepended++]
+	    = old_decoded_options[fdiagnostics_color_idx];
+	  new_decoded_options_count++;
+	}
+      gcc_checking_assert (options_to_prepend == options_prepended);
     }
 
   free (old_decoded_options);
diff --git a/gcc/opts-global.cc b/gcc/opts-global.cc
index d07838490fd..b7bba23a323 100644
--- a/gcc/opts-global.cc
+++ b/gcc/opts-global.cc
@@ -91,6 +91,9 @@ complain_wrong_lang (const struct cl_decoded_option *decoded,
   char *ok_langs = NULL, *bad_lang = NULL;
   unsigned int opt_flags = option->flags;
 
+  if (!warn_complain_wrong_lang)
+    return;
+
   if (!lang_hooks.complain_wrong_lang_p (option))
     return;
 
diff --git a/gcc/testsuite/g++.dg/abi/empty12.C b/gcc/testsuite/g++.dg/abi/empty12.C
index 6568fc6202c..6d67f8d5519 100644
--- a/gcc/testsuite/g++.dg/abi/empty12.C
+++ b/gcc/testsuite/g++.dg/abi/empty12.C
@@ -2,7 +2,7 @@
 // { dg-do run { target { { i?86-*-* x86_64-*-* } && { ! { ia32 } } } } }
 // { dg-options "-Wabi=11 -x c" }
 // { dg-additional-sources "empty12a.c" }
-// { dg-prune-output "command-line option" }
+// { dg-additional-options -Wno-complain-wrong-lang }
 
 #include "empty12.h"
 extern "C" void fun(struct dummy, struct foo);
diff --git a/gcc/testsuite/g++.dg/abi/empty13.C b/gcc/testsuite/g++.dg/abi/empty13.C
index 9ec188760c7..47f1d7367a4 100644
--- a/gcc/testsuite/g++.dg/abi/empty13.C
+++ b/gcc/testsuite/g++.dg/abi/empty13.C
@@ -2,7 +2,7 @@
 // { dg-do run { target { { i?86-*-* x86_64-*-* } && { ! { ia32 } } } } }
 // { dg-options "-x c -fabi-version=11" }
 // { dg-additional-sources "empty13a.c" }
-// { dg-prune-output "command-line option" }
+// { dg-additional-options -Wno-complain-wrong-lang }
 
 #include "empty13.h"
 extern "C" void fun(struct dummy, struct foo);
diff --git a/gcc/testsuite/g++.dg/abi/empty14.C b/gcc/testsuite/g++.dg/abi/empty14.C
index 7deb463f5e4..8881bebf87b 100644
--- a/gcc/testsuite/g++.dg/abi/empty14.C
+++ b/gcc/testsuite/g++.dg/abi/empty14.C
@@ -2,7 +2,7 @@
 // { dg-do run { target { { i?86-*-* x86_64-*-* } && { ! { ia32 } } } } }
 // { dg-options "-Wabi=11 -x c" }
 // { dg-additional-sources "empty14a.c" }
-// { dg-prune-output "command-line option" }
+// { dg-additional-options -Wno-complain-wrong-lang }
 
 #include "empty14.h"
 extern "C" void fun(struct dummy, struct foo);
diff --git a/gcc/testsuite/g++.dg/abi/empty15.C b/gcc/testsuite/g++.dg/abi/empty15.C
index fd36194b459..2474911c5bb 100644
--- a/gcc/testsuite/g++.dg/abi/empty15.C
+++ b/gcc/testsuite/g++.dg/abi/empty15.C
@@ -2,7 +2,7 @@
 // { dg-do run { target { { i?86-*-* x86_64-*-* } && { ! { ia32 } } } } }
 // { dg-options "-Wabi=11 -x c" }
 // { dg-additional-sources "empty15a.c" }
-// { dg-prune-output "command-line option" }
+// { dg-additional-options -Wno-complain-wrong-lang }
 
 #include "empty15.h"
 extern "C" void fun(struct dummy, struct foo);
diff --git a/gcc/testsuite/g++.dg/abi/empty16.C b/gcc/testsuite/g++.dg/abi/empty16.C
index 024b00e7432..6db82a25620 100644
--- a/gcc/testsuite/g++.dg/abi/empty16.C
+++ b/gcc/testsuite/g++.dg/abi/empty16.C
@@ -2,7 +2,7 @@
 // { dg-do run { target { { i?86-*-* x86_64-*-* } && { ! { ia32 } } } } }
 // { dg-options "-Wabi=11 -x c" }
 // { dg-additional-sources "empty16a.c" }
-// { dg-prune-output "command-line option" }
+// { dg-additional-options -Wno-complain-wrong-lang }
 
 #include "empty16.h"
 extern "C" void fun(struct dummy, struct foo);
diff --git a/gcc/testsuite/g++.dg/abi/empty17.C b/gcc/testsuite/g++.dg/abi/empty17.C
index a6e58fa4d5f..26f3d774715 100644
--- a/gcc/testsuite/g++.dg/abi/empty17.C
+++ b/gcc/testsuite/g++.dg/abi/empty17.C
@@ -2,7 +2,7 @@
 // { dg-do run { target { { i?86-*-* x86_64-*-* } && { ! { ia32 } } } } }
 // { dg-options "-Wabi=11 -x c" }
 // { dg-additional-sources "empty17a.c" }
-// { dg-prune-output "command-line option" }
+// { dg-additional-options -Wno-complain-wrong-lang }
 
 #include "empty17.h"
 extern "C" void fun(struct dummy, struct foo);
diff --git a/gcc/testsuite/g++.dg/abi/empty18.C b/gcc/testsuite/g++.dg/abi/empty18.C
index 6e64dae8d47..02e41cad394 100644
--- a/gcc/testsuite/g++.dg/abi/empty18.C
+++ b/gcc/testsuite/g++.dg/abi/empty18.C
@@ -2,7 +2,7 @@
 // { dg-do run { target { { i?86-*-* x86_64-*-* } && { ! { ia32 } } } } }
 // { dg-options "-Wabi=11 -x c" }
 // { dg-additional-sources "empty18a.c" }
-// { dg-prune-output "command-line option" }
+// { dg-additional-options -Wno-complain-wrong-lang }
 
 #include "empty18.h"
 extern "C" void fun(struct dummy, struct foo);
diff --git a/gcc/testsuite/g++.dg/abi/empty19.C b/gcc/testsuite/g++.dg/abi/empty19.C
index 8707db86be6..89b92f11469 100644
--- a/gcc/testsuite/g++.dg/abi/empty19.C
+++ b/gcc/testsuite/g++.dg/abi/empty19.C
@@ -2,7 +2,7 @@
 // { dg-do run { target { { i?86-*-* x86_64-*-* } && { ! { ia32 } } } } }
 // { dg-options "-Wabi=11 -x c" }
 // { dg-additional-sources "empty19a.c" }
-// { dg-prune-output "command-line option" }
+// { dg-additional-options -Wno-complain-wrong-lang }
 
 #include "empty19.h"
 extern "C" void fun(struct dummy, struct foo);
diff --git a/gcc/testsuite/g++.dg/abi/empty22.C b/gcc/testsuite/g++.dg/abi/empty22.C
index d3720f86fde..1502ea01d12 100644
--- a/gcc/testsuite/g++.dg/abi/empty22.C
+++ b/gcc/testsuite/g++.dg/abi/empty22.C
@@ -2,7 +2,7 @@
 // { dg-do run { target { { i?86-*-* x86_64-*-* } && { ! { ia32 } } } } }
 // { dg-options "-Wabi=11 -x c" }
 // { dg-additional-sources "empty22a.c" }
-// { dg-prune-output "command-line option" }
+// { dg-additional-options -Wno-complain-wrong-lang }
 
 #include "empty22.h"
 extern "C" void fun(struct dummy, struct foo);
diff --git a/gcc/testsuite/g++.dg/abi/empty25.C b/gcc/testsuite/g++.dg/abi/empty25.C
index 50a4c266ca0..bfbaa837760 100644
--- a/gcc/testsuite/g++.dg/abi/empty25.C
+++ b/gcc/testsuite/g++.dg/abi/empty25.C
@@ -2,7 +2,7 @@
 // { dg-do run { target { { i?86-*-* x86_64-*-* } && { ! { ia32 } } } } }
 // { dg-options "-Wabi=11 -x c" }
 // { dg-additional-sources "empty25a.c" }
-// { dg-prune-output "command-line option" }
+// { dg-additional-options -Wno-complain-wrong-lang }
 
 #include "empty25.h"
 extern "C" void fun(struct dummy, struct foo);
diff --git a/gcc/testsuite/g++.dg/abi/empty26.C b/gcc/testsuite/g++.dg/abi/empty26.C
index 785cdc7d974..3a27bf69b15 100644
--- a/gcc/testsuite/g++.dg/abi/empty26.C
+++ b/gcc/testsuite/g++.dg/abi/empty26.C
@@ -2,7 +2,7 @@
 // { dg-do run { target { { i?86-*-* x86_64-*-* } && { ! { ia32 } } } } }
 // { dg-options "-Wabi=11 -x c" }
 // { dg-additional-sources "empty26a.c" }
-// { dg-prune-output "command-line option" }
+// { dg-additional-options -Wno-complain-wrong-lang }
 
 #include "empty26.h"
 extern "C" void fun(struct dummy, struct foo);
diff --git a/gcc/testsuite/gcc.dg/Wcomplain-wrong-lang-1.c b/gcc/testsuite/gcc.dg/Wcomplain-wrong-lang-1.c
new file mode 100644
index 00000000000..71016e05abf
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/Wcomplain-wrong-lang-1.c
@@ -0,0 +1,2 @@
+/* { dg-options -Wctad-maybe-unsupported } and '-Wcomplain-wrong-lang' enabled by default:
+   { dg-warning {command-line option '-Wctad-maybe-unsupported' is valid for C\+\+/ObjC\+\+ but not for C} {} { target *-*-* } 0 } */
diff --git a/gcc/testsuite/gcc.dg/Wcomplain-wrong-lang-2.c b/gcc/testsuite/gcc.dg/Wcomplain-wrong-lang-2.c
new file mode 100644
index 00000000000..ba2192dd2ea
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/Wcomplain-wrong-lang-2.c
@@ -0,0 +1,2 @@
+/* { dg-options {-Wcomplain-wrong-lang -Wctad-maybe-unsupported} }
+   { dg-warning {command-line option '-Wctad-maybe-unsupported' is valid for C\+\+/ObjC\+\+ but not for C} {} { target *-*-* } 0 } */
diff --git a/gcc/testsuite/gcc.dg/Wcomplain-wrong-lang-3.c b/gcc/testsuite/gcc.dg/Wcomplain-wrong-lang-3.c
new file mode 100644
index 00000000000..36bf748e53f
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/Wcomplain-wrong-lang-3.c
@@ -0,0 +1,2 @@
+/* { dg-options {-Wctad-maybe-unsupported -Wno-complain-wrong-lang} }
+   { dg-bogus {command-line option '-Wctad-maybe-unsupported' is valid for C\+\+/ObjC\+\+ but not for C} {} { target *-*-* } 0 } */
diff --git a/gcc/testsuite/gcc.dg/Wcomplain-wrong-lang-4.c b/gcc/testsuite/gcc.dg/Wcomplain-wrong-lang-4.c
new file mode 100644
index 00000000000..af185f86fd6
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/Wcomplain-wrong-lang-4.c
@@ -0,0 +1,2 @@
+/* { dg-options {-Wno-complain-wrong-lang -Wctad-maybe-unsupported} }
+   { dg-bogus {command-line option '-Wctad-maybe-unsupported' is valid for C\+\+/ObjC\+\+ but not for C} {} { target *-*-* } 0 } */
diff --git a/gcc/testsuite/gcc.dg/Wcomplain-wrong-lang-5.c b/gcc/testsuite/gcc.dg/Wcomplain-wrong-lang-5.c
new file mode 100644
index 00000000000..dc0a42c6295
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/Wcomplain-wrong-lang-5.c
@@ -0,0 +1,2 @@
+/* { dg-options {-Wcomplain-wrong-lang -Wctad-maybe-unsupported -Wno-complain-wrong-lang} }
+   { dg-bogus {command-line option '-Wctad-maybe-unsupported' is valid for C\+\+/ObjC\+\+ but not for C} {} { target *-*-* } 0 } */
diff --git a/gcc/testsuite/gfortran.dg/bind-c-contiguous-1.f90 b/gcc/testsuite/gfortran.dg/bind-c-contiguous-1.f90
index 975f74b0627..d638dbbef25 100644
--- a/gcc/testsuite/gfortran.dg/bind-c-contiguous-1.f90
+++ b/gcc/testsuite/gfortran.dg/bind-c-contiguous-1.f90
@@ -1,7 +1,7 @@
 ! { dg-do run }
 ! { dg-additional-sources bind-c-contiguous-1.c }
 ! { dg-additional-options "-fcheck=all" }
-! { dg-prune-output "command-line option '-fcheck=.*' is valid for Fortran but not for C" }
+! { dg-additional-options -Wno-complain-wrong-lang }
 
 ! Fortran demands that with bind(C), the callee ensure that for
 ! * 'contiguous'
diff --git a/gcc/testsuite/gfortran.dg/bind-c-contiguous-4.f90 b/gcc/testsuite/gfortran.dg/bind-c-contiguous-4.f90
index a58ba20df35..591c5a7146e 100644
--- a/gcc/testsuite/gfortran.dg/bind-c-contiguous-4.f90
+++ b/gcc/testsuite/gfortran.dg/bind-c-contiguous-4.f90
@@ -4,7 +4,7 @@
 !
 ! { dg-additional-sources bind-c-contiguous-4.c }
 ! { dg-additional-options "-fcheck=all" }
-! { dg-prune-output "command-line option '-fcheck=.*' is valid for Fortran but not for C" }
+! { dg-additional-options -Wno-complain-wrong-lang }
 
 ! Fortran demands that with bind(C), the callee ensure that for
 ! * 'contiguous'
diff --git a/gcc/testsuite/gfortran.dg/bind-c-contiguous-5.f90 b/gcc/testsuite/gfortran.dg/bind-c-contiguous-5.f90
index d1af9f7767a..58d9a98d514 100644
--- a/gcc/testsuite/gfortran.dg/bind-c-contiguous-5.f90
+++ b/gcc/testsuite/gfortran.dg/bind-c-contiguous-5.f90
@@ -1,7 +1,7 @@
 ! { dg-do run }
 ! { dg-additional-sources bind-c-contiguous-5.c }
 ! { dg-additional-options "-fcheck=all" }
-! { dg-prune-output "command-line option '-fcheck=.*' is valid for Fortran but not for C" }
+! { dg-additional-options -Wno-complain-wrong-lang }
 !  ---- Same as bind-c-contiguous-1.f90 - but with kind=4 characters
 ! Fortran demands that with bind(C), the callee ensure that for
 ! * 'contiguous'
diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
index 8825bca30dd..425fcf2743b 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -59,6 +59,10 @@ proc check_compile {basename type contents args} {
     } else {
 	set options ""
     }
+    # Silence "command-line option [...] is valid for [...] but not for [...]"
+    # that we may easily run into here, if more than one language is involved.
+    lappend options additional_flags=-Wno-complain-wrong-lang
+
     switch -glob -- $contents {
 	"*/\\* Assembly*" { set src ${basename}[pid].S }
 	"*! Fortran*" { set src ${basename}[pid].f90 }
diff --git a/libgomp/testsuite/libgomp.fortran/alloc-10.f90 b/libgomp/testsuite/libgomp.fortran/alloc-10.f90
index 3eab8598dec..834a2d25932 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 b02c68fbeea..e85e2faa11e 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 57ecd839c26..8ef40ffcbba 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 1da141631bc..4a1c6a75a4a 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 1547d2baeef..c10820e1402 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 80d00cae009..35b47e93ac2 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 b812b6dab53..7c3f29745cb 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 b5032e98a2f..bb085f21fd7 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 771a59c50f0..86e310c440c 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 46161c36cd2..6953b592095 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 5fbf03606ca..fcc7f51f4da 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 1bcdac97e23..d43d9abecd3 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 ba416b9525e..35a030ec666 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 9d720206144..c88825173c3 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 03a3b61540d..b2c476fd6a6 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 d2050e69eb9..178a66d6f79 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" }
-- 
2.25.1


  reply	other threads:[~2023-02-21 10:22 UTC|newest]

Thread overview: 81+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-12-06 10:13 Rust front-end patches v4 arthur.cohen
2022-12-06 10:13 ` [PATCH Rust front-end v4 01/46] Use DW_ATE_UTF for the Rust 'char' type arthur.cohen
2022-12-06 10:13 ` [PATCH Rust front-end v4 02/46] gccrs: Add necessary hooks for a Rust front-end testsuite arthur.cohen
2022-12-06 10:13 ` [PATCH Rust front-end v4 03/46] gccrs: Add Debug info testsuite arthur.cohen
2022-12-06 10:13 ` [PATCH Rust front-end v4 04/46] gccrs: Add link cases testsuite arthur.cohen
2022-12-06 10:13 ` [PATCH Rust front-end v4 05/46] gccrs: Add general compilation test cases arthur.cohen
2022-12-06 10:13 ` [PATCH Rust front-end v4 06/46] gccrs: Add execution " arthur.cohen
2022-12-06 10:13 ` [PATCH Rust front-end v4 07/46] gccrs: Add gcc-check-target check-rust arthur.cohen
2022-12-06 10:13 ` [PATCH Rust front-end v4 08/46] gccrs: Add Rust front-end base AST data structures arthur.cohen
2022-12-06 10:13 ` [PATCH Rust front-end v4 09/46] gccrs: Add definitions of Rust Items in " arthur.cohen
2022-12-06 10:13 ` [PATCH Rust front-end v4 10/46] gccrs: Add full definitions of Rust " arthur.cohen
2022-12-06 10:13 ` [PATCH Rust front-end v4 11/46] gccrs: Add Rust AST visitors arthur.cohen
2022-12-06 10:13 ` [PATCH Rust front-end v4 12/46] gccrs: Add Lexer for Rust front-end arthur.cohen
2022-12-06 10:13 ` [PATCH Rust front-end v4 13/46] gccrs: Add Parser for Rust front-end pt.1 arthur.cohen
2022-12-06 10:13 ` [PATCH Rust front-end v4 14/46] gccrs: Add Parser for Rust front-end pt.2 arthur.cohen
2022-12-06 10:13 ` [PATCH Rust front-end v4 15/46] gccrs: Add expansion pass for the Rust front-end arthur.cohen
2022-12-06 10:13 ` [PATCH Rust front-end v4 16/46] gccrs: Add name resolution pass to " arthur.cohen
2022-12-06 10:13 ` [PATCH Rust front-end v4 17/46] gccrs: Add declarations for Rust HIR arthur.cohen
2022-12-06 10:13 ` [PATCH Rust front-end v4 18/46] gccrs: Add HIR definitions and visitor framework arthur.cohen
2022-12-06 10:13 ` [PATCH Rust front-end v4 19/46] gccrs: Add AST to HIR lowering pass arthur.cohen
2022-12-06 10:13 ` [PATCH Rust front-end v4 20/46] gccrs: Add wrapper for make_unique arthur.cohen
2022-12-07  8:50   ` Arsen Arsenović
2022-12-07  9:14     ` Thomas Schwinge
2022-12-06 10:13 ` [PATCH Rust front-end v4 21/46] gccrs: Add port of FNV hash used during legacy symbol mangling arthur.cohen
2022-12-06 10:13 ` [PATCH Rust front-end v4 22/46] gccrs: Add Rust ABI enum helpers arthur.cohen
2022-12-06 10:13 ` [PATCH Rust front-end v4 23/46] gccrs: Add Base62 implementation arthur.cohen
2022-12-06 10:13 ` [PATCH Rust front-end v4 24/46] gccrs: Add implementation of Optional arthur.cohen
2022-12-06 10:13 ` [PATCH Rust front-end v4 25/46] gccrs: Add attributes checker arthur.cohen
2022-12-06 10:13 ` [PATCH Rust front-end v4 26/46] gccrs: Add helpers mappings canonical path and lang items arthur.cohen
2022-12-06 10:13 ` [PATCH Rust front-end v4 27/46] gccrs: Add type resolution and trait solving pass arthur.cohen
2022-12-06 10:14 ` [PATCH Rust front-end v4 28/46] gccrs: Add Rust type information arthur.cohen
2022-12-06 10:14 ` [PATCH Rust front-end v4 29/46] gccrs: Add remaining type system transformations arthur.cohen
2022-12-06 10:14 ` [PATCH Rust front-end v4 30/46] gccrs: Add unsafe checks for Rust arthur.cohen
2022-12-06 10:14 ` [PATCH Rust front-end v4 31/46] gccrs: Add const checker arthur.cohen
2022-12-06 10:14 ` [PATCH Rust front-end v4 32/46] gccrs: Add privacy checks arthur.cohen
2022-12-06 10:14 ` [PATCH Rust front-end v4 33/46] gccrs: Add dead code scan on HIR arthur.cohen
2022-12-06 10:14 ` [PATCH Rust front-end v4 34/46] gccrs: Add unused variable scan arthur.cohen
2022-12-06 10:14 ` [PATCH Rust front-end v4 35/46] gccrs: Add metadata output pass arthur.cohen
2022-12-06 10:14 ` [PATCH Rust front-end v4 36/46] gccrs: Add base for HIR to GCC GENERIC lowering arthur.cohen
2022-12-06 10:14 ` [PATCH Rust front-end v4 37/46] gccrs: Add HIR to GCC GENERIC lowering for all nodes arthur.cohen
2022-12-06 10:14 ` [PATCH Rust front-end v4 38/46] gccrs: Add HIR to GCC GENERIC lowering entry point arthur.cohen
2022-12-06 10:14 ` [PATCH Rust front-end v4 39/46] gccrs: These are wrappers ported from reusing gccgo arthur.cohen
2022-12-06 10:14 ` [PATCH Rust front-end v4 40/46] gccrs: Add GCC Rust front-end Make-lang.in arthur.cohen
2022-12-06 10:14 ` [PATCH Rust front-end v4 41/46] gccrs: Add config-lang.in arthur.cohen
2022-12-06 10:14 ` [PATCH Rust front-end v4 42/46] gccrs: Add lang-spec.h arthur.cohen
2022-12-06 10:14 ` [PATCH Rust front-end v4 43/46] gccrs: Add lang.opt arthur.cohen
2022-12-06 10:14 ` [PATCH Rust front-end v4 44/46] gccrs: Add compiler driver arthur.cohen
2022-12-06 10:14 ` [PATCH Rust front-end v4 45/46] gccrs: Compiler proper interface kicks off the pipeline arthur.cohen
2022-12-06 10:14 ` [PATCH Rust front-end v4 46/46] gccrs: Add README, CONTRIBUTING and compiler logo arthur.cohen
2022-12-09 10:18   ` Martin Liška
2022-12-13  1:43     ` Joseph Myers
2022-12-13 12:59       ` Martin Liška
2022-12-13 18:46         ` Joseph Myers
2022-12-06 11:03 ` Rust front-end patches v4 Richard Biener
2022-12-06 11:09   ` John Paul Adrian Glaubitz
2022-12-06 11:40     ` Arthur Cohen
2022-12-06 11:57       ` John Paul Adrian Glaubitz
2022-12-06 12:40         ` Mark Wielaard
2022-12-06 11:41   ` Iain Buclaw
2022-12-10  6:39   ` Prepare 'contrib/gcc-changelog/git_commit.py' for GCC/Rust (was: Rust front-end patches v4) Thomas Schwinge
2022-12-10  7:37     ` Add stub 'gcc/rust/ChangeLog' (was: Prepare 'contrib/gcc-changelog/git_commit.py' for GCC/Rust) Thomas Schwinge
2022-12-13 13:26   ` Rust front-end patches v4 Arthur Cohen
2022-12-13 13:30     ` Martin Liška
2022-12-13 13:53       ` Arthur Cohen
2022-12-13 13:40     ` Arthur Cohen
2022-12-14 22:58       ` Make '-frust-incomplete-and-experimental-compiler-do-not-use' a 'Common' option (was: Rust front-end patches v4) Thomas Schwinge
2022-12-15  7:53         ` Richard Biener
2022-12-15 10:14           ` Thomas Schwinge
2022-12-15 11:16             ` Jakub Jelinek
2022-12-15 11:39               ` Iain Buclaw
2022-12-15 11:50                 ` Jakub Jelinek
2022-12-15 15:01                   ` Thomas Schwinge
2022-12-15 15:17                     ` Jakub Jelinek
2022-12-16 14:10                       ` Add '-Wno-complain-wrong-lang', and use it in 'gcc/testsuite/lib/target-supports.exp:check_compile' and elsewhere (was: Make '-frust-incomplete-and-experimental-compiler-do-not-use' a 'Common' option) Thomas Schwinge
2022-12-16 21:24                         ` Iain Buclaw
2023-01-11 11:41                         ` [PING] Add '-Wno-complain-wrong-lang', and use it in 'gcc/testsuite/lib/target-supports.exp:check_compile' and elsewhere Thomas Schwinge
2023-01-11 12:31                           ` Jakub Jelinek
2023-02-21 10:21                             ` Thomas Schwinge [this message]
2023-02-21 23:20                               ` [PING, v2] " Joseph Myers
2022-12-09 13:24 ` Rust front-end patches v4 Martin Liška
2022-12-10 21:44   ` Thomas Schwinge

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87cz63xqrk.fsf@euler.schwinge.homeip.net \
    --to=thomas@codesourcery.com \
    --cc=arthur.cohen@embecosm.com \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=gcc-rust@gcc.gnu.org \
    --cc=ibuclaw@gdcproject.org \
    --cc=jakub@redhat.com \
    --cc=joseph@codesourcery.com \
    --cc=richard.guenther@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).