diff --git a/gcc/testsuite/c-c++-common/Wduplicated-branches-11.c b/gcc/testsuite/c-c++-common/Wduplicated-branches-11.c
index 70d86cf7f05f12a73d0aef3406d174811b30df63..39d33f27783f03537289088126a8e6de25f7c410 100644
--- a/gcc/testsuite/c-c++-common/Wduplicated-branches-11.c
+++ b/gcc/testsuite/c-c++-common/Wduplicated-branches-11.c
@@ -1,6 +1,7 @@
 /* PR c/64279 */
 /* { dg-do compile } */
 /* { dg-options "-Wduplicated-branches" } */
+/* { dg-options "-fpermissive -Wduplicated-branches" { target c } } */
 
 int
 f (int p)
diff --git a/gcc/testsuite/c-c++-common/Wduplicated-branches-12.c b/gcc/testsuite/c-c++-common/Wduplicated-branches-12.c
index cd746f1ad3090ae4c67925a9db21d6b989c66e17..3ba1a29366beb3b9f364acffa28615059094bc81 100644
--- a/gcc/testsuite/c-c++-common/Wduplicated-branches-12.c
+++ b/gcc/testsuite/c-c++-common/Wduplicated-branches-12.c
@@ -1,6 +1,7 @@
 /* PR c/64279 */
 /* { dg-do compile } */
 /* { dg-options "-Wduplicated-branches" } */
+/* { dg-options "-fpermissive -Wduplicated-branches" { target c } } */
 
 void
 f (int i)
diff --git a/gcc/testsuite/c-c++-common/builtins.c b/gcc/testsuite/c-c++-common/builtins.c
index 3f1ef115aedf5567576bdcb178093949c4b896b7..527c77e7952e756abe7b73389bf1fb041df06b3d 100644
--- a/gcc/testsuite/c-c++-common/builtins.c
+++ b/gcc/testsuite/c-c++-common/builtins.c
@@ -2,6 +2,7 @@
    with no prototype do not cause an ICE.
   { dg-do compile }
   { dg-options "-O2 -Wall -Wextra" }
+  { dg-additional-options "-fpermissive" { target c } }
   { dg-prune-output "warning" }
   { dg-require-effective-target alloca }  */
 
diff --git a/gcc/testsuite/c-c++-common/pointer-to-fn1.c b/gcc/testsuite/c-c++-common/pointer-to-fn1.c
index e2f948d824a4a941e42ec0fbd5601d146e69be4e..70a5831c95894e993cda8f6f2309520538117712 100644
--- a/gcc/testsuite/c-c++-common/pointer-to-fn1.c
+++ b/gcc/testsuite/c-c++-common/pointer-to-fn1.c
@@ -1,7 +1,7 @@
 /* PR c++/106937 */
 /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
-/* { dg-options "-fcf-protection" } */
-/* { dg-additional-options "-std=c++11 -fpermissive" { target c++ } } */
+/* { dg-options "-fpermissive -fcf-protection" } */
+/* { dg-additional-options "-std=c++11" { target c++ } } */
 /* Test printing a pointer to function with attribute.  */
 
 __attribute__((nocf_check)) typedef void (*FPA1)();
