summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/test/clang-tidy/cert-oop11-cpp.cpp
diff options
context:
space:
mode:
authorAaron Ballman <aaron@aaronballman.com>2016-01-08 15:50:51 +0000
committerAaron Ballman <aaron@aaronballman.com>2016-01-08 15:50:51 +0000
commitc00ad6c5fb7740c18f324928f2add503fee752d1 (patch)
tree72529270b8a26f403c67fe2bff3c06d9e8998f7c /clang-tools-extra/test/clang-tidy/cert-oop11-cpp.cpp
parentb1b2f87e37774ee61dc5c6ea3aa04a99a1adda66 (diff)
downloadbcm5719-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.cpp21
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) {}
+};
OpenPOWER on IntegriCloud