------- Additional Comments From pinskia at gcc dot gnu dot org 2005-07-08 18:43 ------- Another testcase for a different related problem but still in DOM: 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 (); }
-- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22335