Hi,
The patch to make -fcommon the default introduces a bogus claim into the
GCC documentation. I already raised this issue on the patch itself,
where it was unfortunately ignored. Please find attached a followup
patch to remove this bogus claim.
-fcommon was claimed to be incompatible with ISO C for preventing
duplicate definitions from being diagnosed. It does, but as that elicits
undefined behaviour (the requirement that there shall be no more than
one external definition is not a constraint), ISO C does not require any
diagnostic for it. In the absence of any other rule this would violate,
both -fcommon and -fno-common are fully compatible with all versions of
ISO C.
Cheers,
Harald van Dijk
* doc/invoke.texi (-fcommon): Remove claim about ISO C.
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -14141,9 +14141,9 @@ than one compilation unit.
The @option{-fcommon} places uninitialized global variables in a common block.
This allows the linker to resolve all tentative definitions of the same variable
in different compilation units to the same object, or to a non-tentative
-definition. This behavior does not conform to ISO C, is inconsistent with C++,
-and on many targets implies a speed and code size penalty on global variable
-references. It is mainly useful to enable legacy code to link without errors.
+definition. This behavior is inconsistent with C++, and on many targets implies
+a speed and code size penalty on global variable references. It is mainly
+useful to enable legacy code to link without errors.
@item -fno-ident
@opindex fno-ident