diff options
author | Richard Guenther <rguenther@suse.de> | 2012-08-20 10:26:45 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2012-08-20 10:26:45 +0000 |
commit | 491e0b9b0cfcf89ef51ecc5fb089618a6fb3c0bd (patch) | |
tree | 2313d187571808a912081c266c3a4d5315ed86ea /gcc/gimple-fold.c | |
parent | 081db96050b57d83e0f82bd74c3a22cf7b93c2ed (diff) | |
download | gcc-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.c | 5 |
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; |