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

qfilesystemmodel.cpp fails to compile on Windows with oneAPI icx using c++20

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • P2: Important
    • 6.2.5, 6.3.1, 6.4.0 Beta1
    • 6.3.0
    • None
    • Windows
    • 845491ed3b (qt/qtbase/dev) b45819425e (qt/qtbase/6.3) b45819425e (qt/tqtc-qtbase/6.3) 845491ed3b (qt/tqtc-qtbase/dev) f7dbca4822 (qt/tqtc-qtbase/5.15) b45819425e (qt/qtbase/6.3.1) b45819425e (qt/tqtc-qtbase/6.3.1) b666113532 (qt/tqtc-qtbase/6.2)

    Description

      Was able to successfully compile 6.3.0 with c++17 see QTBUG-102728

      Fails when trying c++20
      FAILED: qtbase/src/gui/CMakeFiles/Gui.dir/itemmodels/qfilesystemmodel.cpp.obj

      full compilation is attached

      + c:\Qt\qt-everywhere-src-6.3.0\qtbase\configure.bat -top-level -prefix c:\QT\Qt6.3.0_20_1 -debug -platform win32-icc -nomake examples -cmake-generator Ninja  -c++std c++20 --disable-pch "MySQL_LIBRARY=c:/qt/mysql-8.0.28-winx64/lib/libmysql.lib" "MySQL_INCLUDE_DIR=c:/qt/mysql-8.0.28-winx64/include/" -skip qtconnectivity
      -- Windows 10 SDK version: 10.0.22000.0
      'C:/Program Files/CMake/bin/cmake.exe' '-DBUILD_qtconnectivity=OFF' '-DBUILD_WITH_PCH=OFF' '-DCMAKE_INSTALL_PREFIX=c:/QT/Qt6.3.0_20_1' '-DQT_QMAKE_TARGET_MKSPEC=win32-icc' '-DQT_BUILD_EXAMPLES=FALSE' '-DCMAKE_BUILD_TYPE=Debug' '-DINPUT_cxx14=yes' '-DINPUT_cxx17=yes' '-DINPUT_cxx20=yes' '-G' 'Ninja' '-DMySQL_LIBRARY=c:/qt/mysql-8.0.28-winx64/lib/libmysql.lib' '-DMySQL_INCLUDE_DIR=c:/qt/mysql-8.0.28-winx64/include/' 'C:/Qt/qt-everywhere-src-6.3.0'
      
      C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.31.31103\include\vector(1352,9): error: no matching function for call to '_Destroy_range'
              _Destroy_range(_Myfirst, _Mylast, _Getal());
              ^~~~~~~~~~~~~~
      C:\Qt\qt-everywhere-src-6.3.0\qtbase\src\gui\itemmodels\qfilesystemmodel.cpp(2174,24): note: in instantiation of member function 'std::vector<QRegularExpression>::clear' requested here
          nameFiltersRegexps.clear();
      
      FAILED: qtbase/src/gui/CMakeFiles/Gui.dir/itemmodels/qfilesystemmodel.cpp.obj 
      C:\PROGRA~2\Intel\oneAPI\compiler\latest\windows\bin\icx.exe  /nologo /TP -DGui_EXPORTS -DMD4C_USE_UTF8 -DQT_ASCII_CAST_WARNINGS -DQT_BUILDING_QT -DQT_BUILD_GUI_LIB -DQT_CORE_LIB -DQT_DEPRECATED_WARNINGS -DQT_DEPRECATED_WARNINGS_SINCE=0x060000 -DQT_DISABLE_DEPRECATED_BEFORE=0x040800 -DQT_MOC_COMPAT -DQT_NO_CAST_TO_ASCII -DQT_NO_EXCEPTIONS -DQT_NO_FOREACH -DQT_NO_JAVA_STYLE_ITERATORS -DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT -DQT_NO_USING_NAMESPACE -DQT_QPA_DEFAULT_PLATFORM_NAME=\"windows\" -DQT_USE_QSTRINGBUILDER -DUNICODE -DWIN32 -DWIN64 -D_CRT_SECURE_NO_WARNINGS -D_ENABLE_EXTENDED_ALIGNED_STORAGE -D_UNICODE -D_USE_MATH_DEFINES -D_WIN64 -D_WINDLL -IC:\Qt\Qt6.3.0_20\qtbase\src\gui\Gui_autogen\include -IC:\Qt\Qt6.3.0_20\qtbase\include -IC:\Qt\Qt6.3.0_20\qtbase\include\QtGui -IC:\Qt\qt-everywhere-src-6.3.0\qtbase\src\gui -IC:\Qt\Qt6.3.0_20\qtbase\src\gui -IC:\Qt\qt-everywhere-src-6.3.0\qtbase\src\gui\..\3rdparty\VulkanMemoryAllocator -IC:\Qt\Qt6.3.0_20\qtbase\include\QtGui\6.3.0 -IC:\Qt\Qt6.3.0_20\qtbase\include\QtGui\6.3.0\QtGui -IC:\Qt\qt-everywhere-src-6.3.0\qtbase\src\gui\..\3rdparty\md4c -IC:\Qt\Qt6.3.0_20\qtbase\include\QtCore -IC:\Qt\qt-everywhere-src-6.3.0\qtbase\mkspecs\win32-icc -IC:\Qt\Qt6.3.0_20\qtbase\src\corelib -IC:\Qt\Qt6.3.0_20\qtbase\include\QtCore\6.3.0 -IC:\Qt\Qt6.3.0_20\qtbase\include\QtCore\6.3.0\QtCore -IC:\Qt\qt-everywhere-src-6.3.0\qtbase\src\3rdparty\harfbuzz-ng\include\harfbuzz -IC:\Qt\qt-everywhere-src-6.3.0\qtbase\src\3rdparty\freetype\include -I"C:\Program Files (x86)\Intel\oneAPI\intelpython\latest\Library\include" /DWIN32 /D_WINDOWS /Zi     /RTC1 -MDd /W3 -Zc:__cplusplus -permissive- -FS -Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:wchar_t -bigobj -Qstd=c++20 -QMD -QMT qtbase\src\gui\CMakeFiles\Gui.dir\itemmodels\qfilesystemmodel.cpp.obj -QMF qtbase\src\gui\CMakeFiles\Gui.dir\itemmodels\qfilesystemmodel.cpp.obj.d /Foqtbase\src\gui\CMakeFiles\Gui.dir\itemmodels\qfilesystemmodel.cpp.obj /Fdqtbase\src\gui\CMakeFiles\Gui.dir\ -c C:\Qt\qt-everywhere-src-6.3.0\qtbase\src\gui\itemmodels\qfilesystemmodel.cpp
      In file included from C:\Qt\qt-everywhere-src-6.3.0\qtbase\src\gui\itemmodels\qfilesystemmodel.cpp:40:
      In file included from C:\Qt\qt-everywhere-src-6.3.0\qtbase\src\gui\itemmodels/qfilesystemmodel_p.h:54:
      In file included from C:\Qt\Qt6.3.0_20\qtbase\include\QtGui\6.3.0\QtGui/private/qtguiglobal_p.h:1:
      In file included from C:\Qt\Qt6.3.0_20\qtbase\include\QtGui\6.3.0\QtGui/private/../../../../../../../qt-everywhere-src-6.3.0/qtbase/src/gui/kernel/qtguiglobal_p.h:54:
      In file included from C:\Qt\Qt6.3.0_20\qtbase\include\QtGui/qtguiglobal.h:1:
      In file included from C:\Qt\Qt6.3.0_20\qtbase\include\QtGui/../../../../qt-everywhere-src-6.3.0/qtbase/src/gui/kernel/qtguiglobal.h:43:
      In file included from C:\Qt\Qt6.3.0_20\qtbase\include\QtCore\qglobal.h:1:
      In file included from C:\Qt\Qt6.3.0_20\qtbase\include\QtCore/../../../../qt-everywhere-src-6.3.0/qtbase/src/corelib/global/qglobal.h:45:
      C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.31.31103\include\type_traits(746,50): error: incomplete type 'QRegularExpression' used in type trait expression
      struct is_trivially_destructible : bool_constant<__is_trivially_destructible(_Ty)> {
                                                       ^
      C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.31.31103\include\type_traits(59,53): note: in instantiation of template class 'std::is_trivially_destructible<QRegularExpression>' requested here
      struct conjunction<_First, _Rest...> : _Conjunction<_First::value, _First, _Rest...>::type {
                                                          ^
      C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.31.31103\include\type_traits(64,44): note: in instantiation of template class 'std::conjunction<std::is_trivially_destructible<QRegularExpression>, std::disjunction<std::_Is_default_allocator<std::allocator<QRegularExpression>>, std::_Has_no_alloc_destroy<std::allocator<QRegularExpression>, QRegularExpression *>>>' requested here
      _INLINE_VAR constexpr bool conjunction_v = conjunction<_Traits...>::value;
                                                 ^
      C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.31.31103\include\xmemory(938,20): note: in instantiation of variable template specialization 'std::conjunction_v<std::is_trivially_destructible<QRegularExpression>, std::disjunction<std::_Is_default_allocator<std::allocator<QRegularExpression>>, std::_Has_no_alloc_destroy<std::allocator<QRegularExpression>, QRegularExpression *>>>' requested here
          if constexpr (!conjunction_v<is_trivially_destructible<_Ty>, _Uses_default_destroy<_Alloc, _Ty*>>) {
                         ^
      C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.31.31103\include\vector(1620,13): note: in instantiation of function template specialization 'std::_Destroy_range<std::allocator<QRegularExpression>>' requested here
                  _Destroy_range(_Myfirst, _Mylast, _Al);
                  ^
      C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.31.31103\include\vector(593,9): note: in instantiation of member function 'std::vector<QRegularExpression>::_Tidy' requested here
              _Tidy();
              ^
      C:\Qt\qt-everywhere-src-6.3.0\qtbase\src\gui\itemmodels/qfilesystemmodel_p.h(94,20): note: in instantiation of member function 'std::vector<QRegularExpression>::~vector' requested here
      class Q_GUI_EXPORT QFileSystemModelPrivate : public QAbstractItemModelPrivate
                         ^
      C:\Qt\qt-everywhere-src-6.3.0\qtbase\src\gui\itemmodels/qfilesystemmodel_p.h(94,20): note: in implicit destructor for 'QFileSystemModelPrivate' first required here
      C:\Qt\qt-everywhere-src-6.3.0\qtbase\src\gui\itemmodels/qfilesystemmodel_p.h(94,7): note: due to 'QFileSystemModelPrivate' being dllexported
      class Q_GUI_EXPORT QFileSystemModelPrivate : public QAbstractItemModelPrivate
      

      Attachments

        Issue Links

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

          Activity

            People

              thiago Thiago Macieira
              rich Richard Fleck
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes