diff options
author | Florian Weimer <fweimer@redhat.com> | 2023-11-08 06:41:15 +0100 |
---|---|---|
committer | Florian Weimer <fweimer@redhat.com> | 2023-11-08 08:01:24 +0100 |
commit | da4315f5c820708db528a786e338392f881868a3 (patch) | |
tree | ec4e1137575f2ba46b2bdee98aca7e6792583543 /gcc | |
parent | f9148120048f4508156acfcd19a334f4dcbb96f0 (diff) | |
download | gcc-da4315f5c820708db528a786e338392f881868a3.zip gcc-da4315f5c820708db528a786e338392f881868a3.tar.gz gcc-da4315f5c820708db528a786e338392f881868a3.tar.bz2 |
c-family: Enable -fpermissive for C and ObjC
Future changes will treat some C front end warnings similar to
-Wnarrowing.
gcc/
* doc/invoke.texi (Warning Options): Mention C diagnostics
for -fpermissive.
gcc/c-family/
* c.opt (fpermissive): Enable for C and ObjC.
* c-opts.cc (c_common_post_options): Enable -fpermissive.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/c-family/c-opts.cc | 14 | ||||
-rw-r--r-- | gcc/c-family/c.opt | 2 | ||||
-rw-r--r-- | gcc/doc/invoke.texi | 8 |
3 files changed, 21 insertions, 3 deletions
diff --git a/gcc/c-family/c-opts.cc b/gcc/c-family/c-opts.cc index d30d413..fbabd18 100644 --- a/gcc/c-family/c-opts.cc +++ b/gcc/c-family/c-opts.cc @@ -854,6 +854,20 @@ c_common_post_options (const char **pfilename) && flag_unsafe_math_optimizations == 0) flag_fp_contract_mode = FP_CONTRACT_OFF; + /* C language modes before C99 enable -fpermissive by default, but + only if -pedantic-errors is not specified. Also treat + -fno-permissive as a subset of -pedantic-errors that does not + reject certain GNU extensions also present the defaults for later + language modes. */ + if (!c_dialect_cxx () + && !flag_isoc99 + && !global_dc->m_pedantic_errors + && !OPTION_SET_P (flag_permissive)) + { + flag_permissive = 1; + global_dc->m_permissive = 1; + } + /* If we are compiling C, and we are outside of a standards mode, we can permit the new values from ISO/IEC TS 18661-3 for FLT_EVAL_METHOD. Otherwise, we must restrict the possible values to diff --git a/gcc/c-family/c.opt b/gcc/c-family/c.opt index 26f629fb..d81177f 100644 --- a/gcc/c-family/c.opt +++ b/gcc/c-family/c.opt @@ -2116,7 +2116,7 @@ C ObjC C++ ObjC++ Look for and use PCH files even when preprocessing. fpermissive -C++ ObjC++ Var(flag_permissive) +C ObjC C++ ObjC++ Var(flag_permissive) Downgrade conformance errors to warnings. fplan9-extensions diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index 2caa7ce..d0b55fb 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -6174,13 +6174,17 @@ errors by @option{-pedantic-errors}. For instance: Downgrade some required diagnostics about nonconformant code from errors to warnings. Thus, using @option{-fpermissive} allows some nonconforming code to compile. Some C++ diagnostics are controlled -only by this flag, but it also downgrades some diagnostics that have -their own flag: +only by this flag, but it also downgrades some C and C++ diagnostics +that have their own flag: @gccoptlist{ -Wnarrowing @r{(C++)} } +The @option{-fpermissive} option is the default for historic C language +modes (@option{-std=c89}, @option{-std=gnu89}, @option{-std=c90}, +@option{-std=gnu90}). + @opindex Wall @opindex Wno-all @item -Wall |