| /* { dg-do link { target natural_alignment_32 } } */ |
| /* { dg-options "-O -fdump-tree-fre1-details" } */ |
| |
| void link_error (void); |
| |
| void test1 (int *p, int *q) |
| { |
| *p = 1; |
| *q = 1; |
| if (*p != 1) |
| link_error (); |
| } |
| |
| void test2 (int *p, int *q, int t) |
| { |
| *p = t; |
| *q = t; |
| if (*p != t) |
| link_error (); |
| } |
| |
| void test3 (int *q, int *p) |
| { |
| int tem = *p; |
| *q = tem; |
| if (*p != tem) |
| link_error (); |
| } |
| |
| char a[4]; |
| struct A { char a[4]; }; |
| void test4 (struct A *p) |
| { |
| a[0] = p->a[0]; |
| a[0] = p->a[0]; |
| a[0] = p->a[0]; |
| } |
| |
| int main() { return 0; } |
| |
| /* { dg-final { scan-tree-dump-times "Replaced \\\*p" 3 "fre1" } } */ |
| /* { dg-final { scan-tree-dump-times "Replaced p_.\\(D\\)->" 2 "fre1" } } */ |
| /* { dg-final { scan-tree-dump-times "Deleted redundant store a\\\[0\\\]" 2 "fre1" } } */ |