Details
-
Bug
-
Resolution: Unresolved
-
Not Evaluated
-
None
-
6.10.0 Beta1, 6.11.0 FF
-
None
Description
In C++26, std::is_virtual_base_of, used for QWeakPointer<const QQmlJSScope>, requires a complete type:
error: invalid use of incomplete type 'const class QQmlJSScope'
Full log:
FAILED: [code=1] qtdeclarative/src/qmlcompiler/CMakeFiles/QmlCompiler.dir/qqmljsshadowcheck.cpp.o /usr/bin/c++ -DQT_ASCII_CAST_WARNINGS -DQT_BUILDING_QT -DQT_BUILD_QMLCOMPILER_LIB -DQT_CORE_LIB -DQT_DEPRECATED_WARNINGS -DQT_EXPLICIT_QFILE_CONSTRUCTION_FROM_PATH -DQT_LEAN_HEADERS=1 -DQT_MOC_COMPAT -DQT_NO_AS_CONST=1 -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_EXCEPTIONS -DQT_NO_FOREACH -DQT_NO_FOREACH=1 -DQT_NO_JAVA_STYLE_ITERATORS -DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT -DQT_NO_QASCONST -DQT_NO_QEXCHANGE -DQT_NO_QSNPRINTF -DQT_NO_QSNPRINTF=1 -DQT_NO_STD_FORMAT_SUPPORT -DQT_QMLINTEGRATION_LIB -DQT_QMLTOOLINGSETTINGS_LIB -DQT_QML_LIB -DQT_USE_QSTRINGBUILDER -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -I/build/qt-prefix/src/qt-build/qtdeclarative/src/qmlcompiler/QmlCompiler_autogen/include -I/build/qt-prefix/src/qt-build/qtbase/include -I/build/qt-prefix/src/qt-build/qtbase/include/QtQmlCompiler -I/build/qt-prefix/src/qt/qtdeclarative/src/qmlcompiler -I/build/qt-prefix/src/qt-build/qtdeclarative/src/qmlcompiler -I/build/qt-prefix/src/qt-build/qtbase/include/QtQmlCompiler/6.11.0 -I/build/qt-prefix/src/qt-build/qtbase/include/QtQmlCompiler/6.11.0/QtQmlCompiler -I/build/qt-prefix/src/qt-build/qtbase/include/QtCore -I/build/qt-prefix/src/qt/qtbase/mkspecs/linux-g++ -I/build/qt-prefix/src/qt-build/qtbase/include/QtQml -I/build/qt-prefix/src/qt-build/qtbase/include/QtQmlIntegration -I/build/qt-prefix/src/qt/qtdeclarative/src/qmlintegration -I/build/qt-prefix/src/qt-build/qtdeclarative/src/qmlintegration -I/build/qt-prefix/src/qt-build/qtdeclarative/src/qml -I/build/qt-prefix/src/qt-build/qtbase/include/QtQml/6.11.0 -I/build/qt-prefix/src/qt-build/qtbase/include/QtQml/6.11.0/QtQml -I/build/qt-prefix/src/qt-build/qtbase/src/corelib -I/build/qt-prefix/src/qt-build/qtbase/include/QtCore/6.11.0 -I/build/qt-prefix/src/qt-build/qtbase/include/QtCore/6.11.0/QtCore -I/build/qt-prefix/src/qt-build/qtbase/include/QtQmlToolingSettings -I/build/qt-prefix/src/qt-build/qtdeclarative/src/qmltoolingsettings -I/build/qt-prefix/src/qt-build/qtbase/include/QtQmlToolingSettings/6.11.0 -I/build/qt-prefix/src/qt-build/qtbase/include/QtQmlToolingSettings/6.11.0/QtQmlToolingSettings -isystem /build/prefix/include -march=x86-64-v3 -g -DNDEBUG -O2 -std=gnu++26 -flto=auto -fno-fat-lto-objects -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -Wall -Wextra -Wno-expansion-to-defined -ffat-lto-objects -fPIC -ffunction-sections -fdata-sections -Wsuggest-override -fcf-protection=full -ftrivial-auto-var-init=pattern -fstack-protector-strong -fstack-clash-protection -fno-exceptions -Winvalid-pch -include /build/qt-prefix/src/qt-build/qtdeclarative/src/qmlcompiler/CMakeFiles/QmlCompiler.dir/cmake_pch.hxx -MD -MT qtdeclarative/src/qmlcompiler/CMakeFiles/QmlCompiler.dir/qqmljsshadowcheck.cpp.o -MF qtdeclarative/src/qmlcompiler/CMakeFiles/QmlCompiler.dir/qqmljsshadowcheck.cpp.o.d -o qtdeclarative/src/qmlcompiler/CMakeFiles/QmlCompiler.dir/qqmljsshadowcheck.cpp.o -c /build/qt-prefix/src/qt/qtdeclarative/src/qmlcompiler/qqmljsshadowcheck.cpp In file included from /build/qt-prefix/src/qt/qtbase/src/corelib/global/qglobal.h:13, from /build/qt-prefix/src/qt-build/qtbase/include/QtCore/qglobal.h:1, from /build/qt-prefix/src/qt-build/qtbase/include/QtCore/QtCore:4, from /build/qt-prefix/src/qt-build/qtdeclarative/src/qmlcompiler/CMakeFiles/QmlCompiler.dir/cmake_pch.hxx:5, from <ligne-de-commande>: /usr/include/c++/15/type_traits: In instantiation of 'constexpr const bool std::is_virtual_base_of_v<const QQmlJSScope, const QQmlJSScope>': /build/qt-prefix/src/qt/qtbase/src/corelib/tools/qsharedpointer_impl.h:601:54: required by substitution of 'template<class X, typename std::enable_if<std::is_convertible<_Up*, const QQmlJSScope*>::value, bool>::type <anonymous>, typename std::enable_if<(! is_virtual_base_of_v<const QQmlJSScope, X>), bool>::type <anonymous> > QWeakPointer<const QQmlJSScope>::QWeakPointer(QWeakPointer<T>&&) [with X = const QQmlJSScope; typename std::enable_if<std::is_convertible<_Up*, const QQmlJSScope*>::value, bool>::type <anonymous> = <missing>; typename std::enable_if<(! is_virtual_base_of_v<const QQmlJSScope, X>), bool>::type <anonymous> = <missing>]' 601 | using IfNotVirtualBase = typename std::enable_if<!qxp::is_virtual_base_of_v<T, X>, bool>::type; | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /build/qt-prefix/src/qt/qtdeclarative/src/qmlcompiler/qqmljsmetatypes_p.h:145:11: required from here 145 | m_type(type), | ^~~~~~~~~~~~ /usr/include/c++/15/type_traits:3697:48: error: invalid use of incomplete type 'const class QQmlJSScope' 3697 | inline constexpr bool is_virtual_base_of_v = __builtin_is_virtual_base_of(_Base, _Derived); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /build/qt-prefix/src/qt/qtdeclarative/src/qmlcompiler/qqmljsloggingutils_p.h:21, from /build/qt-prefix/src/qt/qtdeclarative/src/qmlcompiler/qqmljslogger_p.h:21, from /build/qt-prefix/src/qt-build/qtbase/include/QtQmlCompiler/6.11.0/QtQmlCompiler/private/qqmljslogger_p.h:1, from /build/qt-prefix/src/qt/qtdeclarative/src/qmlcompiler/qqmljscompilepass_p.h:18, from /build/qt-prefix/src/qt-build/qtbase/include/QtQmlCompiler/6.11.0/QtQmlCompiler/private/qqmljscompilepass_p.h:1, from /build/qt-prefix/src/qt/qtdeclarative/src/qmlcompiler/qqmljsshadowcheck_p.h:17, from /build/qt-prefix/src/qt/qtdeclarative/src/qmlcompiler/qqmljsshadowcheck.cpp:4: /build/qt-prefix/src/qt/qtdeclarative/src/qmlcompiler/qqmljsloggingutils.h:13:7: note: forward declaration of 'class QQmlJSScope' 13 | class QQmlJSScope; | ^~~~~~~~~~~
gcc version 15.1.1 20250528 (SUSE Linux)