RESOLVED FIXED289988
-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
Michael Catanzaro
Comment 1 2025-03-18 13:00:11 PDT
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.