/* PR tree-optimization/79472 */ /* { dg-options "-O2 -fdump-tree-switchconv" } */ /* { dg-do compile { target nonpic } } */ void frobulate (unsigned int v) { const char *s; switch (v) { case 0: s = "foo"; break; case 1: s = "bar"; break; case 2: s = "spam"; break; default: __builtin_abort (); break; } __builtin_printf ("%s\n", s); } void frobulate_for_gcc (unsigned int v) { const char *s; switch (v) { case 0: s = "foo"; break; case 1: s = "bar"; break; case 2: s = "spam"; break; default: s = (const char *) 0; break; } if (!s) __builtin_abort (); __builtin_printf ("%s\n", s); } /* { dg-final { scan-tree-dump-times "Switch converted" 2 "switchconv" } } */ /* { dg-final { scan-tree-dump-times "= CSWTCH" 2 "switchconv" } } */