| /* { dg-do compile } */ |
| /* { dg-options "-O -fdump-tree-optimized" } */ |
| /* LLVM LOCAL test not applicable */ |
| /* { dg-require-fdump "" } */ |
| |
| int a[4]; |
| int *x, *y, *z; |
| |
| void foo(void) |
| { |
| x = &a[3] - 1; |
| y = &a[1] + 1; |
| z = 1 + &a[1]; |
| } |
| |
| void bar(int i) |
| { |
| x = &a[i] - 1; |
| y = &a[i] + 1; |
| z = 1 + &a[i]; |
| } |
| |
| /* { dg-final { scan-tree-dump-times "&a\\\[2\\\]" 3 "optimized" } } */ |
| /* { dg-final { scan-tree-dump-times "&a\\\[.* - 1\\\]" 1 "optimized" } } */ |
| /* { dg-final { scan-tree-dump-times "&a\\\[.* \\+ 1\\\]" 1 "optimized" } } */ |
| /* { dg-final { cleanup-tree-dump "optimized" } } */ |