mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-11-27 13:54:19 +08:00
tree-optimization/111070 - fix ICE with recent ifcombine fix
We now got test coverage for non-SSA name bits so the following amends
the SSA_NAME_OCCURS_IN_ABNORMAL_PHI checks.
PR tree-optimization/111070
* tree-ssa-ifcombine.cc (ifcombine_ifandif): Check we have
an SSA name before checking SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
* gcc.dg/pr111070.c: New testcase.
(cherry picked from commit 966b0a9652
)
This commit is contained in:
parent
cc835f41ec
commit
d73137ab35
20
gcc/testsuite/gcc.dg/pr111070.c
Normal file
20
gcc/testsuite/gcc.dg/pr111070.c
Normal file
@ -0,0 +1,20 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-O" } */
|
||||
|
||||
/* common */
|
||||
char c;
|
||||
/* arrays must be 8 byte aligned, regardless of size */
|
||||
char c_ary[1];
|
||||
|
||||
/* data */
|
||||
char d = 1;
|
||||
char d_ary[1] = {1};
|
||||
|
||||
int main ()
|
||||
{
|
||||
if (((unsigned long)&c_ary[0] & 7) != 0)
|
||||
return 1;
|
||||
if (((unsigned long)&d_ary[0] & 7) != 0)
|
||||
return 1;
|
||||
return 0;
|
||||
}
|
@ -415,7 +415,8 @@ ifcombine_ifandif (basic_block inner_cond_bb, bool inner_inv,
|
||||
{
|
||||
tree t, t2;
|
||||
|
||||
if (SSA_NAME_OCCURS_IN_ABNORMAL_PHI (name1))
|
||||
if (TREE_CODE (name1) == SSA_NAME
|
||||
&& SSA_NAME_OCCURS_IN_ABNORMAL_PHI (name1))
|
||||
return false;
|
||||
|
||||
/* Do it. */
|
||||
@ -468,8 +469,10 @@ ifcombine_ifandif (basic_block inner_cond_bb, bool inner_inv,
|
||||
gimple_stmt_iterator gsi;
|
||||
tree t;
|
||||
|
||||
if (SSA_NAME_OCCURS_IN_ABNORMAL_PHI (name1)
|
||||
|| SSA_NAME_OCCURS_IN_ABNORMAL_PHI (name2))
|
||||
if ((TREE_CODE (name1) == SSA_NAME
|
||||
&& SSA_NAME_OCCURS_IN_ABNORMAL_PHI (name1))
|
||||
|| (TREE_CODE (name2) == SSA_NAME
|
||||
&& SSA_NAME_OCCURS_IN_ABNORMAL_PHI (name2)))
|
||||
return false;
|
||||
|
||||
/* Find the common name which is bit-tested. */
|
||||
|
Loading…
Reference in New Issue
Block a user