WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
267294
[Win] REGRESSION(
272822@main
): StreamClientConnection.h(216,20): error: call to implicitly-deleted copy constructor of 'StreamClientConnection::SendSyncResult<PrepareForDisplay>'
https://bugs.webkit.org/show_bug.cgi?id=267294
Summary
[Win] REGRESSION(272822@main): StreamClientConnection.h(216,20): error: call ...
Fujii Hironori
Reported
2024-01-09 13:20:45 PST
Windows port can't compile after
272822@main
.
https://build.webkit.org/#/builders/731/builds/12322
FAILED: Source/WebKit/CMakeFiles/WebKit.dir/WebProcess/GPU/graphics/wc/RemoteGraphicsContextGLProxyWC.cpp.obj C:\LLVM\bin\clang-cl.exe /nologo -TP (...) -c -- C:\BW\WinCairo-64-bit-Release-Build\build\Source\WebKit\WebProcess\GPU\graphics\wc\RemoteGraphicsContextGLProxyWC.cpp In file included from C:\BW\WinCairo-64-bit-Release-Build\build\Source\WebKit\WebProcess\GPU\graphics\wc\RemoteGraphicsContextGLProxyWC.cpp:27: In file included from C:\BW\WinCairo-64-bit-Release-Build\build\Source\WebKit\WebProcess\GPU\graphics\RemoteGraphicsContextGLProxy.h:38: C:\BW\WinCairo-64-bit-Release-Build\build\Source\WebKit\Platform\IPC\StreamClientConnection.h(216,20): error: call to implicitly-deleted copy constructor of 'StreamClientConnection::SendSyncResult<PrepareForDisplay>' (aka 'ConnectionSendSyncResult<Messages::RemoteGraphicsContextGL::PrepareForDisplay>') return WTFMove(*maybeSendResult); ^~~~~~~~~~~~~~~~~~~~~~~~~ C:\BW\WinCairo-64-bit-Release-Build\build\WebKitBuild\Release\WTF\Headers\wtf/StdLibExtras.h(675,24): note: expanded from macro 'WTFMove' #define WTFMove(value) std::move<WTF::CheckMoveParameter>(value) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C:\BW\WinCairo-64-bit-Release-Build\build\Source\WebKit\WebProcess\GPU\graphics\RemoteGraphicsContextGLProxy.h(395,36): note: in instantiation of function template specialization 'IPC::StreamClientConnection::sendSync<Messages::RemoteGraphicsContextGL::PrepareForDisplay, WebKit::GraphicsContextGLIdentifierType, WTF::ObjectIdentifierThreadSafeAccessTraits>' requested here return m_streamConnection->sendSync(std::forward<T>(message), m_graphicsContextGLIdentifier, defaultSendTimeout); ^ C:\BW\WinCairo-64-bit-Release-Build\build\Source\WebKit\WebProcess\GPU\graphics\wc\RemoteGraphicsContextGLProxyWC.cpp(93,23): note: in instantiation of function template specialization 'WebKit::RemoteGraphicsContextGLProxy::sendSync<Messages::RemoteGraphicsContextGL::PrepareForDisplay>' requested here auto sendResult = sendSync(Messages::RemoteGraphicsContextGL::PrepareForDisplay()); ^ C:\BW\WinCairo-64-bit-Release-Build\build\Source\WebKit\Platform\IPC\Connection.h(158,49): note: copy constructor of 'ConnectionSendSyncResult<Messages::RemoteGraphicsContextGL::PrepareForDisplay>' is implicitly deleted because field 'value' has a deleted copy constructor Expected<typename T::ReplyArguments, Error> value; ^ C:\BW\WinCairo-64-bit-Release-Build\build\WebKitBuild\Release\WTF\Headers\wtf/Expected.h(437,5): note: explicitly defaulted function was implicitly deleted here expected(const expected&) = default; ^ C:\BW\WinCairo-64-bit-Release-Build\build\WebKitBuild\Release\WTF\Headers\wtf/Expected.h(419,18): note: copy constructor of 'expected<std::tuple<std::optional<WTF::ObjectIdentifierGeneric<WebKit::WCContentBufferIdentifierType, WTF::ObjectIdentifierThreadSafeAccessTraits>>>, IPC::Error>' is implicitly deleted because base class '__expected_detail::base_select<tuple<optional<ObjectIdentifierGeneric<WCContentBufferIdentifierType, ObjectIdentifierThreadSafeAccessTraits>>>, Error>' (aka 'std::experimental::__expected_detail::constexpr_base<std::tuple<std::optional<WTF::ObjectIdentifierGeneric<WebKit::WCContentBufferIdentifierType, WTF::ObjectIdentifierThreadSafeAccessTraits>>>, IPC::Error>') has a deleted copy constructor class expected : private __expected_detail::base_select<T, E> { ^ C:\BW\WinCairo-64-bit-Release-Build\build\WebKitBuild\Release\WTF\Headers\wtf/Expected.h(311,47): note: copy constructor of 'constexpr_base<std::tuple<std::optional<WTF::ObjectIdentifierGeneric<WebKit::WCContentBufferIdentifierType, WTF::ObjectIdentifierThreadSafeAccessTraits>>>, IPC::Error>' is implicitly deleted because field 's' has a deleted copy constructor constexpr_storage<value_type, error_type> s; ^ C:\BW\WinCairo-64-bit-Release-Build\build\WebKitBuild\Release\WTF\Headers\wtf/Expected.h(247,16): note: copy constructor of 'constexpr_storage<std::tuple<std::optional<WTF::ObjectIdentifierGeneric<WebKit::WCContentBufferIdentifierType, WTF::ObjectIdentifierThreadSafeAccessTraits>>>, IPC::Error>' is implicitly deleted because variant field 'val' has a non-trivial copy constructor value_type val; ^ In file included from C:\BW\WinCairo-64-bit-Release-Build\build\Source\WebKit\WebProcess\GPU\graphics\wc\RemoteGraphicsContextGLProxyWC.cpp:27: In file included from C:\BW\WinCairo-64-bit-Release-Build\build\Source\WebKit\WebProcess\GPU\graphics\RemoteGraphicsContextGLProxy.h:38: C:\BW\WinCairo-64-bit-Release-Build\build\Source\WebKit\Platform\IPC\StreamClientConnection.h(241,16): error: no matching constructor for initialization of 'std::optional<StreamClientConnection::SendSyncResult<PrepareForDisplay>>' (aka 'optional<ConnectionSendSyncResult<Messages::RemoteGraphicsContextGL::PrepareForDisplay>>') return { { Error::CantWaitForSyncReplies } }; ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C:\BW\WinCairo-64-bit-Release-Build\build\Source\WebKit\Platform\IPC\StreamClientConnection.h(214,32): note: in instantiation of function template specialization 'IPC::StreamClientConnection::trySendSyncStream<Messages::RemoteGraphicsContextGL::PrepareForDisplay>' requested here auto maybeSendResult = trySendSyncStream(message, timeout, *span); ^ C:\BW\WinCairo-64-bit-Release-Build\build\Source\WebKit\WebProcess\GPU\graphics\RemoteGraphicsContextGLProxy.h(395,36): note: in instantiation of function template specialization 'IPC::StreamClientConnection::sendSync<Messages::RemoteGraphicsContextGL::PrepareForDisplay, WebKit::GraphicsContextGLIdentifierType, WTF::ObjectIdentifierThreadSafeAccessTraits>' requested here return m_streamConnection->sendSync(std::forward<T>(message), m_graphicsContextGLIdentifier, defaultSendTimeout); ^ C:\BW\WinCairo-64-bit-Release-Build\build\Source\WebKit\WebProcess\GPU\graphics\wc\RemoteGraphicsContextGLProxyWC.cpp(93,23): note: in instantiation of function template specialization 'WebKit::RemoteGraphicsContextGLProxy::sendSync<Messages::RemoteGraphicsContextGL::PrepareForDisplay>' requested here auto sendResult = sendSync(Messages::RemoteGraphicsContextGL::PrepareForDisplay()); ^ C:\MSVS\VC\Tools\MSVC\14.37.32822\include\optional(214,7): note: candidate constructor (the implicit copy constructor) not viable: cannot convert initializer list argument to 'const optional<ConnectionSendSyncResult<PrepareForDisplay>>' class optional : private _SMF_control<_Optional_construct_base<_Ty>, _Ty> { ^ C:\MSVS\VC\Tools\MSVC\14.37.32822\include\optional(227,15): note: candidate constructor not viable: cannot convert initializer list argument to 'nullopt_t' constexpr optional(nullopt_t) noexcept {} ^ C:\MSVS\VC\Tools\MSVC\14.37.32822\include\optional(262,64): note: candidate template ignored: couldn't infer template argument '_Ty2' _CONSTEXPR20 explicit(!is_convertible_v<const _Ty2&, _Ty>) optional(const optional<_Ty2>& _Right) noexcept( ^ C:\MSVS\VC\Tools\MSVC\14.37.32822\include\optional(271,9): note: candidate template ignored: couldn't infer template argument '_Ty2' optional(optional<_Ty2>&& _Right) noexcept(is_nothrow_constructible_v<_Ty, _Ty2>) /* strengthened */ { ^ C:\MSVS\VC\Tools\MSVC\14.37.32822\include\optional(230,24): note: candidate template ignored: requirement 'is_constructible_v<IPC::ConnectionSendSyncResult<Messages::RemoteGraphicsContextGL::PrepareForDisplay>>' was not satisfied [with _Types = <>] constexpr explicit optional(in_place_t, _Types&&... _Args) noexcept( ^ C:\MSVS\VC\Tools\MSVC\14.37.32822\include\optional(248,9): note: candidate template ignored: requirement 'integral_constant<bool, false>::value' was not satisfied [with _Ty2 = IPC::ConnectionSendSyncResult<Messages::RemoteGraphicsContextGL::PrepareForDisplay>] optional(_Ty2&& _Right) noexcept(is_nothrow_constructible_v<_Ty, _Ty2>) // strengthened ^ C:\MSVS\VC\Tools\MSVC\14.37.32822\include\optional(226,15): note: candidate constructor not viable: requires 0 arguments, but 1 was provided constexpr optional() noexcept {} ^ C:\MSVS\VC\Tools\MSVC\14.37.32822\include\optional(236,24): note: candidate constructor template not viable: requires at least 2 arguments, but 1 was provided constexpr explicit optional(in_place_t, initializer_list<_Elem> _Ilist, _Types&&... _Args) noexcept( ^ In file included from C:\BW\WinCairo-64-bit-Release-Build\build\Source\WebKit\WebProcess\GPU\graphics\wc\RemoteGraphicsContextGLProxyWC.cpp:27: In file included from C:\BW\WinCairo-64-bit-Release-Build\build\Source\WebKit\WebProcess\GPU\graphics\RemoteGraphicsContextGLProxy.h:38: C:\BW\WinCairo-64-bit-Release-Build\build\Source\WebKit\Platform\IPC\StreamClientConnection.h(275,20): error: no matching constructor for initialization of 'std::optional<StreamClientConnection::SendSyncResult<PrepareForDisplay>>' (aka 'optional<ConnectionSendSyncResult<Messages::RemoteGraphicsContextGL::PrepareForDisplay>>') return { { WTFMove(*replyArguments) } }; ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C:\MSVS\VC\Tools\MSVC\14.37.32822\include\optional(214,7): note: candidate constructor (the implicit copy constructor) not viable: cannot convert initializer list argument to 'const optional<ConnectionSendSyncResult<PrepareForDisplay>>' class optional : private _SMF_control<_Optional_construct_base<_Ty>, _Ty> { ^ C:\MSVS\VC\Tools\MSVC\14.37.32822\include\optional(227,15): note: candidate constructor not viable: cannot convert initializer list argument to 'nullopt_t' constexpr optional(nullopt_t) noexcept {} ^ C:\MSVS\VC\Tools\MSVC\14.37.32822\include\optional(262,64): note: candidate template ignored: couldn't infer template argument '_Ty2' _CONSTEXPR20 explicit(!is_convertible_v<const _Ty2&, _Ty>) optional(const optional<_Ty2>& _Right) noexcept( ^ C:\MSVS\VC\Tools\MSVC\14.37.32822\include\optional(271,9): note: candidate template ignored: couldn't infer template argument '_Ty2' optional(optional<_Ty2>&& _Right) noexcept(is_nothrow_constructible_v<_Ty, _Ty2>) /* strengthened */ { ^ C:\MSVS\VC\Tools\MSVC\14.37.32822\include\optional(230,24): note: candidate template ignored: requirement 'is_constructible_v<IPC::ConnectionSendSyncResult<Messages::RemoteGraphicsContextGL::PrepareForDisplay>>' was not satisfied [with _Types = <>] constexpr explicit optional(in_place_t, _Types&&... _Args) noexcept( ^ C:\MSVS\VC\Tools\MSVC\14.37.32822\include\optional(248,9): note: candidate template ignored: requirement 'integral_constant<bool, false>::value' was not satisfied [with _Ty2 = IPC::ConnectionSendSyncResult<Messages::RemoteGraphicsContextGL::PrepareForDisplay>] optional(_Ty2&& _Right) noexcept(is_nothrow_constructible_v<_Ty, _Ty2>) // strengthened ^ C:\MSVS\VC\Tools\MSVC\14.37.32822\include\optional(226,15): note: candidate constructor not viable: requires 0 arguments, but 1 was provided constexpr optional() noexcept {} ^ C:\MSVS\VC\Tools\MSVC\14.37.32822\include\optional(236,24): note: candidate constructor template not viable: requires at least 2 arguments, but 1 was provided constexpr explicit optional(in_place_t, initializer_list<_Elem> _Ilist, _Types&&... _Args) noexcept( ^ 3 errors generated.
Attachments
WIP patch
(758 bytes, patch)
2024-01-09 13:24 PST
,
Fujii Hironori
no flags
Details
Formatted Diff
Diff
Show Obsolete
(1)
View All
Add attachment
proposed patch, testcase, etc.
Fujii Hironori
Comment 1
2024-01-09 13:24:12 PST
Created
attachment 469349
[details]
WIP patch
Fujii Hironori
Comment 2
2024-01-09 17:02:17 PST
ReplyArguments of PrepareForDisplay message is std::optional<WebKit::WCContentBufferIdentifier> for Windows port. That is trivially destructible only for Windows port.
https://github.com/WebKit/WebKit/blob/97aa00cffac9285a2a794e0dedbf54e5b8ba30a9/Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.messages.in#L29-L37
If T and E of Expected are trivially destructible, Expected chooses constexpr_base.
https://github.com/WebKit/WebKit/blob/97aa00cffac9285a2a794e0dedbf54e5b8ba30a9/Source/WTF/wtf/Expected.h#L410-L411
constexpr_base isn't move constructible.
https://github.com/WebKit/WebKit/blob/97aa00cffac9285a2a794e0dedbf54e5b8ba30a9/Source/WTF/wtf/Expected.h#L363
Fujii Hironori
Comment 3
2024-01-09 17:23:51 PST
Pull request:
https://github.com/WebKit/WebKit/pull/22561
Radar WebKit Bug Importer
Comment 4
2024-01-09 17:57:25 PST
<
rdar://problem/120756511
>
EWS
Comment 5
2024-01-09 22:23:48 PST
Committed
272842@main
(3505bb0973f9): <
https://commits.webkit.org/272842@main
> Reviewed commits have been landed. Closing PR #22561 and removing active labels.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug