131
|
1 /* { dg-do link } */
|
|
2 /* { dg-options "-O -fdump-tree-fre1-details" } */
|
|
3
|
|
4 void link_error (void);
|
|
5
|
|
6 void test1 (int *p, int *q)
|
|
7 {
|
|
8 *p = 1;
|
|
9 *q = 1;
|
|
10 if (*p != 1)
|
|
11 link_error ();
|
|
12 }
|
|
13
|
|
14 void test2 (int *p, int *q, int t)
|
|
15 {
|
|
16 *p = t;
|
|
17 *q = t;
|
|
18 if (*p != t)
|
|
19 link_error ();
|
|
20 }
|
|
21
|
|
22 void test3 (int *q, int *p)
|
|
23 {
|
|
24 int tem = *p;
|
|
25 *q = tem;
|
|
26 if (*p != tem)
|
|
27 link_error ();
|
|
28 }
|
|
29
|
|
30 char a[4];
|
|
31 struct A { char a[4]; };
|
|
32 void test4 (struct A *p)
|
|
33 {
|
|
34 a[0] = p->a[0];
|
|
35 a[0] = p->a[0];
|
|
36 a[0] = p->a[0];
|
|
37 }
|
|
38
|
|
39 int main() { return 0; }
|
|
40
|
|
41 /* { dg-final { scan-tree-dump-times "Replaced \\\*p" 3 "fre1" } } */
|
|
42 /* { dg-final { scan-tree-dump-times "Replaced p_.\\(D\\)->" 2 "fre1" } } */
|
|
43 /* { dg-final { scan-tree-dump-times "Deleted redundant store a\\\[0\\\]" 2 "fre1" } } */
|