/* Verify that modification analysis detects modfications. */ /* { dg-do compile } */ /* { dg-options "-O3 -c -fdump-ipa-inline-details -fno-early-inlining" } */ struct whatever { int first; unsigned second; }; void func1 (struct whatever w); void func2 (struct whatever *pw); void func3 (int i); void func4 (int *pi); void the_test (struct whatever u, struct whatever v, struct whatever w, struct whatever x, int i, int j, int k, int l) { struct whatever *pw = &w; int *pk = &k; j = l+3; v.first = 9; func1 (u); func1 (v); func2 (pw); func2 (&x); func3 (i); func3 (j); func4 (pk); func4 (&l); } /* { dg-final { scan-ipa-dump-not "param 0\[^\\n\]*modified" "inline" } } */ /* { dg-final { scan-ipa-dump "param 1\[^\\n\]*modified" "inline" } } */ /* { dg-final { scan-ipa-dump "param 2\[^\\n\]*modified" "inline" } } */ /* { dg-final { scan-ipa-dump "param 3\[^\\n\]*modified" "inline" } } */ /* { dg-final { scan-ipa-dump-not "param 4\[^\\n\]*modified" "inline" } } */ /* { dg-final { scan-ipa-dump "param 5\[^\\n\]*modified" "inline" } } */ /* { dg-final { scan-ipa-dump "param 6\[^\\n\]*modified" "inline" } } */ /* { dg-final { scan-ipa-dump "param 7\[^\\n\]*modified" "inline" } } */ /* { dg-final { cleanup-ipa-dump "inline" } } */