blob: 7ea0870fb70b380216aa5df74b9d4da813502d3e [file] [log] [blame]
// 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}}
}
}