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

QtWebEngine build failed with error error C4716 in MSVC

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Not Evaluated
    • None
    • 6.7.0
    • WebEngine
    • None
    • Windows

    Description

      Hello, I'm a member of Microsoft VCPKG, when I built QtWebEngine in an internal version of Visual Studio, it failed with following errors:

      pipeline.i

      \vcfs\Archive\msvc\fe\20231227.01\binaries.amd64ret\inc\memory(3755): warning C4996: 'std::atomic_load_explicit': warning STL4029: std::atomic_*() overloads for shared_ptr are deprecated in C++20. The shared_ptr specialization of std::atomic provides superior functionality. You can define _SILENCE_CXX20_OLD_SHARED_PTR_ATOMIC_SUPPORT_DEPRECATION_WARNING or _SILENCE_ALL_CXX20_DEPRECATION_WARNINGS to suppress this warning.

      \vcfs\Archive\msvc\fe\20231227.01\binaries.amd64ret\inc\memory(3755): note: the template instantiation context (the oldest one first) is

      F:/Jon/qtwebengine/src/here-src-6-2748204f48.clean/src/3rdparty/chromium/v8\src/wasm/wasm-code-manager.h(739): note: see reference to function template instantiation 'std::shared_ptr<v8::base::OwnedVector<const uint8_t>> std::atomic_load<v8::base::OwnedVector<const uint8_t>>(const std::shared_ptr<v8::base::OwnedVector<const uint8_t>> *)' being compiled

      F:\Jon\qtwebengine\src\here-src-6-2748204f48.clean\src\3rdparty\chromium\v8\src\compiler\pipeline.cc(2783) : error C4716: 'v8::internal::compiler::WasmHeapStubCompilationJob::PrepareJobImpl': must return a value

      F:\Jon\qtwebengine\src\here-src-6-2748204f48.clean\src\3rdparty\chromium\v8\src\compiler\js-inlining.h(49) : error C4716: 'v8::internal::compiler::JSInliner::Reduce': must return a value 

       

      The error code is similar to:

      [[noreturn]] void fatal(const char* message);

      int f1()
      {
      auto emit_fatal = []

      { fatal("Don't Panic!"); }

      ;

      emit_fatal();
      }

      int f2(int i)

      { auto emit_fatal = []
      { fatal("Don't Panic!"); }

      ;

      switch ( i )

      { case 1:   case 2:   case 3:             return i + 1;   default:             break; }

      emit_fatal();
      }

       

      I don't think the compiler needs to propagate "noreturn" up the call chain (even making the lambda implicitly "noreturn"), and both gcc and clang will complain about this code. So I want to know how the code here can be modified to avoid this error. If you need any information, please contact me directly. Thanks in advance.

      Attachments

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

        Activity

          People

            qt_webengine_team Qt WebEngine Team
            jonliu1993 Liu Jon
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes