# zero 0; one 1; if_t() { extrn zero, one; auto fails, successes; successes = 0; if (zero) fail(__LINE__); if (zero) fail(__LINE__); else successes++; if (one) successes++; if (one) successes++; else fail(__LINE__); if (successes != 3) fail(__LINE__); } while_t() { extrn zero, one; auto successes, count; successes = 3; count = 0; while (count) { successes++; count--; } if (successes != 3) fail(__LINE__); while (zero) fail(__LINE__); while (one) { break; fail(__LINE__); } } sdata(n) { switch (n) { case 0: return(0); case 1: return(1); case 100: return(100); default: return(-1); } } switch_t() { extrn zero; auto successes; if (!(sdata(-1) == -1)) fail(__LINE__); if (!(sdata(0) == 0)) fail(__LINE__); if (!(sdata(1) == 1)) fail(__LINE__); if (!(sdata(2) == -1)) fail(__LINE__); if (!(sdata(100) == 100)) fail(__LINE__); if (!(sdata(200) == -1)) fail(__LINE__); successes = 0; switch (zero) { case 0: /* fall through */ case 1: successes++; break; } if (successes != 1) fail(__LINE__); } goto_t() { goto n; fail(__LINE__); n:; } main() { if_t(); switch_t(); goto_t(); while_t(); finished(); return(0); }