blob: 8fe5e429dbfa2b98c8d526dd775b087a4ff4d78c [file] [log] [blame]
Jonathan Coe5d304b22016-07-30 08:58:54 +00001// RUN: %check_clang_tidy %s cppcoreguidelines-special-member-functions %t -- -- -std=c++03
2
3class DefinesDestructor {
4 ~DefinesDestructor();
5};
Aaron Ballman9dd8caa2017-03-13 21:39:00 +00006// CHECK-MESSAGES: [[@LINE-3]]:7: warning: class 'DefinesDestructor' defines a non-default destructor but does not define a copy constructor or a copy assignment operator [cppcoreguidelines-special-member-functions]
Jonathan Coe5d304b22016-07-30 08:58:54 +00007
8class DefinesCopyConstructor {
9 DefinesCopyConstructor(const DefinesCopyConstructor &);
10};
11// CHECK-MESSAGES: [[@LINE-3]]:7: warning: class 'DefinesCopyConstructor' defines a copy constructor but does not define a destructor or a copy assignment operator [cppcoreguidelines-special-member-functions]
12
13class DefinesCopyAssignment {
14 DefinesCopyAssignment &operator=(const DefinesCopyAssignment &);
15};
16// CHECK-MESSAGES: [[@LINE-3]]:7: warning: class 'DefinesCopyAssignment' defines a copy assignment operator but does not define a destructor or a copy constructor [cppcoreguidelines-special-member-functions]
17
18class DefinesNothing {
19};
20
21class DefinesEverything {
22 DefinesEverything(const DefinesEverything &);
23 DefinesEverything &operator=(const DefinesEverything &);
24 ~DefinesEverything();
25};
26