// Expect 4 errors

void discard_stmt() { discard; }

int do_loop(int x) { do { x++; } while(x < 1); return x; }

int while_loop(int x) { while (x < 1) { x++; } return x; }

int switch_stmt(int x) { switch (x) { case 0: return 1; default: return x; } }
