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

WIN64: 'namespace "std" has no member' and 'expected a ">"' errors for QtBase qreadwritelock builds using ICC

    XMLWordPrintable

Details

    • Bug
    • Resolution: Invalid
    • P2: Important
    • None
    • 5.12
    • Core: Threads
    • None
    • * Windows 10 x64,
      * mingw-w64 x86_64 posix seh 8.1.0,
      * ICC 2018 Update 3,
      * MSVC 2017 15.8.0,
      * Windows SDK 10.0.17134.12,
      * Qt5-dev-6077565b3ec70c1fb334801543b0894914cb0e06.
    • Windows

    Description

      Hello, everyone,

      For builds using ICC got error:

              cd qreadwritelock\ && ( if not exist Makefile C:\libQT-5.12-dev\build\qtbase\bin\qmake.exe -o Makefile C:\libQT-5.12-dev\build\qtbase\tests\benchmarks\corelib\thread\qreadwritelock\qreadwritelock.pro ) && C:\Windows\jom.exe -f Makefile
              C:\Windows\jom.exe -f Makefile.Release
              icl -c -nologo -Zc:wchar_t -Qprec -Zm200 -Zc:forScope -O2 -MD -Qstd=c++14 -Qoption,cpp,--unicode_source_kind,UTF-8 -W3 -Qdiag-disable:673,809,1738,1744,3373 -DUNICODE -D_UNICODE -DWIN32 -DWIN64 -D_ENABLE_EXTENDED_ALIGNED_STORAGE -DQT_NO_EXCEPTIONS -DQT_NO_DEBUG -DQT_FORCE_ASSERTS -DQT_TESTLIB_LIB -DQT_CORE_LIB -DQT_TESTCASE_BUILDDIR="\"C:/libQT-5.12-dev/build/qtbase/tests/benchmarks/corelib/thread/qreadwritelock\"" -DNDEBUG -I. -I..\..\..\..\..\include -I..\..\..\..\..\include\QtTest -I..\..\..\..\..\include\QtCore -Itmp\moc\release -I..\..\..\..\..\mkspecs\win32-icc -Fo.obj\release\ @C:\Users\test\AppData\Local\Temp\tst_qreadwritelock.obj.2588.16.jom
      tst_qreadwritelock.cpp
      tst_qreadwritelock.cpp(111): error: namespace "std" has no member "shared_timed_mutex"
                testUncontended<std::shared_timed_mutex,
                                     ^
      
      tst_qreadwritelock.cpp(112): error: namespace "std" has no member "shared_lock"
                                LockerWrapper<std::shared_lock<std::shared_timed_mutex>>>);
                                                   ^
      
      tst_qreadwritelock.cpp(112): error: expected a ">"
                                LockerWrapper<std::shared_lock<std::shared_timed_mutex>>>);
                                                              ^
      
      tst_qreadwritelock.cpp(112): error: expected an expression
                                LockerWrapper<std::shared_lock<std::shared_timed_mutex>>>);
                                                                                         ^
      
      tst_qreadwritelock.cpp(114): error: namespace "std" has no member "shared_timed_mutex"
                testUncontended<std::shared_timed_mutex,
                                     ^
      
      tst_qreadwritelock.cpp(115): error: namespace "std" has no member "shared_timed_mutex"
                                LockerWrapper<std::unique_lock<std::shared_timed_mutex>>>);
                                                                    ^
      
      tst_qreadwritelock.cpp(113): error: no instance of constructor "FunctionPtrHolder::FunctionPtrHolder" matches the argument list
                  argument types are: (<unknown-type>)
            QTest::newRow("std::shared_timed_mutex, write") << FunctionPtrHolder(
                                                               ^
      tst_qreadwritelock.cpp(69): note: this candidate was rejected because arguments do not match
        struct FunctionPtrHolder
               ^
      tst_qreadwritelock.cpp(69): note: this candidate was rejected because arguments do not match
        struct FunctionPtrHolder
               ^
      tst_qreadwritelock.cpp(71): note: this candidate was rejected because arguments do not match
            FunctionPtrHolder(QFunctionPointer value = nullptr)
            ^
      
      tst_qreadwritelock.cpp(171): error: namespace "std" has no member "shared_timed_mutex"
                testReadOnly<std::shared_timed_mutex,
                                  ^
      
      tst_qreadwritelock.cpp(172): error: namespace "std" has no member "shared_lock"
                             LockerWrapper<std::shared_lock<std::shared_timed_mutex>>>);
                                                ^
      
      tst_qreadwritelock.cpp(172): error: expected a ">"
                             LockerWrapper<std::shared_lock<std::shared_timed_mutex>>>);
                                                           ^
      
      tst_qreadwritelock.cpp(172): error: expected an expression
                             LockerWrapper<std::shared_lock<std::shared_timed_mutex>>>);
                                                                                      ^
      
      compilation aborted for tst_qreadwritelock.cpp (code 2)
      jom: C:\libQT-5.12-dev\build\qtbase\tests\benchmarks\corelib\thread\qreadwritelock\Makefile.Release [.obj\release\tst_qreadwritelock.obj] Error 2
      jom: C:\libQT-5.12-dev\build\qtbase\tests\benchmarks\corelib\thread\qreadwritelock\Makefile [release] Error 2
      jom: C:\libQT-5.12-dev\build\qtbase\tests\benchmarks\corelib\thread\Makefile [sub-qreadwritelock-make_first] Error 2

       

      Reproduced for:

      • QtBase-dev-67352c92761 builds using "Windows ICC with MSVC 15.8.0",

      not reproduced for:

      • QtBase-dev-41ed77e59bb builds using "Windows ICC with MSVC 15.7.3",
      • QtBase-dev-67352c92761 builds using mingw-w64 and MSVC.

       

      Best,

      Alexander

       

      Attachments

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

        Activity

          People

            sav sav
            sav sav
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes