aboutsummaryrefslogtreecommitdiff
path: root/gcc/gimplify.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2008-11-14 13:26:05 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2008-11-14 13:26:05 +0100
commitf93bc6f57ce8790ae0af00072254e47eb29cbb11 (patch)
treef7c0fe7084643d6bb12ad9b1bb7e49c31ba52921 /gcc/gimplify.c
parent87deeba6090a658a2861173e875d2d7c8f776c4e (diff)
downloadgcc-f93bc6f57ce8790ae0af00072254e47eb29cbb11.zip
gcc-f93bc6f57ce8790ae0af00072254e47eb29cbb11.tar.gz
gcc-f93bc6f57ce8790ae0af00072254e47eb29cbb11.tar.bz2
re PR tree-optimization/38104 (ICE segmentation fault (with -O3 when deref a NULL pointer in the code??))
PR tree-optimization/38104 * gimplify.c (gimple_regimplify_operands): Add referenced vars before calling mark_symbols_for_renaming, not after it. * g++.dg/tree-ssa/pr38104.C: New test. From-SVN: r141857
Diffstat (limited to 'gcc/gimplify.c')
-rw-r--r--gcc/gimplify.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/gcc/gimplify.c b/gcc/gimplify.c
index ecc340a..c2de8fd 100644
--- a/gcc/gimplify.c
+++ b/gcc/gimplify.c
@@ -7566,6 +7566,10 @@ gimple_regimplify_operands (gimple stmt, gimple_stmt_iterator *gsi_p)
break;
}
+ if (gimple_referenced_vars (cfun))
+ for (t = gimplify_ctxp->temps; t ; t = TREE_CHAIN (t))
+ add_referenced_var (t);
+
if (!gimple_seq_empty_p (pre))
{
if (gimple_in_ssa_p (cfun))
@@ -7580,10 +7584,6 @@ gimple_regimplify_operands (gimple stmt, gimple_stmt_iterator *gsi_p)
if (post_stmt)
gsi_insert_after (gsi_p, post_stmt, GSI_NEW_STMT);
- if (gimple_referenced_vars (cfun))
- for (t = gimplify_ctxp->temps; t ; t = TREE_CHAIN (t))
- add_referenced_var (t);
-
pop_gimplify_context (NULL);
}