]> git.ipfire.org Git - thirdparty/gcc.git/commit
middle-end/100464 - avoid spurious TREE_ADDRESSABLE in folding debug stmts
authorRichard Biener <rguenther@suse.de>
Fri, 7 May 2021 07:51:18 +0000 (09:51 +0200)
committerRichard Biener <rguenther@suse.de>
Mon, 10 May 2021 09:40:39 +0000 (11:40 +0200)
commita076632e274abe344ca7648b7c7f299273d4cbe0
tree9f9db39952ed28f660d4af6758c416ebe3afe413
parenta564da506f52be66ade298b562417641e87b549f
middle-end/100464 - avoid spurious TREE_ADDRESSABLE in folding debug stmts

canonicalize_constructor_val was setting TREE_ADDRESSABLE on bases
of ADDR_EXPRs but that's futile when we're dealing with CTOR values
in debug stmts.  This rips out the code which was added for Java
and should have been an assertion when we didn't have debug stmts.
To not regress g++.dg/tree-ssa/array-temp1.C we have to adjust the
testcase to not look for a no longer applied invalid optimization.

2021-05-10  Richard Biener  <rguenther@suse.de>

PR middle-end/100464
PR c++/100468
gcc/
* gimple-fold.c (canonicalize_constructor_val): Do not set
TREE_ADDRESSABLE.

gcc/cp/
* call.c (set_up_extended_ref_temp): Mark the temporary
addressable if the TARGET_EXPR was.

gcc/testsuite/
* gcc.dg/pr100464.c: New testcase.
* g++.dg/tree-ssa/array-temp1.C: Adjust.
gcc/cp/call.c
gcc/gimple-fold.c
gcc/testsuite/g++.dg/tree-ssa/array-temp1.C
gcc/testsuite/gcc.dg/pr100464.c [new file with mode: 0644]