/* { dg-options "-mthumb -O2 -fno-reorder-blocks" } */ /* { dg-require-effective-target arm_thumb2_ok } */ /* { dg-final { scan-assembler-not "tbb" } } */ /* { dg-final { scan-assembler-not "tbh" } } */ #include int gbl; int foo (int *buf, int n) { int ctr = 0; int c; while (1) { c = buf[ctr++]; switch (c) { case '\n': gbl++; break; case ' ': case '\t' : case '\f' : case '\r': break; case ';': do c = buf [ctr++]; while (c != '\n' && c != -1); gbl++; break; case '/': { int prevc; c = buf [ctr++]; if (c != '*') abort (); prevc = 0; while ((c = buf[ctr++]) && c != -1) { if (c == '\n') gbl++; } break; } default: return c; } } }