| /* { dg-do compile } */ |
| /* { dg-options "-O2 -fdump-tree-optimized" } */ |
| int g1(int); |
| int h(int *a, int *b)__attribute__((pure)); |
| void link_error(); |
| |
| /* The calls to link_error should be eliminated, since nothing escapes to |
| non-pure functions. */ |
| int g(void) |
| { |
| int t = 0, t1 = 2; |
| int t2 = h(&t, &t1); |
| if (t != 0) |
| link_error (); |
| if (t1 != 2) |
| link_error (); |
| g1(t2); |
| if (t != 0) |
| link_error (); |
| if (t1 != 2) |
| link_error (); |
| return t2 == 2; |
| } |
| /* { dg-final { scan-tree-dump-times "link_error" 0 "optimized"} } */ |
| /* { dg-final { cleanup-tree-dump "optimized" } } */ |