forked from OSchip/llvm-project
50 lines
2.8 KiB
C++
50 lines
2.8 KiB
C++
// RUN: %check_clang_tidy %s cppcoreguidelines-special-member-functions %t -- -config="{CheckOptions: [{key: cppcoreguidelines-special-member-functions.AllowMissingMoveFunctionsWhenCopyIsDeleted, value: true}]}" --
|
|
|
|
class DefinesEverything {
|
|
DefinesEverything(const DefinesEverything &);
|
|
DefinesEverything(DefinesEverything &&);
|
|
DefinesEverything &operator=(const DefinesEverything &);
|
|
DefinesEverything &operator=(DefinesEverything &&);
|
|
~DefinesEverything();
|
|
};
|
|
|
|
class DefinesNothing {
|
|
};
|
|
|
|
class DeletedCopyCtorAndOperator {
|
|
~DeletedCopyCtorAndOperator() = default;
|
|
DeletedCopyCtorAndOperator(const DeletedCopyCtorAndOperator &) = delete;
|
|
DeletedCopyCtorAndOperator &operator=(const DeletedCopyCtorAndOperator &) = delete;
|
|
};
|
|
|
|
// CHECK-MESSAGES: [[@LINE+1]]:7: warning: class 'DefaultedCopyCtorAndOperator' defines a default destructor, a copy constructor and a copy assignment operator but does not define a move constructor or a move assignment operator [cppcoreguidelines-special-member-functions]
|
|
class DefaultedCopyCtorAndOperator {
|
|
~DefaultedCopyCtorAndOperator() = default;
|
|
DefaultedCopyCtorAndOperator(const DefaultedCopyCtorAndOperator &) = default;
|
|
DefaultedCopyCtorAndOperator &operator=(const DefaultedCopyCtorAndOperator &) = default;
|
|
};
|
|
|
|
// CHECK-MESSAGES: [[@LINE+1]]:7: warning: class 'DefinedCopyCtorAndOperator' defines a default destructor, a copy constructor and a copy assignment operator but does not define a move constructor or a move assignment operator [cppcoreguidelines-special-member-functions]
|
|
class DefinedCopyCtorAndOperator {
|
|
~DefinedCopyCtorAndOperator() = default;
|
|
DefinedCopyCtorAndOperator(const DefinedCopyCtorAndOperator &);
|
|
DefinedCopyCtorAndOperator &operator=(const DefinedCopyCtorAndOperator &);
|
|
};
|
|
|
|
// CHECK-MESSAGES: [[@LINE+1]]:7: warning: class 'MissingCopyCtor' defines a default destructor and a copy assignment operator but does not define a copy constructor, a move constructor or a move assignment operator [cppcoreguidelines-special-member-functions]
|
|
class MissingCopyCtor {
|
|
~MissingCopyCtor() = default;
|
|
MissingCopyCtor &operator=(const MissingCopyCtor &) = delete;
|
|
};
|
|
|
|
// CHECK-MESSAGES: [[@LINE+1]]:7: warning: class 'MissingCopyOperator' defines a default destructor and a copy constructor but does not define a copy assignment operator, a move constructor or a move assignment operator [cppcoreguidelines-special-member-functions]
|
|
class MissingCopyOperator {
|
|
~MissingCopyOperator() = default;
|
|
MissingCopyOperator(const MissingCopyOperator &) = delete;
|
|
};
|
|
|
|
// CHECK-MESSAGES: [[@LINE+1]]:7: warning: class 'MissingAll' defines a default destructor but does not define a copy constructor, a copy assignment operator, a move constructor or a move assignment operator [cppcoreguidelines-special-member-functions]
|
|
class MissingAll {
|
|
~MissingAll() = default;
|
|
};
|