diff options
author | Dmitri Gribenko <gribozavr@gmail.com> | 2019-10-11 12:05:42 +0000 |
---|---|---|
committer | Dmitri Gribenko <gribozavr@gmail.com> | 2019-10-11 12:05:42 +0000 |
commit | 885c559369fe3d6323898c17787bd0454065fc34 (patch) | |
tree | ba43b987e078f4c2a033acc71ad3d7f1ee385a11 /clang-tools-extra/test/clang-tidy/cppcoreguidelines-avoid-goto.cpp | |
parent | 9f6a873268e1ad9855873d9d8007086c0d01cf4f (diff) | |
download | bcm5719-llvm-885c559369fe3d6323898c17787bd0454065fc34.tar.gz bcm5719-llvm-885c559369fe3d6323898c17787bd0454065fc34.zip |
[ClangTidy] Separate tests for infrastructure and checkers
Summary:
This change moves tests for checkers and infrastructure into separate
directories, making it easier to find infrastructure tests. Tests for
checkers are already easy to find because they are named after the
checker. Tests for infrastructure were difficult to find because they
were outnumbered by tests for checkers. Now they are in a separate
directory.
Reviewers: jfb, jdoerfert, lebedev.ri
Subscribers: srhines, nemanjai, aheejin, kbarton, christof, mgrang, arphaman, jfb, lebedev.ri, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D68807
llvm-svn: 374540
Diffstat (limited to 'clang-tools-extra/test/clang-tidy/cppcoreguidelines-avoid-goto.cpp')
-rw-r--r-- | clang-tools-extra/test/clang-tidy/cppcoreguidelines-avoid-goto.cpp | 139 |
1 files changed, 0 insertions, 139 deletions
diff --git a/clang-tools-extra/test/clang-tidy/cppcoreguidelines-avoid-goto.cpp b/clang-tools-extra/test/clang-tidy/cppcoreguidelines-avoid-goto.cpp deleted file mode 100644 index ee236bc4469..00000000000 --- a/clang-tools-extra/test/clang-tidy/cppcoreguidelines-avoid-goto.cpp +++ /dev/null @@ -1,139 +0,0 @@ -// RUN: %check_clang_tidy %s cppcoreguidelines-avoid-goto %t - -void noop() {} - -int main() { - noop(); - goto jump_to_me; - // CHECK-NOTES: [[@LINE-1]]:3: warning: avoid using 'goto' for flow control - // CHECK-NOTES: [[@LINE+3]]:1: note: label defined here - noop(); - -jump_to_me:; - -jump_backwards:; - noop(); - goto jump_backwards; - // CHECK-NOTES: [[@LINE-1]]:3: warning: avoid using 'goto' for flow control - // CHECK-NOTES: [[@LINE-4]]:1: note: label defined here - - goto jump_in_line; - ; -jump_in_line:; - // CHECK-NOTES: [[@LINE-3]]:3: warning: avoid using 'goto' for flow control - // CHECK-NOTES: [[@LINE-2]]:1: note: label defined here - - // Test the GNU extension https://gcc.gnu.org/onlinedocs/gcc/Labels-as-Values.html -some_label:; - void *dynamic_label = &&some_label; - - // FIXME: `IndirectGotoStmt` is not detected. - goto *dynamic_label; -} - -void forward_jump_out_nested_loop() { - int array[] = {1, 2, 3, 4, 5}; - for (int i = 0; i < 10; ++i) { - noop(); - for (int j = 0; j < 10; ++j) { - noop(); - if (i + j > 10) - goto early_exit1; - } - noop(); - } - - for (int i = 0; i < 10; ++i) { - noop(); - while (true) { - noop(); - if (i > 5) - goto early_exit1; - } - noop(); - } - - for (auto value : array) { - noop(); - for (auto number : array) { - noop(); - if (number == 5) - goto early_exit1; - } - } - - do { - noop(); - do { - noop(); - goto early_exit1; - } while (true); - } while (true); - - do { - for (auto number : array) { - noop(); - if (number == 2) - goto early_exit1; - } - } while (true); - - // Jumping further results in error, because the variable declaration would - // be skipped. -early_exit1:; - - int i = 0; - while (true) { - noop(); - while (true) { - noop(); - if (i > 5) - goto early_exit2; - i++; - } - noop(); - } - - while (true) { - noop(); - for (int j = 0; j < 10; ++j) { - noop(); - if (j > 5) - goto early_exit2; - } - noop(); - } - - while (true) { - noop(); - for (auto number : array) { - if (number == 1) - goto early_exit2; - noop(); - } - } - - while (true) { - noop(); - do { - noop(); - goto early_exit2; - } while (true); - } -early_exit2:; -} - -void jump_out_backwards() { - -before_the_loop: - noop(); - - for (int i = 0; i < 10; ++i) { - for (int j = 0; j < 10; ++j) { - if (i * j > 80) - goto before_the_loop; - // CHECK-NOTES: [[@LINE-1]]:9: warning: avoid using 'goto' for flow control - // CHECK-NOTES: [[@LINE-8]]:1: note: label defined here - } - } -} |