| Index: gcc/gcc/testsuite/gcc.dg/tree-ssa/20041122-1.c
|
| diff --git a/gcc/gcc/testsuite/gcc.dg/tree-ssa/20041122-1.c b/gcc/gcc/testsuite/gcc.dg/tree-ssa/20041122-1.c
|
| index d72d133e154d391d01f77c708a5837b0d4dce753..6007949546e2235a8d833cc6122a134b37598c1c 100644
|
| --- a/gcc/gcc/testsuite/gcc.dg/tree-ssa/20041122-1.c
|
| +++ b/gcc/gcc/testsuite/gcc.dg/tree-ssa/20041122-1.c
|
| @@ -1,6 +1,5 @@
|
| /* { dg-do compile } */
|
| -/* { dg-options "-O1 -fdump-tree-dom2" } */
|
| -
|
| +/* { dg-options "-O1 -fstrict-aliasing -fdump-tree-fre" } */
|
|
|
| __extension__ typedef __SIZE_TYPE__ size_t;
|
| extern void *xmalloc (size_t) __attribute__ ((__malloc__));
|
| @@ -17,10 +16,10 @@ struct basic_block_def
|
| typedef struct basic_block_def *basic_block;
|
| extern int n_basic_blocks;
|
| extern edge frob ();
|
| -void
|
| -find_unreachable_blocks (int frobit)
|
| +basic_block *
|
| +find_unreachable_blocks (void)
|
| {
|
| - basic_block *tos, *worklist, bb;
|
| + basic_block *tos, *worklist;
|
| tos = worklist = xmalloc (sizeof (basic_block) * n_basic_blocks);
|
| edge e = frob();
|
| if (!(e->dest->flags & 4))
|
| @@ -28,11 +27,12 @@ find_unreachable_blocks (int frobit)
|
| e->dest->flags |= 4;
|
| *tos++ = e->dest;
|
| }
|
| + return worklist;
|
| }
|
|
|
| /* If the aliasing code does its job properly, then we should be
|
| able to determine that modifying e->dest->flags does not
|
| - modify e or e->dest. The net result is that we only need one
|
| - load of e->dest. */
|
| -/* { dg-final { scan-tree-dump-times "->dest" 1 "dom2" { xfail *-*-* } } } */
|
| -/* { dg-final { cleanup-tree-dump "dom2" } } */
|
| + modify e or e->dest if we can assert strict-aliasing rules.
|
| + The net result is that we only need one load of e->dest. */
|
| +/* { dg-final { scan-tree-dump-times "->dest" 1 "fre" } } */
|
| +/* { dg-final { cleanup-tree-dump "fre" } } */
|
|
|