diff options
author | Marek Polacek <polacek@redhat.com> | 2016-05-02 07:42:06 +0000 |
---|---|---|
committer | Tom de Vries <vries@gcc.gnu.org> | 2016-05-02 07:42:06 +0000 |
commit | 6b9933b9b483b37bbed0a83e6631fff8de14a1f8 (patch) | |
tree | 9ece23c236f61bd2b0b2818def00a7ee4cd29a4c /gcc | |
parent | 3eaec285927dd8a5ab5f92d90ba5ad45be1f08a4 (diff) | |
download | gcc-6b9933b9b483b37bbed0a83e6631fff8de14a1f8.zip gcc-6b9933b9b483b37bbed0a83e6631fff8de14a1f8.tar.gz gcc-6b9933b9b483b37bbed0a83e6631fff8de14a1f8.tar.bz2 |
Fix ICE in dump_pred_graph
2016-05-02 Marek Polacek <polacek@redhat.com>
Tom de Vries <tom@codesourcery.com>
PR tree-optimization/70700
* tree-ssa-structalias.c (dump_pred_graph): Fix getting varinfo for ids
bigger than FIRST_REF_NODE.
* gcc.dg/pr70700.c: New test.
Co-Authored-By: Tom de Vries <tom@codesourcery.com>
From-SVN: r235700
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/pr70700.c | 15 | ||||
-rw-r--r-- | gcc/tree-ssa-structalias.c | 6 |
4 files changed, 33 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e88ca46..b2a7a23 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2016-05-02 Marek Polacek <polacek@redhat.com> + Tom de Vries <tom@codesourcery.com> + + PR tree-optimization/70700 + * tree-ssa-structalias.c (dump_pred_graph): Fix getting varinfo for ids + bigger than FIRST_REF_NODE. + 2016-05-02 Oleg Endo <olegendo@gcc.gnu.org> PR target/52898 diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index cee09bc..c4f45fa 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2016-05-02 Marek Polacek <polacek@redhat.com> + Tom de Vries <tom@codesourcery.com> + + PR tree-optimization/70700 + * gcc.dg/pr70700.c: New test. + 2016-05-01 Uros Bizjak <ubizjak@gmail.com> * gcc.target/i386/avx256-unaligned-load-1.c: Update scan strings. diff --git a/gcc/testsuite/gcc.dg/pr70700.c b/gcc/testsuite/gcc.dg/pr70700.c new file mode 100644 index 0000000..613cd29 --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr70700.c @@ -0,0 +1,15 @@ +/* { dg-do compile } */ +/* { dg-options "-O3 -fdump-tree-ealias-graph" } */ + +struct S +{ + long m; +}; + +struct S +fn1 (struct S *a) +{ + if (a->m) + a->m |= 2; + return *a; +} diff --git a/gcc/tree-ssa-structalias.c b/gcc/tree-ssa-structalias.c index 0a41494..d66bdfa 100644 --- a/gcc/tree-ssa-structalias.c +++ b/gcc/tree-ssa-structalias.c @@ -2241,7 +2241,11 @@ dump_pred_graph (struct scc_info *si, FILE *file) if (graph->points_to[i] && !bitmap_empty_p (graph->points_to[i])) { - fprintf (file, "[label=\"%s = {", get_varinfo (i)->name); + if (i < FIRST_REF_NODE) + fprintf (file, "[label=\"%s = {", get_varinfo (i)->name); + else + fprintf (file, "[label=\"*%s = {", + get_varinfo (i - FIRST_REF_NODE)->name); unsigned j; bitmap_iterator bi; EXECUTE_IF_SET_IN_BITMAP (graph->points_to[i], 0, j, bi) |