diff options
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) |