diff options
3 files changed, 44 insertions, 0 deletions
diff --git a/dev-qt/qt-creator/files/qt-creator-14.0.1-clang19.patch b/dev-qt/qt-creator/files/qt-creator-14.0.1-clang19.patch new file mode 100644 index 000000000000..e296f5bf68be --- /dev/null +++ b/dev-qt/qt-creator/files/qt-creator-14.0.1-clang19.patch @@ -0,0 +1,24 @@ +https://bugs.gentoo.org/937600 + +qt-creator has a workaround for clang (formerly) lacking an implementation +for __cpp_template_template_args, but the workaround causes issues now that +it is available. + +https://github.com/llvm/llvm-project/pull/89807 +https://github.com/qt-creator/qt-creator/commit/d400dce35d817afd719ffadf8c8f43c8814c05c1 +--- a/src/libs/utils/algorithm.h ++++ b/src/libs/utils/algorithm.h +@@ -259,5 +259,5 @@ + typename ResultContainer = C<Result>> + Q_REQUIRED_RESULT decltype(auto) transform(SC &&container, F function); +-#ifdef Q_CC_CLANG ++#if defined(Q_CC_CLANG) && !defined(__cpp_template_template_args) + // "Matching of template template-arguments excludes compatible templates" + // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0522r0.html (P0522R0) +@@ -810,5 +810,5 @@ + } + +-#ifdef Q_CC_CLANG ++#if defined(Q_CC_CLANG) && !defined(__cpp_template_template_args) + template<template<typename, typename> class C, // result container type + typename SC, // input container type diff --git a/dev-qt/qt-creator/files/qt-creator-14.0.1-sol2-clang19-gcc15.patch b/dev-qt/qt-creator/files/qt-creator-14.0.1-sol2-clang19-gcc15.patch new file mode 100644 index 000000000000..29e600ca33ef --- /dev/null +++ b/dev-qt/qt-creator/files/qt-creator-14.0.1-sol2-clang19-gcc15.patch @@ -0,0 +1,18 @@ +https://bugs.gentoo.org/938486 +https://bugs.gentoo.org/937600 +https://bugs.gentoo.org/936924 +https://bugreports.qt.io/browse/QTCREATORBUG-31517 +https://github.com/ThePhD/sol2/commit/d805d027e0a0a7222e936926139f06e23828ce9f +https://codereview.qt-project.org/c/qt-creator/qt-creator/+/587620 +--- a/src/libs/3rdparty/sol2/include/sol/sol.hpp ++++ b/src/libs/3rdparty/sol2/include/sol/sol.hpp +@@ -6818,7 +6818,8 @@ + static_assert(std::is_constructible<T, Args&&...>::value, "T must be constructible with Args"); + + *this = nullopt; +- this->construct(std::forward<Args>(args)...); ++ new (static_cast<void*>(this)) optional(std::in_place, std::forward<Args>(args)...); ++ return **this; + } + + /// Swaps this optional with the other. diff --git a/dev-qt/qt-creator/qt-creator-14.0.1.ebuild b/dev-qt/qt-creator/qt-creator-14.0.1.ebuild index 78c4cd5ea7ef..57312a5304e4 100644 --- a/dev-qt/qt-creator/qt-creator-14.0.1.ebuild +++ b/dev-qt/qt-creator/qt-creator-14.0.1.ebuild @@ -91,6 +91,8 @@ BDEPEND=" PATCHES=( "${FILESDIR}"/${PN}-11.0.2-musl-no-execinfo.patch "${FILESDIR}"/${PN}-12.0.0-musl-no-malloc-trim.patch + "${FILESDIR}"/${PN}-14.0.1-clang19.patch + "${FILESDIR}"/${PN}-14.0.1-sol2-clang19-gcc15.patch ) pkg_setup() { |