diff options
author | Aaron Ballman <aaron@aaronballman.com> | 2018-11-29 12:45:50 +0000 |
---|---|---|
committer | Aaron Ballman <aaron@aaronballman.com> | 2018-11-29 12:45:50 +0000 |
commit | b38bd52f9fa0d15f7bb471f78ad69ee2abb32109 (patch) | |
tree | 4c6dadb8017a325c5b9e6a014698934b8dada073 /clang-tools-extra/test | |
parent | 9974303eace854f9eb443b8f9f479bb00ace5654 (diff) |
Adding a FIXME test to document an area for improvement with the cert-err58-cpp check; NFC.
Diffstat (limited to 'clang-tools-extra/test')
-rw-r--r-- | clang-tools-extra/test/clang-tidy/cert-static-object-exception.cpp | 12 |
1 files changed, 12 insertions, 0 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 index 5c07c8d606a..b915252bfff 100644 --- a/clang-tools-extra/test/clang-tidy/cert-static-object-exception.cpp +++ b/clang-tools-extra/test/clang-tidy/cert-static-object-exception.cpp @@ -260,4 +260,16 @@ 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 } |