diff options
author | Aaron Ballman <aaron@aaronballman.com> | 2016-01-08 15:50:51 +0000 |
---|---|---|
committer | Aaron Ballman <aaron@aaronballman.com> | 2016-01-08 15:50:51 +0000 |
commit | c00ad6c5fb7740c18f324928f2add503fee752d1 (patch) | |
tree | 72529270b8a26f403c67fe2bff3c06d9e8998f7c /clang-tools-extra/test/clang-tidy/cert-oop11-cpp.cpp | |
parent | b1b2f87e37774ee61dc5c6ea3aa04a99a1adda66 (diff) | |
download | bcm5719-llvm-c00ad6c5fb7740c18f324928f2add503fee752d1.tar.gz bcm5719-llvm-c00ad6c5fb7740c18f324928f2add503fee752d1.zip |
Disable part of the misc-move-constructor-init checker when the check is enabled through cert-oop11-cpp. The CERT guideline does not cover moveable parameters as part of the OOP11-CPP recommendation, just copy construction from move constructors.
llvm-svn: 257177
Diffstat (limited to 'clang-tools-extra/test/clang-tidy/cert-oop11-cpp.cpp')
-rw-r--r-- | clang-tools-extra/test/clang-tidy/cert-oop11-cpp.cpp | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/clang-tools-extra/test/clang-tidy/cert-oop11-cpp.cpp b/clang-tools-extra/test/clang-tidy/cert-oop11-cpp.cpp new file mode 100644 index 00000000000..a4493bdc55a --- /dev/null +++ b/clang-tools-extra/test/clang-tidy/cert-oop11-cpp.cpp @@ -0,0 +1,21 @@ +// RUN: %check_clang_tidy %s cert-oop11-cpp %t -- -- -std=c++11 + +struct B { + B(B&&) noexcept = default; + + B(const B &) = default; + B& operator=(const B&) = default; + ~B() {} +}; + +struct D { + B b; + + // CHECK-MESSAGES: :[[@LINE+1]]:14: warning: move constructor initializes class member by calling a copy constructor [cert-oop11-cpp] + D(D &&d) : b(d.b) {} + + // This should not produce a diagnostic because it is not covered under + // the CERT guideline for OOP11-CPP. However, this will produce a diagnostic + // under misc-move-constructor-init. + D(B b) : b(b) {} +}; |