| /* { dg-do compile } */ |
| /* { dg-options "-O -fdump-tree-ccp1" } */ |
| |
| /* Check that we constant propagate &&c into the goto and remove |
| the unreachable BBs. */ |
| |
| void a(int*); void b(int*); void c(int*); void d(int*); |
| void func2(int* val) |
| { |
| const void *const labels[] = { &&a, &&b, &&c, &&d }; |
| goto *labels[2]; |
| a: a(val); |
| b: b(val); |
| c: c(val); |
| d: d(val); |
| } |
| |
| /* { dg-final { scan-tree-dump-not "a \\\(" "ccp1" } } */ |
| /* { dg-final { scan-tree-dump-not "b \\\(" "ccp1" } } */ |
| /* { dg-final { cleanup-tree-dump "ccp1" } } */ |