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

Cannot build qtdeclarative 5.12 head in -std=c++11 and recent GCCs

    XMLWordPrintable

Details

    • Bug
    • Resolution: Out of scope
    • P1: Critical
    • None
    • 5.12
    • Quick: SceneGraph
    • None
    • Linux, g++ 8.2.1
    • Linux/X11

    Description

      qtdeclarative/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp: In member function ‘virtual void QSGBatchRenderer::Updater::updateStates(QSGNode*)’:
      qtdeclarative/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp:303:67: error: result of ‘(32768 << 16)’ requires 33 bits to represent, but ‘int’ only has 32 bits [-Werror=shift-overflow=]
               if (uint(sn->dirtyState) & uint(QSGNode::DirtyForceUpdate << 16))
                                               ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
      

      -Wshift-overflow has a different behaviour wrt to the C++ standard used, which is the cause for this :

      "-Wshift-overflow=2

      This warning level also warns about left-shifting 1 into the sign bit, unless C++14 mode (or newer) is active. "

      Attachments

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

        Activity

          People

            janichol Andy Nichols
            jcelerier Jean-Michaël Celerier
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes