summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/test/clang-tidy/cert-static-object-exception.cpp
diff options
context:
space:
mode:
authorDmitri Gribenko <gribozavr@gmail.com>2019-10-11 12:05:42 +0000
committerDmitri Gribenko <gribozavr@gmail.com>2019-10-11 12:05:42 +0000
commit885c559369fe3d6323898c17787bd0454065fc34 (patch)
treeba43b987e078f4c2a033acc71ad3d7f1ee385a11 /clang-tools-extra/test/clang-tidy/cert-static-object-exception.cpp
parent9f6a873268e1ad9855873d9d8007086c0d01cf4f (diff)
downloadbcm5719-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/cert-static-object-exception.cpp')
-rw-r--r--clang-tools-extra/test/clang-tidy/cert-static-object-exception.cpp275
1 files changed, 0 insertions, 275 deletions
diff --git a/clang-tools-extra/test/clang-tidy/cert-static-object-exception.cpp b/clang-tools-extra/test/clang-tidy/cert-static-object-exception.cpp
deleted file mode 100644
index b915252bfff..00000000000
--- a/clang-tools-extra/test/clang-tidy/cert-static-object-exception.cpp
+++ /dev/null
@@ -1,275 +0,0 @@
-// RUN: clang-tidy %s -checks="-*,cert-err58-cpp" -- -std=c++17 -target x86_64-pc-linux-gnu \
-// RUN: | FileCheck %s -check-prefix=CHECK-EXCEPTIONS \
-// RUN: -implicit-check-not="{{warning|error}}:"
-// RUN: clang-tidy %s -checks="-*,cert-err58-cpp" -- -DNONEXCEPTIONS -fno-exceptions -std=c++17 -target x86_64-pc-linux-gnu \
-// RUN: | FileCheck %s -allow-empty -check-prefix=CHECK-NONEXCEPTIONS \
-// RUN: -implicit-check-not="{{warning|error}}:"
-
-struct S {
- S() noexcept(false);
-};
-
-struct T {
- T() noexcept;
-};
-
-struct U {
- U() {}
-};
-
-struct V {
- explicit V(const char *) {} // Can throw
-};
-
-struct Cleanup {
- ~Cleanup() {}
-};
-
-struct W {
- W(Cleanup c = {}) noexcept(false);
-};
-
-struct X {
- X(S = {}) noexcept;
-};
-
-struct Y {
- S s;
-};
-
-struct Z {
- T t;
-};
-
-int f();
-int g() noexcept(false);
-int h() noexcept(true);
-
-struct UserConv_Bad {
- operator int() noexcept(false);
-};
-
-struct UserConv_Good {
- operator int() noexcept;
-};
-
-UserConv_Bad some_bad_func() noexcept;
-UserConv_Good some_good_func() noexcept;
-
-S s;
-// CHECK-EXCEPTIONS: :[[@LINE-1]]:3: warning: initialization of 's' with static storage duration may throw an exception that cannot be caught [cert-err58-cpp]
-// CHECK-EXCEPTIONS: 9:3: note: possibly throwing constructor declared here
-// CHECK-NONEXCEPTIONS-NOT: warning:
-T t; // ok
-U u;
-// CHECK-EXCEPTIONS: :[[@LINE-1]]:3: warning: initialization of 'u' with static storage duration may throw an exception that cannot be caught
-// CHECK-EXCEPTIONS: 17:3: note: possibly throwing constructor declared here
-// CHECK-NONEXCEPTIONS-NOT: warning:
-V v("v");
-// CHECK-EXCEPTIONS: :[[@LINE-1]]:3: warning: initialization of 'v' with static storage duration may throw an exception that cannot be caught
-// CHECK-EXCEPTIONS: 21:12: note: possibly throwing constructor declared here
-// CHECK-NONEXCEPTIONS-NOT: warning:
-W w;
-// CHECK-EXCEPTIONS: :[[@LINE-1]]:3: warning: initialization of 'w' with static storage duration may throw an exception that cannot be caught
-// CHECK-EXCEPTIONS: 29:3: note: possibly throwing constructor declared here
-// CHECK-NONEXCEPTIONS-NOT: warning:
-X x1(S{});
-// CHECK-EXCEPTIONS: :[[@LINE-1]]:3: warning: initialization of 'x1' with static storage duration may throw an exception that cannot be caught
-// CHECK-EXCEPTIONS: 9:3: note: possibly throwing constructor declared here
-// CHECK-NONEXCEPTIONS-NOT: warning:
-X x2;
-// CHECK-EXCEPTIONS: :[[@LINE-1]]:3: warning: initialization of 'x2' with static storage duration may throw an exception that cannot be caught
-// CHECK-EXCEPTIONS: 9:3: note: possibly throwing constructor declared here
-// CHECK-NONEXCEPTIONS-NOT: warning:
-Y y;
-// CHECK-EXCEPTIONS: :[[@LINE-1]]:3: warning: initialization of 'y' with static storage duration may throw an exception that cannot be caught
-// CHECK-EXCEPTIONS: 36:8: note: possibly throwing constructor declared here
-// CHECK-NONEXCEPTIONS-NOT: warning:
-Z z;
-
-int i = f();
-// CHECK-EXCEPTIONS: :[[@LINE-1]]:5: warning: initialization of 'i' with static storage duration may throw an exception that cannot be caught
-// CHECK-EXCEPTIONS: 44:5: note: possibly throwing function declared here
-// CHECK-NONEXCEPTIONS-NOT: warning:
-int j = g();
-// CHECK-EXCEPTIONS: :[[@LINE-1]]:5: warning: initialization of 'j' with static storage duration may throw an exception that cannot be caught
-// CHECK-EXCEPTIONS: 45:5: note: possibly throwing function declared here
-// CHECK-NONEXCEPTIONS-NOT: warning:
-int k = h();
-int l = some_bad_func();
-// CHECK-EXCEPTIONS: :[[@LINE-1]]:5: warning: initialization of 'l' with static storage duration may throw an exception that cannot be caught
-// CHECK-EXCEPTIONS: 49:3: note: possibly throwing function declared here
-// CHECK-NONEXCEPTIONS-NOT: warning:
-int m = some_good_func();
-
-typedef decltype(sizeof(int)) size_t;
-inline void *operator new(size_t sz, void *here) noexcept { return here; }
-char n[sizeof(int)];
-int *o = new (n) int();
-int *p = new int();
-// CHECK-EXCEPTIONS: :[[@LINE-1]]:6: warning: initialization of 'p' with static storage duration may throw an exception that cannot be caught
-// CHECK-NONEXCEPTIONS-NOT: warning:
-
-thread_local S s3;
-// CHECK-EXCEPTIONS: :[[@LINE-1]]:16: warning: initialization of 's3' with thread_local storage duration may throw an exception that cannot be caught
-// CHECK-NONEXCEPTIONS-NOT: warning:
-thread_local T t3; // ok
-thread_local U u3;
-// CHECK-EXCEPTIONS: :[[@LINE-1]]:16: warning: initialization of 'u3' with thread_local storage duration may throw an exception that cannot be caught
-// CHECK-NONEXCEPTIONS-NOT: warning:
-thread_local V v3("v");
-// CHECK-EXCEPTIONS: :[[@LINE-1]]:16: warning: initialization of 'v3' with thread_local storage duration may throw an exception that cannot be caught
-// CHECK-NONEXCEPTIONS-NOT: warning:
-thread_local W w3;
-// CHECK-EXCEPTIONS: :[[@LINE-1]]:16: warning: initialization of 'w3' with thread_local storage duration may throw an exception that cannot be caught
-// CHECK-NONEXCEPTIONS-NOT: warning:
-
-void f(S s1, T t1, U u1, V v1, W w1) { // ok, ok, ok, ok, ok
- S s2; // ok
- T t2; // ok
- U u2; // ok
- V v2("v"); // ok
- W w2; // ok
-
- thread_local S s3; // ok
- thread_local T t3; // ok
- thread_local U u3; // ok
- thread_local V v3("v"); // ok
- thread_local W w3; // ok
-
- static S s4; // ok
- static T t4; // ok
- static U u4; // ok
- static V v4("v"); // ok
- static W w4; // ok
-}
-
-namespace {
-S s;
-// CHECK-EXCEPTIONS: :[[@LINE-1]]:3: warning: initialization of 's' with static storage duration may throw an exception that cannot be caught [cert-err58-cpp]
-// CHECK-EXCEPTIONS: 9:3: note: possibly throwing constructor declared here
-// CHECK-NONEXCEPTIONS-NOT: warning:
-T t; // ok
-U u;
-// CHECK-EXCEPTIONS: :[[@LINE-1]]:3: warning: initialization of 'u' with static storage duration may throw an exception that cannot be caught
-// CHECK-EXCEPTIONS: 17:3: note: possibly throwing constructor declared here
-// CHECK-NONEXCEPTIONS-NOT: warning:
-V v("v");
-// CHECK-EXCEPTIONS: :[[@LINE-1]]:3: warning: initialization of 'v' with static storage duration may throw an exception that cannot be caught
-// CHECK-EXCEPTIONS: 21:12: note: possibly throwing constructor declared here
-// CHECK-NONEXCEPTIONS-NOT: warning:
-W w;
-// CHECK-EXCEPTIONS: :[[@LINE-1]]:3: warning: initialization of 'w' with static storage duration may throw an exception that cannot be caught
-// CHECK-EXCEPTIONS: 29:3: note: possibly throwing constructor declared here
-// CHECK-NONEXCEPTIONS-NOT: warning:
-
-thread_local S s3;
-// CHECK-EXCEPTIONS: :[[@LINE-1]]:16: warning: initialization of 's3' with thread_local storage duration may throw an exception that cannot be caught
-// CHECK-NONEXCEPTIONS-NOT: warning:
-thread_local T t3; // ok
-thread_local U u3;
-// CHECK-EXCEPTIONS: :[[@LINE-1]]:16: warning: initialization of 'u3' with thread_local storage duration may throw an exception that cannot be caught
-// CHECK-NONEXCEPTIONS-NOT: warning:
-thread_local V v3("v");
-// CHECK-EXCEPTIONS: :[[@LINE-1]]:16: warning: initialization of 'v3' with thread_local storage duration may throw an exception that cannot be caught
-// CHECK-NONEXCEPTIONS-NOT: warning:
-thread_local W w3;
-// CHECK-EXCEPTIONS: :[[@LINE-1]]:16: warning: initialization of 'w3' with thread_local storage duration may throw an exception that cannot be caught
-// CHECK-NONEXCEPTIONS-NOT: warning:
-}; // namespace
-
-class Statics {
- static S s; // warn when initialized
- static T t; // ok
- static U u; // warn when initialized
- static V v; // warn when initialized
- static W w; // warn when initialized
-
- void f(S s, T t, U u, V v) {
- S s2; // ok
- T t2; // ok
- U u2; // ok
- V v2("v"); // ok
- W w2; // ok
-
- thread_local S s3; // ok
- thread_local T t3; // ok
- thread_local U u3; // ok
- thread_local V v3("v"); // ok
- thread_local W w3; // ok
-
- static S s4; // ok
- static T t4; // ok
- static U u4; // ok
- static V v4("v"); // ok
- static W w4; // ok
- }
-};
-
-S Statics::s;
-// CHECK-EXCEPTIONS: :[[@LINE-1]]:12: warning: initialization of 's' with static storage duration may throw an exception that cannot be caught [cert-err58-cpp]
-// CHECK-EXCEPTIONS: 9:3: note: possibly throwing constructor declared here
-// CHECK-NONEXCEPTIONS-NOT: warning:
-T Statics::t;
-U Statics::u;
-// CHECK-EXCEPTIONS: :[[@LINE-1]]:12: warning: initialization of 'u' with static storage duration may throw an exception that cannot be caught
-// CHECK-EXCEPTIONS: 17:3: note: possibly throwing constructor declared here
-// CHECK-NONEXCEPTIONS-NOT: warning:
-V Statics::v("v");
-// CHECK-EXCEPTIONS: :[[@LINE-1]]:12: warning: initialization of 'v' with static storage duration may throw an exception that cannot be caught
-// CHECK-EXCEPTIONS: 21:12: note: possibly throwing constructor declared here
-// CHECK-NONEXCEPTIONS-NOT: warning:
-W Statics::w;
-// CHECK-EXCEPTIONS: :[[@LINE-1]]:12: warning: initialization of 'w' with static storage duration may throw an exception that cannot be caught
-// CHECK-EXCEPTIONS: 29:3: note: possibly throwing constructor declared here
-// CHECK-NONEXCEPTIONS-NOT: warning:
-
-#ifndef NONEXCEPTIONS
-namespace pr35457 {
-constexpr int foo(int x) { if (x <= 0) throw 12; return x; }
-
-constexpr int bar = foo(1); // OK
-// CHECK-EXCEPTIONS-NOT: warning: initialization of 'bar' with static storage
-int baz = foo(0); // Not OK; throws at runtime when exceptions are enabled.
-// CHECK-EXCEPTIONS: :[[@LINE-1]]:5: warning: initialization of 'baz' with static storage duration may throw an exception that cannot be caught [cert-err58-cpp]
-// CHECK-EXCEPTIONS: :[[@LINE-6]]:15: note: possibly throwing function declared here
-} // namespace pr35457
-#endif // NONEXCEPTIONS
-
-namespace pr39777 {
-struct S { S(); };
-struct T { T() noexcept; };
-
-auto Okay1 = []{ S s; };
-auto Okay2 = []{ (void)new int; };
-auto NotOkay1 = []{ S s; return 12; }(); // Because the lambda call is not noexcept
-// CHECK-EXCEPTIONS: :[[@LINE-1]]:6: warning: initialization of 'NotOkay1' with static storage duration may throw an exception that cannot be caught [cert-err58-cpp]
-// CHECK-EXCEPTIONS: :[[@LINE-7]]:12: note: possibly throwing constructor declared here
-auto NotOkay2 = []() noexcept { S s; return 12; }(); // Because S::S() is not noexcept
-// CHECK-EXCEPTIONS: :[[@LINE-1]]:6: warning: initialization of 'NotOkay2' with static storage duration may throw an exception that cannot be caught [cert-err58-cpp]
-// CHECK-EXCEPTIONS: :[[@LINE-10]]:12: note: possibly throwing constructor declared here
-auto Okay3 = []() noexcept { T t; return t; }();
-
-struct U {
- U() noexcept;
- auto getBadLambda() const noexcept {
- return []{ S s; return s; };
- }
-};
-auto Okay4 = []{ U u; return u.getBadLambda(); }();
-auto NotOkay3 = []() noexcept { U u; return u.getBadLambda(); }()(); // Because the lambda returned and called is not noexcept
-// CHECK-EXCEPTIONS: :[[@LINE-1]]:6: warning: initialization of 'NotOkay3' with static storage duration may throw an exception that cannot be caught [cert-err58-cpp]
-// CHECK-EXCEPTIONS: :[[@LINE-6]]:12: note: possibly throwing function declared here
-
-#ifndef NONEXCEPTIONS
-struct Bad {
- Bad() {
- throw 12;
- }
-};
-
-static auto NotOkay4 = [bad = Bad{}](){};
-// FIXME: the above should be diagnosed because the capture init can trigger
-// an exception when constructing the Bad object.
-#endif // NONEXCEPTIONS
-}
OpenPOWER on IntegriCloud