diff options
author | Alexandre Oliva <oliva@adacore.com> | 2021-11-20 02:51:27 -0300 |
---|---|---|
committer | Alexandre Oliva <oliva@gnu.org> | 2021-11-20 02:51:27 -0300 |
commit | 38e4a361e79a459947540920db645f3d7fa7221a (patch) | |
tree | ff6568f59c755e0c03c9c90c1b6f9b9d02c15430 /gcc/tree-ssa-math-opts.c | |
parent | cfe8dbd9c08a5bce497646467c9d30942ec3efe0 (diff) | |
download | gcc-38e4a361e79a459947540920db645f3d7fa7221a.zip gcc-38e4a361e79a459947540920db645f3d7fa7221a.tar.gz gcc-38e4a361e79a459947540920db645f3d7fa7221a.tar.bz2 |
harden conds: detach without decls
When we create copies of SSA_NAMEs to hold "detached" copies of the
values for the hardening tests, we end up with assignments to
SSA_NAMEs that refer to the same decls. That would be generally
desirable, since it enables the variable to be recognized in dumps,
and makes coalescing more likely if the original variable dies at that
point. When the decl is a DECL_BY_REFERENCE, the SSA_NAME holds the
address of a parm or result, and it's read-only, so we shouldn't
create assignments to it. Gimple checkers flag at least the case of
results.
This patch arranges for us to avoid referencing the same decls, which
cures the problem, but retaining the visible association between the
SSA_NAMEs, by using the same identifier for the copy.
for gcc/ChangeLog
PR tree-optimization/102988
* gimple-harden-conditionals.cc (detach_value): Copy SSA_NAME
without decl sharing.
for gcc/testsuite/ChangeLog
PR tree-optimization/102988
* g++.dg/pr102988.C: New.
Diffstat (limited to 'gcc/tree-ssa-math-opts.c')
0 files changed, 0 insertions, 0 deletions