aboutsummaryrefslogtreecommitdiff
path: root/gcc/trans-mem.c
diff options
context:
space:
mode:
authorQian Chao <qianchao9@huawei.com>2020-06-10 04:46:56 -0400
committerMartin Liska <mliska@suse.cz>2020-06-10 11:05:06 +0200
commit6d9ef0621f8e1aaafd458dba1a8b5476e655b479 (patch)
treed635f64b88d771565d485ed2b07af0d11dc0f929 /gcc/trans-mem.c
parentdc6d15eaa23cbae1468a6ef92371b1c856c14819 (diff)
downloadgcc-6d9ef0621f8e1aaafd458dba1a8b5476e655b479.zip
gcc-6d9ef0621f8e1aaafd458dba1a8b5476e655b479.tar.gz
gcc-6d9ef0621f8e1aaafd458dba1a8b5476e655b479.tar.bz2
tmmark: verify_ssa failed [PR95569]
This patch fixes a latent bug exposed by eb72dc663e9070b281be83a80f6f838a3a878822. See the discussion on the bug for details. Bootstrapped and regtested on aarch64-linux-gnu. No new fails introduced. 2020-06-10 Qian Chao <qianchao9@huawei.com> gcc/ChangeLog: PR tree-optimization/95569 * trans-mem.c (expand_assign_tm): Ensure that rtmp is marked TREE_ADDRESSABLE. gcc/testsuite/ChangeLog: PR tree-optimization/95569 * gcc.dg/tm/pr95569.c: New test.
Diffstat (limited to 'gcc/trans-mem.c')
-rw-r--r--gcc/trans-mem.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/trans-mem.c b/gcc/trans-mem.c
index c23ecd2..b6b9157 100644
--- a/gcc/trans-mem.c
+++ b/gcc/trans-mem.c
@@ -2424,6 +2424,7 @@ expand_assign_tm (struct tm_region *region, gimple_stmt_iterator *gsi)
if (is_gimple_reg (rhs))
{
tree rtmp = create_tmp_var (TREE_TYPE (rhs));
+ TREE_ADDRESSABLE (rtmp) = 1;
rhs_addr = build_fold_addr_expr (rtmp);
gcall = gimple_build_assign (rtmp, rhs);
gsi_insert_before (gsi, gcall, GSI_SAME_STMT);