aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-loop-niter.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2005-09-20 21:10:44 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2005-09-20 21:10:44 +0200
commit6fff2603132ecacd4e5cdd97ea92ab5443de613f (patch)
tree13704f74fe1fa61712fb5d3b304d3cde911db3ea /gcc/tree-ssa-loop-niter.c
parentdf5d636787c2e7f945c11239fe81cb677941f3db (diff)
downloadgcc-6fff2603132ecacd4e5cdd97ea92ab5443de613f.zip
gcc-6fff2603132ecacd4e5cdd97ea92ab5443de613f.tar.gz
gcc-6fff2603132ecacd4e5cdd97ea92ab5443de613f.tar.bz2
re PR tree-optimization/23929 (segfault in expand_simple_operations, tree-ssa-loop-niter.c:637)
PR tree-optimization/23929 * tree-ssa-loop-niter.c (expand_simple_operations): Return immediately if expr is NULL. * gcc.c-torture/compile/pr23929.c: New test. From-SVN: r104461
Diffstat (limited to 'gcc/tree-ssa-loop-niter.c')
-rw-r--r--gcc/tree-ssa-loop-niter.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/tree-ssa-loop-niter.c b/gcc/tree-ssa-loop-niter.c
index 544ead2..b720e19 100644
--- a/gcc/tree-ssa-loop-niter.c
+++ b/gcc/tree-ssa-loop-niter.c
@@ -634,11 +634,15 @@ expand_simple_operations (tree expr)
{
unsigned i, n;
tree ret = NULL_TREE, e, ee, stmt;
- enum tree_code code = TREE_CODE (expr);
+ enum tree_code code;
+
+ if (expr == NULL_TREE)
+ return expr;
if (is_gimple_min_invariant (expr))
return expr;
+ code = TREE_CODE (expr);
if (IS_EXPR_CODE_CLASS (TREE_CODE_CLASS (code)))
{
n = TREE_CODE_LENGTH (code);