ipa: Unshare expresseions before putting them into debug statements (PR 103099, PR...
authorMartin Jambor <mjambor@suse.cz>
Mon, 8 Nov 2021 16:49:54 +0000 (17:49 +0100)
committerMartin Jambor <mjambor@suse.cz>
Mon, 8 Nov 2021 16:52:51 +0000 (17:52 +0100)
commit239d82d4c05b30632fd09ba4056de7dac5aee070
tree00fb5ee32968c70ffbf55e5819c25d7b99e1bc8e
parenta7dce7626a6d5247d7dda48fa36d3cdc258aae84
ipa: Unshare expresseions before putting them into debug statements (PR 103099, PR 103107)

My recent patch to improve debug experience when there are removed
parameters (by ipa-sra or ipa-split) was not careful to unshare the
expressions that were then put into debug statements, which manifests
itself as PR 103099.  This patch adds unsharing them using
unshare_expr_without_location which is a bit more careful with stripping
locations than what we were doing manually and so also fixes PR 103107.

gcc/ChangeLog:

2021-11-08  Martin Jambor  <mjambor@suse.cz>

PR ipa/103099
PR ipa/103107
* tree-inline.c (remap_gimple_stmt): Unshare the expression without
location before invoking remap_with_debug_expressions on it.
* ipa-param-manipulation.c
(ipa_param_body_adjustments::prepare_debug_expressions): Likewise.

gcc/testsuite/ChangeLog:

2021-11-08  Martin Jambor  <mjambor@suse.cz>

PR ipa/103099
PR ipa/103107
* g++.dg/ipa/pr103099.C: New test.
* gcc.dg/ipa/pr103107.c: Likewise.
gcc/ipa-param-manipulation.c
gcc/testsuite/g++.dg/ipa/pr103099.C [new file with mode: 0644]
gcc/testsuite/gcc.dg/ipa/pr103107.c [new file with mode: 0644]
gcc/tree-inline.c