WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
289988
-Wsubobject-linkage warnings triggered by coroutines
https://bugs.webkit.org/show_bug.cgi?id=289988
Summary
-Wsubobject-linkage warnings triggered by coroutines
Michael Catanzaro
Reported
2025-03-18 12:58:21 PDT
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
Comment 1
2025-03-18 13:00:11 PDT
Pull request:
https://github.com/WebKit/WebKit/pull/42643
EWS
Comment 2
2025-03-19 07:39:02 PDT
Committed
292353@main
(cda7e1edea14): <
https://commits.webkit.org/292353@main
> Reviewed commits have been landed. Closing PR #42643 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