public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Andreas Sturmlechner" <asturm@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-util/clazy/files/, dev-util/clazy/
Date: Mon, 26 Oct 2020 13:56:19 +0000 (UTC)	[thread overview]
Message-ID: <1603720545.3cf0b312d76f313c80a28d1c7d112e03e303d3a2.asturm@gentoo> (raw)

commit:     3cf0b312d76f313c80a28d1c7d112e03e303d3a2
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Mon Oct 26 10:21:23 2020 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Mon Oct 26 13:55:45 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3cf0b312

dev-util/clazy: Fix build with LLVM-11

Fix HOMEPAGE

Closes: https://bugs.gentoo.org/749876
Package-Manager: Portage-3.0.8, Repoman-3.0.2
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 .../{clazy-1.7.ebuild => clazy-1.7-r1.ebuild}      |   9 +-
 dev-util/clazy/clazy-1.7.ebuild                    |   2 +-
 dev-util/clazy/files/clazy-1.7-llvm11-1.patch      | 343 +++++++++++++++++++++
 dev-util/clazy/files/clazy-1.7-llvm11-2.patch      |  28 ++
 4 files changed, 378 insertions(+), 4 deletions(-)

diff --git a/dev-util/clazy/clazy-1.7.ebuild b/dev-util/clazy/clazy-1.7-r1.ebuild
similarity index 85%
copy from dev-util/clazy/clazy-1.7.ebuild
copy to dev-util/clazy/clazy-1.7-r1.ebuild
index 14f32246c9c..cc5ae5d8eb1 100644
--- a/dev-util/clazy/clazy-1.7.ebuild
+++ b/dev-util/clazy/clazy-1.7-r1.ebuild
@@ -6,12 +6,12 @@ EAPI=7
 inherit cmake
 
 DESCRIPTION="Compiler plugin which allows clang to understand Qt semantics"
-HOMEPAGE="https://kde.org/applications/development/org.kde.clazy"
+HOMEPAGE="https://apps.kde.org/en/clazy"
 SRC_URI="mirror://kde/stable/${PN}/${PV}/src/${P}.tar.xz"
 
 LICENSE="LGPL-2+"
 SLOT="0"
-KEYWORDS="amd64"
+KEYWORDS="~amd64"
 IUSE=""
 
 RDEPEND="
@@ -20,7 +20,10 @@ RDEPEND="
 "
 DEPEND="${RDEPEND}"
 
-PATCHES=( "${FILESDIR}/${P}-gnuinstalldirs.patch" )
+PATCHES=(
+	"${FILESDIR}"/${P}-gnuinstalldirs.patch
+	"${FILESDIR}"/${P}-llvm11-{1,2}.patch
+)
 
 src_prepare() {
 	cmake_src_prepare

diff --git a/dev-util/clazy/clazy-1.7.ebuild b/dev-util/clazy/clazy-1.7.ebuild
index 14f32246c9c..a364a426b70 100644
--- a/dev-util/clazy/clazy-1.7.ebuild
+++ b/dev-util/clazy/clazy-1.7.ebuild
@@ -6,7 +6,7 @@ EAPI=7
 inherit cmake
 
 DESCRIPTION="Compiler plugin which allows clang to understand Qt semantics"
-HOMEPAGE="https://kde.org/applications/development/org.kde.clazy"
+HOMEPAGE="https://apps.kde.org/en/clazy"
 SRC_URI="mirror://kde/stable/${PN}/${PV}/src/${P}.tar.xz"
 
 LICENSE="LGPL-2+"

diff --git a/dev-util/clazy/files/clazy-1.7-llvm11-1.patch b/dev-util/clazy/files/clazy-1.7-llvm11-1.patch
new file mode 100644
index 00000000000..7b25b340a5c
--- /dev/null
+++ b/dev-util/clazy/files/clazy-1.7-llvm11-1.patch
@@ -0,0 +1,343 @@
+From 30d6a2b64f5a05722fdc5d8e3754dbf13425cd62 Mon Sep 17 00:00:00 2001
+From: Egor Gabov <egor.gabov@waveaccess.ru>
+Date: Thu, 4 Jun 2020 17:10:21 +0300
+Subject: [PATCH] updated for compatibility with LLVM 10
+
+In LLVM 10 llvm::StringRef operator std::string() is marked as explicit.
+In this commit all implicit conversion from llvm::StringRef to
+std::string are changed by explicit.
+Also included header file clang/Basic/FileManager.h in src/MiniDumper
+because without this header, class clang::FileEntry in incomplete class
+---
+ src/FixItExporter.cpp                                 | 5 +++--
+ src/MiniAstDumper.cpp                                 | 1 +
+ src/Utils.cpp                                         | 2 +-
+ src/checkbase.cpp                                     | 2 +-
+ src/checks/detachingbase.cpp                          | 2 +-
+ src/checks/level0/qenums.cpp                          | 2 +-
+ src/checks/level0/qt-macros.cpp                       | 4 ++--
+ src/checks/level0/unused-non-trivial-variable.cpp     | 2 +-
+ src/checks/level1/detaching-temporary.cpp             | 2 +-
+ src/checks/level1/non-pod-global-static.cpp           | 2 +-
+ src/checks/level1/qproperty-without-notify.cpp        | 2 +-
+ src/checks/level2/missing-typeinfo.cpp                | 2 +-
+ src/checks/level2/old-style-connect.cpp               | 6 +++---
+ src/checks/level2/rule-of-three.cpp                   | 2 +-
+ src/checks/manuallevel/ifndef-define-typo.cpp         | 6 +++---
+ src/checks/manuallevel/qproperty-type-mismatch.cpp    | 2 +-
+ src/checks/manuallevel/qrequiredresult-candidates.cpp | 2 +-
+ src/checks/manuallevel/qt-keywords.cpp                | 4 ++--
+ src/checks/manuallevel/reserve-candidates.cpp         | 3 ++-
+ 19 files changed, 28 insertions(+), 25 deletions(-)
+
+diff --git a/src/FixItExporter.cpp b/src/FixItExporter.cpp
+index f3af2e5..44240cf 100644
+--- a/src/FixItExporter.cpp
++++ b/src/FixItExporter.cpp
+@@ -68,7 +68,7 @@ void FixItExporter::BeginSourceFile(const LangOptions &LangOpts, const Preproces
+ 
+     const auto id = SourceMgr.getMainFileID();
+     const auto entry = SourceMgr.getFileEntryForID(id);
+-    getTuDiag().MainSourceFile = entry->getName();
++    getTuDiag().MainSourceFile = static_cast<std::string>(entry->getName());
+ }
+ 
+ bool FixItExporter::IncludeInDiagnosticCounts() const
+@@ -89,7 +89,8 @@ tooling::Diagnostic FixItExporter::ConvertDiagnostic(const Diagnostic &Info)
+     // TODO: This returns an empty string: DiagEngine->getDiagnosticIDs()->getWarningOptionForDiag(Info.getID());
+     // HACK: capture it at the end of the message: Message text [check-name]
+ 
+-    std::string checkName = DiagEngine.getDiagnosticIDs()->getWarningOptionForDiag(Info.getID());
++    std::string checkName =
++        static_cast<std::string>(DiagEngine.getDiagnosticIDs()->getWarningOptionForDiag(Info.getID()));
+     std::string messageText;
+ 
+     if (checkName.empty()) {
+diff --git a/src/MiniAstDumper.cpp b/src/MiniAstDumper.cpp
+index 4766174..6124e6e 100644
+--- a/src/MiniAstDumper.cpp
++++ b/src/MiniAstDumper.cpp
+@@ -24,6 +24,7 @@
+ 
+ #include <clang/Frontend/CompilerInstance.h>
+ #include <clang/Frontend/FrontendPluginRegistry.h>
++#include <clang/Basic/FileManager.h>
+ 
+ using namespace clang;
+ using namespace std;
+diff --git a/src/Utils.cpp b/src/Utils.cpp
+index 001ced9..b0812fe 100644
+--- a/src/Utils.cpp
++++ b/src/Utils.cpp
+@@ -878,7 +878,7 @@ string Utils::filenameForLoc(SourceLocation loc, const clang::SourceManager &sm)
+     if (loc.isMacroID())
+         loc = sm.getExpansionLoc(loc);
+ 
+-    const string filename = sm.getFilename(loc);
++    const string filename = static_cast<std::string>(sm.getFilename(loc));
+     auto splitted = clazy::splitString(filename, '/');
+     if (splitted.empty())
+         return {};
+diff --git a/src/checkbase.cpp b/src/checkbase.cpp
+index 8b40e19..22a426c 100644
+--- a/src/checkbase.cpp
++++ b/src/checkbase.cpp
+@@ -188,7 +188,7 @@ bool CheckBase::shouldIgnoreFile(SourceLocation loc) const
+     if (!loc.isValid())
+         return true;
+ 
+-    string filename = sm().getFilename(loc);
++    string filename = static_cast<std::string>(sm().getFilename(loc));
+ 
+     return clazy::any_of(m_filesToIgnore, [filename](const std::string &ignored) {
+         return clazy::contains(filename, ignored);
+diff --git a/src/checks/detachingbase.cpp b/src/checks/detachingbase.cpp
+index 70311f4..1b094ee 100644
+--- a/src/checks/detachingbase.cpp
++++ b/src/checks/detachingbase.cpp
+@@ -57,7 +57,7 @@ bool DetachingBase::isDetachingMethod(CXXMethodDecl *method, DetachingMethodType
+ 
+     const std::unordered_map<string, std::vector<StringRef>> &methodsByType = detachingMethodType == DetachingMethod ? clazy::detachingMethods()
+                                                                                                                      : clazy::detachingMethodsWithConstCounterParts();
+-    auto it = methodsByType.find(className);
++    auto it = methodsByType.find(static_cast<std::string>(className));
+     if (it != methodsByType.cend()) {
+         const auto &methods = it->second;
+         if (clazy::contains(methods, clazy::name(method)))
+diff --git a/src/checks/level0/qenums.cpp b/src/checks/level0/qenums.cpp
+index 00075b5..db8910f 100644
+--- a/src/checks/level0/qenums.cpp
++++ b/src/checks/level0/qenums.cpp
+@@ -59,7 +59,7 @@ void QEnums::VisitMacroExpands(const Token &MacroNameTok, const SourceRange &ran
+         // We simply check if :: is present because it's very cumbersome to to check for different classes when dealing with the pre-processor
+ 
+         CharSourceRange crange = Lexer::getAsCharRange(range, sm(), lo());
+-        string text = Lexer::getSourceText(crange, sm(), lo());
++        string text = static_cast<std::string>(Lexer::getSourceText(crange, sm(), lo()));
+         if (clazy::contains(text, "::"))
+             return;
+     }
+diff --git a/src/checks/level0/qt-macros.cpp b/src/checks/level0/qt-macros.cpp
+index d3a587c..ab8e9f5 100644
+--- a/src/checks/level0/qt-macros.cpp
++++ b/src/checks/level0/qt-macros.cpp
+@@ -44,7 +44,7 @@ void QtMacros::VisitMacroDefined(const Token &MacroNameTok)
+         return;
+ 
+     IdentifierInfo *ii = MacroNameTok.getIdentifierInfo();
+-    if (ii && clazy::startsWith(ii->getName(), "Q_OS_"))
++    if (ii && clazy::startsWith(static_cast<std::string>(ii->getName()), "Q_OS_"))
+         m_OSMacroExists = true;
+ }
+ 
+@@ -58,7 +58,7 @@ void QtMacros::checkIfDef(const Token &macroNameTok, SourceLocation Loc)
+     if (preProcessorVisitor && preProcessorVisitor->qtVersion() < 51204 && ii->getName() == "Q_OS_WINDOWS") {
+         // Q_OS_WINDOWS was introduced in 5.12.4
+         emitWarning(Loc, "Q_OS_WINDOWS was only introduced in Qt 5.12.4, use Q_OS_WIN instead");
+-    } else if (!m_OSMacroExists && clazy::startsWith(ii->getName(), "Q_OS_")) {
++    } else if (!m_OSMacroExists && clazy::startsWith(static_cast<std::string>(ii->getName()), "Q_OS_")) {
+         emitWarning(Loc, "Include qglobal.h before testing Q_OS_ macros");
+     }
+ }
+diff --git a/src/checks/level0/unused-non-trivial-variable.cpp b/src/checks/level0/unused-non-trivial-variable.cpp
+index 4e4b830..93815f2 100644
+--- a/src/checks/level0/unused-non-trivial-variable.cpp
++++ b/src/checks/level0/unused-non-trivial-variable.cpp
+@@ -91,7 +91,7 @@ bool UnusedNonTrivialVariable::isUninterestingType(const CXXRecordDecl *record)
+     static const vector<StringRef> blacklistedTemplates = { "QScopedPointer", "QSetValueOnDestroy", "QScopedValueRollback" };
+     StringRef className = clazy::name(record);
+     for (StringRef templateName : blacklistedTemplates) {
+-        if (clazy::startsWith(className, templateName))
++        if (clazy::startsWith(static_cast<std::string>(className), static_cast<std::string>(templateName)))
+             return true;
+     }
+ 
+diff --git a/src/checks/level1/detaching-temporary.cpp b/src/checks/level1/detaching-temporary.cpp
+index fedfc81..60c7553 100644
+--- a/src/checks/level1/detaching-temporary.cpp
++++ b/src/checks/level1/detaching-temporary.cpp
+@@ -140,7 +140,7 @@ void DetachingTemporary::VisitStmt(clang::Stmt *stm)
+     StringRef className = clazy::name(classDecl);
+ 
+     const std::unordered_map<string, std::vector<StringRef>> &methodsByType = clazy::detachingMethods();
+-    auto it = methodsByType.find(className);
++    auto it = methodsByType.find(static_cast<std::string>(className));
+     auto it2 = m_writeMethodsByType.find(className);
+ 
+     std::vector<StringRef> allowedFunctions;
+diff --git a/src/checks/level1/non-pod-global-static.cpp b/src/checks/level1/non-pod-global-static.cpp
+index 5879bff..433b5c5 100644
+--- a/src/checks/level1/non-pod-global-static.cpp
++++ b/src/checks/level1/non-pod-global-static.cpp
+@@ -74,7 +74,7 @@ void NonPodGlobalStatic::VisitStmt(clang::Stmt *stm)
+     const SourceLocation declStart = clazy::getLocStart(varDecl);
+ 
+     if (declStart.isMacroID()) {
+-        auto macroName = Lexer::getImmediateMacroName(declStart, sm(), lo());
++        auto macroName = static_cast<std::string>(Lexer::getImmediateMacroName(declStart, sm(), lo()));
+         if (clazy::startsWithAny(macroName, { "Q_IMPORT_PLUGIN", "Q_CONSTRUCTOR_FUNCTION", "Q_DESTRUCTOR_FUNCTION"})) // Don't warn on these
+             return;
+     }
+diff --git a/src/checks/level1/qproperty-without-notify.cpp b/src/checks/level1/qproperty-without-notify.cpp
+index e1d6db4..3af9fee 100644
+--- a/src/checks/level1/qproperty-without-notify.cpp
++++ b/src/checks/level1/qproperty-without-notify.cpp
+@@ -69,7 +69,7 @@ void QPropertyWithoutNotify::VisitMacroExpands(const clang::Token &MacroNameTok,
+         return;
+     CharSourceRange crange = Lexer::getAsCharRange(range, sm(), lo());
+ 
+-    string text = Lexer::getSourceText(crange, sm(), lo());
++    string text = static_cast<std::string>(Lexer::getSourceText(crange, sm(), lo()));
+     if (text.back() == ')')
+         text.pop_back();
+ 
+diff --git a/src/checks/level2/missing-typeinfo.cpp b/src/checks/level2/missing-typeinfo.cpp
+index 98df2cd..03b44e0 100644
+--- a/src/checks/level2/missing-typeinfo.cpp
++++ b/src/checks/level2/missing-typeinfo.cpp
+@@ -74,7 +74,7 @@ void MissingTypeInfo::VisitDecl(clang::Decl *decl)
+         if (sm().isInSystemHeader(clazy::getLocStart(record)))
+             return;
+ 
+-        std::string typeName = clazy::name(record);
++        std::string typeName = static_cast<std::string>(clazy::name(record));
+         if (typeName == "QPair") // QPair doesn't use Q_DECLARE_TYPEINFO, but rather a explicit QTypeInfo.
+             return;
+ 
+diff --git a/src/checks/level2/old-style-connect.cpp b/src/checks/level2/old-style-connect.cpp
+index 0fe68c1..396cb70 100644
+--- a/src/checks/level2/old-style-connect.cpp
++++ b/src/checks/level2/old-style-connect.cpp
+@@ -274,7 +274,7 @@ void OldStyleConnect::VisitMacroExpands(const Token &macroNameTok, const SourceR
+         return;
+ 
+     auto charRange = Lexer::getAsCharRange(range, sm(), lo());
+-    const string text = Lexer::getSourceText(charRange, sm(), lo());
++    const string text = static_cast<std::string>(Lexer::getSourceText(charRange, sm(), lo()));
+ 
+     static regex rx(R"(Q_PRIVATE_SLOT\s*\((.*)\s*,\s*.*\s+(.*)\(.*)");
+     smatch match;
+@@ -293,7 +293,7 @@ string OldStyleConnect::signalOrSlotNameFromMacro(SourceLocation macroLoc)
+     CharSourceRange expansionRange = clazy::getImmediateExpansionRange(macroLoc, sm());
+     SourceRange range = SourceRange(expansionRange.getBegin(), expansionRange.getEnd());
+     auto charRange = Lexer::getAsCharRange(range, sm(), lo());
+-    const string text = Lexer::getSourceText(charRange, sm(), lo());
++    const string text = static_cast<std::string>(Lexer::getSourceText(charRange, sm(), lo()));
+ 
+     static regex rx(R"(\s*(SIGNAL|SLOT)\s*\(\s*(.+)\s*\(.*)");
+ 
+@@ -315,7 +315,7 @@ bool OldStyleConnect::isSignalOrSlot(SourceLocation loc, string &macroName) cons
+     if (!loc.isMacroID() || loc.isInvalid())
+         return false;
+ 
+-    macroName = Lexer::getImmediateMacroName(loc, sm(), lo());
++    macroName = static_cast<std::string>(Lexer::getImmediateMacroName(loc, sm(), lo()));
+     return macroName == "SIGNAL" || macroName == "SLOT";
+ }
+ 
+diff --git a/src/checks/level2/rule-of-three.cpp b/src/checks/level2/rule-of-three.cpp
+index 8db55d5..7583fcc 100644
+--- a/src/checks/level2/rule-of-three.cpp
++++ b/src/checks/level2/rule-of-three.cpp
+@@ -140,7 +140,7 @@ void RuleOfThree::VisitDecl(clang::Decl *decl)
+ 
+     const string className = record->getNameAsString();
+     const string classQualifiedName = record->getQualifiedNameAsString();
+-    const string filename = sm().getFilename(recordStart);
++    const string filename = static_cast<std::string>(sm().getFilename(recordStart));
+     if (clazy::endsWith(className, "Private") && clazy::endsWithAny(filename, { ".cpp", ".cxx", "_p.h" }))
+         return; // Lots of RAII classes fall into this category. And even Private (d-pointer) classes, warning in that case would just be noise
+ 
+diff --git a/src/checks/manuallevel/ifndef-define-typo.cpp b/src/checks/manuallevel/ifndef-define-typo.cpp
+index edb6cdf..e9c50a4 100644
+--- a/src/checks/manuallevel/ifndef-define-typo.cpp
++++ b/src/checks/manuallevel/ifndef-define-typo.cpp
+@@ -44,7 +44,7 @@ void IfndefDefineTypo::VisitMacroDefined(const Token &macroNameTok)
+ {
+     if (!m_lastIfndef.empty()) {
+         if (IdentifierInfo *ii = macroNameTok.getIdentifierInfo()) {
+-            maybeWarn(ii->getName(), macroNameTok.getLocation());
++            maybeWarn(static_cast<std::string>(ii->getName()), macroNameTok.getLocation());
+         }
+     }
+ }
+@@ -53,7 +53,7 @@ void IfndefDefineTypo::VisitDefined(const Token &macroNameTok, const SourceRange
+ {
+     if (!m_lastIfndef.empty()) {
+         if (IdentifierInfo *ii = macroNameTok.getIdentifierInfo()) {
+-            maybeWarn(ii->getName(), macroNameTok.getLocation());
++            maybeWarn(static_cast<std::string>(ii->getName()), macroNameTok.getLocation());
+         }
+     }
+ }
+@@ -66,7 +66,7 @@ void IfndefDefineTypo::VisitIfdef(SourceLocation, const Token &)
+ void IfndefDefineTypo::VisitIfndef(SourceLocation, const Token &macroNameTok)
+ {
+     if (IdentifierInfo *ii = macroNameTok.getIdentifierInfo())
+-        m_lastIfndef = ii->getName();
++        m_lastIfndef = static_cast<std::string>(ii->getName());
+ }
+ 
+ void IfndefDefineTypo::VisitIf(SourceLocation, SourceRange, PPCallbacks::ConditionValueKind)
+diff --git a/src/checks/manuallevel/qproperty-type-mismatch.cpp b/src/checks/manuallevel/qproperty-type-mismatch.cpp
+index f91159c..952d9f1 100644
+--- a/src/checks/manuallevel/qproperty-type-mismatch.cpp
++++ b/src/checks/manuallevel/qproperty-type-mismatch.cpp
+@@ -237,7 +237,7 @@ void QPropertyTypeMismatch::VisitMacroExpands(const clang::Token &MacroNameTok,
+ 
+     CharSourceRange crange = Lexer::getAsCharRange(range, sm(), lo());
+ 
+-    string text = Lexer::getSourceText(crange, sm(), lo());
++    string text = static_cast<std::string>(Lexer::getSourceText(crange, sm(), lo()));
+     if (!text.empty() && text.back() == ')')
+         text.pop_back();
+ 
+diff --git a/src/checks/manuallevel/qrequiredresult-candidates.cpp b/src/checks/manuallevel/qrequiredresult-candidates.cpp
+index 912dbaa..6375bd7 100644
+--- a/src/checks/manuallevel/qrequiredresult-candidates.cpp
++++ b/src/checks/manuallevel/qrequiredresult-candidates.cpp
+@@ -65,7 +65,7 @@ void QRequiredResultCandidates::VisitDecl(clang::Decl *decl)
+ 
+ 
+     if (returnClass == classDecl) {
+-        const std::string methodName = clazy::name(method);
++        const std::string methodName = static_cast<std::string>(clazy::name(method));
+         if (methodName.empty()) // fixes assert
+             return;
+ 
+diff --git a/src/checks/manuallevel/qt-keywords.cpp b/src/checks/manuallevel/qt-keywords.cpp
+index e792e95..b60752c 100644
+--- a/src/checks/manuallevel/qt-keywords.cpp
++++ b/src/checks/manuallevel/qt-keywords.cpp
+@@ -59,12 +59,12 @@ void QtKeywords::VisitMacroExpands(const Token &macroNameTok, const SourceRange
+     }
+ 
+     static const vector<StringRef> keywords = { "foreach", "signals", "slots", "emit" };
+-    std::string name = ii->getName();
++    std::string name = static_cast<std::string>(ii->getName());
+     if (!clazy::contains(keywords, name))
+         return;
+ 
+     // Make sure the macro is Qt's. It must be defined in Qt's headers, not 3rdparty
+-    std::string qtheader = sm().getFilename(sm().getSpellingLoc(minfo->getDefinitionLoc()));
++    std::string qtheader = static_cast<std::string>(sm().getFilename(sm().getSpellingLoc(minfo->getDefinitionLoc())));
+     if (!clazy::endsWith(qtheader, "qglobal.h") && !clazy::endsWith(qtheader, "qobjectdefs.h"))
+         return;
+ 
+diff --git a/src/checks/manuallevel/reserve-candidates.cpp b/src/checks/manuallevel/reserve-candidates.cpp
+index 389cac5..92e4491 100644
+--- a/src/checks/manuallevel/reserve-candidates.cpp
++++ b/src/checks/manuallevel/reserve-candidates.cpp
+@@ -78,7 +78,8 @@ static bool isCandidateMethod(CXXMethodDecl *methodDecl)
+     if (!classDecl)
+         return false;
+ 
+-    if (!clazy::equalsAny(clazy::name(methodDecl), { "append", "push_back", "push", "operator<<", "operator+=" }))
++    if (!clazy::equalsAny(static_cast<std::string>(clazy::name(methodDecl)),
++                 { "append", "push_back", "push", "operator<<", "operator+=" }))
+         return false;
+ 
+     if (!clazy::isAReserveClass(classDecl))
+-- 
+GitLab
+

diff --git a/dev-util/clazy/files/clazy-1.7-llvm11-2.patch b/dev-util/clazy/files/clazy-1.7-llvm11-2.patch
new file mode 100644
index 00000000000..4556f257bf3
--- /dev/null
+++ b/dev-util/clazy/files/clazy-1.7-llvm11-2.patch
@@ -0,0 +1,28 @@
+From 25aa102cc49def9573ffbed88155589cd60a2e8f Mon Sep 17 00:00:00 2001
+From: Egor Gabov <egor.gabov@waveaccess.ru>
+Date: Fri, 5 Jun 2020 16:52:53 +0300
+Subject: [PATCH] updated for compatibility with LLVM 10 (clazy-standalone)
+
+In LLVM 10 llvm::StringRef operator std::string() is marked as explicit.
+In this commit all implicit conversion from llvm::StringRef to
+std::string are changed by explicit.
+---
+ src/checks/manuallevel/jnisignatures.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/checks/manuallevel/jnisignatures.cpp b/src/checks/manuallevel/jnisignatures.cpp
+index 81e61d4..5d4fe20 100644
+--- a/src/checks/manuallevel/jnisignatures.cpp
++++ b/src/checks/manuallevel/jnisignatures.cpp
+@@ -103,7 +103,7 @@ void JniSignatures::checkFunctionCall(Stmt *stm)
+         return;
+     }
+ 
+-    const std::string name = clazy::name(funDecl);
++    const std::string name = static_cast<std::string>(clazy::name(funDecl));
+ 
+     if (name == "callObjectMethod" || name == "callMethod") {
+         checkArgAt(callExpr, 0, methodNameRegex, "Invalid method name");
+-- 
+GitLab
+


             reply	other threads:[~2020-10-26 13:56 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-10-26 13:56 Andreas Sturmlechner [this message]
  -- strict thread matches above, loose matches on Subject: below --
2025-01-27 22:29 [gentoo-commits] repo/gentoo:master commit in: dev-util/clazy/files/, dev-util/clazy/ Andreas Sturmlechner
2024-12-11 21:41 Andreas Sturmlechner
2024-09-21 13:34 Andreas Sturmlechner
2022-01-19 13:54 Andreas Sturmlechner
2021-05-01 21:24 Andreas Sturmlechner
2020-08-22 16:06 Andreas Sturmlechner
2020-04-09 21:37 Andreas Sturmlechner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1603720545.3cf0b312d76f313c80a28d1c7d112e03e303d3a2.asturm@gentoo \
    --to=asturm@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox