/* { dg-do run } */ /* { dg-options "-Os -fno-tree-switch-conversion" } */ #include "exit-abort.h" volatile unsigned char y; __attribute__((noinline,noclone)) unsigned char foo (unsigned long x) { switch (x) { case 0: y = 67; break; case 1: y = 20; break; case 2: y = 109; break; case 3: y = 33; break; case 4: y = 44; break; case 5: y = 37; break; case 6: y = 10; break; case 7: y = 98; break; } return y; } int main (void) { if (0 != foo (7L + 0x10000L)) abort(); return 0; }