Details
-
Bug
-
Resolution: Done
-
P1: Critical
-
None
-
5.9
-
None
Description
The latest qtdeclarative 5.9 branch with g++ (GCC) 6.3.1 20161221 (Red Hat 6.3.1-1):
g++ -c -pipe -Wno-c++0x-compat -g -Og -std=c++1z -fvisibility=hidden -fvisibility-inlines-hidden -fno-exceptions -Wall -W -Wno-c++0x-compat -Wvla -Wdate-time -Wshift-overflow=2 -Wduplicated-cond -Werror -Wno-error=cpp -Wno-error=deprecated-declarations -Wno-error=strict-overflow -D_REENTRANT -fPIC -DQT_NO_URL_CAST_FROM_STRING -DQT_NO_INTEGER_EVENT_COORDINATES -DQT_NO_FOREACH -DWTF_EXPORT_PRIVATE= -DJS_EXPORT_PRIVATE= -DENABLE_ASSEMBLER_WX_EXCLUSIVE=1 -DWTFReportAssertionFailure=qmlWTFReportAssertionFailure -DWTFReportBacktrace=qmlWTFReportBacktrace -DWTFInvokeCrashHook=qmlWTFInvokeCrashHook -DENABLE_LLINT=0 -DENABLE_DFG_JIT=0 -DENABLE_DFG_JIT_UTILITY_METHODS=1 -DENABLE_JIT_CONSTANT_BLINDING=0 -DBUILDING_QT__ -DWTF_USE_UDIS86=0 -DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT -DQT_BUILD_QML_LIB -DQT_BUILDING_QT -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT_MOC_COMPAT -DQT_USE_QSTRINGBUILDER -DQT_DEPRECATED_WARNINGS -DQT_DISABLE_DEPRECATED_BEFORE=0x050000 -DQT_NO_EXCEPTIONS -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -Imemory -I. -Icompiler -I. -I../3rdparty/masm/jit -I../3rdparty/masm/assembler -I../3rdparty/masm/runtime -I../3rdparty/masm/wtf -I../3rdparty/masm/stubs -I../3rdparty/masm/stubs/wtf -I../3rdparty/masm -I../3rdparty/masm/disassembler -I../3rdparty/masm/disassembler/udis86 -Ijit -I. -I.generated -Ijsruntime -I. -Idebugger -Ianimations -I/home/jpnurmi/Projects/qt-59/qtbase/include -I/home/jpnurmi/Projects/qt-59/qtbase/include/QtQml -I/home/jpnurmi/Projects/qt-59/qtbase/include/QtQml/5.9.1 -I/home/jpnurmi/Projects/qt-59/qtbase/include/QtQml/5.9.1/QtQml -I/home/jpnurmi/Projects/qt-59/qtbase/include/QtCore/5.9.1 -I/home/jpnurmi/Projects/qt-59/qtbase/include/QtCore/5.9.1/QtCore -I/home/jpnurmi/Projects/qt-59/qtbase/include/QtNetwork -I/home/jpnurmi/Projects/qt-59/qtbase/include/QtCore -I.moc -I/home/jpnurmi/Projects/qt-59/qtbase/mkspecs/linux-g++ -o .obj/qv4isel_moth.o compiler/qv4isel_moth.cpp In file included from compiler/qv4isel_moth_p.h:60:0, from compiler/qv4isel_moth.cpp:41: compiler/qv4instr_moth_p.h: In member function ‘virtual void QV4::Moth::InstructionSelection::callBuiltinPopScope()’: compiler/qv4instr_moth_p.h:909:53: error: ‘*((void*)& call +4)’ is used uninitialized in this function [-Werror=uninitialized] Size - sizeof(Instr::instr_common)); } \ ^ compiler/qv4isel_moth.cpp:1191:38: note: ‘call’ was declared here Instruction::CallBuiltinPopScope call; ^~~~ In file included from compiler/qv4isel_moth_p.h:60:0, from compiler/qv4isel_moth.cpp:41: compiler/qv4instr_moth_p.h: In member function ‘virtual void QV4::Moth::InstructionSelection::callBuiltinConvertThisToObject()’: compiler/qv4instr_moth_p.h:909:53: error: ‘*((void*)& call +4)’ is used uninitialized in this function [-Werror=uninitialized] Size - sizeof(Instr::instr_common)); } \ ^ compiler/qv4isel_moth.cpp:1344:49: note: ‘call’ was declared here Instruction::CallBuiltinConvertThisToObject call; ^~~~ cc1plus: all warnings being treated as errors Makefile:22709: recipe for target '.obj/qv4isel_moth.o' failed
Git bisect:
7ed93899e9305ccd538361ee58baa4bf15ff8a41 is the first bad commit commit 7ed93899e9305ccd538361ee58baa4bf15ff8a41 Author: Lars Knoll <lars.knoll@qt.io> Date: Wed May 10 09:42:18 2017 +0200 Optimizations to the generated byte code Cut the size of the generated byte code in half, by storing parameters in a more compact form and always storing the instruction type in the instruction. We can still used computed goto's for a fast interpreter, by looking up the jump point for the next instruction in the jump table. Another advantage is that the byte code is now platform independent (modulo endianness). The change comes with a 3% performance impact on x86_64, which is acceptable considering the size savings on the bytecode. Change-Id: I37de3e1f94611987a85e65ea86536583aa965d6d Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> :040000 040000 9b23e123c3b2dfe6496c0e49b534fda204db64ba 47a91e41a6db3bf96d74b1ed310d99af9ac889bf M src