brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.3 KiB · 6880bdd Raw
51 lines · cpp
1// RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 -Wimplicit-fallthrough-per-function %s2 3 4int fallthrough(int n) {5  switch (n / 10) {6    case 0:7      n += 100;8    case 1:  // expected-warning{{unannotated fall-through}} expected-note{{insert '[[clang::fallthrough]];' to silence this warning}} expected-note{{insert 'break;' to avoid fall-through}}9      switch (n) {10      case 111:11        n += 111;12        [[clang::fallthrough]];13      case 112:14        n += 112;15      case 113:  // expected-warning{{unannotated fall-through}} expected-note{{insert '[[clang::fallthrough]];' to silence this warning}} expected-note{{insert 'break;' to avoid fall-through}}16        n += 113;17        break    ;18      }19  }20  return n;21}22 23int fallthrough2(int n) {24  switch (n / 10) {25    case 0:26      n += 100;27    case 1:  // no warning, as we didn't "opt-in" for it in this method28      switch (n) {29      case 111:30        n += 111;31      case 112:  // no warning, as we didn't "opt-in" for it in this method32        n += 112;33      case 113:  // no warning, as we didn't "opt-in" for it in this method34        n += 113;35        break    ;36      }37  }38  return n;39}40 41void unscoped(int n) {42  switch (n % 2) {43    case 0:44      [[fallthrough]];45    case 2:46      [[clang::fallthrough]];47    case 1:48      break;49  }50}51