aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-ifcombine.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2014-07-04 10:32:56 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2014-07-04 10:32:56 +0200
commit14e000dec0e6eb1a7f3029cd147595e8972c2d23 (patch)
tree673a8eb608a3822d1925be4d0b498edda609bb44 /gcc/tree-ssa-ifcombine.c
parent17bf6d250c5f405a75ca3744074cb63386a3376d (diff)
downloadgcc-14e000dec0e6eb1a7f3029cd147595e8972c2d23.zip
gcc-14e000dec0e6eb1a7f3029cd147595e8972c2d23.tar.gz
gcc-14e000dec0e6eb1a7f3029cd147595e8972c2d23.tar.bz2
re PR tree-optimization/61684 (ICE at -Os and above on x86_64-linux-gnu in tree check: expected ssa_name, have addr_expr in recognize_single_bit_test, at tree-ssa-ifcombine.c:238)
PR tree-optimization/61684 * tree-ssa-ifcombine.c (recognize_single_bit_test): Make sure rhs1 of conversion is a SSA_NAME before using SSA_NAME_DEF_STMT on it. * gcc.c-torture/compile/pr61684.c: New test. From-SVN: r212290
Diffstat (limited to 'gcc/tree-ssa-ifcombine.c')
-rw-r--r--gcc/tree-ssa-ifcombine.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/tree-ssa-ifcombine.c b/gcc/tree-ssa-ifcombine.c
index fa3c5b1..7e051a3 100644
--- a/gcc/tree-ssa-ifcombine.c
+++ b/gcc/tree-ssa-ifcombine.c
@@ -233,7 +233,8 @@ recognize_single_bit_test (gimple cond, tree *name, tree *bit, bool inv)
while (is_gimple_assign (stmt)
&& ((CONVERT_EXPR_CODE_P (gimple_assign_rhs_code (stmt))
&& (TYPE_PRECISION (TREE_TYPE (gimple_assign_lhs (stmt)))
- <= TYPE_PRECISION (TREE_TYPE (gimple_assign_rhs1 (stmt)))))
+ <= TYPE_PRECISION (TREE_TYPE (gimple_assign_rhs1 (stmt))))
+ && TREE_CODE (gimple_assign_rhs1 (stmt)) == SSA_NAME)
|| gimple_assign_ssa_name_copy_p (stmt)))
stmt = SSA_NAME_DEF_STMT (gimple_assign_rhs1 (stmt));