Details
-
Bug
-
Resolution: Unresolved
-
P2: Important
-
None
-
5.14.0 Alpha
-
None
-
Latest Gentoo Linux ~amd64
Description
Cross compiling dev branch for Raspberry Pi 3 fails.
Cross compiler: https://github.com/raspberrypi/tools/tree/master/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian
In file included from ~/io/qt/code/qt/qt5/dev/rpi/qtbase/include/QtCore/qvarlengtharray.h:1:0, from ~/io/qt/code/qt/qt5/dev/rpi/qtbase/include/QtCore/../../../../qt5/qtbase/src/corelib/kernel/qmetatype.h:48, from ~/io/qt/code/qt/qt5/dev/rpi/qtbase/include/QtCore/qmetatype.h:1, from ~/io/qt/code/qt/qt5/dev/rpi/qtbase/include/QtCore/../../../../qt5/qtbase/src/corelib/kernel/qobject.h:54, from ~/io/qt/code/qt/qt5/dev/rpi/qtbase/include/QtCore/qobject.h:1, from ../../include/QtQml/5.14.0/QtQml/private/../../../../../../../qt5/qtdeclarative/src/qml/qml/qqmltypeloader_p.h:55, from ../../include/QtQml/5.14.0/QtQml/private/qqmltypeloader_p.h:1, from ~/io/qt/code/qt/qt5/dev/qt5/qtdeclarative/src/qml/compiler/qqmltypecompiler_p.h:56, from ~/io/qt/code/qt/qt5/dev/qt5/qtdeclarative/src/qml/compiler/qqmltypecompiler.cpp:40: ~/io/qt/code/qt/qt5/dev/rpi/qtbase/include/QtCore/../../../../qt5/qtbase/src/corelib/tools/qvarlengtharray.h: In instantiation of ‘QVarLengthArray<T, Prealloc>::QVarLengthArray(InputIterator, InputIterator) [with InputIterator = const QV4::CompiledData::Alias* const*; typename std::enable_if<std::is_convertible<typename std::iterator_traits<_II1>::iterator_category, std::input_iterator_tag>::value, bool>::type <anonymous> = 1u; T = const QV4::CompiledData::Alias*; int Prealloc = 4]’: ~/io/qt/code/qt/qt5/dev/rpi/qtbase/include/QtCore/../../../../qt5/qtbase/src/corelib/tools/qvarlengtharray.h:72:51: required from ‘QVarLengthArray<T, Prealloc>::QVarLengthArray(std::initializer_list<_Tp>) [with T = const QV4::CompiledData::Alias*; int Prealloc = 4]’ ../../include/QtQml/5.14.0/QtQml/private/../../../../../../../qt5/qtdeclarative/src/qml/compiler/qqmlpropertycachecreator_p.h:705:85: required from ‘QQmlCompileError QQmlPropertyCacheAliasCreator<T>::propertyDataForAlias(const CompiledObject&, const QV4::CompiledData::Alias&, int*, int*, QQmlPropertyData::Flags*) [with ObjectContainer = QQmlTypeCompiler; QQmlPropertyCacheAliasCreator<T>::CompiledObject = QmlIR::Object]’ ../../include/QtQml/5.14.0/QtQml/private/../../../../../../../qt5/qtdeclarative/src/qml/compiler/qqmlpropertycachecreator_p.h:813:110: required from ‘QQmlCompileError QQmlPropertyCacheAliasCreator<T>::appendAliasesToPropertyCache(const CompiledObject&, int) [with ObjectContainer = QQmlTypeCompiler; QQmlPropertyCacheAliasCreator<T>::CompiledObject = QmlIR::Object]’ ~/io/qt/code/qt/qt5/dev/qt5/qtdeclarative/src/qml/compiler/qqmltypecompiler.cpp:1032:133: required from here ~/io/qt/code/qt/qt5/dev/rpi/qtbase/include/QtCore/../../../../qt5/qtbase/src/corelib/tools/qvarlengtharray.h:78:27: error: no matching function for call to ‘QVarLengthArray<const QV4::CompiledData::Alias*, 4>::QVarLengthArray()’ : QVarLengthArray() ^ ~/io/qt/code/qt/qt5/dev/rpi/qtbase/include/QtCore/../../../../qt5/qtbase/src/corelib/tools/qvarlengtharray.h:78:27: note: candidates are: ~/io/qt/code/qt/qt5/dev/rpi/qtbase/include/QtCore/../../../../qt5/qtbase/src/corelib/tools/qvarlengtharray.h:77:12: note: template<class InputIterator, typename std::enable_if<std::is_convertible<typename std::iterator_traits<_Iterator>::iterator_category, std::input_iterator_tag>::value, bool>::type <anonymous> > QVarLengthArray<T, Prealloc>::QVarLengthArray(InputIterator, InputIterator) inline QVarLengthArray(InputIterator first, InputIterator last) ^ ~/io/qt/code/qt/qt5/dev/rpi/qtbase/include/QtCore/../../../../qt5/qtbase/src/corelib/tools/qvarlengtharray.h:77:12: note: template argument deduction/substitution failed: ~/io/qt/code/qt/qt5/dev/rpi/qtbase/include/QtCore/../../../../qt5/qtbase/src/corelib/tools/qvarlengtharray.h:78:27: note: candidate expects 2 arguments, 0 provided : QVarLengthArray() ^ ~/io/qt/code/qt/qt5/dev/rpi/qtbase/include/QtCore/../../../../qt5/qtbase/src/corelib/tools/qvarlengtharray.h:71:5: note: QVarLengthArray<T, Prealloc>::QVarLengthArray(std::initializer_list<_Tp>) [with T = const QV4::CompiledData::Alias*; int Prealloc = 4] QVarLengthArray(std::initializer_list<T> args) ^ ~/io/qt/code/qt/qt5/dev/rpi/qtbase/include/QtCore/../../../../qt5/qtbase/src/corelib/tools/qvarlengtharray.h:71:5: note: candidate expects 1 argument, 0 provided ~/io/qt/code/qt/qt5/dev/rpi/qtbase/include/QtCore/../../../../qt5/qtbase/src/corelib/tools/qvarlengtharray.h:65:12: note: QVarLengthArray<T, Prealloc>::QVarLengthArray(const QVarLengthArray<T, Prealloc>&) [with T = const QV4::CompiledData::Alias*; int Prealloc = 4] inline QVarLengthArray(const QVarLengthArray<T, Prealloc> &other) ^ ~/io/qt/code/qt/qt5/dev/rpi/qtbase/include/QtCore/../../../../qt5/qtbase/src/corelib/tools/qvarlengtharray.h:65:12: note: candidate expects 1 argument, 0 provided make[3]: *** [Makefile:15237: .obj/qqmltypecompiler.o] Error 1 make[2]: *** [Makefile:57: sub-qml-make_first-ordered] Error 2 make[1]: *** [Makefile:50: sub-src-make_first] Error 2 make: *** [Makefile:73: module-qtdeclarative-make_first] Error 2
The workaround here solved the error.
diff --git a/src/corelib/tools/qvarlengtharray.h b/src/corelib/tools/qvarlengtharray.h index 01fc63b677..12383deb14 100644 --- a/src/corelib/tools/qvarlengtharray.h +++ b/src/corelib/tools/qvarlengtharray.h @@ -75,7 +75,7 @@ public: template <typename InputIterator, QtPrivate::IfIsInputIterator<InputIterator> = true> inline QVarLengthArray(InputIterator first, InputIterator last) - : QVarLengthArray() + : QVarLengthArray(0) { QtPrivate::reserveIfForwardIterator(this, first, last); std::copy(first, last, std::back_inserter(*this));
Attachments
Gerrit Reviews
For Gerrit Dashboard: QTBUG-76199 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
266762,2 | Make the default ctor of QVarLengthArray implicit | dev | qt/qtbase | Status: MERGED | +2 | 0 |