LO 24.2 C++20 baseline
Miklos Vajna
vmiklos at collabora.com
Mon Sep 25 06:30:07 UTC 2023
Hi Stephan,
On Fri, Sep 22, 2023 at 10:20:31AM +0300, Stephan Bergmann <sbergman at redhat.com> wrote:
> I just submitted
> <https://git.libreoffice.org/core/+/1eef07805021b7ca26a1a8894809b6d995747ba1%5E%21>
> "Bump baseline to C++20" to master.
gcc-12 looks fine here, but I hit an interesting problem with clang-15
(which worked fine before pulling):
$ make animations
make -j 16 -f /home/vmiklos/git/libreoffice/core-clang/compilerplugins/Makefile-clang.mk compilerplugins
make[1]: Entering directory '/home/vmiklos/git/libreoffice/core-clang'
make[1]: Nothing to be done for 'compilerplugins'.
make[1]: Leaving directory '/home/vmiklos/git/libreoffice/core-clang'
cd /home/vmiklos/git/libreoffice/core-clang/animations && make -j 16 -rs
[CXX] animations/source/animcore/animcore.cxx
[LOC] top level modules: animations
In file included from /home/vmiklos/git/libreoffice/core-clang/animations/source/animcore/animcore.cxx:20:
In file included from /home/vmiklos/git/libreoffice/core-clang/workdir/UnoApiHeadersTarget/offapi/normal/com/sun/star/util/XCloneable.hpp:8:
/home/vmiklos/git/libreoffice/core-clang/workdir/UnoApiHeadersTarget/udkapi/normal/com/sun/star/uno/XInterface.hpp:32:65: error: invalid application of 'sizeof' to an incomplete type 'animcore::(anonymous namespace)::AnimationNode'
template<typename T> inline constexpr auto isUnoInterfaceType = sizeof (T) && IsUnoInterfaceType<T>::value;
^~~~~~~~~~
/home/vmiklos/git/libreoffice/core-clang/include/unotools/weakref.hxx:119:33: note: in instantiation of variable template specialization 'cppu::detail::isUnoInterfaceType' requested here
requires(!cppu::detail::isUnoInterfaceType<interface_type>)
^
/home/vmiklos/git/libreoffice/core-clang/animations/source/animcore/animcore.cxx:309:44: note: in instantiation of template class 'unotools::WeakReference<animcore::(anonymous namespace)::AnimationNode>' requested here
unotools::WeakReference<AnimationNode> mxParent;
^
/home/vmiklos/git/libreoffice/core-clang/animations/source/animcore/animcore.cxx:121:7: note: definition of 'animcore::(anonymous namespace)::AnimationNode' is not complete until the closing '}'
class AnimationNode final: public AnimationNodeBase
^
1 error generated.
make[1]: *** [/home/vmiklos/git/libreoffice/core-clang/solenv/gbuild/LinkTarget.mk:340: /home/vmiklos/git/libreoffice/core-clang/workdir/CxxObject/animations/source/animcore/animcore.o] Error 1
make: *** [Makefile:121: animations] Error 2
Given that AnimationNode refers to itself, we probably can't provide a
full type for unotools::WeakReference. But then how to get around this?
Thanks,
Miklos
More information about the LibreOffice
mailing list