diff --git a/gcc/testsuite/gcc.c-torture/compile/20010320-1.c b/gcc/testsuite/gcc.c-torture/compile/20010320-1.c
index 14686d623181fa3f88e095818d303aa3e531d69a..f0b54e13a6da4301f09d6d7081ca1b147bf553df 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20010320-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/20010320-1.c
@@ -1,3 +1,5 @@
+/* { dg-additional-options "-fpermissive" } */
+
 typedef struct sec { 
 const char *name;
 int id;
diff --git a/gcc/testsuite/gcc.c-torture/compile/20050105-1.c b/gcc/testsuite/gcc.c-torture/compile/20050105-1.c
index 16d18f306371f46ade8904cd628b039c075a034f..52f644593afb0dfa6571e1ef3889b7b77a7c6c3a 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20050105-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/20050105-1.c
@@ -1,3 +1,4 @@
+/* { dg-additional-options "-fpermissive" } */
 void bar (struct S *);
 void foo (void *x)
 {
diff --git a/gcc/testsuite/gcc.c-torture/compile/20080704-1.c b/gcc/testsuite/gcc.c-torture/compile/20080704-1.c
index b5e38b4ba602f5fd8da01e5e468a2f7c1c0b0ee1..963162947dd0c901a51d58a25028bfabf48a4f1b 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20080704-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/20080704-1.c
@@ -1,5 +1,6 @@
 /* This code used to crash fold_convert due to PRE
    wanting to fold_convert from a REAL_TYPE to an INTEGER_TYPE.  */
+/* { dg-additional-options "-fpermissive" } */
 typedef unsigned int uint32_t;
 union double_union
 {
diff --git a/gcc/testsuite/gcc.c-torture/compile/20080910-1.c b/gcc/testsuite/gcc.c-torture/compile/20080910-1.c
index bf32775d4016b528ee9766768853944c546de283..911fb562790c809349f039d68db67e41a6e416a8 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20080910-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/20080910-1.c
@@ -1,5 +1,6 @@
 /* This used to crash IRA with -O3 -fPIC.
   See PR 37333.  */
+/* { dg-additional-options "-fpermissive" } */
 struct yy_buffer_state  {
   int yy_is_interactive;
 };
diff --git a/gcc/testsuite/gcc.c-torture/compile/20090917-1.c b/gcc/testsuite/gcc.c-torture/compile/20090917-1.c
index 2b8c37148bdf35d55939c121af7403bbae17e35e..0e45fdc63a43bcfed0ac3d28327d3e9e24d03a05 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20090917-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/20090917-1.c
@@ -1,3 +1,5 @@
+/* { dg-additional-options "-fpermissive" } */
+
 typedef int *loop_p;
 typedef struct VEC_loop_p_base
 {
diff --git a/gcc/testsuite/gcc.c-torture/compile/20100915-1.c b/gcc/testsuite/gcc.c-torture/compile/20100915-1.c
index 04f6ab0fd70a7df0ad958d43734f7f1526c4a952..6f137a075121cc012099899c880fb022092c61db 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20100915-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/20100915-1.c
@@ -1,5 +1,6 @@
 /* PR rtl-optimization/45593 */
 /* Testcase by Arnaud Lacombe <lacombar@gmail.com> */
+/* { dg-additional-options "-fpermissive" } */
 
 typedef unsigned int __u32;
 typedef __u32 __be32;
diff --git a/gcc/testsuite/gcc.c-torture/compile/20101216-1.c b/gcc/testsuite/gcc.c-torture/compile/20101216-1.c
index 0c58898c13f1987cfaebc7b6ae8fa95bba677529..8fae126984a1d54950bf817b79e5eaf7b42114d2 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20101216-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/20101216-1.c
@@ -1,3 +1,5 @@
+/* { dg-additional-options "-fpermissive" } */
+
 typedef signed int __int32_t;
 typedef unsigned int __uint32_t;
 typedef union
diff --git a/gcc/testsuite/gcc.c-torture/compile/20121027-1.c b/gcc/testsuite/gcc.c-torture/compile/20121027-1.c
index 7c92f3fa43685ea3f7d1c4172bec5fc5852ffeb2..3c9c9147ca792b63f1f82fdf135f91ac3802cd27 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20121027-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/20121027-1.c
@@ -1,4 +1,5 @@
 /* { dg-require-stack-size "1024+16" } */
+/* { dg-additional-options "-fpermissive" } */
 
 extern int nc;
 void f(void)
diff --git a/gcc/testsuite/gcc.c-torture/compile/20180605-1.c b/gcc/testsuite/gcc.c-torture/compile/20180605-1.c
index 915dafddad04fa0277df26da82c0b6ecf34cd6ef..59669297f19e4c023127ee03137a50c5fadbd3b8 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20180605-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/20180605-1.c
@@ -1,3 +1,5 @@
+/* { dg-additional-options "-fpermissive" } */
+
 void f (int *p, int n)
 {
     int j = 0, k;
diff --git a/gcc/testsuite/gcc.c-torture/compile/950816-2.c b/gcc/testsuite/gcc.c-torture/compile/950816-2.c
index e7f3bf7945391dcdd2f709392b7015fce19618e5..5d3fce166bf3932cf199b47732c7ee5519021a29 100644
--- a/gcc/testsuite/gcc.c-torture/compile/950816-2.c
+++ b/gcc/testsuite/gcc.c-torture/compile/950816-2.c
@@ -1,3 +1,4 @@
+/* { dg-additional-options "-fpermissive" } */
 int func (char *);
 void
 f (void)
diff --git a/gcc/testsuite/gcc.c-torture/compile/dse.c b/gcc/testsuite/gcc.c-torture/compile/dse.c
index 908e6503eb43c6002b787acedc25e85026f3940e..0728a629dec6bc0843938549ca58d8bee493ab44 100644
--- a/gcc/testsuite/gcc.c-torture/compile/dse.c
+++ b/gcc/testsuite/gcc.c-torture/compile/dse.c
@@ -1,3 +1,5 @@
+/* { dg-additional-options "-fpermissive" } */
+
 typedef unsigned long microblaze_reg_t;
 struct pt_regs
 {
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr100576.c b/gcc/testsuite/gcc.c-torture/compile/pr100576.c
index f16a8224c6ea05fc9062bcac4b3b622f65cd32d6..ad0b6325e8de1b8bd11784ebf21ff8bb3e28102c 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr100576.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr100576.c
@@ -1,4 +1,5 @@
 /* { dg-require-effective-target non_strict_prototype } */
+/* { dg-additional-options "-fpermissive" } */
 
 /* PR middle-end/100576 */
 
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr17408.c b/gcc/testsuite/gcc.c-torture/compile/pr17408.c
index 4819673f284f7d853aaaad0664ae61f3aa8e3fc6..6f07faec032794d1898f7996d478b1befbcf1154 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr17408.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr17408.c
@@ -1,4 +1,5 @@
 /* PRs 17408 and 17409, with different options. */
+/* { dg-additional-options "-fpermissive" } */
 extern int t;
 extern int t = 0;
 void f(){t =0;}
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr19121.c b/gcc/testsuite/gcc.c-torture/compile/pr19121.c
index b8f4c21f9eee38e699dc93620f8ac674e37afd59..aa8f0c40f97fef09c08388dd91277b792c62f2ec 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr19121.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr19121.c
@@ -1,3 +1,4 @@
+/* { dg-additional-options "-fpermissive" } */
 typedef struct interpreter {
   char Itokenbuf[256];
 } PerlInterpreter;
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr26213.c b/gcc/testsuite/gcc.c-torture/compile/pr26213.c
index 7a6600c18d504e857b8923d2822e724beddc5b52..d0b0bc5f785a458625f086b74b0a64e62caeedbc 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr26213.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr26213.c
@@ -1,3 +1,5 @@
+/* { dg-additional-options "-fpermissive" } */
+
 void
 xnanosleep (_Bool overflow)
 {
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr27341-2.c b/gcc/testsuite/gcc.c-torture/compile/pr27341-2.c
index e6be1e4712d8b2f20e59fec9ecd836465e3f45f8..3714ad282c21c8c3f42cf1832b64d5492965a0a4 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr27341-2.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr27341-2.c
@@ -1,3 +1,4 @@
+/* { dg-additional-options "-fpermissive" } */
 void zgemm_ (const int*, const double*);
 extern void matmul_c8 (_Complex double * dest)
 {
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr28776-2.c b/gcc/testsuite/gcc.c-torture/compile/pr28776-2.c
index 61a5d37dfa95d2848a2cc4e9ec2a388fbcf585ce..0165b770efa28c5642799234ad03186ebdc9a8ac 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr28776-2.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr28776-2.c
@@ -1,3 +1,4 @@
+/* { dg-additional-options "-fpermissive" } */
 typedef struct RangeCoder
 {
     unsigned char one_state[256];
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr33133.c b/gcc/testsuite/gcc.c-torture/compile/pr33133.c
index d1b09640eee2455639ac29d0e628609b6df5fa79..156f8fbfa112cc0bf5d5a35a0af9f6e708e99362 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr33133.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr33133.c
@@ -1,3 +1,4 @@
+/* { dg-additional-options "-fpermissive" } */
 static char newshuffle[256 + 16] = {
   0x0f, 0x08, 0x05, 0x07, 0x0c, 0x02, 0x0e, 0x09, 0x00, 0x01, 0x06, 0x0d,
     0x03, 0x04, 0x0b, 0x0a, 0x02, 0x0c, 0x0e, 0x06, 0x0f, 0x00, 0x01, 0x08,
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr34091.c b/gcc/testsuite/gcc.c-torture/compile/pr34091.c
index a623a383fd0720c942a57cf3536c242431c17453..2ea283c3812f9b93a306c16fd3f1147757588f1e 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr34091.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr34091.c
@@ -1,4 +1,5 @@
 /* { dg-skip-if "too many arguments in function call" { bpf-*-* } } */
+/* { dg-additional-options "-fpermissive" } */
 
 typedef unsigned int GLenum;
 typedef unsigned char GLboolean;
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr36154.c b/gcc/testsuite/gcc.c-torture/compile/pr36154.c
index ae3eb83fa11f3df89f61b3272396b0db96207bec..1eee6be3a5f18819946c85f1f63b50b3e3f46a65 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr36154.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr36154.c
@@ -1,3 +1,4 @@
+/* { dg-additional-options "-fpermissive" } */
 struct eth_test_pkt {
   unsigned short len;
   unsigned short ctr;
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr37381.c b/gcc/testsuite/gcc.c-torture/compile/pr37381.c
index d8cd47d329d06d5632ff182c4630b1274f47fdf8..e6a2e6f06ed685657af062aedfbe63c464753b62 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr37381.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr37381.c
@@ -1,4 +1,5 @@
 /* { dg-skip-if "too many arguments in function call" { bpf-*-* } } */
+/* { dg-additional-options "-fpermissive" } */
 
 extern unsigned int __invalid_size_argument_for_IOC;
 typedef unsigned int __u32;
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr38360.c b/gcc/testsuite/gcc.c-torture/compile/pr38360.c
index 4c67b0085ca2331d74b90c84c494d4e4d67cb6e7..d261ce3c44c8927e49270fa3bea23ab2540942ff 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr38360.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr38360.c
@@ -1,5 +1,6 @@
 /* PR middle-end/38360 */
 /* { dg-require-effective-target untyped_assembly } */
+/* { dg-additional-options "-fpermissive" } */
 
 int
 main ()
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr40291.c b/gcc/testsuite/gcc.c-torture/compile/pr40291.c
index d50bbee66080245e7efdc36dcf0bebe8a18fe9a0..dc37cd776c1608844667e2d1b5e14d37625da7dd 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr40291.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr40291.c
@@ -1,4 +1,5 @@
 /* PR middle-end/40291 */
+/* { dg-additional-options "-fpermissive" } */
 
 int
 foo (void *x, char *y, unsigned long long z)
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr41182-1.c b/gcc/testsuite/gcc.c-torture/compile/pr41182-1.c
index 017174938b3bf0a8ebbafd4cb680c83e6ec258b7..f14faf842315cde2bcd94ad42e04a43d5c8341bb 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr41182-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr41182-1.c
@@ -1,3 +1,5 @@
+/* { dg-additional-options "-fpermissive" } */
+
 typedef long unsigned int size_t;
 int _lae_process_opts(char *pr, char *pe)
 { 
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr43635.c b/gcc/testsuite/gcc.c-torture/compile/pr43635.c
index 3875f4efcd46895ecfa95d007108db0bbfa57b4a..cab02ec426c615a2457d5ce54bbc281e01816c51 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr43635.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr43635.c
@@ -1,5 +1,6 @@
 /* { dg-require-effective-target untyped_assembly } */
 /* { dg-require-effective-target indirect_calls } */
+/* { dg-additional-options "-fpermissive" } */
 
 extern void d (void);
 
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr44043.c b/gcc/testsuite/gcc.c-torture/compile/pr44043.c
index bd51089a70ae835149c50ebbd58d3b47ab954ec6..64a0f4e354e0d5f25eb11fb61269a003a2714e96 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr44043.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr44043.c
@@ -1,4 +1,5 @@
 /* { dg-require-effective-target indirect_calls } */
+/* { dg-additional-options "-fpermissive" } */
 
 typedef unsigned char __u8;
 typedef unsigned short __u16;
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr44063.c b/gcc/testsuite/gcc.c-torture/compile/pr44063.c
index 32208f610f9bc34308a7debb735847ba3bd246a0..ce9fc1b9027d49b99fabf45f94577060538b9762 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr44063.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr44063.c
@@ -1,4 +1,5 @@
 /* { dg-skip-if "exceeds eBPF stack limit" { bpf-*-* } } */
+/* { dg-additional-options "-fpermissive" } */
 
 typedef signed char int8_t;
 typedef short int16_t;
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr44246.c b/gcc/testsuite/gcc.c-torture/compile/pr44246.c
index 6e478690351cbc9e2e70e9a9f6f85a6fba53b32e..18f238a559c51f84441975ead4af50036fa8d9f8 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr44246.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr44246.c
@@ -1,3 +1,5 @@
+/* { dg-additional-options "-fpermissive" } */
+
 int main(int argc, char *argv[])
 {
   strcat(argv[0], "X");
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr45535.c b/gcc/testsuite/gcc.c-torture/compile/pr45535.c
index 03d15a12d053fcd23e32deddba855ed444aaae0f..3bafbf500dd66bf1fa6409fd6052f154e563c937 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr45535.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr45535.c
@@ -1,3 +1,5 @@
+/* { dg-additional-options "-fpermissive" } */
+
 typedef struct {
     unsigned long pmd0;
     unsigned long pmd1;
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr46934.c b/gcc/testsuite/gcc.c-torture/compile/pr46934.c
index a9c0b683315c213dffba0d5c9f7bb624215294de..46692565151b4323c76dd9e9ed1b9c0d6dc2eaf0 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr46934.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr46934.c
@@ -1,3 +1,5 @@
+/* { dg-additional-options "-fpermissive" } */
+
 int caller (unsigned int reg_type)
 {
   switch (reg_type)
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr47428.c b/gcc/testsuite/gcc.c-torture/compile/pr47428.c
index 3cd7bfdf56e27ac24cf121ff7d2642c560c3055c..914436f6b5d2b1b04745de42003ca2a447571af9 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr47428.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr47428.c
@@ -1,5 +1,6 @@
 /* PR tree-optimization/47428 */
 /* { dg-require-effective-target untyped_assembly } */
+/* { dg-additional-options "-fpermissive" } */
 
 struct S
 {
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr49145.c b/gcc/testsuite/gcc.c-torture/compile/pr49145.c
index b44e1977031f6be2cd3e8b2ab0ce902f06f56587..b7b8744bfae71e1265455fef342189ff5b066fd1 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr49145.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr49145.c
@@ -1,4 +1,6 @@
 /* { dg-require-effective-target untyped_assembly } */
+/* { dg-additional-options "-fpermissive" } */
+
 static int
 func1 (int a, int b)
 {
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr49206.c b/gcc/testsuite/gcc.c-torture/compile/pr49206.c
index 7596f6a3106bf5a9bdb355073c74cdf99b0d8f10..eda32df69f3b5de549898432dae638545f865e4f 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr49206.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr49206.c
@@ -1,4 +1,6 @@
 /* { dg-require-effective-target untyped_assembly } */
+/* { dg-additional-options "-fpermissive" } */
+
 struct S1
 {
   short f0;
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr51694.c b/gcc/testsuite/gcc.c-torture/compile/pr51694.c
index c06bc2118aad54eb5fc2ee861c17b2638b4f0aee..9eddc0bf405d7f07092cde39ece70f04f42cca68 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr51694.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr51694.c
@@ -1,5 +1,6 @@
 /* { dg-require-effective-target untyped_assembly } */
 /* { dg-require-effective-target indirect_calls } */
+/* { dg-additional-options "-fpermissive" } */
 
 void
 foo (x, fn)
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr53886.c b/gcc/testsuite/gcc.c-torture/compile/pr53886.c
index 89b696635296a7bd88caee38828fb8b37e535a08..d1c7accb54a055dd7d1f5f7ce676b3a04e08661b 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr53886.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr53886.c
@@ -1,4 +1,6 @@
 /* PR target/53886  */
+/* { dg-additional-options "-fpermissive" } */
+
 typedef struct asn1_string_st ASN1_BIT_STRING;
 typedef struct bignum_st BIGNUM;
 typedef struct ec_group_st EC_GROUP;
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr65241.c b/gcc/testsuite/gcc.c-torture/compile/pr65241.c
index dd76ac5309859817b89b753c267f643e1ef4c912..75e11a26dcc612e8658e8f051a29e7f3922171ed 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr65241.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr65241.c
@@ -1,3 +1,5 @@
+/* { dg-additional-options "-fpermissive" } */
+
 enum E { A, B, C, D };
 void fn4 (void);
 
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr72802.c b/gcc/testsuite/gcc.c-torture/compile/pr72802.c
index b9e1ab31580e795928b497f665fc0fb8b3634fa9..6aa7f2ee6085d2c15d3a89dd3c1c5a18be56f222 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr72802.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr72802.c
@@ -1,3 +1,4 @@
+/* { dg-additional-options "-fpermissive" } */
 static a[];
 static b, h, m, n, o, p, q, t, u, v, t5, t6, t16, t17, t18, t25;
 c;
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr81360.c b/gcc/testsuite/gcc.c-torture/compile/pr81360.c
index ffd3f2472de4e067f1eea7a9becdd698ac2c836c..b709a85940496ddf3822f138c03897a53b2d9043 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr81360.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr81360.c
@@ -1,3 +1,4 @@
+/* { dg-additional-options "-fpermissive" } */
 typedef a;
 b(void *c, a d) {
   if (c)
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr82052.c b/gcc/testsuite/gcc.c-torture/compile/pr82052.c
index 09fac5edb1e59d4eaaa532d99cb0eb4ddc43b04a..f13e7d9da44900a406009d80cf523647623dc2ec 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr82052.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr82052.c
@@ -1,4 +1,5 @@
 /* { dg-skip-if "exceeds eBPF stack limit" { bpf-*-* } } */
+/* { dg-additional-options "-fpermissive" } */
 
 typedef unsigned char uint8_t;
 typedef unsigned short uint16_t;
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr90275-2.c b/gcc/testsuite/gcc.c-torture/compile/pr90275-2.c
index 9ebf7d9fd1aae7e2520aaf34cfa6c1ff95668c8a..f8ed5ac917df0993d43ecd2d88a99d39ecbb3deb 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr90275-2.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr90275-2.c
@@ -1,3 +1,4 @@
+/* { dg-additional-options "-fpermissive" } */
 
 void
 a() {
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr90275.c b/gcc/testsuite/gcc.c-torture/compile/pr90275.c
index 83e0df77226b50161fa38fb9175f6c7d0722eab6..bdf654219e8cbc69d2ad9e327a50a72e1a8c31fc 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr90275.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr90275.c
@@ -1,3 +1,5 @@
+/* { dg-additional-options "-fpermissive" } */
+
 a, b, c;
 
 long long d;
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr96796.c b/gcc/testsuite/gcc.c-torture/compile/pr96796.c
index 82c7512f88b1c9e53d4285b541a8a67010dae844..debbe62e22f44f0c358b7ec3bd61178d2aa3a2fe 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr96796.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr96796.c
@@ -1,4 +1,4 @@
-/* { dg-additional-options "-fcommon" } */
+/* { dg-additional-options "-fpermissive -fcommon" } */
 /* { dg-require-effective-target non_strict_prototype } */
 
 struct S0 {
diff --git a/gcc/testsuite/gcc.c-torture/compile/regs-arg-size.c b/gcc/testsuite/gcc.c-torture/compile/regs-arg-size.c
index 77518866d3f623bf7162a3e5ccc440adfc30ef3e..2e10f628f0ff7fb75cbb455101399ee6d2d0e3a0 100644
--- a/gcc/testsuite/gcc.c-torture/compile/regs-arg-size.c
+++ b/gcc/testsuite/gcc.c-torture/compile/regs-arg-size.c
@@ -1,4 +1,5 @@
 /* { dg-skip-if "exceeds eBPF stack limit" { bpf-*-* } } */
+/* { dg-additional-options "-fpermissive" } */
 
 int foo;
 typedef long unsigned int size_t;
diff --git a/gcc/testsuite/gcc.c-torture/compile/udivmod4.c b/gcc/testsuite/gcc.c-torture/compile/udivmod4.c
index 40d2fa8d07c0fd6b460a19242459b289e2a9c43a..9d98a3d575db535e73b91adeafd606f8a3caa845 100644
--- a/gcc/testsuite/gcc.c-torture/compile/udivmod4.c
+++ b/gcc/testsuite/gcc.c-torture/compile/udivmod4.c
@@ -1,3 +1,5 @@
+/* { dg-additional-options "-fpermissive" } */
+
 long long
 xlrandom ()
 {
diff --git a/gcc/testsuite/gcc.c-torture/compile/widechar-1.c b/gcc/testsuite/gcc.c-torture/compile/widechar-1.c
index 5d89f33a864ec2a85f22f215752be4190a47831f..6a446d0b0e72205278f68ff58e7ea6fc47fc7726 100644
--- a/gcc/testsuite/gcc.c-torture/compile/widechar-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/widechar-1.c
@@ -1 +1,2 @@
+/* { dg-additional-options "-fpermissive" } */
 char *s = L"a" "b";
diff --git a/gcc/testsuite/gcc.c-torture/execute/20000412-3.c b/gcc/testsuite/gcc.c-torture/execute/20000412-3.c
index a5cb3eece03b403f72cee2de78694446432f56d4..305454ac2a818989c62c5d652bde74db1efe6e01 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20000412-3.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20000412-3.c
@@ -1,3 +1,5 @@
+/* { dg-additional-options "-fpermissive" } */
+
 typedef struct {
   char y;
   char x[32];
diff --git a/gcc/testsuite/gcc.c-torture/execute/20010605-2.c b/gcc/testsuite/gcc.c-torture/execute/20010605-2.c
index 09c7f76ac8203ca94294c52621405ec63a86a0ba..837e0a960d6257599f428b0984347ec61666c3b6 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20010605-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20010605-2.c
@@ -1,3 +1,5 @@
+/* { dg-additional-options "-fpermissive" } */
+
 void foo (), bar (), baz ();
 int main ()
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/20020314-1.c b/gcc/testsuite/gcc.c-torture/execute/20020314-1.c
index 2f68ae8ff6dbc6c1c8bf22b977285b2f5932b3d7..8484256fc54e4e9f0499cab7acb938a67d9f624b 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20020314-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20020314-1.c
@@ -1,4 +1,5 @@
 /* { dg-require-effective-target alloca } */
+/* { dg-additional-options "-fpermissive" } */
 void f(void * a, double y)
 {
 }
diff --git a/gcc/testsuite/gcc.c-torture/execute/20020819-1.c b/gcc/testsuite/gcc.c-torture/execute/20020819-1.c
index 549da910cd4fc371f5fa78d730713be432fa16af..6ef3e2e0c0e47a153a4443ef0f7984cefe117a67 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20020819-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20020819-1.c
@@ -1,3 +1,5 @@
+/* { dg-additional-options "-fpermissive" } */
+
 foo ()
 {
   return 0;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20031211-2.c b/gcc/testsuite/gcc.c-torture/execute/20031211-2.c
index 555b17d9ac69d1cd50d7d033ddc7025359646ff2..036a70d385a6cac9bb52abeadab8eb14a75a2781 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20031211-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20031211-2.c
@@ -1,3 +1,5 @@
+/* { dg-additional-options "-fpermissive" } */
+
 struct a
 {
   unsigned int bitfield : 3;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20040223-1.c b/gcc/testsuite/gcc.c-torture/execute/20040223-1.c
index c295e4b09eaeda683e53f9acff83f01c4b425212..4ec6ba71aaafef3c8f1ed56ea4a84da1ccd4336c 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20040223-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20040223-1.c
@@ -1,4 +1,5 @@
 /* { dg-require-effective-target alloca } */
+/* { dg-additional-options "-fpermissive" } */
 #include <string.h>
 #include <stdio.h>
 
diff --git a/gcc/testsuite/gcc.c-torture/execute/20041019-1.c b/gcc/testsuite/gcc.c-torture/execute/20041019-1.c
index 3c56b31e9ceb919a1d6ce4f7fdd433882e2bde78..d497d75f6f0b2ea221356cb5608ea732bf7e8108 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20041019-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20041019-1.c
@@ -1,3 +1,5 @@
+/* { dg-additional-options "-fpermissive" } */
+
 test_store_ccp (int i)
 {
   int *p, a, b, c;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20120427-1.c b/gcc/testsuite/gcc.c-torture/execute/20120427-1.c
index 46ed76ae9430d4545426894f91fe287aa0a98b15..fe7d072d2ae0d20ee73fbafe1d81e2d63b8a90f3 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20120427-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20120427-1.c
@@ -1,3 +1,5 @@
+/* { dg-additional-options "-fpermissive" } */
+
 typedef struct sreal
 {
   unsigned sig;		/* Significant.  */
diff --git a/gcc/testsuite/gcc.c-torture/execute/20120427-2.c b/gcc/testsuite/gcc.c-torture/execute/20120427-2.c
index e473a4772a9ee1316fb6ae36c1d76bf9ea78f584..c8e01216240ac770658615bae82ff625aff4869c 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20120427-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20120427-2.c
@@ -1,3 +1,5 @@
+/* { dg-additional-options "-fpermissive" } */
+
 typedef struct sreal
 {
   unsigned sig;		/* Significant.  */
diff --git a/gcc/testsuite/gcc.c-torture/execute/920908-2.c b/gcc/testsuite/gcc.c-torture/execute/920908-2.c
index 31c1ae0769c77b9605e67de4b63b43750e371214..ed95337e0b080f997ae64d4fbac148febd1ffa29 100644
--- a/gcc/testsuite/gcc.c-torture/execute/920908-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/920908-2.c
@@ -1,3 +1,4 @@
+/* { dg-additional-options "-fpermissive" } */
 /* The bit-field below would have a problem if __INT_MAX__ is too
    small.  */
 #if __INT_MAX__ < 2147483647
diff --git a/gcc/testsuite/gcc.c-torture/execute/921110-1.c b/gcc/testsuite/gcc.c-torture/execute/921110-1.c
index b04b84a65f9b92f8d00a0b72785392020aa97e25..c8d4e07ff52910cea8b90bdc70a7cf485f5fd501 100644
--- a/gcc/testsuite/gcc.c-torture/execute/921110-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/921110-1.c
@@ -1,3 +1,4 @@
+/* { dg-additional-options "-fpermissive" } */
 extern void abort(void);
 typedef void (*frob)();
 frob f[] = {abort};
diff --git a/gcc/testsuite/gcc.c-torture/execute/930111-1.c b/gcc/testsuite/gcc.c-torture/execute/930111-1.c
index e908f14f67f665f8faa4e39f137c35e29f94c3df..3a2b069b23da2df3de87cd79496777b3bf63fa58 100644
--- a/gcc/testsuite/gcc.c-torture/execute/930111-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/930111-1.c
@@ -1,3 +1,5 @@
+/* { dg-additional-options "-fpermissive" } */
+
 main()
 {
   if (wwrite((long long) 0) != 123)
diff --git a/gcc/testsuite/gcc.c-torture/execute/930208-1.c b/gcc/testsuite/gcc.c-torture/execute/930208-1.c
index 464b69d437e746457cb76e230a0adcbf364df502..ee10400d4e7a8f942c0aac17da3add106b93d34c 100644
--- a/gcc/testsuite/gcc.c-torture/execute/930208-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/930208-1.c
@@ -1,3 +1,5 @@
+/* { dg-additional-options "-fpermissive" } */
+
 typedef union {
   long l;
   struct { char b3, b2, b1, b0; } c;
diff --git a/gcc/testsuite/gcc.c-torture/execute/930702-1.c b/gcc/testsuite/gcc.c-torture/execute/930702-1.c
index 8828a701cb99ea02c920ae1745b15da48448cfdc..efe49305861fb097af4e0c9dfe2cb7f8643f3691 100644
--- a/gcc/testsuite/gcc.c-torture/execute/930702-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/930702-1.c
@@ -1,3 +1,4 @@
+/* { dg-additional-options "-fpermissive" } */
 fp (double a, int b)
 {
   if (a != 33 || b != 11)
diff --git a/gcc/testsuite/gcc.c-torture/execute/930818-1.c b/gcc/testsuite/gcc.c-torture/execute/930818-1.c
index 710e3ce2fbe12c8d8f22e7d0d87a65ca9eebd698..530cd5fe96cd548e0ecb2f319db68c6f3fece9e9 100644
--- a/gcc/testsuite/gcc.c-torture/execute/930818-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/930818-1.c
@@ -1,3 +1,5 @@
+/* { dg-additional-options "-fpermissive" } */
+
 static double one = 1.0;
 
 f()
diff --git a/gcc/testsuite/gcc.c-torture/execute/931017-1.c b/gcc/testsuite/gcc.c-torture/execute/931017-1.c
index 5917bd95b76daf388039ec17cff89f423435845c..7c4c5450db06505f7987a1b3b70111420ff0f757 100644
--- a/gcc/testsuite/gcc.c-torture/execute/931017-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/931017-1.c
@@ -1,3 +1,5 @@
+/* { dg-additional-options "-fpermissive" } */
+
 int v;
 
 main ()
diff --git a/gcc/testsuite/gcc.c-torture/execute/931018-1.c b/gcc/testsuite/gcc.c-torture/execute/931018-1.c
index 01b6050bf3531933a866512f2f37812223c69754..17deed87e9fdfdd8c8880016d93d2913d7994081 100644
--- a/gcc/testsuite/gcc.c-torture/execute/931018-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/931018-1.c
@@ -1,3 +1,5 @@
+/* { dg-additional-options "-fpermissive" } */
+
 unsigned int a[0x1000];
 extern const unsigned long v;
 
diff --git a/gcc/testsuite/gcc.c-torture/execute/931208-1.c b/gcc/testsuite/gcc.c-torture/execute/931208-1.c
index ee2bc9f1e04df8806e2cf1613afcfbdcb813eaa9..56da2ce32216f11811fda53f889c8fd2909992ae 100644
--- a/gcc/testsuite/gcc.c-torture/execute/931208-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/931208-1.c
@@ -1,3 +1,4 @@
+/* { dg-additional-options "-fpermissive" } */
 f ()
 {
   unsigned long x, y = 1;
diff --git a/gcc/testsuite/gcc.c-torture/execute/941101-1.c b/gcc/testsuite/gcc.c-torture/execute/941101-1.c
index 66b5f384a806b7c48a8c4dd9211077d2a43d3b0c..22542717d80407dd2d87ef3fdfdce771f0e90848 100644
--- a/gcc/testsuite/gcc.c-torture/execute/941101-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/941101-1.c
@@ -1,3 +1,4 @@
+/* { dg-additional-options "-fpermissive" } */
 f ()
 {
   int var = 7;
diff --git a/gcc/testsuite/gcc.c-torture/execute/941110-1.c b/gcc/testsuite/gcc.c-torture/execute/941110-1.c
index b78256d3c3f4018f0d4e5ff84650815767cd3d86..72a0a7e20f840804421b5883723bd4fdb0b0759d 100644
--- a/gcc/testsuite/gcc.c-torture/execute/941110-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/941110-1.c
@@ -1,3 +1,5 @@
+/* { dg-additional-options "-fpermissive" } */
+
 f (const int x)
 {
   int y = 0;
diff --git a/gcc/testsuite/gcc.c-torture/execute/950322-1.c b/gcc/testsuite/gcc.c-torture/execute/950322-1.c
index 28a1469fea0b820da2830a4a20f4ba312b2ccb4a..993939adae413d5b779fb72471643d6374444cb6 100644
--- a/gcc/testsuite/gcc.c-torture/execute/950322-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/950322-1.c
@@ -1,3 +1,5 @@
+/* { dg-additional-options "-fpermissive" } */
+
 f (unsigned char *a)
 {
   int i, j;
diff --git a/gcc/testsuite/gcc.c-torture/execute/950426-1.c b/gcc/testsuite/gcc.c-torture/execute/950426-1.c
index 076032c7220bd66f11068cc7a90c4dc6d1caa900..fb21b86fe18b5303900c7abe6213b5c9e53410f7 100644
--- a/gcc/testsuite/gcc.c-torture/execute/950426-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/950426-1.c
@@ -1,3 +1,4 @@
+/* { dg-additional-options "-fpermissive" } */
 
 struct tag {
   int m1;
diff --git a/gcc/testsuite/gcc.c-torture/execute/950512-1.c b/gcc/testsuite/gcc.c-torture/execute/950512-1.c
index 8aa116d27caa21ad57b19da6f610991aad959cad..8cc83981de9d49fb110ee025a622565fd2d428da 100644
--- a/gcc/testsuite/gcc.c-torture/execute/950512-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/950512-1.c
@@ -1,3 +1,5 @@
+/* { dg-additional-options "-fpermissive" } */
+
 unsigned
 f1 (x)
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/950621-1.c b/gcc/testsuite/gcc.c-torture/execute/950621-1.c
index 5fc5a90287413aeb83ab0b831330d85b9a290b43..f6c3469abdf7a4cca152827ee4e0ccf67c33479f 100644
--- a/gcc/testsuite/gcc.c-torture/execute/950621-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/950621-1.c
@@ -1,3 +1,5 @@
+/* { dg-additional-options "-fpermissive" } */
+
 struct s
 {
   int a;
diff --git a/gcc/testsuite/gcc.c-torture/execute/960218-1.c b/gcc/testsuite/gcc.c-torture/execute/960218-1.c
index dc94734a81f98749b5cd1e4d2006f88b6ea8d279..7420893ffdf0dd671b3781d476e9e96fdc3b1b43 100644
--- a/gcc/testsuite/gcc.c-torture/execute/960218-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/960218-1.c
@@ -1,3 +1,5 @@
+/* { dg-additional-options "-fpermissive" } */
+
 int gl;
 
 g (x)
diff --git a/gcc/testsuite/gcc.c-torture/execute/960402-1.c b/gcc/testsuite/gcc.c-torture/execute/960402-1.c
index 601a9a3b09135f474c1b50fee8c21079e4a7eeff..526f4c59f2e3fce611b5b7419dbdd2f65388a17d 100644
--- a/gcc/testsuite/gcc.c-torture/execute/960402-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/960402-1.c
@@ -1,3 +1,5 @@
+/* { dg-additional-options "-fpermissive" } */
+
 f (signed long long int x)
 {
   return x > 0xFFFFFFFFLL || x < -0x80000000LL;
diff --git a/gcc/testsuite/gcc.c-torture/execute/cmpsf-1.c b/gcc/testsuite/gcc.c-torture/execute/cmpsf-1.c
index 87886c6de5768595f06ad1ee90893cea8b039fbe..e3d1ad6d75bce250f5957ddc33db8957a1542ed8 100644
--- a/gcc/testsuite/gcc.c-torture/execute/cmpsf-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/cmpsf-1.c
@@ -1,3 +1,5 @@
+/* { dg-additional-options "-fpermissive" } */
+
 #include <limits.h>
 
 #define F 140
diff --git a/gcc/testsuite/gcc.c-torture/execute/cmpsi-1.c b/gcc/testsuite/gcc.c-torture/execute/cmpsi-1.c
index 9fce104fefb1dedcdb19259ec1fae5d135de7088..6d6d03798f7060322331f5f13a3b68b76b9a7b19 100644
--- a/gcc/testsuite/gcc.c-torture/execute/cmpsi-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/cmpsi-1.c
@@ -1,3 +1,5 @@
+/* { dg-additional-options "-fpermissive" } */
+
 f1 (unsigned int x, unsigned int y)
 {
   if (x == 0)
diff --git a/gcc/testsuite/gcc.c-torture/execute/cmpsi-2.c b/gcc/testsuite/gcc.c-torture/execute/cmpsi-2.c
index 52c8065dd1b7576727565fe06f54ee2de13f4f2a..3266b5ac056d6ced1cdb7b25d004ef62903b20d0 100644
--- a/gcc/testsuite/gcc.c-torture/execute/cmpsi-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/cmpsi-2.c
@@ -1,4 +1,6 @@
 /* { dg-require-effective-target int32plus } */
+/* { dg-additional-options "-fpermissive" } */
+
 #define F 140
 #define T 13
 
diff --git a/gcc/testsuite/gcc.c-torture/execute/divmod-1.c b/gcc/testsuite/gcc.c-torture/execute/divmod-1.c
index 2bcd109708d9aae5719a147bf54a4359e85f77cb..9b0bdc5854c70afcc27f1c6a7f78ff05a8af53dc 100644
--- a/gcc/testsuite/gcc.c-torture/execute/divmod-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/divmod-1.c
@@ -1,3 +1,5 @@
+/* { dg-additional-options "-fpermissive" } */
+
 div1 (signed char x)
 {
   return x / -1;
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr22061-1.c b/gcc/testsuite/gcc.c-torture/execute/pr22061-1.c
index ffd6ccc7b46b26231baa7cc4c025dddf721bfac3..0a0f767a1d4526a50dd14632318803de7c742ca8 100644
--- a/gcc/testsuite/gcc.c-torture/execute/pr22061-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/pr22061-1.c
@@ -1,4 +1,5 @@
 /* { dg-require-effective-target alloca } */
+/* { dg-additional-options "-fpermissive" } */
 int N = 1;
 void foo() {} /* Necessary to trigger the original ICE.  */
 void bar (char a[2][N]) { a[1][0] = N; }
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr55875.c b/gcc/testsuite/gcc.c-torture/execute/pr55875.c
index 4e56f7c26c1c84d92d1058079ed4b769cbfa278a..2ed1e19d507bab90a223433dc45981ab5aae058a 100644
--- a/gcc/testsuite/gcc.c-torture/execute/pr55875.c
+++ b/gcc/testsuite/gcc.c-torture/execute/pr55875.c
@@ -1,3 +1,4 @@
+/* { dg-additional-options "-fpermissive" } */
 int a[251];
 __attribute__ ((noinline))
 t(int i)
diff --git a/gcc/testsuite/gcc.dg/20050629-1.c b/gcc/testsuite/gcc.dg/20050629-1.c
index 99d9ce823b0a6d4cd0796f5782248924e7129537..cd7ab5d7dbf422d8892db53c8912dac6ccbab854 100644
--- a/gcc/testsuite/gcc.dg/20050629-1.c
+++ b/gcc/testsuite/gcc.dg/20050629-1.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-O2 -w" } */
+/* { dg-options "-O2 -w -fpermissive" } */
 /* { dg-skip-if "too many arguments in function call" { bpf-*-* } } */
 
 /* This file was automatically reduced from tree-ssa-operands.c.  It
diff --git a/gcc/testsuite/gcc.dg/20080615-1.c b/gcc/testsuite/gcc.dg/20080615-1.c
index bce9476cddb7a36361f54c37694726303e8956b6..1c35b8e8ca10c5cf562b7af086b3a6b6b578bbcf 100644
--- a/gcc/testsuite/gcc.dg/20080615-1.c
+++ b/gcc/testsuite/gcc.dg/20080615-1.c
@@ -1,5 +1,5 @@
 /* { dg-do compile }  */
-/* { dg-options "-w -O2" } */
+/* { dg-options "-w -fpermissive -O2" } */
 
 static int *see_bb_splay_ar = ((void *) 0);
 static void
diff --git a/gcc/testsuite/gcc.dg/Walloca-14.c b/gcc/testsuite/gcc.dg/Walloca-14.c
index 51362b2d6bee230285556d48a77254c6f16d67c9..554587c051b31c8c6715451731397b401be79c0d 100644
--- a/gcc/testsuite/gcc.dg/Walloca-14.c
+++ b/gcc/testsuite/gcc.dg/Walloca-14.c
@@ -4,6 +4,7 @@
 /* { dg-skip-if "small address space" { "pdp11-*-*" } } */
 /* { dg-options "-O2 -Walloca-larger-than=126812070" { target ptr32plus }  } */
 /* { dg-options "-O2 -Walloca-larger-than=12070" { target { ! ptr32plus } } } */
+/* { dg-additional-options "-fpermissive" } */
 
 void
 g (int *p)
diff --git a/gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch-3.c b/gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch-3.c
index f2ec32595461e5fb9266693e8dbe50574d766e3a..bc65279332329284a23ab1de716ddab402f9aa62 100644
--- a/gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch-3.c
+++ b/gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch-3.c
@@ -1,7 +1,7 @@
 /* PR c/83656 - missing -Wbuiltin-declaration-mismatch on declaration
    without prototype
    { dg-do compile }
-   { dg-options "-Wbuiltin-declaration-mismatch" } */
+   { dg-options "-fpermissive -Wbuiltin-declaration-mismatch" } */
 
 typedef __SIZE_TYPE__ size_t;
 
diff --git a/gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch-9.c b/gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch-9.c
index 82db8fe33d10a716e265580efae873d38b023ade..6a7b09f887c57a065049f0f83d87b492f29f699c 100644
--- a/gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch-9.c
+++ b/gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch-9.c
@@ -1,6 +1,6 @@
 /* PR c/88886 - ice in get_constant, at c-family/c-format.c:292
    { dg-do compile }
-   { dg-options "-Wall" } */
+   { dg-options "-fpermissive -Wall" } */
 
 int sscanf (long, unsigned[], ...);   /* { dg-warning "conflicting types for built-in function .sscanf.; expected .int\\\(const char \\\*, const char \\\*, ...\\\)." } */
 
diff --git a/gcc/testsuite/gcc.dg/Wdouble-promotion.c b/gcc/testsuite/gcc.dg/Wdouble-promotion.c
index d7a61899f7fb5938fa4e40ce3c8632140b4d5b66..0ad77915d8a344454b376901bf4befc1592b8c1f 100644
--- a/gcc/testsuite/gcc.dg/Wdouble-promotion.c
+++ b/gcc/testsuite/gcc.dg/Wdouble-promotion.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-Wdouble-promotion" } */
+/* { dg-options "-fpermissive -Wdouble-promotion" } */
 
 #include <stddef.h>
 
diff --git a/gcc/testsuite/gcc.dg/Wrestrict-5.c b/gcc/testsuite/gcc.dg/Wrestrict-5.c
index 21e190129e4811f7ed60999d27caeac4d81ee973..4ea9176f1f51ebb7c2f1f9cea03f093747db0456 100644
--- a/gcc/testsuite/gcc.dg/Wrestrict-5.c
+++ b/gcc/testsuite/gcc.dg/Wrestrict-5.c
@@ -4,7 +4,7 @@
    functions declared with no prototype are checked for overlap, and that
    invalid calls are ignored.
   { dg-do compile }
-  { dg-options "-O2 -Wrestrict" }  */
+  { dg-options "-O2 -fpermissive -Wrestrict" }  */
 
 void* memcpy ();
 char* strncpy ();
diff --git a/gcc/testsuite/gcc.dg/Wstringop-overflow-13.c b/gcc/testsuite/gcc.dg/Wstringop-overflow-13.c
index bd513151cea0ec74fbb0ed51dd148055876b30a8..021eaae335d1ce5425cb4aaf8c4b1c6f65497428 100644
--- a/gcc/testsuite/gcc.dg/Wstringop-overflow-13.c
+++ b/gcc/testsuite/gcc.dg/Wstringop-overflow-13.c
@@ -3,7 +3,7 @@
    PR middle-end/89911 - ICE on a call with no arguments to strnlen
    declared with no prototype
    { dg-do compile }
-   { dg-options "-O2 -Wall" } */
+   { dg-options "-O2 -fpermissive -Wall" } */
 
 typedef __SIZE_TYPE__ size_t;
 
diff --git a/gcc/testsuite/gcc.dg/analyzer/fd-bind-pr107783.c b/gcc/testsuite/gcc.dg/analyzer/fd-bind-pr107783.c
index 36304179b4359c2a60d3c81d820b5b6e49078087..8055e55f5c56501b04264178455026b9ff6bffe7 100644
--- a/gcc/testsuite/gcc.dg/analyzer/fd-bind-pr107783.c
+++ b/gcc/testsuite/gcc.dg/analyzer/fd-bind-pr107783.c
@@ -1,3 +1,5 @@
+/* { dg-additional-options "-fpermissive" } */
+
 int
 foo (void)
 {
diff --git a/gcc/testsuite/gcc.dg/array-5.c b/gcc/testsuite/gcc.dg/array-5.c
index 4083c92ffc9ef9adebc725e6fc746a9ad29edc73..1890a998ca61431f77fe0976c730b01bf23a8ae7 100644
--- a/gcc/testsuite/gcc.dg/array-5.c
+++ b/gcc/testsuite/gcc.dg/array-5.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "" } */
+/* { dg-options "-fpermissive" } */
 
 /* Check compatibility of array declarations.  */
 
diff --git a/gcc/testsuite/gcc.dg/asan/pr56417.c b/gcc/testsuite/gcc.dg/asan/pr56417.c
index b7eabf125aa9adc60ecf1e6bdefc109b49c055f4..010651ef6536d187d07c2be2f6310bdf09cdb2fa 100644
--- a/gcc/testsuite/gcc.dg/asan/pr56417.c
+++ b/gcc/testsuite/gcc.dg/asan/pr56417.c
@@ -1,6 +1,6 @@
 /* PR sanitizer/56417 */
 /* { dg-do compile } */
-/* { dg-options "-w" } */
+/* { dg-options "-fpermissive -w" } */
 
 int
 foo (void)
diff --git a/gcc/testsuite/gcc.dg/attr-access-read-only.c b/gcc/testsuite/gcc.dg/attr-access-read-only.c
index 71175d05ca556c451f30ff43c6a81fe721d8c3cc..0763bf6439e750e983ae1664cee419d0e61d6f59 100644
--- a/gcc/testsuite/gcc.dg/attr-access-read-only.c
+++ b/gcc/testsuite/gcc.dg/attr-access-read-only.c
@@ -2,7 +2,7 @@
    for buffer and its size
    Test to verify the handling of attribute access (read_only) syntax.
    { dg-do compile }
-   { dg-options "-Wall -ftrack-macro-expansion=0" } */
+   { dg-options "-fpermissive -Wall -ftrack-macro-expansion=0" } */
 
 int  __attribute__ ((access))
 access_v (void);       // { dg-error "wrong number of arguments specified for 'access' attribute" }
diff --git a/gcc/testsuite/gcc.dg/attr-access-read-write.c b/gcc/testsuite/gcc.dg/attr-access-read-write.c
index 849d9f1cf67a6ea2984cad5346cc80b6617f6704..c0d78b5e605f7882bca66504ac0c939e2e667a93 100644
--- a/gcc/testsuite/gcc.dg/attr-access-read-write.c
+++ b/gcc/testsuite/gcc.dg/attr-access-read-write.c
@@ -1,7 +1,7 @@
 /* PR middle-end/83859 - attribute to establish relation between parameters
    for buffer and its size
    { dg-do compile }
-   { dg-options "-Wall -ftrack-macro-expansion=0" } */
+   { dg-options "-fpermissive -Wall -ftrack-macro-expansion=0" } */
 
 int  __attribute__ ((access))
 access_v (void);       /* { dg-error "wrong number of arguments specified for 'access' attribute" } */
diff --git a/gcc/testsuite/gcc.dg/attr-access-write-only.c b/gcc/testsuite/gcc.dg/attr-access-write-only.c
index 2718b0db4564f0b99ec6d19e43e638a7b9fa0ed2..7bf30cc8b52bba7825c03480742c613638e99c07 100644
--- a/gcc/testsuite/gcc.dg/attr-access-write-only.c
+++ b/gcc/testsuite/gcc.dg/attr-access-write-only.c
@@ -2,7 +2,7 @@
    for buffer and its size
    Test to verify the handling of attribute access (write_only) syntax.
    { dg-do compile }
-   { dg-options "-Wall -ftrack-macro-expansion=0" } */
+   { dg-options "-fpermissive -Wall -ftrack-macro-expansion=0" } */
 
 int  __attribute__ ((access))
 access_v (void);       // { dg-error "wrong number of arguments specified for 'access' attribute" }
diff --git a/gcc/testsuite/gcc.dg/bitint-36.c b/gcc/testsuite/gcc.dg/bitint-36.c
index a1358e13b8c4cff9229aadfcb3b3b37a3fc502d2..692b16d06c91afc230e7372d3a3fb0c4c2fc1308 100644
--- a/gcc/testsuite/gcc.dg/bitint-36.c
+++ b/gcc/testsuite/gcc.dg/bitint-36.c
@@ -1,6 +1,6 @@
 /* PR c/102989 */
 /* { dg-do compile { target { bitint } } } */
-/* { dg-options "-std=c23 -Wint-in-bool-context -Waddress -Wpointer-to-int-cast -Wint-to-pointer-cast -Wint-conversion -Wshift-negative-value -Wshift-count-overflow -Wdiv-by-zero" } */
+/* { dg-options "-std=c23 -fpermissive -Wint-in-bool-context -Waddress -Wpointer-to-int-cast -Wint-to-pointer-cast -Wint-conversion -Wshift-negative-value -Wshift-count-overflow -Wdiv-by-zero" } */
 
 extern char *ax[];
 
diff --git a/gcc/testsuite/gcc.dg/builtin-bswap-10.c b/gcc/testsuite/gcc.dg/builtin-bswap-10.c
index 6c69bcd70d85c37a8d95675152a11f78c4139510..cd49fe08d1da44e9dc6448414fb261e503730996 100644
--- a/gcc/testsuite/gcc.dg/builtin-bswap-10.c
+++ b/gcc/testsuite/gcc.dg/builtin-bswap-10.c
@@ -1,5 +1,5 @@
 /* { dg-do compile { target { ! int128 } } } */
-/* { dg-options "" } */
+/* { dg-options "-fpermissive" } */
 /* { dg-final { scan-assembler "__builtin_" } } */
 
 int foo (int x)
diff --git a/gcc/testsuite/gcc.dg/cleanup-1.c b/gcc/testsuite/gcc.dg/cleanup-1.c
index 48b82646e4887de1d8dbf37c9c76613ce297c13d..c622a62a4ade83760e9d1dfc9072c34da6ad0884 100644
--- a/gcc/testsuite/gcc.dg/cleanup-1.c
+++ b/gcc/testsuite/gcc.dg/cleanup-1.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-Wall" } */
+/* { dg-options "-fpermissive -Wall" } */
 /* Validate expected warnings and errors.  */
 
 #define U	__attribute__((unused))
diff --git a/gcc/testsuite/gcc.dg/cpp/pr60014-1.c b/gcc/testsuite/gcc.dg/cpp/pr60014-1.c
index de52b30c16175aa889922afc03be77f63b813d72..1c9b5ad19af5609ab6b247a45b5b9cbf7bb4e478 100644
--- a/gcc/testsuite/gcc.dg/cpp/pr60014-1.c
+++ b/gcc/testsuite/gcc.dg/cpp/pr60014-1.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-save-temps -Wint-conversion" } */
+/* { dg-options "-fpermissive -save-temps -Wint-conversion" } */
 #include "pr60014-1.h"
 int main ()
 {
diff --git a/gcc/testsuite/gcc.dg/cpp/pr60014-2.c b/gcc/testsuite/gcc.dg/cpp/pr60014-2.c
index 115c9858ec760816c2dd09db21265f6a1e329df6..d9fe81c1f5eb4d975d2c9f1b28bf23a4f7c4efe4 100644
--- a/gcc/testsuite/gcc.dg/cpp/pr60014-2.c
+++ b/gcc/testsuite/gcc.dg/cpp/pr60014-2.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-save-temps -Wint-conversion" } */
+/* { dg-options "-save-temps -fpermissive -Wint-conversion" } */
 #include "pr60014-2.h"
 X
 char *should_warn = 1; /* { dg-warning {-Wint-conversion} } */
diff --git a/gcc/testsuite/gcc.dg/cpp/pr60014-3.c b/gcc/testsuite/gcc.dg/cpp/pr60014-3.c
index c4306035f051ba17c1fca9f3de683e7cfbdd3796..86545a6ae434f50d912e824a992264d33b57c541 100644
--- a/gcc/testsuite/gcc.dg/cpp/pr60014-3.c
+++ b/gcc/testsuite/gcc.dg/cpp/pr60014-3.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-save-temps -Wint-conversion" } */
+/* { dg-options "-save-temps -fpermissive -Wint-conversion" } */
 #include "pr60014-3.h"
 
 /* The line continuation on the next line is what triggers the problem here,
diff --git a/gcc/testsuite/gcc.dg/ipa/ipa-bit-cp-1.c b/gcc/testsuite/gcc.dg/ipa/ipa-bit-cp-1.c
index 2ec5fe54f55a07714880557d14ec0da9efb892cf..7b920ca539ac4578d462642cf58077c13248b8ef 100644
--- a/gcc/testsuite/gcc.dg/ipa/ipa-bit-cp-1.c
+++ b/gcc/testsuite/gcc.dg/ipa/ipa-bit-cp-1.c
@@ -1,5 +1,5 @@
 /* { dg-do run } */
-/* { dg-options "-O2 -w -fipa-bit-cp"  } */
+/* { dg-options "-fpermissive -O2 -w -fipa-bit-cp"  } */
 static int
 __attribute__ ((noinline))
 test (int a)
diff --git a/gcc/testsuite/gcc.dg/ipa/ipa-bit-cp-2.c b/gcc/testsuite/gcc.dg/ipa/ipa-bit-cp-2.c
index 42ce346948ca1f4b7964da60ccde736589cf5f6e..3a2c9c8adb36ce4c87bb791ecf3b6302e832d7ae 100644
--- a/gcc/testsuite/gcc.dg/ipa/ipa-bit-cp-2.c
+++ b/gcc/testsuite/gcc.dg/ipa/ipa-bit-cp-2.c
@@ -1,5 +1,5 @@
 /* { dg-do run } */
-/* { dg-options "-O2 -w -fipa-bit-cp"  } */
+/* { dg-options "-fpermissive -O2 -w -fipa-bit-cp"  } */
 static int
 __attribute__ ((noinline))
 test (int __attribute__((unused)) b, int a)
diff --git a/gcc/testsuite/gcc.dg/ipa/ipa-bit-cp.c b/gcc/testsuite/gcc.dg/ipa/ipa-bit-cp.c
index 2ec5fe54f55a07714880557d14ec0da9efb892cf..7b920ca539ac4578d462642cf58077c13248b8ef 100644
--- a/gcc/testsuite/gcc.dg/ipa/ipa-bit-cp.c
+++ b/gcc/testsuite/gcc.dg/ipa/ipa-bit-cp.c
@@ -1,5 +1,5 @@
 /* { dg-do run } */
-/* { dg-options "-O2 -w -fipa-bit-cp"  } */
+/* { dg-options "-fpermissive -O2 -w -fipa-bit-cp"  } */
 static int
 __attribute__ ((noinline))
 test (int a)
diff --git a/gcc/testsuite/gcc.dg/ipa/pr105639.c b/gcc/testsuite/gcc.dg/ipa/pr105639.c
index 5534fe93fbf49d5b08dfcc895cfe9cef7c5f5fae..93bf037720a2b6303373b18d7275698e68b536a7 100644
--- a/gcc/testsuite/gcc.dg/ipa/pr105639.c
+++ b/gcc/testsuite/gcc.dg/ipa/pr105639.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-O -w" } */
+/* { dg-options "-fpermissive -O -w" } */
 
 void typedef (*cb) (void);
 
diff --git a/gcc/testsuite/gcc.dg/ipa/pr71981.c b/gcc/testsuite/gcc.dg/ipa/pr71981.c
index 1b2160246e80f8b703ce37f6bb715fc886de9fae..eddc8c851d6e60f6e4febc00c03cc038945c7569 100644
--- a/gcc/testsuite/gcc.dg/ipa/pr71981.c
+++ b/gcc/testsuite/gcc.dg/ipa/pr71981.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-O2 -w" } */
+/* { dg-options "-fpermissive -O2 -w" } */
 
 int **a;
 static void fn1(char **p1) {
diff --git a/gcc/testsuite/gcc.dg/lto/20081109_0.c b/gcc/testsuite/gcc.dg/lto/20081109_0.c
index eaa25f673d382b8bcda1cf0212b496909cb56480..78a73c0d750497577b7458ff59add6e38666cb4c 100644
--- a/gcc/testsuite/gcc.dg/lto/20081109_0.c
+++ b/gcc/testsuite/gcc.dg/lto/20081109_0.c
@@ -1,3 +1,3 @@
 /* { dg-lto-do assemble } */
-/* { dg-lto-options {{-w -flto}} }  */
+/* { dg-lto-options {{-fpermissive -w -flto}} }  */
 void Foo(void) { char bar[1]; free(bar); }
diff --git a/gcc/testsuite/gcc.dg/lto/pr54702_1.c b/gcc/testsuite/gcc.dg/lto/pr54702_1.c
index 2afb0fbc063914059025667743eea1c550b8974f..c304682e92fff684012fb2de881814f504a1b33c 100644
--- a/gcc/testsuite/gcc.dg/lto/pr54702_1.c
+++ b/gcc/testsuite/gcc.dg/lto/pr54702_1.c
@@ -1,3 +1,4 @@
+/* { dg-options "-fpermissive" } */
 int *b;
 void *d;
 int c;
diff --git a/gcc/testsuite/gcc.dg/lto/pr55525_0.c b/gcc/testsuite/gcc.dg/lto/pr55525_0.c
index d8d16d11d32d3918bc47f4b41c7e7dabe255fd39..5976a935ab33f79907609afaf054cea0e8e7680b 100644
--- a/gcc/testsuite/gcc.dg/lto/pr55525_0.c
+++ b/gcc/testsuite/gcc.dg/lto/pr55525_0.c
@@ -1,5 +1,5 @@
 /* { dg-lto-do link } */
-/* { dg-lto-options { { -fcommon -flto -w } } } */
+/* { dg-lto-options { { -fpermissive -fcommon -flto -w } } } */
 
 char s[sizeof (char *)];
 int main(void)
diff --git a/gcc/testsuite/gcc.dg/noncompile/20020213-1.c b/gcc/testsuite/gcc.dg/noncompile/20020213-1.c
index fa86e4789ff0d6bf212c609dfb8f9cc8a569ebe3..28b158eda714a3d847d1275262474beb6156b0c7 100644
--- a/gcc/testsuite/gcc.dg/noncompile/20020213-1.c
+++ b/gcc/testsuite/gcc.dg/noncompile/20020213-1.c
@@ -1,3 +1,4 @@
+/* { dg-additional-options "-fpermissive" } */
 /* PR c/5503
    Test whether argument checking is done for fputs, bzero and bcmp.  */
 typedef struct { int i; } FILE;
diff --git a/gcc/testsuite/gcc.dg/noncompile/pr71426.c b/gcc/testsuite/gcc.dg/noncompile/pr71426.c
index 874e18976e9de9e835d2664f2d3036e5470eb8fc..fe2f2f65c64a32c6ed4e457d2a2fae4f1b5eeb0f 100644
--- a/gcc/testsuite/gcc.dg/noncompile/pr71426.c
+++ b/gcc/testsuite/gcc.dg/noncompile/pr71426.c
@@ -1,5 +1,5 @@
 /* PR c/71426 */
 /* { dg-do compile } */
-/* { dg-options "-w" } */
+/* { dg-options "-fpermissive -w" } */
 
 int f (int x[x - x ()]); /* { dg-error "undeclared" } */
diff --git a/gcc/testsuite/gcc.dg/noncompile/undeclared-1.c b/gcc/testsuite/gcc.dg/noncompile/undeclared-1.c
index 5bb7c2a4df900eb99876dca7c3f2a0f57dff8e0d..0131ef50ee96f36ba8fb3da9ce447506efb4ff2e 100644
--- a/gcc/testsuite/gcc.dg/noncompile/undeclared-1.c
+++ b/gcc/testsuite/gcc.dg/noncompile/undeclared-1.c
@@ -1,6 +1,6 @@
 /* Test for no ICE with an undeclared identifier in an enum in old-style
    parameter decls.  PR 12560.  */
-/* { dg-options "-w" } */
+/* { dg-options "-fpermissive -w" } */
 
 foo(c)
      enum { a = b } c;  /* { dg-error "undeclared|for each" } */
diff --git a/gcc/testsuite/gcc.dg/overflow-warn-2.c b/gcc/testsuite/gcc.dg/overflow-warn-2.c
index 9232800fb2e17c14269c3809d20ed901c48b45cd..b3b7dbbb7e70fb50a107657586002cf6243329e7 100644
--- a/gcc/testsuite/gcc.dg/overflow-warn-2.c
+++ b/gcc/testsuite/gcc.dg/overflow-warn-2.c
@@ -1,7 +1,7 @@
 /* Test for diagnostics for constant overflow.  Test with -Wtraditional-conversion.  */
 /* Origin: Joseph Myers <joseph@codesourcery.com> */
 /* { dg-do compile } */
-/* { dg-options "-std=c99 -Wtraditional-conversion" } */
+/* { dg-options "-std=c99 -fpermissive -Wtraditional-conversion" } */
 
 #include <limits.h>
 
diff --git a/gcc/testsuite/gcc.dg/pr100142.c b/gcc/testsuite/gcc.dg/pr100142.c
index aec146cb0a97a1d515e9178dd9ac8b479a096dcb..fef271a2d23aad07dfd52ad46f3cf28ebf2f579c 100644
--- a/gcc/testsuite/gcc.dg/pr100142.c
+++ b/gcc/testsuite/gcc.dg/pr100142.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-fpreprocessed" } */
+/* { dg-options "-fpermissive -fpreprocessed" } */
 
 void
 foo (void)
diff --git a/gcc/testsuite/gcc.dg/pr100790.c b/gcc/testsuite/gcc.dg/pr100790.c
index 31e0effdea26ec8fc9c8c61e12776e9797dd81ea..3e00c1b6cedb782ede36cc90e2957e8779f23771 100644
--- a/gcc/testsuite/gcc.dg/pr100790.c
+++ b/gcc/testsuite/gcc.dg/pr100790.c
@@ -1,4 +1,4 @@
 // { dg-do compile }
-// { dg-options "-O2 -w" }
+// { dg-options "-fpermissive -O2 -w" }
 
 __builtin_clz(int x) { x ? __builtin_clz(x) : 32; }
diff --git a/gcc/testsuite/gcc.dg/pr100791.c b/gcc/testsuite/gcc.dg/pr100791.c
index 96cf34f14a472c0582a83ef93e5be5ed52087b1c..00cc4b185a3265e73ec828be2b1ca3a337248a9d 100644
--- a/gcc/testsuite/gcc.dg/pr100791.c
+++ b/gcc/testsuite/gcc.dg/pr100791.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "" } */
+/* { dg-options "-fpermissive" } */
 
 static inline int __attribute__((__always_inline__))
 foo ()
diff --git a/gcc/testsuite/gcc.dg/pr103093.c b/gcc/testsuite/gcc.dg/pr103093.c
index f42572147ade0ab80bbb84123e878db87412a2b3..36ec1b9d098fa6f55cd351b69c34cf20c5214d4c 100644
--- a/gcc/testsuite/gcc.dg/pr103093.c
+++ b/gcc/testsuite/gcc.dg/pr103093.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-O2" } */
+/* { dg-options "-fpermissive -O2" } */
 
 int i_0, c_4, uc_7, func_2_c_11;
 
diff --git a/gcc/testsuite/gcc.dg/pr105140.c b/gcc/testsuite/gcc.dg/pr105140.c
index 7d30985e850d2cd9924dbeaa8523aec41732c69a..173dc8c2fac8f0f30ce56b3ae36a8893601b6273 100644
--- a/gcc/testsuite/gcc.dg/pr105140.c
+++ b/gcc/testsuite/gcc.dg/pr105140.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-Os -w -Wno-psabi" } */
+/* { dg-options "-fpermissive -Os -w -Wno-psabi" } */
 /* { dg-skip-if "PR105147" { powerpc*-*-* s390*-*-* } } */
 
 typedef char __attribute__((__vector_size__ (16 * sizeof (char)))) U;
diff --git a/gcc/testsuite/gcc.dg/pr105250.c b/gcc/testsuite/gcc.dg/pr105250.c
index 4683e0e63a263aa27eade08a6815bd4bf629b4a7..c4f4ea0c3d7f4c2b8dc0f725db9732f29ec41d61 100644
--- a/gcc/testsuite/gcc.dg/pr105250.c
+++ b/gcc/testsuite/gcc.dg/pr105250.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-w -Wno-psabi -O2" } */
+/* { dg-options "-fpermissive -w -Wno-psabi -O2" } */
 /* { dg-skip-if "PR105266" { powerpc*-*-* s390*-*-* } } */
 
 typedef int __attribute__((__vector_size__(4))) T;
diff --git a/gcc/testsuite/gcc.dg/pr105853.c b/gcc/testsuite/gcc.dg/pr105853.c
index 4f234ac11d9752bab5c7eec30f3777613b6d3c08..c0a86ee6a196f5a7eee589f7724b7eea6b3eae92 100644
--- a/gcc/testsuite/gcc.dg/pr105853.c
+++ b/gcc/testsuite/gcc.dg/pr105853.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-O2" } */
+/* { dg-options "-fpermissive -O2" } */
 
 struct {
   struct {
diff --git a/gcc/testsuite/gcc.dg/pr105856.c b/gcc/testsuite/gcc.dg/pr105856.c
index dd3aa2f18c0938c0c78085f3a800f899ff6444bd..c8f0851599ddf61d052fe8eaf26ac3acddfa7387 100644
--- a/gcc/testsuite/gcc.dg/pr105856.c
+++ b/gcc/testsuite/gcc.dg/pr105856.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-O2" } */
+/* { dg-options "-fpermissive -O2" } */
 #pragma pack(1)
 struct {
   unsigned f0;
diff --git a/gcc/testsuite/gcc.dg/pr26865.c b/gcc/testsuite/gcc.dg/pr26865.c
index f49d1d29f9c9837094ecf8d9f0577c8ebcc59f74..e62030f60ab6482381af69c1d4335681b772ba94 100644
--- a/gcc/testsuite/gcc.dg/pr26865.c
+++ b/gcc/testsuite/gcc.dg/pr26865.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-O2 -std=c99" } */
+/* { dg-options "-fpermissive -O2 -std=c99" } */
 
 void
 foo (void)
diff --git a/gcc/testsuite/gcc.dg/pr40989.c b/gcc/testsuite/gcc.dg/pr40989.c
index 0fbc87082d3d1ba10fd2726cb05a4b78c57207a0..95392585a6a2e30a9c8da72d5eee3f23a5bf0aeb 100644
--- a/gcc/testsuite/gcc.dg/pr40989.c
+++ b/gcc/testsuite/gcc.dg/pr40989.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-Werror=implicit" } */
+/* { dg-options "-fpermissive -Werror=implicit" } */
 int main() {
   return pippo(); /* { dg-error "" } */
 }
diff --git a/gcc/testsuite/gcc.dg/pr42715.c b/gcc/testsuite/gcc.dg/pr42715.c
index 72bdfc86244f78d41b8168854253e2b92d1ec8b1..09237c6a4a397f7396f0c6aaa19db4c40f19012a 100644
--- a/gcc/testsuite/gcc.dg/pr42715.c
+++ b/gcc/testsuite/gcc.dg/pr42715.c
@@ -1,5 +1,5 @@
 /* { dg-do compile { target fpic } } */
-/* { dg-options "-fPIC -g -O2 -w" } */
+/* { dg-options "-fPIC -g -O2 -fpermissive -w" } */
 /* var-tracking failed to clobber the reg holding v at the asm insn,
    so v ended up bound to an intermediate PIC expression.  */
 
diff --git a/gcc/testsuite/gcc.dg/pr44971.c b/gcc/testsuite/gcc.dg/pr44971.c
index a1faef51be17eca1955d256becf75a11490fb64f..5cd314c2665d0b09c31c08e988fbd47332f08454 100644
--- a/gcc/testsuite/gcc.dg/pr44971.c
+++ b/gcc/testsuite/gcc.dg/pr44971.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-O2 -fcompare-debug -w" } */
+/* { dg-options "-O2 -fpermissive -fcompare-debug -w" } */
 
 typedef struct
 {
diff --git a/gcc/testsuite/gcc.dg/pr46571.c b/gcc/testsuite/gcc.dg/pr46571.c
index 435812210ea5849becc965528f2bd955cd6d43e7..393025b65ddfcadb9e1a689a410c81fdc0cd19c9 100644
--- a/gcc/testsuite/gcc.dg/pr46571.c
+++ b/gcc/testsuite/gcc.dg/pr46571.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-O2 -fcompare-debug -w" } */
+/* { dg-options "-O2 -fpermissive -fcompare-debug -w" } */
 
 typedef union tree_node *tree;
 typedef unsigned int source_location;
diff --git a/gcc/testsuite/gcc.dg/pr54363.c b/gcc/testsuite/gcc.dg/pr54363.c
index aea0f9057b0847663303794385d79e477b78a35c..bea284ac9756158e6b123f7526ff3d612cfa2cb0 100644
--- a/gcc/testsuite/gcc.dg/pr54363.c
+++ b/gcc/testsuite/gcc.dg/pr54363.c
@@ -1,6 +1,6 @@
 /* PR c/54363 */
 /* { dg-do compile } */
-/* { dg-options "-std=gnu99" } */
+/* { dg-options "-fpermissive -std=gnu99" } */
 
 struct S { char **a; };
 
diff --git a/gcc/testsuite/gcc.dg/pr56724-2.c b/gcc/testsuite/gcc.dg/pr56724-2.c
index 4abb7d899e72fdc7f0e509a7cfcef7dec384aa62..db6b452ad20c940e67df471198a2f14c88514a20 100644
--- a/gcc/testsuite/gcc.dg/pr56724-2.c
+++ b/gcc/testsuite/gcc.dg/pr56724-2.c
@@ -1,6 +1,6 @@
 /* PR c/56724 */
 /* { dg-do compile } */
-/* { dg-options "-Wc++-compat -Wpedantic" } */
+/* { dg-options "-fpermissive -Wc++-compat -Wpedantic" } */
 
 enum E1 { A };
 enum E2 { B };
diff --git a/gcc/testsuite/gcc.dg/pr59630.c b/gcc/testsuite/gcc.dg/pr59630.c
index 6a3c72552f5a08a318424afd7184b9e4636e6c93..693e2b9c18e013229fb15746836b95bc82cd4066 100644
--- a/gcc/testsuite/gcc.dg/pr59630.c
+++ b/gcc/testsuite/gcc.dg/pr59630.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-O" } */
+/* { dg-options "-fpermissive -O" } */
 
 _Bool foo()
 {
diff --git a/gcc/testsuite/gcc.dg/pr67043.c b/gcc/testsuite/gcc.dg/pr67043.c
index 36aa68673f15ef1e768830ec1ce98fe7f0da0713..746fb9717938613be205c6092c939b9f058c66a9 100644
--- a/gcc/testsuite/gcc.dg/pr67043.c
+++ b/gcc/testsuite/gcc.dg/pr67043.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-O3 -fcompare-debug -w" } */
+/* { dg-options "-O3 -fcompare-debug -fpermissive -w" } */
 
 extern void rt_mutex_owner (void);
 extern void rt_mutex_deadlock_account_lock (int);
diff --git a/gcc/testsuite/gcc.dg/pr67730-1.c b/gcc/testsuite/gcc.dg/pr67730-1.c
index bb82f6d8e85b2136a213e163afe76bc0db0a957c..2e1f5b51ffc593a3d36dfbe6c36b2393365bfc29 100644
--- a/gcc/testsuite/gcc.dg/pr67730-1.c
+++ b/gcc/testsuite/gcc.dg/pr67730-1.c
@@ -1,6 +1,6 @@
 /* PR c/67730 */
 /* { dg-do compile } */
-/* { dg-options "-Wc++-compat" } */
+/* { dg-options "-Wc++-compat -fpermissive" } */
 
 #include "pr67730.h"
 
diff --git a/gcc/testsuite/gcc.dg/pr67730-2.c b/gcc/testsuite/gcc.dg/pr67730-2.c
index 260cc3e3821c6db51010e8784bf3826f370fd990..b21555cf6aa9b9f180996ac81c9b5e52cb66a5e1 100644
--- a/gcc/testsuite/gcc.dg/pr67730-2.c
+++ b/gcc/testsuite/gcc.dg/pr67730-2.c
@@ -1,6 +1,6 @@
 /* PR c/67730 */
 /* { dg-do compile } */
-/* { dg-options "" } */
+/* { dg-options "-fpermissive" } */
 
 #include "pr67730.h"
 
diff --git a/gcc/testsuite/gcc.dg/pr68320.c b/gcc/testsuite/gcc.dg/pr68320.c
index 5d891b9bb1ed387196179b7cebe851d5211f5bf3..6f22f0a68d911304e6ba24949ed2e5c33c437898 100644
--- a/gcc/testsuite/gcc.dg/pr68320.c
+++ b/gcc/testsuite/gcc.dg/pr68320.c
@@ -1,6 +1,6 @@
 /* PR c/68320 */
 /* { dg-do compile } */
-/* { dg-options "" } */
+/* { dg-options "-fpermissive" } */
 
 void
 fn1 (void)
diff --git a/gcc/testsuite/gcc.dg/pr69156.c b/gcc/testsuite/gcc.dg/pr69156.c
index 522ac00be46468bca934ac603e9b248ebd7eb8c3..5740971383c80c3b88acb6f4178c763a36ae1496 100644
--- a/gcc/testsuite/gcc.dg/pr69156.c
+++ b/gcc/testsuite/gcc.dg/pr69156.c
@@ -1,6 +1,6 @@
 /* PR tree-optimization/69156 */
 /* { dg-do compile } */
-/* { dg-options "-O1 -fno-tree-ccp" } */
+/* { dg-options "-fpermissive -O1 -fno-tree-ccp" } */
 
 _Bool
 foo ()
diff --git a/gcc/testsuite/gcc.dg/pr69824.c b/gcc/testsuite/gcc.dg/pr69824.c
index e2913f8f3d075319e5a3f461251deb9406217f47..899bed3409762aac0c5feb4cf53f4473aa35403e 100644
--- a/gcc/testsuite/gcc.dg/pr69824.c
+++ b/gcc/testsuite/gcc.dg/pr69824.c
@@ -1,4 +1,4 @@
 /* { dg-do compile } */
-/* { dg-options "-w" } */
+/* { dg-options "-fpermissive -w" } */
 int bar() { return foo(); }
 void baz(int c[foo()]) { return; }
diff --git a/gcc/testsuite/gcc.dg/pr70174.c b/gcc/testsuite/gcc.dg/pr70174.c
index 59d231e1623db0167d21d2385d6ebc3881e698e1..275ba36185d956d6e47485ea8c938efcc56f76e0 100644
--- a/gcc/testsuite/gcc.dg/pr70174.c
+++ b/gcc/testsuite/gcc.dg/pr70174.c
@@ -1,6 +1,6 @@
 /* PR rtl-optimization/70174 */
 /* { dg-do compile } */
-/* { dg-options "-O2" } */
+/* { dg-options "-fpermissive -O2" } */
 
 struct S { int f : 4; } a;
   
diff --git a/gcc/testsuite/gcc.dg/pr70281.c b/gcc/testsuite/gcc.dg/pr70281.c
index 9447fb1f2a8233e1f0f2f2f5607eaaab790c098a..7d408545452adcc3346f23f4f2ed9155e5146d05 100644
--- a/gcc/testsuite/gcc.dg/pr70281.c
+++ b/gcc/testsuite/gcc.dg/pr70281.c
@@ -1,4 +1,4 @@
-/* { dg-options "-Wall -fdiagnostics-show-caret" } */
+/* { dg-options "-fpermissive -Wall -fdiagnostics-show-caret" } */
 int bch_stats_show ()
 {
   return __builtin_types_compatible_p (unsigned, int) ? "" : "";  /* { dg-warning "cast" } */
diff --git a/gcc/testsuite/gcc.dg/pr77862.c b/gcc/testsuite/gcc.dg/pr77862.c
index a048cb4a74f65de007162fc9eaf05aa7b97f09cd..3ff8d082ef7cb141898f104af7b667cafe7dd21c 100644
--- a/gcc/testsuite/gcc.dg/pr77862.c
+++ b/gcc/testsuite/gcc.dg/pr77862.c
@@ -2,7 +2,7 @@
 /* PR tree-optimization/77862 */
 /* { dg-do compile } */
 /* { dg-require-effective-target fpic } */
-/* { dg-options "-O2 -fPIC -w" } */
+/* { dg-options "-fpermissive -O2 -fPIC -w" } */
 
 struct paramed_type
 {
diff --git a/gcc/testsuite/gcc.dg/pr82765.c b/gcc/testsuite/gcc.dg/pr82765.c
index dde0aeba7efec3b4d35b69670ff46bbdb7ce2e8e..03534b0cbd524508dc669f54ee5c88917c0644d1 100644
--- a/gcc/testsuite/gcc.dg/pr82765.c
+++ b/gcc/testsuite/gcc.dg/pr82765.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-Os -w" } */
+/* { dg-options "-fpermissive -Os -w" } */
 
 int a[1][1];
 int main() { int *b[] = {a, a[1820408606019012862278468], a, a, a}; }
diff --git a/gcc/testsuite/gcc.dg/pr83852.c b/gcc/testsuite/gcc.dg/pr83852.c
index 68ef78b8e10b9c55cea3fd9db8958015e9c011d7..602cc591d27edb71398e38671673d8503bd37349 100644
--- a/gcc/testsuite/gcc.dg/pr83852.c
+++ b/gcc/testsuite/gcc.dg/pr83852.c
@@ -1,5 +1,5 @@
 /* { dg-do compile { target powerpc*-*-* ia64-*-* i?86-*-* x86_64-*-* } } */
-/* { dg-options "-std=gnu99 -O2 -fselective-scheduling -fno-if-conversion -fno-tree-dse -w" } */
+/* { dg-options "-std=gnu99 -fpermissive -O2 -fselective-scheduling -fno-if-conversion -fno-tree-dse -w" } */
 long long int uo;
 unsigned int vt;
 
diff --git a/gcc/testsuite/gcc.dg/pr84206.c b/gcc/testsuite/gcc.dg/pr84206.c
index b4ac9c24c783c98cd127893833b9d191b26b00aa..424f474e3b84db892b5aa32aec34cea6c3bd5991 100644
--- a/gcc/testsuite/gcc.dg/pr84206.c
+++ b/gcc/testsuite/gcc.dg/pr84206.c
@@ -1,5 +1,5 @@
 /* { dg-do compile { target powerpc*-*-* ia64-*-* i?86-*-* x86_64-*-* } } */
-/* { dg-options "-O2 -fselective-scheduling -fsel-sched-pipelining -fsel-sched-pipelining-outer-loops -fno-forward-propagate -fno-tree-fre -w" } */
+/* { dg-options "-fpermissive -O2 -fselective-scheduling -fsel-sched-pipelining -fsel-sched-pipelining-outer-loops -fno-forward-propagate -fno-tree-fre -w" } */
 
 long long unsigned int ao;
 int hk;
diff --git a/gcc/testsuite/gcc.dg/pr85164-1.c b/gcc/testsuite/gcc.dg/pr85164-1.c
index 4c5995e88756a7b90eec96b8c9d463b007fb10e4..1594dbc46b3b0052b698d525e71b7c3af2d0edaa 100644
--- a/gcc/testsuite/gcc.dg/pr85164-1.c
+++ b/gcc/testsuite/gcc.dg/pr85164-1.c
@@ -1,4 +1,4 @@
-/* { dg-options "-O2 -w" } */
+/* { dg-options "-fpermissive -O2 -w" } */
 a[];
 b;
 c() {
diff --git a/gcc/testsuite/gcc.dg/pr85955.c b/gcc/testsuite/gcc.dg/pr85955.c
index 7f67f62dce67c811a6f01806ea1d9f6c6e1e888f..4c15ff40604f7397b28c193e551476f806cbb41e 100644
--- a/gcc/testsuite/gcc.dg/pr85955.c
+++ b/gcc/testsuite/gcc.dg/pr85955.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-O2 -w" } */
+/* { dg-options "-fpermissive -O2 -w" } */
 
 extern void sincos(double x, double *sinx, double *cosx);
 void apply(void (*f)(double, double *, double *),
diff --git a/gcc/testsuite/gcc.dg/pr86271.c b/gcc/testsuite/gcc.dg/pr86271.c
index 1200533d4d97884f39258f755adbf5d928b79e18..f020c1b1e2fc2bdab790e43165e543c2f77ccb61 100644
--- a/gcc/testsuite/gcc.dg/pr86271.c
+++ b/gcc/testsuite/gcc.dg/pr86271.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-O2" } */
+/* { dg-options "-fpermissive -O2" } */
 
 int main ()
 {
diff --git a/gcc/testsuite/gcc.dg/pr86928.c b/gcc/testsuite/gcc.dg/pr86928.c
index 46b7644836ca57544bc296c3bc1038191261a3e1..1e56b2970ffde2ffda34f77fa27cd684ec195447 100644
--- a/gcc/testsuite/gcc.dg/pr86928.c
+++ b/gcc/testsuite/gcc.dg/pr86928.c
@@ -1,5 +1,5 @@
 /* { dg-do compile { target powerpc*-*-* ia64-*-* i?86-*-* x86_64-*-* } } */
-/* { dg-options "-O2 -fnon-call-exceptions -fsel-sched-pipelining -fsel-sched-pipelining-outer-loops -fselective-scheduling -fno-if-conversion -fno-tree-dce -w" } */
+/* { dg-options "-fpermissive -O2 -fnon-call-exceptions -fsel-sched-pipelining -fsel-sched-pipelining-outer-loops -fselective-scheduling -fno-if-conversion -fno-tree-dce -w" } */
 
 int kn;
 
diff --git a/gcc/testsuite/gcc.dg/pr99122-1.c b/gcc/testsuite/gcc.dg/pr99122-1.c
index 5dfc0a85ad41aa205a5e4a8a176a0a7e86add140..d535bdd717360b3301c8796e49c186456eb517f9 100644
--- a/gcc/testsuite/gcc.dg/pr99122-1.c
+++ b/gcc/testsuite/gcc.dg/pr99122-1.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-O2 -g -w" } */
+/* { dg-options "-O2 -fpermissive -g -w" } */
 
 void f ()
 {
diff --git a/gcc/testsuite/gcc.dg/pr99136.c b/gcc/testsuite/gcc.dg/pr99136.c
index 1bd8446811b658d9a299c35fb1790dbf83d32260..cd1cc1ba5a793f7350eba0b6060b93e7c33710d2 100644
--- a/gcc/testsuite/gcc.dg/pr99136.c
+++ b/gcc/testsuite/gcc.dg/pr99136.c
@@ -1,6 +1,6 @@
 /* PR c/99136 */
 /* { dg-do compile } */
-/* { dg-options "-w -fexcess-precision=standard" } */
+/* { dg-options "-fpermissive -w -fexcess-precision=standard" } */
 
 void
 foo (double x)
diff --git a/gcc/testsuite/gcc.dg/redecl-19.c b/gcc/testsuite/gcc.dg/redecl-19.c
index cc10685448b52566dbe7da8f46c2882dbc40cc93..08e1146cae4d4b54c2000ccce5eda6741c41810f 100644
--- a/gcc/testsuite/gcc.dg/redecl-19.c
+++ b/gcc/testsuite/gcc.dg/redecl-19.c
@@ -1,5 +1,5 @@
 /* We used to ICE in the gimplifier, PR 106764 */
 /* { dg-do compile } */
-/* { dg-options "-w" } */
+/* { dg-options "-fpermissive -w" } */
 (*a)(); // { dg-note "" }
 b(){a()} a; // { dg-error "" }
diff --git a/gcc/testsuite/gcc.dg/redecl-24.c b/gcc/testsuite/gcc.dg/redecl-24.c
index f0f7a723ab81674d6390e31a8c056091a1144e05..c895df94c908f2b47d2aac8c3771f1228da5439d 100644
--- a/gcc/testsuite/gcc.dg/redecl-24.c
+++ b/gcc/testsuite/gcc.dg/redecl-24.c
@@ -1,6 +1,6 @@
 /* We used to ICE in the gimplifier, PR 106560 */
 /* { dg-do compile } */
-/* { dg-options "-w" } */
+/* { dg-options "-fpermissive -w" } */
 void **a, **b; /* { dg-note "" } */
 c(){b = a;}  
 a = /* { dg-error "" } */
diff --git a/gcc/testsuite/gcc.dg/torture/pr39204.c b/gcc/testsuite/gcc.dg/torture/pr39204.c
index 1389a52ec58b033516a81e364454ac3c63eb44c2..b8145b059ad8897b7c66ac4227ac9c9d90e5f8e2 100644
--- a/gcc/testsuite/gcc.dg/torture/pr39204.c
+++ b/gcc/testsuite/gcc.dg/torture/pr39204.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-w" } */
+/* { dg-options "-fpermissive -w" } */
 
 __extension__ typedef __SIZE_TYPE__ size_t;
 typedef unsigned char __u_char;
diff --git a/gcc/testsuite/gcc.dg/torture/pr57676.c b/gcc/testsuite/gcc.dg/torture/pr57676.c
index a8cacc630b38c22c08a14ffd5e44dcf4fa91982a..9762e818a89d9b015a3111b7648fbe8c1be44a34 100644
--- a/gcc/testsuite/gcc.dg/torture/pr57676.c
+++ b/gcc/testsuite/gcc.dg/torture/pr57676.c
@@ -1,7 +1,7 @@
 /* Verify that LRA does not abort prematurely in a release build of the
    compiler.  */
 /* { dg-do compile } */
-/* { dg-options "-fno-checking -w -funroll-loops" } */
+/* { dg-options "-fpermissive -fno-checking -w -funroll-loops" } */
 
 int a, b, c;
 
diff --git a/gcc/testsuite/gcc.dg/torture/pr67222.c b/gcc/testsuite/gcc.dg/torture/pr67222.c
index 1beba6dd22cb27c8a77cc3ca5c50507b9602abef..29b32b119b87c853b9a5c5982576aab04024eb74 100644
--- a/gcc/testsuite/gcc.dg/torture/pr67222.c
+++ b/gcc/testsuite/gcc.dg/torture/pr67222.c
@@ -1,5 +1,6 @@
 /* PR middle-end/67222 - ICE in gimple_call_arg with bogus posix_memalign */
 /* { dg-do compile } */
+/* { dg-additional-options "-fpermissive" } */
 
 void
 foo (void **p)
diff --git a/gcc/testsuite/gcc.dg/torture/pr77677-2.c b/gcc/testsuite/gcc.dg/torture/pr77677-2.c
index b586d7a038e724112ce4cf0d1c156c4a23fd5556..768ab12601cc31b7d4a5cd43a22c5ae1d4f0a8d8 100644
--- a/gcc/testsuite/gcc.dg/torture/pr77677-2.c
+++ b/gcc/testsuite/gcc.dg/torture/pr77677-2.c
@@ -1,6 +1,6 @@
 /* PR ipa/77677 */
 /* { dg-do compile } */
-/* { dg-options "-w" } */
+/* { dg-options "-fpermissive -w" } */
 
 enum machine_mode { MAX_MACHINE_MODE };
 
diff --git a/gcc/testsuite/gcc.dg/torture/pr79125.c b/gcc/testsuite/gcc.dg/torture/pr79125.c
index b5a39f560a5d7578526a8bcb52b46c40c420321f..e9a175577159bbe170ef12595538d4388ba7c10a 100644
--- a/gcc/testsuite/gcc.dg/torture/pr79125.c
+++ b/gcc/testsuite/gcc.dg/torture/pr79125.c
@@ -1,3 +1,4 @@
+/* { dg-additional-options "-fpermissive" } */
 int za;
 
 void
diff --git a/gcc/testsuite/gcc.dg/torture/pr94479.c b/gcc/testsuite/gcc.dg/torture/pr94479.c
index 3e4058279aa857fd39ce7db7eca968651e1081da..3189cd16234885f26cf3b79aead5a75de4448dd2 100644
--- a/gcc/testsuite/gcc.dg/torture/pr94479.c
+++ b/gcc/testsuite/gcc.dg/torture/pr94479.c
@@ -1,6 +1,6 @@
 /* { dg-do compile } */
 /* { dg-require-stack-check "specific" } */
-/* { dg-additional-options "-fstack-check -w" } */
+/* { dg-additional-options "-fpermissive -fstack-check -w" } */
 /* { dg-require-effective-target alloca } */
 
 int a;
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/20070815.c b/gcc/testsuite/gcc.dg/tree-ssa/20070815.c
index fa0e69f7cc4d19efb86a37d671b05bf9942a8296..52d646f8b2e0f111989ccc9ab41eb5bf592e643c 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/20070815.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/20070815.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-O -w" } */
+/* { dg-options "-fpermissive -O -w" } */
 
 /* This code snippet from glibc 2.3.5 was causing an ICE during
    optimization because we were failing to update the SSA form for
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-29.c b/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-29.c
index d0f7db26391ee0f0341115c3c44624b5b483c338..4d73f14cb4ade2dd8e6cc9ceae06c381f9b22c20 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-29.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-29.c
@@ -1,6 +1,6 @@
 /* PR middle-end/100732 - ICE on sprintf %s with integer argument
    { dg-do compile }
-   { dg-options "-O2 -Wall -fdump-tree-optimized" } */
+   { dg-options "-fpermissive -O2 -Wall -fdump-tree-optimized" } */
 
 #define sprintf(d, f, ...) \
   __builtin___sprintf_chk (d, 0, 32, f, __VA_ARGS__)
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/builtins-folding-gimple-ub.c b/gcc/testsuite/gcc.dg/tree-ssa/builtins-folding-gimple-ub.c
index 3946a8ca18c0ee678a6681090a7d377b7ad53970..944b4357befd328bdccddefb010959dde638a0ea 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/builtins-folding-gimple-ub.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/builtins-folding-gimple-ub.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-O1 -fdump-tree-optimized" } */
+/* { dg-options "-fpermissive -O1 -fdump-tree-optimized" } */
 
 char *buffer1;
 char *buffer2;
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr22051-2.c b/gcc/testsuite/gcc.dg/tree-ssa/pr22051-2.c
index 98114f3d422a6c75828ca0eae10fa2814e49a500..11a805990ef5ddaf020015729f18db1246355da0 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/pr22051-2.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr22051-2.c
@@ -1,5 +1,5 @@
 /* { dg-do compile }  */
-/* { dg-options "-O2 -fdump-tree-optimized -w" }  */
+/* { dg-options "-fpermissive -O2 -fdump-tree-optimized -w" }  */
 
 void *arf ();
 int
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-10.c b/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-10.c
index f97c57503ce426d201c38cc1307ab1b622b27b08..85633f13938c582c62f228442fdba6393943a2fb 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-10.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-10.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-O -w -fdump-tree-dse1-vops" } */
+/* { dg-options "-fpermissive -O -w -fdump-tree-dse1-vops" } */
 
 __extension__ typedef __SIZE_TYPE__ size_t;
 typedef struct _IO_FILE FILE;
diff --git a/gcc/testsuite/gcc.target/aarch64/pr60697.c b/gcc/testsuite/gcc.target/aarch64/pr60697.c
index 1b5857c1fbf342f731a648832f4104d31cfdc79d..6fcd632234d5a801679b638490e278acf24874e5 100644
--- a/gcc/testsuite/gcc.target/aarch64/pr60697.c
+++ b/gcc/testsuite/gcc.target/aarch64/pr60697.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-w -O3 -mcpu=cortex-a53" } */
+/* { dg-options "-fpermissive -w -O3 -mcpu=cortex-a53" } */
 typedef struct __sFILE __FILE;
 typedef __FILE FILE;
 typedef int atom_id;
diff --git a/gcc/testsuite/gcc.target/aarch64/pr87305.c b/gcc/testsuite/gcc.target/aarch64/pr87305.c
index 8beaa9176e0cdae34b160270977a306d4a4b681d..7a3e41820d62205a6da935d8da3f9b3f78f9fc8e 100644
--- a/gcc/testsuite/gcc.target/aarch64/pr87305.c
+++ b/gcc/testsuite/gcc.target/aarch64/pr87305.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-Ofast -mbig-endian -w" } */
+/* { dg-options "-fpermissive -Ofast -mbig-endian -w" } */
 
 int cc;
 
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/pr96357.c b/gcc/testsuite/gcc.target/aarch64/sve/pr96357.c
index e52867f57291d4a5d9a7d7c0d64e92efc8b28cfe..5d8fd8b53c3de7e52bc325410b40e86fbf359b0f 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/pr96357.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/pr96357.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-O3 -march=armv8.2-a+sve" } */
+/* { dg-options "-fpermissive -O3 -march=armv8.2-a+sve" } */
 
 int d;
 
diff --git a/gcc/testsuite/gcc.target/i386/attr-nocf-check-1a.c b/gcc/testsuite/gcc.target/i386/attr-nocf-check-1a.c
index f2751e8c8149f7803422f8b309f83e3b8a2fbe70..752a8a88480ec8ab3991cd92ab723427e626d706 100644
--- a/gcc/testsuite/gcc.target/i386/attr-nocf-check-1a.c
+++ b/gcc/testsuite/gcc.target/i386/attr-nocf-check-1a.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-fcf-protection" } */
+/* { dg-options "-fpermissive -fcf-protection" } */
 
 int func (int) __attribute__ ((nocf_check));
 int (*fptr) (int) __attribute__ ((nocf_check));
diff --git a/gcc/testsuite/gcc.target/i386/attr-nocf-check-3a.c b/gcc/testsuite/gcc.target/i386/attr-nocf-check-3a.c
index 9924cdc80f023875c967752b93e01a80d9da76b4..da8b7ffe6007f8a27966b9e78bbe949cfe9ba0b3 100644
--- a/gcc/testsuite/gcc.target/i386/attr-nocf-check-3a.c
+++ b/gcc/testsuite/gcc.target/i386/attr-nocf-check-3a.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-fcf-protection" } */
+/* { dg-options "-fpermissive -fcf-protection" } */
 
 int  foo (void) __attribute__ ((nocf_check));
 void (*foo1) (void) __attribute__((nocf_check));
diff --git a/gcc/testsuite/gcc.target/i386/avx512bf16-pr108881.c b/gcc/testsuite/gcc.target/i386/avx512bf16-pr108881.c
index 50a7382ec968518daa18a6a5b7ba7f532477e6d5..99256e9e2aad49d4427a6d6117fcec95cacfff45 100644
--- a/gcc/testsuite/gcc.target/i386/avx512bf16-pr108881.c
+++ b/gcc/testsuite/gcc.target/i386/avx512bf16-pr108881.c
@@ -1,6 +1,6 @@
 /* PR target/108881 */
 /* { dg-do compile } */
-/* { dg-options "-mavx512bf16 -mno-avx512vl" } */
+/* { dg-options "-fpermissive -mavx512bf16 -mno-avx512vl" } */
 
 typedef float __m256 __attribute__((__vector_size__(32)));
 typedef __bf16 __v16bf __attribute__((__vector_size__(32)));
diff --git a/gcc/testsuite/gcc.target/i386/cet-notrack-2a.c b/gcc/testsuite/gcc.target/i386/cet-notrack-2a.c
index 76b0e2d5611ea4e5fb773ca0bccb104d460650b4..2a70bc67fc0e98339c467a29aa7e55daf3ed6abd 100644
--- a/gcc/testsuite/gcc.target/i386/cet-notrack-2a.c
+++ b/gcc/testsuite/gcc.target/i386/cet-notrack-2a.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-O -fcf-protection" } */
+/* { dg-options "-fpermissive -O -fcf-protection" } */
 /* { dg-final { scan-assembler-times "endbr32" 1 { target ia32 } } } */
 /* { dg-final { scan-assembler-times "endbr64" 1 { target { ! ia32 } } } } */
 /* { dg-final { scan-assembler-times "notrack call\[ \t]+" 1 } } */
diff --git a/gcc/testsuite/gcc.target/i386/cet-notrack-2b.c b/gcc/testsuite/gcc.target/i386/cet-notrack-2b.c
index 8b4952d40bb339b240b1e116e2acc359ca7f1f5d..7ebf22a30d644023d8337511cd21b60ae816ab9c 100644
--- a/gcc/testsuite/gcc.target/i386/cet-notrack-2b.c
+++ b/gcc/testsuite/gcc.target/i386/cet-notrack-2b.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-O2 -fcf-protection" } */
+/* { dg-options "-fpermissive -O2 -fcf-protection" } */
 /* { dg-final { scan-assembler-times "endbr32" 1 { target ia32 } } } */
 /* { dg-final { scan-assembler-times "endbr64" 1 { target { ! ia32 } } } } */
 /* { dg-final { scan-assembler-times "notrack jmp\[ \t]+" 1 } } */
diff --git a/gcc/testsuite/gcc.target/i386/cet-notrack-5b.c b/gcc/testsuite/gcc.target/i386/cet-notrack-5b.c
index 255ad458a87a9bc7887f60a6347cdad01ce5f531..ed816bb945955ecc6e75aeba5ebaf8fb678bdd36 100644
--- a/gcc/testsuite/gcc.target/i386/cet-notrack-5b.c
+++ b/gcc/testsuite/gcc.target/i386/cet-notrack-5b.c
@@ -1,6 +1,6 @@
 /* Check the attribute do not proparate through assignment.  */
 /* { dg-do compile } */
-/* { dg-options "-O -fcf-protection" } */
+/* { dg-options "-fpermissive -O -fcf-protection" } */
 /* { dg-final { scan-assembler-times "endbr32" 1 { target ia32 } } } */
 /* { dg-final { scan-assembler-times "endbr64" 1 { target { ! ia32 } } } } */
 /* { dg-final { scan-assembler-times "\tcall\[ \t]+" 1 { target { ! ia32 } || { ! *-*-darwin* } } } } */
diff --git a/gcc/testsuite/gcc.target/i386/cet-notrack-6a.c b/gcc/testsuite/gcc.target/i386/cet-notrack-6a.c
index 8bbe6e48796c350661e9c7773c54d8ef908741dd..ae2a43a2459f6da7e144dec7e7d812448cea068f 100644
--- a/gcc/testsuite/gcc.target/i386/cet-notrack-6a.c
+++ b/gcc/testsuite/gcc.target/i386/cet-notrack-6a.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-O2 -fcf-protection" } */
+/* { dg-options "-fpermissive -O2 -fcf-protection" } */
 /* { dg-final { scan-assembler-times "endbr32" 1 { target ia32 } } } */
 /* { dg-final { scan-assembler-times "endbr64" 1 { target { ! ia32 } } } } */
 /* { dg-final { scan-assembler-times "\t(?:call|jmp)\[ \t]+.*foo" 1 } } */
diff --git a/gcc/testsuite/gcc.target/i386/cet-notrack-6b.c b/gcc/testsuite/gcc.target/i386/cet-notrack-6b.c
index f950d3a8689ab55451878c9cdf50e05930b3a572..32766c36eab4003fd9dc3b215e9f7cd30170d119 100644
--- a/gcc/testsuite/gcc.target/i386/cet-notrack-6b.c
+++ b/gcc/testsuite/gcc.target/i386/cet-notrack-6b.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-O0 -fcf-protection" } */
+/* { dg-options "-fpermissive -O0 -fcf-protection" } */
 /* { dg-final { scan-assembler-times "endbr32" 1 { target ia32 } } } */
 /* { dg-final { scan-assembler-times "endbr64" 1 { target { ! ia32 } } } } */
 /* { dg-final { scan-assembler-not "\tcall\[ \t]+" { target { ! ia32 } || { ! *-*-darwin* } } } } */
diff --git a/gcc/testsuite/gcc.target/i386/pr70325.c b/gcc/testsuite/gcc.target/i386/pr70325.c
index e2b9342658c3efe2e91fb69d336a9ab52c38dc46..8b307399333ef44def305343d37930d88a5eda36 100644
--- a/gcc/testsuite/gcc.target/i386/pr70325.c
+++ b/gcc/testsuite/gcc.target/i386/pr70325.c
@@ -1,6 +1,6 @@
 /* PR target/70325 */
 /* { dg-do compile } */
-/* { dg-options "-mavx512vl -O2" } */
+/* { dg-options "-fpermissive -mavx512vl -O2" } */
 
 typedef char C __attribute((__vector_size__(32)));
 typedef int I __attribute((__vector_size__(32)));
diff --git a/gcc/testsuite/gcc.target/i386/pr70858.c b/gcc/testsuite/gcc.target/i386/pr70858.c
index 99d7877346c14d1b1a2286fc6bc034ee44593d75..dcba4cc2c7d11fa360ac072e7baaae577107c68d 100644
--- a/gcc/testsuite/gcc.target/i386/pr70858.c
+++ b/gcc/testsuite/gcc.target/i386/pr70858.c
@@ -1,6 +1,6 @@
 /* PR target/70858 */
 /* { dg-do compile } */
-/* { dg-options "-O2 -mlwp -mbmi -mtbm -mbmi2 -std=gnu11" } */
+/* { dg-options "-fpermissive -O2 -mlwp -mbmi -mtbm -mbmi2 -std=gnu11" } */
 
 void
 f1 (unsigned long long x, unsigned int y)
diff --git a/gcc/testsuite/gcc.target/i386/pr83488.c b/gcc/testsuite/gcc.target/i386/pr83488.c
index e5ca770e5cc5d4dacf28613cb9375316ea5792d1..31060f327590cc5c9d5f868e5fa7d9346345b221 100644
--- a/gcc/testsuite/gcc.target/i386/pr83488.c
+++ b/gcc/testsuite/gcc.target/i386/pr83488.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-mavx512vbmi2 -mno-avx512f" } */
+/* { dg-options "-fpermissive -mavx512vbmi2 -mno-avx512f" } */
 
 typedef long long __v8di __attribute__((vector_size (64)));
 void
diff --git a/gcc/testsuite/gcc.target/i386/pr85511.c b/gcc/testsuite/gcc.target/i386/pr85511.c
index a082a5eaf018b5301329baf7b7ed91ccbdc863f4..39457aa46b48d2a6da696d1f7c4fc4cb50bc5d92 100644
--- a/gcc/testsuite/gcc.target/i386/pr85511.c
+++ b/gcc/testsuite/gcc.target/i386/pr85511.c
@@ -1,6 +1,6 @@
 /* PR target/85511 */
 /* { dg-do compile } */
-/* { dg-options "-Wimplicit-function-declaration" } */
+/* { dg-options "-fpermissive -Wimplicit-function-declaration" } */
 
 unsigned int
 foo (void)
diff --git a/gcc/testsuite/gcc.target/i386/pr87572.c b/gcc/testsuite/gcc.target/i386/pr87572.c
index ea1beb78f5cf65576335ebc86d9d4fb01ebf75dc..76882e9161fe90b392b4551a605c50ad776a0ec9 100644
--- a/gcc/testsuite/gcc.target/i386/pr87572.c
+++ b/gcc/testsuite/gcc.target/i386/pr87572.c
@@ -1,6 +1,6 @@
 /* PR target/82483 */
 /* { dg-do compile } */
-/* { dg-options "-O2 -mavx512ifma -mno-sse2 -w -Wno-psabi" } */
+/* { dg-options "-fpermissive -O2 -mavx512ifma -mno-sse2 -w -Wno-psabi" } */
 
 typedef long long __m512i __attribute__((__vector_size__(64)));
 __m512i
diff --git a/gcc/testsuite/gcc.target/i386/pr88195.c b/gcc/testsuite/gcc.target/i386/pr88195.c
index cd12adc063aeac0eccec4523d69c4c61618122ee..863647c9af06d028645422c743a90153f3e6821c 100644
--- a/gcc/testsuite/gcc.target/i386/pr88195.c
+++ b/gcc/testsuite/gcc.target/i386/pr88195.c
@@ -1,5 +1,5 @@
 /* PR target/88195 */
-/* { dg-options "-mptwrite" } */
+/* { dg-options "-fpermissive -mptwrite" } */
 
 void
 foo (void)