Mercurial > hg > CbC > CbC_llvm
view clang/test/SemaCXX/switch-implicit-fallthrough-per-method.cpp @ 221:79ff65ed7e25
LLVM12 Original
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 15 Jun 2021 19:15:29 +0900 |
parents | 1d019706d866 |
children |
line wrap: on
line source
// RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 -Wimplicit-fallthrough-per-function %s int fallthrough(int n) { switch (n / 10) { case 0: n += 100; case 1: // expected-warning{{unannotated fall-through}} expected-note{{insert '[[clang::fallthrough]];' to silence this warning}} expected-note{{insert 'break;' to avoid fall-through}} switch (n) { case 111: n += 111; [[clang::fallthrough]]; case 112: n += 112; case 113: // expected-warning{{unannotated fall-through}} expected-note{{insert '[[clang::fallthrough]];' to silence this warning}} expected-note{{insert 'break;' to avoid fall-through}} n += 113; break ; } } return n; } int fallthrough2(int n) { switch (n / 10) { case 0: n += 100; case 1: // no warning, as we didn't "opt-in" for it in this method switch (n) { case 111: n += 111; case 112: // no warning, as we didn't "opt-in" for it in this method n += 112; case 113: // no warning, as we didn't "opt-in" for it in this method n += 113; break ; } } return n; } void unscoped(int n) { switch (n % 2) { case 0: [[fallthrough]]; case 2: [[clang::fallthrough]]; case 1: break; } }