summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/clang-tidy/cppcoreguidelines/SpecialMemberFunctionsCheck.h
diff options
context:
space:
mode:
authorJonathan Coe <jbcoe@me.com>2016-08-02 21:18:37 +0000
committerJonathan Coe <jbcoe@me.com>2016-08-02 21:18:37 +0000
commit77ec263e6025155850f117c934ae11eceaba5f3a (patch)
treedfeb80312feeb81c156fbfcb9a37e38cd99b0ac0 /clang-tools-extra/clang-tidy/cppcoreguidelines/SpecialMemberFunctionsCheck.h
parent6eb1ca74165a4e17d4f0193e879e729170257e39 (diff)
downloadbcm5719-llvm-77ec263e6025155850f117c934ae11eceaba5f3a.tar.gz
bcm5719-llvm-77ec263e6025155850f117c934ae11eceaba5f3a.zip
[clang-tidy] Fix segfault in cppcore-guidelines-special-member-functions check
Summary: Use a set rather than a vector of defined special member functions so that multiple declarations of the same function are only counted once. Move some private static member functions into the cpp file. Run clang-format on header. Reviewers: ericLemanissier, Prazek, aaron.ballman Subscribers: Prazek, cfe-commits, nemanjai Projects: #clang-tools-extra Differential Revision: https://reviews.llvm.org/D23008 llvm-svn: 277523
Diffstat (limited to 'clang-tools-extra/clang-tidy/cppcoreguidelines/SpecialMemberFunctionsCheck.h')
-rw-r--r--clang-tools-extra/clang-tidy/cppcoreguidelines/SpecialMemberFunctionsCheck.h14
1 files changed, 5 insertions, 9 deletions
diff --git a/clang-tools-extra/clang-tidy/cppcoreguidelines/SpecialMemberFunctionsCheck.h b/clang-tools-extra/clang-tidy/cppcoreguidelines/SpecialMemberFunctionsCheck.h
index 508ce6411cf..227d3591cf0 100644
--- a/clang-tools-extra/clang-tidy/cppcoreguidelines/SpecialMemberFunctionsCheck.h
+++ b/clang-tools-extra/clang-tidy/cppcoreguidelines/SpecialMemberFunctionsCheck.h
@@ -1,4 +1,4 @@
-//===--- SpecialMemberFunctionsCheck.h - clang-tidy-------------------*- C++ -*-===//
+//===--- SpecialMemberFunctionsCheck.h - clang-tidy--------------*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
@@ -41,15 +41,11 @@ public:
using ClassDefId = std::pair<SourceLocation, std::string>;
- using ClassDefiningSpecialMembersMap = llvm::DenseMap<ClassDefId, llvm::SmallVector<SpecialMemberFunctionKind, 5>>;
+ using ClassDefiningSpecialMembersMap =
+ llvm::DenseMap<ClassDefId,
+ llvm::SmallSetVector<SpecialMemberFunctionKind, 5>>;
private:
-
- static llvm::StringRef toString(SpecialMemberFunctionKind K);
-
- static std::string join(llvm::ArrayRef<SpecialMemberFunctionKind> SMFS,
- llvm::StringRef AndOr);
-
ClassDefiningSpecialMembersMap ClassWithSpecialMembers;
};
@@ -65,7 +61,7 @@ template <>
struct DenseMapInfo<
clang::tidy::cppcoreguidelines::SpecialMemberFunctionsCheck::ClassDefId> {
using ClassDefId =
- clang::tidy::cppcoreguidelines::SpecialMemberFunctionsCheck::ClassDefId;
+ clang::tidy::cppcoreguidelines::SpecialMemberFunctionsCheck::ClassDefId;
static inline ClassDefId getEmptyKey() {
return ClassDefId(
OpenPOWER on IntegriCloud