1 | // RUN: %check_clang_tidy %s cert-oop11-cpp %t |
2 | |
3 | struct B { |
4 | B(B&&) noexcept = default; |
5 | |
6 | B(const B &) = default; |
7 | B& operator=(const B&) = default; |
8 | ~B() {} |
9 | }; |
10 | |
11 | struct D { |
12 | B b; |
13 | |
14 | // CHECK-MESSAGES: :[[@LINE+1]]:14: warning: move constructor initializes class member by calling a copy constructor [cert-oop11-cpp] |
15 | D(D &&d) : b(d.b) {} |
16 | |
17 | // This should not produce a diagnostic because it is not covered under |
18 | // the CERT guideline for OOP11-CPP. However, this will produce a diagnostic |
19 | // under performance-move-constructor-init. |
20 | D(B b) : b(b) {} |
21 | }; |
22 | |