aboutsummaryrefslogtreecommitdiff
path: root/gcc/gimple-fold.c
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2012-08-20 10:26:45 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2012-08-20 10:26:45 +0000
commit491e0b9b0cfcf89ef51ecc5fb089618a6fb3c0bd (patch)
tree2313d187571808a912081c266c3a4d5315ed86ea /gcc/gimple-fold.c
parent081db96050b57d83e0f82bd74c3a22cf7b93c2ed (diff)
downloadgcc-491e0b9b0cfcf89ef51ecc5fb089618a6fb3c0bd.zip
gcc-491e0b9b0cfcf89ef51ecc5fb089618a6fb3c0bd.tar.gz
gcc-491e0b9b0cfcf89ef51ecc5fb089618a6fb3c0bd.tar.bz2
re PR middle-end/54327 (Segmentation fault in init_ggc)
2012-08-20 Richard Guenther <rguenther@suse.de> PR tree-optimization/54327 * gimple-fold.c (get_maxval_strlen): Do not walk use-def chains if the use is registered for SSA update. * gcc.dg/torture/pr54327.c: New testcase. From-SVN: r190528
Diffstat (limited to 'gcc/gimple-fold.c')
-rw-r--r--gcc/gimple-fold.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/gimple-fold.c b/gcc/gimple-fold.c
index d708c80..19a259e 100644
--- a/gcc/gimple-fold.c
+++ b/gcc/gimple-fold.c
@@ -736,6 +736,11 @@ get_maxval_strlen (tree arg, tree *length, bitmap visited, int type)
return true;
}
+ /* If ARG is registered for SSA update we cannot look at its defining
+ statement. */
+ if (name_registered_for_update_p (arg))
+ return false;
+
/* If we were already here, break the infinite cycle. */
if (!bitmap_set_bit (visited, SSA_NAME_VERSION (arg)))
return true;