[Libreoffice-commits] dev-tools.git: 2 commits - clang/find-unprefixed-members.cxx clang/test.hxx
Miklos Vajna
vmiklos at collabora.co.uk
Wed Oct 28 19:17:59 UTC 2015
clang/find-unprefixed-members.cxx | 22 +++++++---------------
clang/test.hxx | 14 ++++++++++++--
2 files changed, 19 insertions(+), 17 deletions(-)
New commits:
commit be70d9edbd52c0cc0fd82647e7af00ac38a327e7
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date: Wed Oct 28 20:15:22 2015 +0100
clang: ignore member functions of structs in find-unprefixed-members
E.g. SwPosition is not prefixed, but those members are accessed almost
always directly from the outside, so it doesn't really matter that it
has a few member functions, it's still just a struct.
diff --git a/clang/find-unprefixed-members.cxx b/clang/find-unprefixed-members.cxx
index 51f3f47..1ca5a08 100644
--- a/clang/find-unprefixed-members.cxx
+++ b/clang/find-unprefixed-members.cxx
@@ -116,6 +116,9 @@ public:
return true;
clang::CXXRecordDecl* pRecord = pDecl->getParent();
+ if (pRecord->getKindName().str() == "struct")
+ return true;
+
m_aFunctions.insert(pRecord->getQualifiedNameAsString());
return true;
}
diff --git a/clang/test.hxx b/clang/test.hxx
index 1ef233c..cd89c60 100644
--- a/clang/test.hxx
+++ b/clang/test.hxx
@@ -30,11 +30,19 @@ public:
C() { }
};
/// This has no member functions, so members are OK to be not prefixed.
-struct S
+class S1
{
int nX, mnY, m_nZ;
- S() { }
- ~S() { }
+ S1() { }
+ ~S1() { }
+};
+/// This has member functions, but is a struct, so members are still OK to be not prefixed.
+struct S2
+{
+ int nX, mnY, m_nZ;
+ S2() { }
+ void foo() { }
+ ~S2() { }
};
}
commit d8eca99285d8fe96b62189930863cb07dd30797b
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date: Wed Oct 28 20:14:37 2015 +0100
clang: ignore members with ctor/dtors only in find-unprefixed-members
diff --git a/clang/find-unprefixed-members.cxx b/clang/find-unprefixed-members.cxx
index d8c609c..51f3f47 100644
--- a/clang/find-unprefixed-members.cxx
+++ b/clang/find-unprefixed-members.cxx
@@ -36,7 +36,7 @@ class Visitor : public clang::RecursiveASTVisitor<Visitor>
const Context m_rContext;
/// List of qualified class name -- member name pairs.
std::vector<std::pair<std::string, std::string>> m_aResults;
- /// List of qualified class names which have ctors/dtors/member functions.
+ /// List of qualified class names which have member functions.
std::set<std::string> m_aFunctions;
public:
@@ -110,22 +110,11 @@ public:
return true;
}
- bool VisitCXXConstructorDecl(clang::CXXConstructorDecl* pDecl)
- {
- clang::CXXRecordDecl* pRecord = pDecl->getParent();
- m_aFunctions.insert(pRecord->getQualifiedNameAsString());
- return true;
- }
-
- bool VisitCXXDestructorDecl(clang::CXXDestructorDecl* pDecl)
- {
- clang::CXXRecordDecl* pRecord = pDecl->getParent();
- m_aFunctions.insert(pRecord->getQualifiedNameAsString());
- return true;
- }
-
bool VisitCXXMethodDecl(clang::CXXMethodDecl* pDecl)
{
+ if (clang::isa<clang::CXXConstructorDecl>(pDecl) || clang::isa<clang::CXXDestructorDecl>(pDecl))
+ return true;
+
clang::CXXRecordDecl* pRecord = pDecl->getParent();
m_aFunctions.insert(pRecord->getQualifiedNameAsString());
return true;
@@ -151,7 +140,7 @@ public:
aVisitor.TraverseDecl(rContext.getTranslationUnitDecl());
const std::set<std::string>& rFunctions = aVisitor.getFunctions();
const std::vector<std::pair<std::string, std::string>>& rResults = aVisitor.getResults();
- // Ignore missing prefixes in structs without ctors/dtors/member functions.
+ // Ignore missing prefixes in structs without member functions.
bool bFound = false;
for (const std::string& rFunction : rFunctions)
{
diff --git a/clang/test.hxx b/clang/test.hxx
index 1669b9d..1ef233c 100644
--- a/clang/test.hxx
+++ b/clang/test.hxx
@@ -29,10 +29,12 @@ public:
C() { }
};
-/// This has no ctor/dtor/member functions, so members are OK to be not prefixed.
+/// This has no member functions, so members are OK to be not prefixed.
struct S
{
int nX, mnY, m_nZ;
+ S() { }
+ ~S() { }
};
}
More information about the Libreoffice-commits
mailing list