clazy: rebuild for llvm17
This commit is contained in:
parent
7418a58cb3
commit
eed770b3a1
3 changed files with 113 additions and 2 deletions
83
srcpkgs/clazy/patches/llvm16.patch
Normal file
83
srcpkgs/clazy/patches/llvm16.patch
Normal file
|
@ -0,0 +1,83 @@
|
||||||
|
From a05ac7eb6f6198c3f478bd7b5b4bfc062a8d63cc Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Ivan=20=C4=8Cuki=C4=87?= <ivan.cukic@kdab.com>
|
||||||
|
Date: Tue, 7 Feb 2023 11:06:19 +0100
|
||||||
|
Subject: [PATCH] Adapt to API changes in clang/llvm 16
|
||||||
|
|
||||||
|
---
|
||||||
|
src/SourceCompatibilityHelpers.h | 17 ++++++++++++-----
|
||||||
|
src/checkbase.h | 1 +
|
||||||
|
src/checks/level0/lambda-in-connect.cpp | 2 +-
|
||||||
|
3 files changed, 14 insertions(+), 6 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/SourceCompatibilityHelpers.h b/src/SourceCompatibilityHelpers.h
|
||||||
|
index c1a23a4b..5e2dc606 100644
|
||||||
|
--- a/src/SourceCompatibilityHelpers.h
|
||||||
|
+++ b/src/SourceCompatibilityHelpers.h
|
||||||
|
@@ -107,7 +107,11 @@ inline clang::tooling::Replacements& DiagnosticFix(clang::tooling::Diagnostic &d
|
||||||
|
|
||||||
|
inline auto getBuffer(const clang::SourceManager &sm, clang::FileID id, bool *invalid)
|
||||||
|
{
|
||||||
|
-#if LLVM_VERSION_MAJOR >= 12
|
||||||
|
+#if LLVM_VERSION_MAJOR >= 16
|
||||||
|
+ auto buffer = sm.getBufferOrNone(id);
|
||||||
|
+ *invalid = !buffer.has_value();
|
||||||
|
+ return buffer;
|
||||||
|
+#elif LLVM_VERSION_MAJOR >= 12
|
||||||
|
auto buffer = sm.getBufferOrNone(id);
|
||||||
|
*invalid = !buffer.hasValue();
|
||||||
|
return buffer;
|
||||||
|
@@ -116,11 +120,12 @@ inline auto getBuffer(const clang::SourceManager &sm, clang::FileID id, bool *in
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
-#if LLVM_VERSION_MAJOR >= 12
|
||||||
|
-
|
||||||
|
+#if LLVM_VERSION_MAJOR >= 16
|
||||||
|
+#define GET_LEXER(id, inputFile, sm, lo) \
|
||||||
|
+clang::Lexer(id, inputFile.value(), sm, lo)
|
||||||
|
+#elif LLVM_VERSION_MAJOR >= 12
|
||||||
|
#define GET_LEXER(id, inputFile, sm, lo) \
|
||||||
|
clang::Lexer(id, inputFile.getValue(), sm, lo)
|
||||||
|
-
|
||||||
|
#else
|
||||||
|
#define GET_LEXER(id, inputFile, sm, lo) \
|
||||||
|
clang::Lexer(id, inputFile, sm, lo)
|
||||||
|
@@ -144,7 +149,9 @@ inline bool contains_lower(clang::StringRef haystack, clang::StringRef needle)
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
-#if LLVM_VERSION_MAJOR >= 15
|
||||||
|
+#if LLVM_VERSION_MAJOR >= 16
|
||||||
|
+using OptionalFileEntryRef = clang::CustomizableOptional<clang::FileEntryRef>;
|
||||||
|
+#elif LLVM_VERSION_MAJOR >= 15
|
||||||
|
using OptionalFileEntryRef = clang::Optional<clang::FileEntryRef>;
|
||||||
|
#else
|
||||||
|
using OptionalFileEntryRef = const clang::FileEntry*;
|
||||||
|
diff --git a/src/checkbase.h b/src/checkbase.h
|
||||||
|
index 02f6a6bf..6a8c634b 100644
|
||||||
|
--- a/src/checkbase.h
|
||||||
|
+++ b/src/checkbase.h
|
||||||
|
@@ -93,6 +93,7 @@ public:
|
||||||
|
void InclusionDirective(clang::SourceLocation HashLoc, const clang::Token &IncludeTok, clang::StringRef FileName, bool IsAngled,
|
||||||
|
clang::CharSourceRange FilenameRange, clazy::OptionalFileEntryRef File, clang::StringRef SearchPath,
|
||||||
|
clang::StringRef RelativePath, const clang::Module *Imported, clang::SrcMgr::CharacteristicKind FileType) override;
|
||||||
|
+
|
||||||
|
private:
|
||||||
|
CheckBase *const check;
|
||||||
|
};
|
||||||
|
diff --git a/src/checks/level0/lambda-in-connect.cpp b/src/checks/level0/lambda-in-connect.cpp
|
||||||
|
index b0da926f..1ba1126f 100644
|
||||||
|
--- a/src/checks/level0/lambda-in-connect.cpp
|
||||||
|
+++ b/src/checks/level0/lambda-in-connect.cpp
|
||||||
|
@@ -71,7 +71,7 @@ void LambdaInConnect::VisitStmt(clang::Stmt *stmt)
|
||||||
|
|
||||||
|
for (auto capture : captures) {
|
||||||
|
if (capture.getCaptureKind() == clang::LCK_ByRef) {
|
||||||
|
- VarDecl *declForCapture = capture.getCapturedVar();
|
||||||
|
+ auto *declForCapture = capture.getCapturedVar();
|
||||||
|
if (declForCapture && declForCapture != receiverDecl && clazy::isValueDeclInFunctionContext(declForCapture))
|
||||||
|
emitWarning(capture.getLocation(), "captured local variable by reference might go out of scope before lambda is called");
|
||||||
|
}
|
||||||
|
--
|
||||||
|
GitLab
|
||||||
|
|
28
srcpkgs/clazy/patches/llvm17.patch
Normal file
28
srcpkgs/clazy/patches/llvm17.patch
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
--- a/src/checks/manuallevel/unexpected-flag-enumerator-value.cpp 2022-01-20 18:18:47.000000000 -0500
|
||||||
|
+++ b/src/checks/manuallevel/unexpected-flag-enumerator-value.cpp 2023-11-03 17:12:24.669027622 -0400
|
||||||
|
@@ -61,8 +61,13 @@
|
||||||
|
if (val.isMask() && val.countTrailingOnes() >= MinOnesToQualifyAsMask)
|
||||||
|
return true;
|
||||||
|
|
||||||
|
+#if LLVM_VERSION_MAJOR >= 17
|
||||||
|
+ if (val.isShiftedMask() && val.popcount() >= MinOnesToQualifyAsMask)
|
||||||
|
+ return true;
|
||||||
|
+#else
|
||||||
|
if (val.isShiftedMask() && val.countPopulation() >= MinOnesToQualifyAsMask)
|
||||||
|
return true;
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
if (clazy::contains_lower(en->getName(), "mask"))
|
||||||
|
return true;
|
||||||
|
@@ -158,7 +163,11 @@
|
||||||
|
|
||||||
|
for (EnumConstantDecl* enumerator : enumerators) {
|
||||||
|
const auto &initVal = enumerator->getInitVal();
|
||||||
|
+#if LLVM_VERSION_MAJOR >= 17
|
||||||
|
+ if (!initVal.isPowerOf2() && !initVal.isZero() && !initVal.isNegative()) {
|
||||||
|
+#else
|
||||||
|
if (!initVal.isPowerOf2() && !initVal.isNullValue() && !initVal.isNegative()) {
|
||||||
|
+#endif
|
||||||
|
if (isIntentionallyNotPowerOf2(enumerator))
|
||||||
|
continue;
|
||||||
|
const auto value = enumerator->getInitVal().getLimitedValue();
|
|
@ -1,11 +1,11 @@
|
||||||
# Template file for 'clazy'
|
# Template file for 'clazy'
|
||||||
pkgname=clazy
|
pkgname=clazy
|
||||||
version=1.11
|
version=1.11
|
||||||
revision=2
|
revision=3
|
||||||
build_style=cmake
|
build_style=cmake
|
||||||
build_helper=qemu
|
build_helper=qemu
|
||||||
hostmakedepends="llvm"
|
hostmakedepends="llvm"
|
||||||
makedepends="clang llvm clang-tools-extra"
|
makedepends="clang llvm17-devel clang-tools-extra"
|
||||||
depends="clang"
|
depends="clang"
|
||||||
short_desc="Qt oriented code checker based on clang framework"
|
short_desc="Qt oriented code checker based on clang framework"
|
||||||
maintainer="John <me@johnnynator.dev>"
|
maintainer="John <me@johnnynator.dev>"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue