From: Jakub Jelinek Date: Wed, 20 Nov 2019 09:53:15 +0000 (+0100) Subject: re PR c/90898 (ICE in insert_clobber_before_stack_restore, at tree-ssa-ccp.c:2112) X-Git-Tag: releases/gcc-9.3.0~373 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4251fa113d8a3ca3d20ffb2c6556ea3b573d04df;p=thirdparty%2Fgcc.git re PR c/90898 (ICE in insert_clobber_before_stack_restore, at tree-ssa-ccp.c:2112) PR c/90898 * tree-ssa-ccp.c (insert_clobber_before_stack_restore): Remove assertion. (insert_clobbers_for_var): Fix a typo in function comment. * gcc.dg/pr90898.c: New test. From-SVN: r278489 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 4d03bdbe0af0..83766ae20303 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2019-11-20 Jakub Jelinek + + PR c/90898 + * tree-ssa-ccp.c (insert_clobber_before_stack_restore): Remove + assertion. + (insert_clobbers_for_var): Fix a typo in function comment. + 2019-11-19 Jakub Jelinek PR middle-end/91450 diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 46dd927c0507..a0b764de8aa0 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,8 @@ 2019-11-20 Jakub Jelinek + PR c/90898 + * gcc.dg/pr90898.c: New test. + Backported from mainline 2019-11-19 Jakub Jelinek diff --git a/gcc/testsuite/gcc.dg/pr90898.c b/gcc/testsuite/gcc.dg/pr90898.c new file mode 100644 index 000000000000..e992ea34cd9d --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr90898.c @@ -0,0 +1,16 @@ +/* PR c/90898 */ +/* { dg-do compile } */ +/* { dg-options "-O2" } */ + +void *p; +int bar (void); +void baz (int *); + +void +foo (void) +{ + p = __builtin_stack_save (); + int a[(bar (), 2)]; + baz (a); + __builtin_stack_restore (p); +} diff --git a/gcc/tree-ssa-ccp.c b/gcc/tree-ssa-ccp.c index e6bcc216e7cb..8db6a34e0590 100644 --- a/gcc/tree-ssa-ccp.c +++ b/gcc/tree-ssa-ccp.c @@ -2079,8 +2079,6 @@ insert_clobber_before_stack_restore (tree saved_val, tree var, else if (gimple_assign_ssa_name_copy_p (stmt)) insert_clobber_before_stack_restore (gimple_assign_lhs (stmt), var, visited); - else - gcc_assert (is_gimple_debug (stmt)); } /* Advance the iterator to the previous non-debug gimple statement in the same @@ -2105,9 +2103,9 @@ gsi_prev_dom_bb_nondebug (gimple_stmt_iterator *i) /* Find a BUILT_IN_STACK_SAVE dominating gsi_stmt (I), and insert a clobber of VAR before each matching BUILT_IN_STACK_RESTORE. - It is possible that BUILT_IN_STACK_SAVE cannot be find in a dominator when a - previous pass (such as DOM) duplicated it along multiple paths to a BB. In - that case the function gives up without inserting the clobbers. */ + It is possible that BUILT_IN_STACK_SAVE cannot be found in a dominator when + a previous pass (such as DOM) duplicated it along multiple paths to a BB. + In that case the function gives up without inserting the clobbers. */ static void insert_clobbers_for_var (gimple_stmt_iterator i, tree var)