| /* Test that we don't get a link-time error when using -fsplit-stack |
| due to implicit enabling of -freorder-blocks-and-partition. */ |
| /* { dg-require-effective-target split_stack } */ |
| /* { dg-options "-O2 -fsplit-stack" } */ |
| |
| extern unsigned int sleep (unsigned int); |
| |
| #define SIZE 10000 |
| |
| const char *sarr[SIZE]; |
| const char *buf_hot; |
| const char *buf_cold; |
| |
| __attribute__((noinline)) |
| void |
| foo (int path) |
| { |
| int i; |
| if (path) |
| { |
| for (i = 0; i < SIZE; i++) |
| sarr[i] = buf_hot; |
| } |
| else |
| { |
| for (i = 0; i < SIZE; i++) |
| sarr[i] = buf_cold; |
| sleep (0); |
| } |
| } |
| |
| int |
| main (int argc, char *argv[]) |
| { |
| int i; |
| buf_hot = "hello"; |
| buf_cold = "world"; |
| for (i = 0; i < 1000000; i++) |
| foo (argc); |
| return 0; |
| } |