summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/clang-tidy/cppcoreguidelines/SpecialMemberFunctionsCheck.h
diff options
context:
space:
mode:
authorAaron Ballman <aaron@aaronballman.com>2017-03-13 21:39:00 +0000
committerAaron Ballman <aaron@aaronballman.com>2017-03-13 21:39:00 +0000
commit9dd8caad1f955119c3804029f72bd443986f3dc9 (patch)
tree613fb9b22fbe98dfcdaed99098ba8b613ead2ffe /clang-tools-extra/clang-tidy/cppcoreguidelines/SpecialMemberFunctionsCheck.h
parent38a91a0de661967b3609d044e63985101d69e153 (diff)
downloadbcm5719-llvm-9dd8caad1f955119c3804029f72bd443986f3dc9.tar.gz
bcm5719-llvm-9dd8caad1f955119c3804029f72bd443986f3dc9.zip
Add the 'AllowSoleDefaultDtor' and 'AllowMissingMoveFunctions' options to the cppcoreguidelines-special-member-functions check.
Patch by Florian Gross. llvm-svn: 297671
Diffstat (limited to 'clang-tools-extra/clang-tidy/cppcoreguidelines/SpecialMemberFunctionsCheck.h')
-rw-r--r--clang-tools-extra/clang-tidy/cppcoreguidelines/SpecialMemberFunctionsCheck.h12
1 files changed, 10 insertions, 2 deletions
diff --git a/clang-tools-extra/clang-tidy/cppcoreguidelines/SpecialMemberFunctionsCheck.h b/clang-tools-extra/clang-tidy/cppcoreguidelines/SpecialMemberFunctionsCheck.h
index c4e31c2f457..bb4c31d80ec 100644
--- a/clang-tools-extra/clang-tidy/cppcoreguidelines/SpecialMemberFunctionsCheck.h
+++ b/clang-tools-extra/clang-tidy/cppcoreguidelines/SpecialMemberFunctionsCheck.h
@@ -25,14 +25,16 @@ namespace cppcoreguidelines {
/// http://clang.llvm.org/extra/clang-tidy/checks/cppcoreguidelines-special-member-functions.html
class SpecialMemberFunctionsCheck : public ClangTidyCheck {
public:
- SpecialMemberFunctionsCheck(StringRef Name, ClangTidyContext *Context)
- : ClangTidyCheck(Name, Context) {}
+ SpecialMemberFunctionsCheck(StringRef Name, ClangTidyContext *Context);
+ void storeOptions(ClangTidyOptions::OptionMap &Opts) override;
void registerMatchers(ast_matchers::MatchFinder *Finder) override;
void check(const ast_matchers::MatchFinder::MatchResult &Result) override;
void onEndOfTranslationUnit() override;
enum class SpecialMemberFunctionKind : uint8_t {
Destructor,
+ DefaultDestructor,
+ NonDefaultDestructor,
CopyConstructor,
CopyAssignment,
MoveConstructor,
@@ -46,6 +48,12 @@ public:
llvm::SmallVector<SpecialMemberFunctionKind, 5>>;
private:
+ void checkForMissingMembers(
+ const ClassDefId &ID,
+ llvm::ArrayRef<SpecialMemberFunctionKind> DefinedSpecialMembers);
+
+ const bool AllowMissingMoveFunctions;
+ const bool AllowSoleDefaultDtor;
ClassDefiningSpecialMembersMap ClassWithSpecialMembers;
};
OpenPOWER on IntegriCloud