Bug 240596

Summary: Build with -Wno-stringop-overflow when using GCC
Product: WebKit Reporter: Michael Catanzaro <mcatanzaro>
Component: WebKitGTKAssignee: Michael Catanzaro <mcatanzaro>
Status: RESOLVED FIXED    
Severity: Normal CC: bugs-noreply, mcatanzaro, webkit-bug-importer
Priority: P2    
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   

Description Michael Catanzaro 2022-05-18 13:33:08 PDT
I'm starting to see more -Wstringop-overflow warnings from GCC, similar to bug #239340.  E.g.:

[547/807] Building CXX object Source/WebKit/CMakeFiles/Web...ces/WebKit/unified-sources/UnifiedSource-54928a2b-33.cpp.o
In file included from /usr/include/c++/12/bits/shared_ptr_atomic.h:33,
                 from /usr/include/c++/12/memory:78,
                 from /home/mcatanzaro/Projects/WebKit/WebKitBuild/GNOME-gtk3/WTF/Headers/wtf/StdLibExtras.h:30,
                 from /home/mcatanzaro/Projects/WebKit/WebKitBuild/GNOME-gtk3/WTF/Headers/wtf/FastMalloc.h:26,
                 from /home/mcatanzaro/Projects/WebKit/Source/WebKit/config.h:42,
                 from /home/mcatanzaro/Projects/WebKit/Source/WebKit/WebProcess/UserContent/WebUserContentController.cpp:26,
                 from /home/mcatanzaro/Projects/WebKit/WebKitBuild/GNOME-gtk3/DerivedSources/WebKit/unified-sources/UnifiedSource-54928a2b-33.cpp:1:
In member function ‘std::__atomic_base<_IntTp>::__int_type std::__atomic_base<_IntTp>::operator++() [with _ITp = unsigned int]’,
    inlined from ‘void WTF::ThreadSafeRefCountedBase::ref() const’ at /home/mcatanzaro/Projects/WebKit/WebKitBuild/GNOME-gtk3/WTF/Headers/wtf/ThreadSafeRefCounted.h:60:9,
    inlined from ‘WTF::Ref<T, <template-parameter-1-2> >::Ref(T&) [with T = WebCore::Frame; Traits = WTF::RawPtrTraits<WebCore::Frame>]’ at /home/mcatanzaro/Projects/WebKit/WebKitBuild/GNOME-gtk3/WTF/Headers/wtf/Ref.h:67:19,
    inlined from ‘WTF::RefPtr<WebKit::ShareableBitmap> WebKit::createShareableBitmap(WebCore::RenderImage&, CreateShareableBitmapFromImageOptions&&)’ at /home/mcatanzaro/Projects/WebKit/Source/WebKit/WebProcess/WebCoreSupport/ShareableBitmapUtilities.cpp:46:35:
/usr/include/c++/12/bits/atomic_base.h:385:34: warning: ‘unsigned int __atomic_add_fetch_4(volatile void*, unsigned int, int)’ writing 4 bytes into a region of size 0 overflows the destination [-Wstringop-overflow=]
  385 |       { return __atomic_add_fetch(&_M_i, 1, int(memory_order_seq_cst)); }
      |                ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

There's another one in HTMLMediaElement. It's not a very impressive showing for GCC, because incrementing a refcount does not involve any string operations. It's time to just give up and suppress this project-wide.
Comment 1 Michael Catanzaro 2022-05-26 10:23:19 PDT
Pull request: https://github.com/WebKit/WebKit/pull/1055
Comment 2 EWS 2022-05-26 13:46:48 PDT
Committed r294895 (251018@main): <https://commits.webkit.org/251018@main>

Reviewed commits have been landed. Closing PR #1055 and removing active labels.