PR middle-end/85602 - -Wsizeof-pointer-memaccess for strncat with size of source
[official-gcc.git] / gcc / testsuite / gcc.dg / pr22335-2.c
blobafba95521b390ebb10576d64193a51820a61d738
1 /* { dg-do compile } */
2 /* { dg-options "-O2" } */
3 void abort(void) __attribute__((__noreturn__));
4 typedef struct {
5 int container;
6 } edge_iterator;
7 struct ls_expr
9 int index;
10 int stores;
11 struct ls_expr * next;
13 struct ls_expr * pre_ldst_mems;
14 edge_iterator ei;
15 void
16 store_motion (void)
18 struct ls_expr * ptr, **prev_next_ptr_ptr;
19 edge_iterator ei1;
20 edge_iterator ei2;
21 int a = ptr != ((void *)0);
22 for (ptr = pre_ldst_mems, prev_next_ptr_ptr = &pre_ldst_mems;
23 ptr != ((void *)0);
24 ptr = *prev_next_ptr_ptr)
25 if (!((ptr)->stores))
26 *prev_next_ptr_ptr = ptr->next;
27 else
28 prev_next_ptr_ptr = &ptr->next;
30 for (ptr = pre_ldst_mems; ptr != 0; ptr = ptr->next)
32 ei1 = ei;
33 ei2 = ei1;
34 if (!ei2.container)
35 abort ();
36 ei2 = ei1;
37 if (!ei2.container)
38 abort ();