diff options
author | Richard Biener <rguenther@suse.de> | 2020-01-09 10:41:38 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2020-01-09 10:41:38 +0000 |
commit | 00294b189cf3285b17b4ca4135341e2614783553 (patch) | |
tree | 5ab6fc8410acb503447ab376adedf55c19922568 | |
parent | 0f507a365777b403cf058ee1208bf41a7363a728 (diff) | |
download | gcc-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/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/gimplify.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/pr93054.c | 10 |
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." } */ +} |