diff options
author | Jakub Jelinek <jakub@redhat.com> | 2014-07-04 10:32:56 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2014-07-04 10:32:56 +0200 |
commit | 14e000dec0e6eb1a7f3029cd147595e8972c2d23 (patch) | |
tree | 673a8eb608a3822d1925be4d0b498edda609bb44 /gcc/tree-ssa-ifcombine.c | |
parent | 17bf6d250c5f405a75ca3744074cb63386a3376d (diff) | |
download | gcc-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.c | 3 |
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)); |