PR85678: Change default to -fno-common
authorWilco Dijkstra <wdijkstr@arm.com>
Wed, 20 Nov 2019 16:29:23 +0000 (16:29 +0000)
committerWilco Dijkstra <wilco@gcc.gnu.org>
Wed, 20 Nov 2019 16:29:23 +0000 (16:29 +0000)
commit6271dd984d7f920d4fb17ad37af6a1f8e6b796dc
tree52b4e9a530656bb17209232f777900c2b9d04604
parent83115e9eb8a54893088eb556fb4cc9194c0c5926
PR85678: Change default to -fno-common

GCC currently defaults to -fcommon.  As discussed in the PR, this is an ancient
C feature which is not conforming with the latest C standards.  On many targets
this means global variable accesses have a codesize and performance penalty.
This applies to C code only, C++ code is not affected by -fcommon.  It is about
time to change the default.

    gcc/
PR85678
* common.opt (fcommon): Change init to 1.
* invoke.texi (-fcommon): Update documentation.

    testsuite/
* g++.dg/lto/odr-6_1.c: Add -fcommon.
* gcc.dg/alias-15.c: Likewise.
* gcc.dg/fdata-sections-1.c: Likewise.
* gcc.dg/ipa/pr77653.c: Likewise.
* gcc.dg/lto/20090729_0.c: Likewise.
* gcc.dg/lto/20111207-1_0.c: Likewise.
* gcc.dg/lto/c-compatible-types-1_0.c: Likewise.
* gcc.dg/lto/pr55525_0.c: Likewise.
* gcc.dg/lto/pr88077_0.c: Use long to avoid alignment warning.
* gcc.dg/lto/pr88077_1.c: Add -fcommon.
* gcc.target/aarch64/sve/peel_ind_1.c: Allow ANCHOR0.
* gcc.target/aarch64/sve/peel_ind_2.c: Likewise.
* gcc.target/aarch64/sve/peel_ind_3.c: Likewise.
* gcc.target/i386/volatile-bitfields-2.c: Allow movl or movq.

From-SVN: r278509
18 files changed:
gcc/ChangeLog
gcc/common.opt
gcc/doc/invoke.texi
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/lto/odr-6_1.c
gcc/testsuite/gcc.dg/alias-15.c
gcc/testsuite/gcc.dg/fdata-sections-1.c
gcc/testsuite/gcc.dg/ipa/pr77653.c
gcc/testsuite/gcc.dg/lto/20090729_0.c
gcc/testsuite/gcc.dg/lto/20111207-1_0.c
gcc/testsuite/gcc.dg/lto/c-compatible-types-1_0.c
gcc/testsuite/gcc.dg/lto/pr55525_0.c
gcc/testsuite/gcc.dg/lto/pr88077_0.c
gcc/testsuite/gcc.dg/lto/pr88077_1.c
gcc/testsuite/gcc.target/aarch64/sve/peel_ind_1.c
gcc/testsuite/gcc.target/aarch64/sve/peel_ind_2.c
gcc/testsuite/gcc.target/aarch64/sve/peel_ind_3.c
gcc/testsuite/gcc.target/i386/volatile-bitfields-2.c