aboutsummaryrefslogtreecommitdiffstats
path: root/community/clazy/clang15-libs.patch
diff options
context:
space:
mode:
Diffstat (limited to 'community/clazy/clang15-libs.patch')
-rw-r--r--community/clazy/clang15-libs.patch224
1 files changed, 224 insertions, 0 deletions
diff --git a/community/clazy/clang15-libs.patch b/community/clazy/clang15-libs.patch
new file mode 100644
index 00000000000..8ca5cf00890
--- /dev/null
+++ b/community/clazy/clang15-libs.patch
@@ -0,0 +1,224 @@
+Patch-Source: https://invent.kde.org/sdk/clazy/-/merge_requests/63
+From 20fca52da739ebefa47e35f6b338bb99a0da3cfe Mon Sep 17 00:00:00 2001
+From: Cristian Adam <cristian.adam@qt.io>
+Date: Tue, 6 Sep 2022 16:30:02 +0200
+Subject: [PATCH] Build fixes for LLVM/Clang 15.0.0
+
+Change-Id: Icc39a0b1acffb5a6a4798b1259d8ad4e7dd47bc5
+---
+ CMakeLists.txt | 6 ++++++
+ src/PreProcessorVisitor.cpp | 2 +-
+ src/PreProcessorVisitor.h | 2 +-
+ src/SourceCompatibilityHelpers.h | 15 +++++++++++++++
+ src/Utils.cpp | 3 ++-
+ src/checkbase.cpp | 4 ++--
+ src/checkbase.h | 4 ++--
+ src/checks/manuallevel/qt6-fwd-fixes.cpp | 2 +-
+ src/checks/manuallevel/qt6-fwd-fixes.h | 2 +-
+ src/checks/manuallevel/qt6-header-fixes.cpp | 2 +-
+ src/checks/manuallevel/qt6-header-fixes.h | 2 +-
+ 11 files changed, 33 insertions(+), 11 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 3c780b0d..100135af 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -114,6 +114,10 @@ else()
+ set(clang_tooling_refactoring_lib clangToolingRefactor)
+ endif()
+
++if (${LLVM_VERSION} VERSION_GREATER_EQUAL "15.0.0")
++ set(clang_support_lib clangSupport)
++endif()
++
+ macro(link_to_llvm name is_standalone)
+ if (CLAZY_LINK_CLANG_DYLIB)
+ target_link_libraries(${name} clang-cpp)
+@@ -131,6 +135,7 @@ macro(link_to_llvm name is_standalone)
+
+ target_link_libraries(${name} ${clang_lib})
+ endforeach()
++ target_link_libraries(${name} ${clang_support_lib})
+ target_link_libraries(${name} clangTooling)
+ target_link_libraries(${name} clangToolingCore)
+ target_link_libraries(${name} ${clang_tooling_refactoring_lib})
+@@ -302,6 +307,7 @@ else()
+ clangFrontendTool
+ clangRewrite
+ clangSerialization
++ ${clang_support_lib}
+ clangTooling
+ clangStaticAnalyzerCheckers
+ clangStaticAnalyzerCore
+diff --git a/src/PreProcessorVisitor.cpp b/src/PreProcessorVisitor.cpp
+index 5e63a131..5fdfe5f3 100644
+--- a/src/PreProcessorVisitor.cpp
++++ b/src/PreProcessorVisitor.cpp
+@@ -185,7 +185,7 @@ void PreProcessorVisitor::MacroExpands(const Token &MacroNameTok, const MacroDef
+
+ void PreProcessorVisitor::InclusionDirective (clang::SourceLocation, const clang::Token &,
+ clang::StringRef FileName, bool IsAngled, clang::CharSourceRange FilenameRange,
+- const clang::FileEntry *, clang::StringRef, clang::StringRef,
++ clazy::OptionalFileEntryRef, clang::StringRef, clang::StringRef,
+ const clang::Module *, clang::SrcMgr::CharacteristicKind)
+ {
+ if (m_ci.getPreprocessor().isInPrimaryFile() && !clazy::endsWith(FileName.str(), ".moc")) {
+diff --git a/src/PreProcessorVisitor.h b/src/PreProcessorVisitor.h
+index dc80ff36..1bb17a5e 100644
+--- a/src/PreProcessorVisitor.h
++++ b/src/PreProcessorVisitor.h
+@@ -71,7 +71,7 @@ protected:
+ clang::SourceRange range, const clang::MacroArgs *) override;
+ void InclusionDirective (clang::SourceLocation HashLoc, const clang::Token &IncludeTok,
+ clang::StringRef FileName, bool IsAngled, clang::CharSourceRange FilenameRange,
+- const clang::FileEntry *File, clang::StringRef SearchPath, clang::StringRef RelativePath,
++ clazy::OptionalFileEntryRef File, clang::StringRef SearchPath, clang::StringRef RelativePath,
+ const clang::Module *Imported, clang::SrcMgr::CharacteristicKind FileType) override;
+ private:
+ std::string getTokenSpelling(const clang::MacroDefinition &) const;
+diff --git a/src/SourceCompatibilityHelpers.h b/src/SourceCompatibilityHelpers.h
+index 4ea923a2..c1a23a4b 100644
+--- a/src/SourceCompatibilityHelpers.h
++++ b/src/SourceCompatibilityHelpers.h
+@@ -144,6 +144,21 @@ inline bool contains_lower(clang::StringRef haystack, clang::StringRef needle)
+ #endif
+ }
+
++#if LLVM_VERSION_MAJOR >= 15
++using OptionalFileEntryRef = clang::Optional<clang::FileEntryRef>;
++#else
++using OptionalFileEntryRef = const clang::FileEntry*;
++#endif
++
++inline bool isAscii(clang::StringLiteral *lt)
++{
++#if LLVM_VERSION_MAJOR >= 15
++ return lt->isOrdinary();
++#else
++ return lt->isAscii();
++#endif
++}
++
+ }
+
+ #endif
+diff --git a/src/Utils.cpp b/src/Utils.cpp
+index 3cdf7876..70e0577c 100644
+--- a/src/Utils.cpp
++++ b/src/Utils.cpp
+@@ -25,6 +25,7 @@
+ #include "Utils.h"
+ #include "StringUtils.h"
+ #include "HierarchyUtils.h"
++#include "SourceCompatibilityHelpers.h"
+ #include "StmtBodyRange.h"
+ #include "clazy_stl.h"
+
+@@ -670,7 +671,7 @@ const CXXRecordDecl *Utils::recordForMemberCall(CXXMemberCallExpr *call, string
+ bool Utils::isAscii(StringLiteral *lt)
+ {
+ // 'é' for some reason has isAscii() == true, so also call containsNonAsciiOrNull
+- return lt && lt->isAscii() && !lt->containsNonAsciiOrNull();
++ return lt && clazy::isAscii(lt) && !lt->containsNonAsciiOrNull();
+ }
+
+ bool Utils::isInDerefExpression(Stmt *s, ParentMap *map)
+diff --git a/src/checkbase.cpp b/src/checkbase.cpp
+index f5936dfd..dcc7c999 100644
+--- a/src/checkbase.cpp
++++ b/src/checkbase.cpp
+@@ -105,7 +105,7 @@ void ClazyPreprocessorCallbacks::MacroDefined(const Token &macroNameTok, const M
+ }
+
+ void ClazyPreprocessorCallbacks::InclusionDirective(clang::SourceLocation HashLoc, const clang::Token &IncludeTok, clang::StringRef FileName, bool IsAngled,
+- clang::CharSourceRange FilenameRange, const clang::FileEntry *File, clang::StringRef SearchPath,
++ clang::CharSourceRange FilenameRange, clazy::OptionalFileEntryRef File, clang::StringRef SearchPath,
+ clang::StringRef RelativePath, const clang::Module *Imported, clang::SrcMgr::CharacteristicKind FileType)
+ {
+ check->VisitInclusionDirective(HashLoc, IncludeTok, FileName, IsAngled, FilenameRange, File, SearchPath, RelativePath, Imported, FileType);
+@@ -182,7 +182,7 @@ void CheckBase::VisitEndif(SourceLocation, SourceLocation)
+ }
+
+ void CheckBase::VisitInclusionDirective(clang::SourceLocation , const clang::Token &, clang::StringRef , bool ,
+- clang::CharSourceRange , const clang::FileEntry *, clang::StringRef ,
++ clang::CharSourceRange , clazy::OptionalFileEntryRef, clang::StringRef ,
+ clang::StringRef , const clang::Module *, clang::SrcMgr::CharacteristicKind )
+ {
+ // Overriden in derived classes
+diff --git a/src/checkbase.h b/src/checkbase.h
+index c5db2daf..02f6a6bf 100644
+--- a/src/checkbase.h
++++ b/src/checkbase.h
+@@ -91,7 +91,7 @@ public:
+ void Else(clang::SourceLocation loc, clang::SourceLocation ifLoc) override;
+ void Endif(clang::SourceLocation loc, clang::SourceLocation ifLoc) override;
+ void InclusionDirective(clang::SourceLocation HashLoc, const clang::Token &IncludeTok, clang::StringRef FileName, bool IsAngled,
+- clang::CharSourceRange FilenameRange, const clang::FileEntry *File, clang::StringRef SearchPath,
++ 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;
+@@ -151,7 +151,7 @@ protected:
+ virtual void VisitElse(clang::SourceLocation loc, clang::SourceLocation ifLoc);
+ virtual void VisitEndif(clang::SourceLocation loc, clang::SourceLocation ifLoc);
+ virtual void VisitInclusionDirective(clang::SourceLocation HashLoc, const clang::Token &IncludeTok, clang::StringRef FileName, bool IsAngled,
+- clang::CharSourceRange FilenameRange, const clang::FileEntry *File, clang::StringRef SearchPath,
++ clang::CharSourceRange FilenameRange, clazy::OptionalFileEntryRef File, clang::StringRef SearchPath,
+ clang::StringRef RelativePath, const clang::Module *Imported, clang::SrcMgr::CharacteristicKind FileType);
+
+ void enablePreProcessorCallbacks();
+diff --git a/src/checks/manuallevel/qt6-fwd-fixes.cpp b/src/checks/manuallevel/qt6-fwd-fixes.cpp
+index 83bf81ee..c87d9ca0 100644
+--- a/src/checks/manuallevel/qt6-fwd-fixes.cpp
++++ b/src/checks/manuallevel/qt6-fwd-fixes.cpp
+@@ -166,7 +166,7 @@ void Qt6FwdFixes::VisitDecl(clang::Decl *decl)
+ }
+
+ void Qt6FwdFixes::VisitInclusionDirective(clang::SourceLocation HashLoc, const clang::Token &IncludeTok, clang::StringRef FileName, bool IsAngled,
+- clang::CharSourceRange FilenameRange, const clang::FileEntry *File, clang::StringRef SearchPath,
++ clang::CharSourceRange FilenameRange, clazy::OptionalFileEntryRef File, clang::StringRef SearchPath,
+ clang::StringRef RelativePath, const clang::Module *Imported, clang::SrcMgr::CharacteristicKind FileType)
+ {
+ auto current_file = m_sm.getFilename(HashLoc);
+diff --git a/src/checks/manuallevel/qt6-fwd-fixes.h b/src/checks/manuallevel/qt6-fwd-fixes.h
+index 37b59d95..bb928ba6 100644
+--- a/src/checks/manuallevel/qt6-fwd-fixes.h
++++ b/src/checks/manuallevel/qt6-fwd-fixes.h
+@@ -47,7 +47,7 @@ public:
+ explicit Qt6FwdFixes(const std::string &name, ClazyContext *context);
+ void VisitDecl(clang::Decl *decl) override;
+ void VisitInclusionDirective(clang::SourceLocation HashLoc, const clang::Token &IncludeTok, clang::StringRef FileName, bool IsAngled,
+- clang::CharSourceRange FilenameRange, const clang::FileEntry *File, clang::StringRef SearchPath,
++ clang::CharSourceRange FilenameRange, clazy::OptionalFileEntryRef File, clang::StringRef SearchPath,
+ clang::StringRef RelativePath, const clang::Module *Imported, clang::SrcMgr::CharacteristicKind FileType) override;
+ bool m_including_qcontainerfwd = false;
+ std::set<clang::StringRef> m_qcontainerfwd_included_in_files;
+diff --git a/src/checks/manuallevel/qt6-header-fixes.cpp b/src/checks/manuallevel/qt6-header-fixes.cpp
+index d458b77c..aaa28093 100644
+--- a/src/checks/manuallevel/qt6-header-fixes.cpp
++++ b/src/checks/manuallevel/qt6-header-fixes.cpp
+@@ -270,7 +270,7 @@ Qt6HeaderFixes::Qt6HeaderFixes(const std::string &name, ClazyContext *context)
+ }
+
+ void Qt6HeaderFixes::VisitInclusionDirective(clang::SourceLocation HashLoc, const clang::Token &IncludeTok, clang::StringRef FileName, bool IsAngled,
+- clang::CharSourceRange FilenameRange, const clang::FileEntry *File, clang::StringRef SearchPath,
++ clang::CharSourceRange FilenameRange, clazy::OptionalFileEntryRef File, clang::StringRef SearchPath,
+ clang::StringRef RelativePath, const clang::Module *Imported, clang::SrcMgr::CharacteristicKind FileType)
+ {
+ if (shouldIgnoreFile(HashLoc))
+diff --git a/src/checks/manuallevel/qt6-header-fixes.h b/src/checks/manuallevel/qt6-header-fixes.h
+index ae09f7ad..8ffbb100 100644
+--- a/src/checks/manuallevel/qt6-header-fixes.h
++++ b/src/checks/manuallevel/qt6-header-fixes.h
+@@ -46,7 +46,7 @@ class Qt6HeaderFixes
+ public:
+ explicit Qt6HeaderFixes(const std::string &name, ClazyContext *context);
+ void VisitInclusionDirective(clang::SourceLocation HashLoc, const clang::Token &IncludeTok, clang::StringRef FileName, bool IsAngled,
+- clang::CharSourceRange FilenameRange, const clang::FileEntry *File, clang::StringRef SearchPath,
++ clang::CharSourceRange FilenameRange, clazy::OptionalFileEntryRef File, clang::StringRef SearchPath,
+ clang::StringRef RelativePath, const clang::Module *Imported, clang::SrcMgr::CharacteristicKind FileType) override;
+
+ };
+--
+GitLab
+