// RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 -Wimplicit-fallthrough-per-method %s


int fallthrough(int n) {
  switch (n / 10) {
    case 0:
      n += 100;
    case 1:  // expected-warning{{unannotated fall-through between switch labels in partly annotated method}} 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 between switch labels in partly annotated method}} 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;
}
