diff options
author | Andreas Sturmlechner <asturm@gentoo.org> | 2021-05-01 22:18:02 +0200 |
---|---|---|
committer | Andreas Sturmlechner <asturm@gentoo.org> | 2021-05-01 23:21:56 +0200 |
commit | 10d7a5b482f6282eaefdb28ceda51f2ec99056f8 (patch) | |
tree | 69c948ff4d0e124c65c677f695a51719e24586f3 /dev-util | |
parent | kde-misc/plasma-pass: Drop -Werror (diff) | |
download | gentoo-10d7a5b482f6282eaefdb28ceda51f2ec99056f8.tar.gz gentoo-10d7a5b482f6282eaefdb28ceda51f2ec99056f8.tar.bz2 gentoo-10d7a5b482f6282eaefdb28ceda51f2ec99056f8.zip |
dev-util/clazy: Fix build with LLVM-12/13
Closes: https://bugs.gentoo.org/786525
Package-Manager: Portage-3.0.18, Repoman-3.0.3
Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
Diffstat (limited to 'dev-util')
-rw-r--r-- | dev-util/clazy/clazy-1.9.ebuild | 2 | ||||
-rw-r--r-- | dev-util/clazy/files/clazy-1.9-llvm12.patch | 88 | ||||
-rw-r--r-- | dev-util/clazy/files/clazy-1.9-llvm13.patch | 31 |
3 files changed, 121 insertions, 0 deletions
diff --git a/dev-util/clazy/clazy-1.9.ebuild b/dev-util/clazy/clazy-1.9.ebuild index 9062383103c4..781b51040559 100644 --- a/dev-util/clazy/clazy-1.9.ebuild +++ b/dev-util/clazy/clazy-1.9.ebuild @@ -20,6 +20,8 @@ RDEPEND=" " DEPEND="${RDEPEND}" +PATCHES=( "${FILESDIR}"/${P}-llvm{12,13}.patch ) # bug 786525 + src_prepare() { cmake_src_prepare diff --git a/dev-util/clazy/files/clazy-1.9-llvm12.patch b/dev-util/clazy/files/clazy-1.9-llvm12.patch new file mode 100644 index 000000000000..3862f40ad981 --- /dev/null +++ b/dev-util/clazy/files/clazy-1.9-llvm12.patch @@ -0,0 +1,88 @@ +From 2592a6e3393ebc75e16c91e606ad2015a16295c3 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Christian=20Sch=C3=A4rf?= <c.schaerf@t-online.de> +Date: Sat, 23 Jan 2021 15:34:10 +0100 +Subject: [PATCH] Fix build with Clang 12 + +Required due to Clang changes https://github.com/llvm/llvm-project/commit/b3eff6b7bb31e7ef059a3d238de138849839fbbd and https://github.com/llvm/llvm-project/commit/d758f79e5d381bd4f5122193a9538d89c907c812 +--- + src/SourceCompatibilityHelpers.h | 26 ++++++++++++++++++++++++++ + src/SuppressionManager.cpp | 5 ++--- + 2 files changed, 28 insertions(+), 3 deletions(-) + +diff --git a/src/SourceCompatibilityHelpers.h b/src/SourceCompatibilityHelpers.h +index 4db141ab..1737d5a5 100644 +--- a/src/SourceCompatibilityHelpers.h ++++ b/src/SourceCompatibilityHelpers.h +@@ -29,6 +29,7 @@ + #include <clang/Basic/SourceLocation.h> + #include <clang/Basic/SourceManager.h> + #include <clang/Frontend/FrontendDiagnostic.h> ++#include <clang/Lex/Lexer.h> + #include <clang/Tooling/Core/Diagnostic.h> + + #if defined(CLAZY_USES_BOOST_REGEX) +@@ -103,6 +104,31 @@ inline clang::tooling::Replacements& DiagnosticFix(clang::tooling::Diagnostic &d + #endif + } + ++inline auto getBuffer(const clang::SourceManager &sm, clang::FileID id, bool *invalid) ++{ ++#if LLVM_VERSION_MAJOR >= 12 ++ auto buffer = sm.getBufferOrNone(id); ++ *invalid = !buffer.hasValue(); ++ return buffer; ++#else ++ return sm.getBuffer(id, invalid); ++#endif ++} ++ ++#if LLVM_VERSION_MAJOR >= 12 ++inline clang::Lexer getLexer(clang::FileID id, llvm::Optional<llvm::MemoryBufferRef> inputFile, ++ const clang::SourceManager &sm, const clang::LangOptions &lo) ++{ ++ return clang::Lexer(id, inputFile.getValue(), sm, lo); ++} ++#else ++inline clang::Lexer getLexer(clang::FileID id, const llvm::MemoryBuffer *inputFile, ++ const clang::SourceManager &sm, const clang::LangOptions &lo) ++{ ++ return clang::Lexer(id, inputFile, sm, lo); ++} ++#endif ++ + } + + #endif +diff --git a/src/SuppressionManager.cpp b/src/SuppressionManager.cpp +index 9d774ea6..9881388d 100644 +--- a/src/SuppressionManager.cpp ++++ b/src/SuppressionManager.cpp +@@ -24,7 +24,6 @@ + #include "clazy_stl.h" + + #include <clang/Basic/SourceManager.h> +-#include <clang/Lex/Lexer.h> + #include <clang/Basic/SourceLocation.h> + #include <clang/Basic/TokenKinds.h> + #include <clang/Lex/Token.h> +@@ -84,7 +83,7 @@ void SuppressionManager::parseFile(FileID id, const SourceManager &sm, const cla + Suppressions &suppressions = (*it).second; + + bool invalid = false; +- auto buffer = sm.getBuffer(id, &invalid); ++ auto buffer = clazy::getBuffer(sm, id, &invalid); + if (invalid) { + llvm::errs() << "SuppressionManager::parseFile: Invalid buffer "; + if (buffer) +@@ -92,7 +91,7 @@ void SuppressionManager::parseFile(FileID id, const SourceManager &sm, const cla + return; + } + +- Lexer lexer(id, buffer, sm, lo); ++ auto lexer = clazy::getLexer(id, buffer, sm, lo); + lexer.SetCommentRetentionState(true); + + Token token; +-- +GitLab + diff --git a/dev-util/clazy/files/clazy-1.9-llvm13.patch b/dev-util/clazy/files/clazy-1.9-llvm13.patch new file mode 100644 index 000000000000..9bbac8f7624d --- /dev/null +++ b/dev-util/clazy/files/clazy-1.9-llvm13.patch @@ -0,0 +1,31 @@ +From 0bf4e428c76270f4534a0a8df3cf6912157f22ab Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Bj=C3=B6rn=20Sch=C3=A4pers?= <bjoern@hazardy.de> +Date: Sat, 17 Apr 2021 20:57:10 +0200 +Subject: [PATCH] Fix build with LLVM 13 + +--- + src/ClazyStandaloneMain.cpp | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +diff --git a/src/ClazyStandaloneMain.cpp b/src/ClazyStandaloneMain.cpp +index 41c4fcf9..7b4cf5d3 100644 +--- a/src/ClazyStandaloneMain.cpp ++++ b/src/ClazyStandaloneMain.cpp +@@ -158,7 +158,13 @@ llvm::IntrusiveRefCntPtr<vfs::FileSystem> getVfsFromFile(const std::string &over + + int main(int argc, const char **argv) + { +- CommonOptionsParser optionsParser(argc, argv, s_clazyCategory, cl::ZeroOrMore); ++ auto expectedParser = CommonOptionsParser::create(argc, argv, s_clazyCategory, cl::ZeroOrMore); ++ if (!expectedParser) { ++ llvm::errs() << expectedParser.takeError(); ++ return 1; ++ } ++ ++ auto &optionsParser = expectedParser.get(); + // llvm::errs() << optionsParser.getSourcePathList().size() << "\n"; + + if (s_supportedChecks.getValue()) { +-- +GitLab + |