aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2020-01-09 10:41:38 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2020-01-09 10:41:38 +0000
commit00294b189cf3285b17b4ca4135341e2614783553 (patch)
tree5ab6fc8410acb503447ab376adedf55c19922568
parent0f507a365777b403cf058ee1208bf41a7363a728 (diff)
downloadgcc-00294b189cf3285b17b4ca4135341e2614783553.zip
gcc-00294b189cf3285b17b4ca4135341e2614783553.tar.gz
gcc-00294b189cf3285b17b4ca4135341e2614783553.tar.bz2
re PR tree-optimization/93054 (ICE in gimple_set_lhs, at gimple.c:1820)
2020-01-09 Richard Biener <rguenther@suse.de> PR middle-end/93054 * gimplify.c (gimplify_expr): Deal with NOP definitions. * gcc.dg/pr93054.c: New testcase. From-SVN: r280039
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/gimplify.c3
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.dg/pr93054.c10
4 files changed, 22 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index dbac2a4..2339a87 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,10 @@
2020-01-09 Richard Biener <rguenther@suse.de>
+ PR middle-end/93054
+ * gimplify.c (gimplify_expr): Deal with NOP definitions.
+
+2020-01-09 Richard Biener <rguenther@suse.de>
+
PR tree-optimization/93040
* gimple-ssa-store-merging.c (find_bswap_or_nop): Raise search limit.
diff --git a/gcc/gimplify.c b/gcc/gimplify.c
index 73fb2e7..4243d3a 100644
--- a/gcc/gimplify.c
+++ b/gcc/gimplify.c
@@ -14622,7 +14622,8 @@ gimplify_expr (tree *expr_p, gimple_seq *pre_p, gimple_seq *post_p,
{
/* Avoid the extra copy if possible. */
*expr_p = create_tmp_reg (TREE_TYPE (name));
- gimple_set_lhs (SSA_NAME_DEF_STMT (name), *expr_p);
+ if (!gimple_nop_p (SSA_NAME_DEF_STMT (name)))
+ gimple_set_lhs (SSA_NAME_DEF_STMT (name), *expr_p);
release_ssa_name (name);
}
}
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 0e18082..71106d1 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,5 +1,10 @@
2020-01-09 Richard Biener <rguenther@suse.de>
+ PR middle-end/93054
+ * gcc.dg/pr93054.c: New testcase.
+
+2020-01-09 Richard Biener <rguenther@suse.de>
+
PR tree-optimization/93040
* gcc.dg/optimize-bswaphi-1.c: Amend.
* gcc.dg/optimize-bswapsi-2.c: Likewise.
diff --git a/gcc/testsuite/gcc.dg/pr93054.c b/gcc/testsuite/gcc.dg/pr93054.c
new file mode 100644
index 0000000..1d4680d
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr93054.c
@@ -0,0 +1,10 @@
+/* { dg-do compile } */
+
+__attribute__ ((returns_twice)) int
+bp (int);
+
+__attribute__ ((noreturn)) int
+cb (void)
+{
+ return bp (cb ()); /* { dg-warning "declared .noreturn." } */
+}