Merge trunk at revision 160193 into branch.
[official-gcc.git] / gcc / testsuite / gcc.dg / ipa / modif-1.c
blobdb6915a9d9e9e1b48e7059c08f04bcfc47e46e20
1 /* Verify that modification analysis detects modfications. */
2 /* { dg-do compile } */
3 /* { dg-options "-O3 -c -fdump-ipa-inline-details -fno-early-inlining" } */
5 struct whatever
7 int first;
8 unsigned second;
9 };
11 void func1 (struct whatever w);
12 void func2 (struct whatever *pw);
13 void func3 (int i);
14 void func4 (int *pi);
16 void the_test (struct whatever u, struct whatever v,
17 struct whatever w, struct whatever x,
18 int i, int k, int l)
20 struct whatever *pw = &w;
21 int *pk = &k;
23 v.first = 9;
25 func1 (u);
26 func1 (v);
27 func2 (pw);
28 func2 (&x);
29 func3 (i);
30 func4 (pk);
31 func4 (&l);
34 /* { dg-final { scan-ipa-dump-not "param 0\[^\\n\]*modified" "inline" } } */
35 /* { dg-final { scan-ipa-dump "param 1\[^\\n\]*modified" "inline" } } */
36 /* { dg-final { scan-ipa-dump "param 2\[^\\n\]*modified" "inline" } } */
37 /* { dg-final { scan-ipa-dump "param 3\[^\\n\]*modified" "inline" } } */
38 /* { dg-final { scan-ipa-dump-not "param 4\[^\\n\]*modified" "inline" } } */
39 /* { dg-final { scan-ipa-dump "param 5\[^\\n\]*modified" "inline" } } */
40 /* { dg-final { scan-ipa-dump "param 6\[^\\n\]*modified" "inline" } } */
41 /* { dg-final { cleanup-ipa-dump "inline" } } */