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

Reply via email to