Prevent -Og from deleting stores to write-only variables
authorRichard Sandiford <richard.sandiford@arm.com>
Mon, 29 Jul 2019 08:46:54 +0000 (08:46 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Mon, 29 Jul 2019 08:46:54 +0000 (08:46 +0000)
commitec8ac265ff21fb379ac072848561a91e4990c47f
tree05590c079f7410c30e47e42b0b61d229124c5895
parent4d706ff86ea86868615558e92407674a4f4b4af9
Prevent -Og from deleting stores to write-only variables

This patch prevents -Og from deleting stores to write-only variables,
so that the values are still available when debugging.  This seems
more convenient than forcing users to use __attribute__((used))
(probably conditionally, if it's not something they want in release
builds).

2019-07-29  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
* tree-cfg.c (execute_fixup_cfg): Don't delete stores to write-only
variables for -Og.

gcc/testsuite/
* c-c++-common/guality/Og-static-wo-1.c: New test.
* g++.dg/guality/guality.exp: Separate the c-c++-common tests into
"Og" and "general" tests.  Run the latter at -O0 and -Og only.
* gcc.dg/guality/guality.exp: Likewise.

From-SVN: r273870
gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/c-c++-common/guality/Og-static-wo-1.c [new file with mode: 0644]
gcc/testsuite/g++.dg/guality/guality.exp
gcc/testsuite/gcc.dg/guality/guality.exp
gcc/tree-cfg.c