Summary: | KisBezierTransformMesh.cpp : FTBFS (gcc11 issue?) | ||
---|---|---|---|
Product: | [Applications] krita | Reporter: | Rex Dieter <rdieter> |
Component: | General | Assignee: | Dmitry Kazakov <dimula73> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | halla, zilla |
Priority: | NOR | ||
Version: | 4.4.3-beta1 | ||
Target Milestone: | --- | ||
Platform: | Other | ||
OS: | Linux | ||
Latest Commit: | https://invent.kde.org/graphics/krita/commit/cd42aa43521a5258e5cfcdfb21b1cfe18f784be3 | Version Fixed In: | |
Sentry Crash Report: |
Description
Rex Dieter
2021-03-08 17:32:49 UTC
This looks a bit like an old gcc bug has returned: https://gcc.gnu.org/legacy-ml/gcc-patches/2018-01/msg01866.html may be multiple things? fedora34 uses a newer boost-1.75, which may be relevant to: /builddir/build/BUILD/krita-4.4.3-beta1/libs/global/krita_container_utils.h:105:48: error: 'struct boost::operators_impl::equality_comparable<KisBezierMeshDetails::BaseMeshNode>' has no member named 'push_back' oh, that might be it, too. Meh... KritaUtils::is_appendable_container is completely broken. You need to test the pointer->push_back expression in a SFINAE context, not in the function body. This is not a GCC bug. Maybe you meant to use typename A::value_type not typename T::value_type, but it still wouldn't work. This would be better: template<typename A, typename R = decltype(declval<A&>().push_back(std::declval<typename A::value_type>()))> static constexpr bool test(A *pointer) { return is_container<A>::value && std::is_same<R, void>::value; } You could also use std::is_void<R>::value instead of is_same. Dmitry, can you please take a look? Git commit 10f61f0733a728dfa49dd2c3c70deb64be9cc7a4 by Dmitry Kazakov. Committed on 09/03/2021 at 17:53. Pushed by dkazakov into branch 'krita/4.3'. Fix compilation for GCC11 SFINAE tests should happen in the functin signature, not in its body. Thanks Jonathan Wakely for the suggested fix! M +4 -6 libs/global/krita_container_utils.h https://invent.kde.org/graphics/krita/commit/10f61f0733a728dfa49dd2c3c70deb64be9cc7a4 Git commit 9c7cec0a0412a2fee681dd9c83cc3d1ad25ce042 by Dmitry Kazakov. Committed on 09/03/2021 at 17:54. Pushed by dkazakov into branch 'master'. Fix compilation for GCC11 SFINAE tests should happen in the functin signature, not in its body. Thanks Jonathan Wakely for the suggested fix! M +4 -6 libs/global/krita_container_utils.h https://invent.kde.org/graphics/krita/commit/9c7cec0a0412a2fee681dd9c83cc3d1ad25ce042 (In reply to Jonathan Wakely from comment #5) > static constexpr bool test(A *pointer) { Oh, now that 'poionter' is unused you might want to remove the name of that parameter, to avoid -Wunused-parameter warnings. Git commit cd42aa43521a5258e5cfcdfb21b1cfe18f784be3 by Halla Rempt, on behalf of Dmitry Kazakov. Committed on 10/03/2021 at 11:51. Pushed by rempt into branch 'krita/4.4.3'. Fix compilation for GCC11 SFINAE tests should happen in the functin signature, not in its body. Thanks Jonathan Wakely for the suggested fix! (cherry picked from commit 10f61f0733a728dfa49dd2c3c70deb64be9cc7a4) M +4 -6 libs/global/krita_container_utils.h https://invent.kde.org/graphics/krita/commit/cd42aa43521a5258e5cfcdfb21b1cfe18f784be3 |