Bug 289988
| Summary: | -Wsubobject-linkage warnings triggered by coroutines | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Michael Catanzaro <mcatanzaro> |
| Component: | WebKitGTK | Assignee: | Michael Catanzaro <mcatanzaro> |
| Status: | RESOLVED FIXED | ||
| Severity: | Normal | CC: | achristensen, bugs-noreply |
| Priority: | P2 | ||
| Version: | WebKit Nightly Build | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| See Also: | https://bugs.webkit.org/show_bug.cgi?id=288413 | ||
Michael Catanzaro
Since 291846@main "Begin using C++ coroutines for WebFullScreenManagerProxy IPC functions" we have some new warnings:
[66/237] Building CXX object Source/WebKit/CMakeFiles/WebKit.dir/__/__/DerivedSources/WebKit/unified-sources/UnifiedSource-88d1702b-8.cpp.o
In file included from /home/mcatanzaro/Projects/WebKit/WebKitBuild/gtk4/DerivedSources/WebKit/unified-sources/UnifiedSource-88d1702b-8.cpp:1:
/home/mcatanzaro/Projects/WebKit/Source/WebKit/UIProcess/WebFullScreenManagerProxy.cpp: In member function ‘WTF::Awaitable<bool> WebKit::WebFullScreenManagerProxy::enterFullScreen(IPC::Connection&, WebCore::FrameIdentifier, bool, WebKit::FullScreenMediaDetails)’:
/home/mcatanzaro/Projects/WebKit/Source/WebKit/UIProcess/WebFullScreenManagerProxy.cpp:233:1: warning: ‘WebKit::WebFullScreenManagerProxy::_ZN6WebKit25WebFullScreenManagerProxy15enterFullScreenERN3IPC10ConnectionEN7WebCore16ProcessQualifiedIN3WTF23ObjectIdentifierGenericINS4_19FrameIdentifierTypeENS6_38ObjectIdentifierMainThreadAccessTraitsImEEmEEEEbNS_22FullScreenMediaDetailsE.Frame’ has a field ‘WebKit::WebFullScreenManagerProxy::enterFullScreen(IPC::Connection&, WebCore::FrameIdentifier, bool, WebKit::FullScreenMediaDetails)::<lambda(auto:233)> WebKit::WebFullScreenManagerProxy::_ZN6WebKit25WebFullScreenManagerProxy15enterFullScreenERN3IPC10ConnectionEN7WebCore16ProcessQualifiedIN3WTF23ObjectIdentifierGenericINS4_19FrameIdentifierTypeENS6_38ObjectIdentifierMainThreadAccessTraitsImEEmEEEEbNS_22FullScreenMediaDetailsE.Frame::T003_2_3’ whose type has no linkage [-Wsubobject-linkage]
233 | }
| ^
/home/mcatanzaro/Projects/WebKit/Source/WebKit/UIProcess/WebFullScreenManagerProxy.cpp:233:1: warning: ‘WebKit::WebFullScreenManagerProxy::_ZN6WebKit25WebFullScreenManagerProxy15enterFullScreenERN3IPC10ConnectionEN7WebCore16ProcessQualifiedIN3WTF23ObjectIdentifierGenericINS4_19FrameIdentifierTypeENS6_38ObjectIdentifierMainThreadAccessTraitsImEEmEEEEbNS_22FullScreenMediaDetailsE.Frame’ has a field ‘WebKit::WebFullScreenManagerProxy::enterFullScreen(IPC::Connection&, WebCore::FrameIdentifier, bool, WebKit::FullScreenMediaDetails)::<lambda(auto:234)> WebKit::WebFullScreenManagerProxy::_ZN6WebKit25WebFullScreenManagerProxy15enterFullScreenERN3IPC10ConnectionEN7WebCore16ProcessQualifiedIN3WTF23ObjectIdentifierGenericINS4_19FrameIdentifierTypeENS6_38ObjectIdentifierMainThreadAccessTraitsImEEmEEEEbNS_22FullScreenMediaDetailsE.Frame::T003_2_5’ whose type has no linkage [-Wsubobject-linkage]
/home/mcatanzaro/Projects/WebKit/Source/WebKit/UIProcess/WebFullScreenManagerProxy.cpp: In member function ‘WTF::Awaitable<void> WebKit::WebFullScreenManagerProxy::exitFullScreen()’:
/home/mcatanzaro/Projects/WebKit/Source/WebKit/UIProcess/WebFullScreenManagerProxy.cpp:290:1: warning: ‘WebKit::WebFullScreenManagerProxy::_ZN6WebKit25WebFullScreenManagerProxy14exitFullScreenEv.Frame’ has a field ‘WebKit::WebFullScreenManagerProxy::exitFullScreen()::<lambda(auto:235)> WebKit::WebFullScreenManagerProxy::_ZN6WebKit25WebFullScreenManagerProxy14exitFullScreenEv.Frame::T003_2_3’ whose type has no linkage [-Wsubobject-linkage]
290 | }
| ^
/home/mcatanzaro/Projects/WebKit/Source/WebKit/UIProcess/WebFullScreenManagerProxy.cpp: In member function ‘WTF::Awaitable<bool> WebKit::WebFullScreenManagerProxy::beganEnterFullScreen(WebCore::IntRect, WebCore::IntRect)’:
/home/mcatanzaro/Projects/WebKit/Source/WebKit/UIProcess/WebFullScreenManagerProxy.cpp:335:1: warning: ‘WebKit::WebFullScreenManagerProxy::_ZN6WebKit25WebFullScreenManagerProxy20beganEnterFullScreenEN7WebCore7IntRectES2_.Frame’ has a field ‘WebKit::WebFullScreenManagerProxy::beganEnterFullScreen(WebCore::IntRect, WebCore::IntRect)::<lambda(auto:236)> WebKit::WebFullScreenManagerProxy::_ZN6WebKit25WebFullScreenManagerProxy20beganEnterFullScreenEN7WebCore7IntRectES2_.Frame::T003_2_4’ whose type has no linkage [-Wsubobject-linkage]
335 | }
| ^
/home/mcatanzaro/Projects/WebKit/Source/WebKit/UIProcess/WebFullScreenManagerProxy.cpp:335:1: warning: ‘WebKit::WebFullScreenManagerProxy::_ZN6WebKit25WebFullScreenManagerProxy20beganEnterFullScreenEN7WebCore7IntRectES2_.Frame’ has a field ‘WebKit::WebFullScreenManagerProxy::beganEnterFullScreen(WebCore::IntRect, WebCore::IntRect)::<lambda(auto:237)> WebKit::WebFullScreenManagerProxy::_ZN6WebKit25WebFullScreenManagerProxy20beganEnterFullScreenEN7WebCore7IntRectES2_.Frame::T004_2_5’ whose type has no linkage [-Wsubobject-linkage]
/home/mcatanzaro/Projects/WebKit/Source/WebKit/UIProcess/WebFullScreenManagerProxy.cpp: In member function ‘WTF::Awaitable<void> WebKit::WebFullScreenManagerProxy::beganExitFullScreen(WebCore::FrameIdentifier, WebCore::IntRect, WebCore::IntRect)’:
/home/mcatanzaro/Projects/WebKit/Source/WebKit/UIProcess/WebFullScreenManagerProxy.cpp:364:1: warning: ‘WebKit::WebFullScreenManagerProxy::_ZN6WebKit25WebFullScreenManagerProxy19beganExitFullScreenEN7WebCore16ProcessQualifiedIN3WTF23ObjectIdentifierGenericINS1_19FrameIdentifierTypeENS3_38ObjectIdentifierMainThreadAccessTraitsImEEmEEEENS1_7IntRectESA_.Frame’ has a field ‘WebKit::WebFullScreenManagerProxy::beganExitFullScreen(WebCore::FrameIdentifier, WebCore::IntRect, WebCore::IntRect)::<lambda(auto:238)> WebKit::WebFullScreenManagerProxy::_ZN6WebKit25WebFullScreenManagerProxy19beganExitFullScreenEN7WebCore16ProcessQualifiedIN3WTF23ObjectIdentifierGenericINS1_19FrameIdentifierTypeENS3_38ObjectIdentifierMainThreadAccessTraitsImEEmEEEENS1_7IntRectESA_.Frame::T003_2_3’ whose type has no linkage [-Wsubobject-linkage]
364 | }
| ^
/home/mcatanzaro/Projects/WebKit/Source/WebKit/UIProcess/WebFullScreenManagerProxy.cpp:364:1: warning: ‘WebKit::WebFullScreenManagerProxy::_ZN6WebKit25WebFullScreenManagerProxy19beganExitFullScreenEN7WebCore16ProcessQualifiedIN3WTF23ObjectIdentifierGenericINS1_19FrameIdentifierTypeENS3_38ObjectIdentifierMainThreadAccessTraitsImEEmEEEENS1_7IntRectESA_.Frame’ has a field ‘WebKit::WebFullScreenManagerProxy::beganExitFullScreen(WebCore::FrameIdentifier, WebCore::IntRect, WebCore::IntRect)::<lambda(auto:239)> WebKit::WebFullScreenManagerProxy::_ZN6WebKit25WebFullScreenManagerProxy19beganExitFullScreenEN7WebCore16ProcessQualifiedIN3WTF23ObjectIdentifierGenericINS1_19FrameIdentifierTypeENS3_38ObjectIdentifierMainThreadAccessTraitsImEEmEEEENS1_7IntRectESA_.Frame::T003_2_4’ whose type has no linkage [-Wsubobject-linkage]
[137/237] Building CXX object Source/WebKit/CMakeFiles/WebKit.dir/__/__/DerivedSources/WebKit/unified-sources/UnifiedSource-88d1702b-9.cpp.o
In file included from /home/mcatanzaro/Projects/WebKit/WebKitBuild/gtk4/DerivedSources/WebKit/unified-sources/UnifiedSource-88d1702b-9.cpp:2:
/home/mcatanzaro/Projects/WebKit/Source/WebKit/UIProcess/WebPageProxy.cpp: In member function ‘WTF::Awaitable<void> WebKit::WebPageProxy::nextPresentationUpdate()’:
/home/mcatanzaro/Projects/WebKit/Source/WebKit/UIProcess/WebPageProxy.cpp:13980:1: warning: ‘WebKit::WebPageProxy::_ZN6WebKit12WebPageProxy22nextPresentationUpdateEv.Frame’ has a field ‘WebKit::WebPageProxy::nextPresentationUpdate()::<lambda(auto:449)> WebKit::WebPageProxy::_ZN6WebKit12WebPageProxy22nextPresentationUpdateEv.Frame::T003_2_3’ whose type has no linkage [-Wsubobject-linkage]
13980 | }
| ^
There's nothing we can do about this other than suppress the warnings. It is a GCC bug: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105595
I notice that Alex already decided to suppress this warning in WebKitCompilerFlags.cmake for GCC versions less than 14.0, with a link to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70413. However, I'm not sure this bug is actually related, and the warnings are definitely still happening with GCC 15.0.1, so let's suppress it for all GCC versions.
Unfortunately Clang does not support this warning flag, so we won't be warned about actual problems. Oh well.
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Michael Catanzaro
Pull request: https://github.com/WebKit/WebKit/pull/42643
EWS
Committed 292353@main (cda7e1edea14): <https://commits.webkit.org/292353@main>
Reviewed commits have been landed. Closing PR #42643 and removing active labels.