| /* We used to crash in ccp here, because the initial constant value of 2 |
| was changed to 5. */ |
| |
| /* { dg-do compile } */ |
| /* { dg-options "-O2 -fdump-tree-optimized" } */ |
| |
| static const int a = 2; |
| |
| int test (int param) |
| { |
| int *p = (int *) &a; |
| |
| if (param) |
| *p = 5; |
| |
| return a; |
| } |
| |
| /* Check that we return the correct (unchanged) value. */ |
| |
| /* { dg-final { scan-tree-dump-times "return 2" 1 "optimized" } } */ |
| /* { dg-final { scan-tree-dump-times "return 5" 0 "optimized" } } */ |
| |
| /* { dg-final { cleanup-tree-dump "optimized" } } */ |