// RUN: %clang_cc1 -x c++ %s -verify // dr2406: yes void fallthrough(int n) { void g(), h(), i(); switch (n) { case 1: case 2: g(); [[fallthrough]]; case 3: // warning on fallthrough discouraged do { [[fallthrough]]; // expected-error {{fallthrough annotation does not directly precede switch label}} } while (false); case 6: do { [[fallthrough]]; // expected-error {{fallthrough annotation does not directly precede switch label}} } while (n); case 7: while (false) { [[fallthrough]]; // expected-error {{fallthrough annotation does not directly precede switch label}} } case 5: h(); case 4: // implementation may warn on fallthrough i(); [[fallthrough]]; // expected-error {{fallthrough annotation does not directly precede switch label}} } }