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: Sat,  1 May 2021 21:24:13 +0000 (UTC)	[thread overview]
Message-ID: <1619904116.10d7a5b482f6282eaefdb28ceda51f2ec99056f8.asturm@gentoo> (raw)

commit:     10d7a5b482f6282eaefdb28ceda51f2ec99056f8
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Sat May  1 20:18:02 2021 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Sat May  1 21:21:56 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=10d7a5b4

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 <AT> gentoo.org>

 dev-util/clazy/clazy-1.9.ebuild             |  2 +
 dev-util/clazy/files/clazy-1.9-llvm12.patch | 88 +++++++++++++++++++++++++++++
 dev-util/clazy/files/clazy-1.9-llvm13.patch | 31 ++++++++++
 3 files changed, 121 insertions(+)

diff --git a/dev-util/clazy/clazy-1.9.ebuild b/dev-util/clazy/clazy-1.9.ebuild
index 9062383103c..781b5104055 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 00000000000..3862f40ad98
--- /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 00000000000..9bbac8f7624
--- /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
+


             reply	other threads:[~2021-05-01 21:24 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-01 21:24 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
2020-10-26 13:56 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=1619904116.10d7a5b482f6282eaefdb28ceda51f2ec99056f8.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