diff options
author | pinskia <pinskia@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-07-12 17:02:54 +0000 |
---|---|---|
committer | pinskia <pinskia@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-07-12 17:02:54 +0000 |
commit | 3bd64623062f8cbeb5efacb73f023457bd0b067e (patch) | |
tree | 297d8a54a0ca613be8f063e03b65974b41a32d09 /gcc/testsuite/gcc.dg/pr22335-2.c | |
parent | f6be5aa50ac86a6de9865c884b757f3761e4745e (diff) | |
download | gcc-3bd64623062f8cbeb5efacb73f023457bd0b067e.tar.gz |
2005-07-12 Andrew Pinski <pinskia@physics.uc.edu>
PR tree-opt/22335
* gcc.dg/pr22335-1.c: New test.
* gcc.dg/pr22335-2.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@101930 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite/gcc.dg/pr22335-2.c')
-rw-r--r-- | gcc/testsuite/gcc.dg/pr22335-2.c | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/pr22335-2.c b/gcc/testsuite/gcc.dg/pr22335-2.c new file mode 100644 index 00000000000..afba95521b3 --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr22335-2.c @@ -0,0 +1,39 @@ +/* { dg-do compile } */ +/* { dg-options "-O2" } */ +void abort(void) __attribute__((__noreturn__)); +typedef struct { + int container; +} edge_iterator; +struct ls_expr +{ + int index; + int stores; + struct ls_expr * next; +}; +struct ls_expr * pre_ldst_mems; +edge_iterator ei; +void +store_motion (void) +{ + struct ls_expr * ptr, **prev_next_ptr_ptr; + edge_iterator ei1; + edge_iterator ei2; + int a = ptr != ((void *)0); + for (ptr = pre_ldst_mems, prev_next_ptr_ptr = &pre_ldst_mems; + ptr != ((void *)0); + ptr = *prev_next_ptr_ptr) + if (!((ptr)->stores)) + *prev_next_ptr_ptr = ptr->next; + else + prev_next_ptr_ptr = &ptr->next; + + for (ptr = pre_ldst_mems; ptr != 0; ptr = ptr->next) + ; + ei1 = ei; + ei2 = ei1; + if (!ei2.container) + abort (); + ei2 = ei1; + if (!ei2.container) + abort (); +} |