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

usage of QVector in QIcon: memmove overwrites vtable (clang 3.8)

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • P2: Important
    • None
    • 5.7.0 Beta
    • None

    Description

      clang++ -c -Xclang -include-pch -Xclang .pch/Qt5Gui/c++.pch -O2 -pipe -march=corei7 -g -std=c++1z -fvisibility=hidden -fvisibility-inlines-hidden -fno-exceptions -Wall -W -Wdate-time -Werror -Wno-error=#warnings -Wno-error=deprecated-declarations -D_REENTRANT -fPIC -DQT_NO_USING_NAMESPACE -DQT_ENABLE_HARFBUZZ_NG -DENABLE_PIXMAN_DRAWHELPERS -DQT_BUILD_GUI_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_CORE_LIB -I/home/rutledge/dev/qt57/qtbase/src/gui -I. -I../../include -I../../include/QtGui -I../../include/QtGui/5.7.0 -I../../include/QtGui/5.7.0/QtGui -isystem /usr/include/libdrm -I../../include/QtCore/5.7.0 -I../../include/QtCore/5.7.0/QtCore -I../../include/QtCore -I.moc -I/home/rutledge/dev/qt57/qtbase/mkspecs/linux-clang -o .obj/qicon.o /home/rutledge/dev/qt57/qtbase/src/gui/image/qicon.cpp
      In file included from /home/rutledge/dev/qt57/qtbase/src/gui/image/qicon.cpp:1:
      In file included from /home/rutledge/dev/qt57/qtbase/src/gui/kernel/qt_gui_pch.h:69:
      In file included from /home/rutledge/dev/qt5-dbg/qtbase/src/gui/../../include/QtGui/qbitmap.h:1:
      In file included from /home/rutledge/dev/qt5-dbg/qtbase/src/gui/../../include/QtGui/../../../../qt57/qtbase/src/gui/image/qbitmap.h:43:
      In file included from ../../include/QtGui/qpixmap.h:1:
      In file included from ../../include/QtGui/../../../../qt57/qtbase/src/gui/image/qpixmap.h:48:
      In file included from ../../include/QtGui/qimage.h:1:
      In file included from ../../include/QtGui/../../../../qt57/qtbase/src/gui/image/qimage.h:47:
      In file included from ../../include/QtGui/qtransform.h:1:
      In file included from ../../include/QtGui/../../../../qt57/qtbase/src/gui/painting/qtransform.h:42:
      In file included from /home/rutledge/dev/qt5-dbg/qtbase/src/gui/../../include/QtGui/qmatrix.h:1:
      In file included from /home/rutledge/dev/qt5-dbg/qtbase/src/gui/../../include/QtGui/../../../../qt57/qtbase/src/gui/painting/qmatrix.h:43:
      In file included from ../../include/QtGui/qpolygon.h:1:
      In file included from ../../include/QtGui/../../../../qt57/qtbase/src/gui/painting/qpolygon.h:43:
      In file included from ../../include/QtCore/qvector.h:1:
      ../../include/QtCore/../../../../qt57/qtbase/src/corelib/tools/qvector.h:759:21: error: destination for this 'memmove' call is a pointer to class containing a dynamic class 'QPixmap'; vtable pointer
            will be overwritten [-Werror,-Wdynamic-class-memaccess]
                  memmove(abegin, aend, (d->size - itemsToErase - itemsUntouched) * sizeof(T));
                  ~~~~~~~ ^
      ../../include/QtCore/../../../../qt57/qtbase/src/corelib/tools/qvector.h:450:3: note: in instantiation of member function 'QVector<QPixmapIconEngineEntry>::erase' requested here
        erase(d->begin() + i, d->begin() + i + 1); }
        ^
      /home/rutledge/dev/qt57/qtbase/src/gui/image/qicon.cpp:288:25: note: in instantiation of member function 'QVector<QPixmapIconEngineEntry>::remove' requested here
                      pixmaps.remove(idx);
                              ^
      ../../include/QtCore/../../../../qt57/qtbase/src/corelib/tools/qvector.h:759:21: note: explicitly cast the pointer to silence this warning
                  memmove(abegin, aend, (d->size - itemsToErase - itemsUntouched) * sizeof(T));
                          ^
                          (void*)
      1 error generated.
      Makefile:47964: recipe for target '.obj/qicon.o' failed
      

      Attachments

        For Gerrit Dashboard: QTBUG-53605
        # Subject Branch Project Status CR V

        Activity

          People

            thiago Thiago Macieira
            srutledg Shawn Rutledge
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes