Hello community,

here is the log from the commit of package clazy for openSUSE:Factory checked 
in at 2020-10-27 18:59:23
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/clazy (Old)
 and      /work/SRC/openSUSE:Factory/.clazy.new.3463 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "clazy"

Tue Oct 27 18:59:23 2020 rev:11 rq:844114 version:1.7

Changes:
--------
--- /work/SRC/openSUSE:Factory/clazy/clazy.changes      2020-06-30 
22:25:42.476013375 +0200
+++ /work/SRC/openSUSE:Factory/.clazy.new.3463/clazy.changes    2020-10-27 
18:59:48.322780803 +0100
@@ -1,0 +2,7 @@
+Mon Oct 26 14:38:09 UTC 2020 - Christophe Giboudeaux <christo...@krop.fr>
+
+- Add patches to address build issues with LLVM11:
+  * 0001-updated-for-compatibility-with-LLVM-10.patch
+  * 0001-updated-for-compatibility-with-LLVM-10-clazy-standal.patch
+
+-------------------------------------------------------------------

New:
----
  0001-updated-for-compatibility-with-LLVM-10-clazy-standal.patch
  0001-updated-for-compatibility-with-LLVM-10.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ clazy.spec ++++++
--- /var/tmp/diff_new_pack.LCgwq6/_old  2020-10-27 18:59:50.226782188 +0100
+++ /var/tmp/diff_new_pack.LCgwq6/_new  2020-10-27 18:59:50.230782191 +0100
@@ -24,6 +24,9 @@
 Group:          Development/Tools/Other
 URL:            https://www.kdab.com/clazy-video/
 Source0:        
https://download.kde.org/stable/%{name}/%{version}/src/%{name}-%{version}.tar.xz
+# PATCH-FIX-UPSTREAM
+Patch0:         0001-updated-for-compatibility-with-LLVM-10.patch
+Patch1:         0001-updated-for-compatibility-with-LLVM-10-clazy-standal.patch
 BuildRequires:  clang
 BuildRequires:  clang-devel >= 5.0
 BuildRequires:  cmake >= 3.7

++++++ 0001-updated-for-compatibility-with-LLVM-10-clazy-standal.patch ++++++
>From 25aa102cc49def9573ffbed88155589cd60a2e8f Mon Sep 17 00:00:00 2001
From: Egor Gabov <egor.ga...@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");
-- 
2.29.0

++++++ 0001-updated-for-compatibility-with-LLVM-10.patch ++++++
>From 30d6a2b64f5a05722fdc5d8e3754dbf13425cd62 Mon Sep 17 00:00:00 2001
From: Egor Gabov <egor.ga...@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))
-- 
2.29.0


Reply via email to