| /* PR tree-optimization/14841 |
| Make sure that we can fold a possible nested reference into a |
| constant aggregate. */ |
| |
| /* { dg-do compile } */ |
| /* { dg-options "-O2 -fdump-tree-store_ccp-details" } */ |
| |
| struct car { |
| int speed; |
| int tire_pressure[4]; |
| }; |
| |
| static const struct car cars[] = { |
| { 75, { 10, 20, 30, 40 } }, |
| { 35, { 12, 34, 56, 78 } }, |
| { 40, { 19, 28, 37, 46 } } |
| }; |
| |
| extern void link_error (void); |
| |
| void |
| foo (void) |
| { |
| if (cars[1].tire_pressure[2] != 56) |
| link_error (); |
| } |
| |
| /* { dg-final { scan-tree-dump-times "Folded statement: if " 1 "store_ccp"} } */ |
| /* { dg-final { cleanup-tree-dump "store_ccp" } } */ |