Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-61089

Build break on GCC 6.3 Linux 64-bit

    XMLWordPrintable

Details

    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
      

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            Unassigned Unassigned
            jpnurmi J-P Nurmi
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes