-
Bug
-
Resolution: Unresolved
-
P2: Important
-
None
-
5.14.0 Alpha
-
None
-
Latest Gentoo Linux ~amd64
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));