/* { dg-do compile } */ /* { dg-options "-O2 -fdump-tree-iftoswitch-optimized --param case-values-threshold=5" } */ int global; int foo (); int main(int argc, char **argv) { if (argc != 1) { if (argc != 2) { if (argc == 3) { foo (); foo (); } else if (argc == 4) { foo (); } else if (argc == 5) { global = 2; } else global -= 123; } else { global += 1; } } else foo (); global -= 12; return 0; } /* { dg-final { scan-tree-dump "Canonical GIMPLE case clusters: 1 2 3 4 5" "iftoswitch" } } */ /* { dg-final { scan-tree-dump "Condition chain with \[^\n\r]\* BBs transformed into a switch statement." "iftoswitch" } } */