WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
NEW
306260
libANGLE: lots of -Wclass-memaccess warnings
https://bugs.webkit.org/show_bug.cgi?id=306260
Summary
libANGLE: lots of -Wclass-memaccess warnings
Thomas Klausner
Reported
2026-01-26 03:24:46 PST
When building webkit-gtk-2.50.4 on NetBSD, I see many warnings like the ones below about libangle. I reported this to the webkit-gtk mailing list and Michael Catanzaro said they were probably ok, but either the warning should be disabled or suppressed for these files, see
https://lists.webkit.org/archives/list/webkit-gtk@lists.webkit.org/message/2GUR4GPWCV3XIBHWLT6L3JAED5AT6X23/
and to report a bug. Here is the bug report :-) /tmp/wip/webkit-gtk/work/webkitgtk-2.50.4/Source/ThirdParty/ANGLE/src/libANGLE/Uniform.h: In constructor 'gl::ActiveVariable::ActiveVariable()': /tmp/wip/webkit-gtk/work/webkitgtk-2.50.4/Source/ThirdParty/ANGLE/src/libANGLE/Uniform.h:63:30: warning: 'void* memset(void*, int, size_t)' clearing an object of non-trivial type 'struct gl::ActiveVariable::PODStruct'; use assignment or value-initialization instead [-Wclass-memaccess] 63 | ActiveVariable() { memset(&pod, 0, sizeof(pod)); } | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~ /tmp/wip/webkit-gtk/work/webkitgtk-2.50.4/Source/ThirdParty/ANGLE/src/libANGLE/ProgramExecutable.cpp: In constructor 'gl::ProgramExecutable::ProgramExecutable(rx::GLImplFactory*, gl::InfoLog*)': /tmp/wip/webkit-gtk/work/webkitgtk-2.50.4/Source/ThirdParty/ANGLE/src/libANGLE/ProgramExecutable.cpp:750:11: warning: 'void* memset(void*, int, size_t)' clearing an object of non-trivial type 'struct gl::ProgramExecutable::PODStruct'; use assignment or value-initialization instead [-Wclass-memaccess] 750 | memset(&mPod, 0, sizeof(mPod)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ /tmp/wip/webkit-gtk/work/webkitgtk-2.50.4/Source/ThirdParty/ANGLE/src/libANGLE/Uniform.cpp: In constructor 'gl::LinkedUniform::LinkedUniform(GLenum, GLenum, const std::vector<unsigned int>&, int, int, int, int, const sh::BlockMemberInfo&)': /tmp/wip/webkit-gtk/work/webkitgtk-2.50.4/Source/ThirdParty/ANGLE/src/libANGLE/Uniform.cpp:28:11: warning: 'void* memset(void*, int, size_t)' clearing an object of non-trivial type 'struct gl::LinkedUniform'; use assignment or value-initialization instead [-Wclass-memaccess] 28 | memset(this, 0, sizeof(*this)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ /tmp/wip/webkit-gtk/work/webkitgtk-2.50.4/Source/ThirdParty/ANGLE/src/libANGLE/Uniform.h:87:8: note: 'struct gl::LinkedUniform' declared here 87 | struct LinkedUniform | ^~~~~~~~~~~~~ /tmp/wip/webkit-gtk/work/webkitgtk-2.50.4/Source/ThirdParty/ANGLE/src/libANGLE/Uniform.cpp: In constructor 'gl::BufferVariable::BufferVariable()': /tmp/wip/webkit-gtk/work/webkitgtk-2.50.4/Source/ThirdParty/ANGLE/src/libANGLE/Uniform.cpp:85:11: warning: 'void* memset(void*, int, size_t)' clearing an object of non-trivial type 'struct gl::BufferVariable::PODStruct'; use assignment or value-initialization instead [-Wclass-memaccess] 85 | memset(&pod, 0, sizeof(pod)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~ /tmp/wip/webkit-gtk/work/webkitgtk-2.50.4/Source/ThirdParty/ANGLE/src/libANGLE/Uniform.h:204:12: note: 'struct gl::BufferVariable::PODStruct' declared here 204 | struct PODStruct | ^~~~~~~~~ /tmp/wip/webkit-gtk/work/webkitgtk-2.50.4/Source/ThirdParty/ANGLE/src/libANGLE/Uniform.cpp: In constructor 'gl::BufferVariable::BufferVariable(GLenum, GLenum, const std::string&, const std::vector<unsigned int>&, int, int, const sh::BlockMemberInfo&)': /tmp/wip/webkit-gtk/work/webkitgtk-2.50.4/Source/ThirdParty/ANGLE/src/libANGLE/Uniform.cpp:100:11: warning: 'void* memset(void*, int, size_t)' clearing an object of non-trivial type 'struct gl::BufferVariable::PODStruct'; use assignment or value-initialization instead [-Wclass-memaccess] 100 | memset(&pod, 0, sizeof(pod)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~ /tmp/wip/webkit-gtk/work/webkitgtk-2.50.4/Source/ThirdParty/ANGLE/src/libANGLE/Uniform.h:204:12: note: 'struct gl::BufferVariable::PODStruct' declared here 204 | struct PODStruct | ^~~~~~~~~ /tmp/wip/webkit-gtk/work/webkitgtk-2.50.4/Source/ThirdParty/ANGLE/src/libANGLE/Uniform.cpp: In constructor 'gl::AtomicCounterBuffer::AtomicCounterBuffer()': /tmp/wip/webkit-gtk/work/webkitgtk-2.50.4/Source/ThirdParty/ANGLE/src/libANGLE/Uniform.cpp:112:11: warning: 'void* memset(void*, int, size_t)' clearing an object of non-trivial type 'struct gl::AtomicCounterBuffer::PODStruct'; use assignment or value-initialization instead [-Wclass-memaccess] 112 | memset(&pod, 0, sizeof(pod)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~ /tmp/wip/webkit-gtk/work/webkitgtk-2.50.4/Source/ThirdParty/ANGLE/src/libANGLE/Uniform.h:240:12: note: 'struct gl::AtomicCounterBuffer::PODStruct' declared here 240 | struct PODStruct | ^~~~~~~~~ /tmp/wip/webkit-gtk/work/webkitgtk-2.50.4/Source/ThirdParty/ANGLE/src/libANGLE/Uniform.cpp: In constructor 'gl::InterfaceBlock::InterfaceBlock()': /tmp/wip/webkit-gtk/work/webkitgtk-2.50.4/Source/ThirdParty/ANGLE/src/libANGLE/Uniform.cpp:131:11: warning: 'void* memset(void*, int, size_t)' clearing an object of non-trivial type 'struct gl::InterfaceBlock::PODStruct'; use assignment or value-initialization instead [-Wclass-memaccess] 131 | memset(&pod, 0, sizeof(pod)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~ /tmp/wip/webkit-gtk/work/webkitgtk-2.50.4/Source/ThirdParty/ANGLE/src/libANGLE/Uniform.h:278:12: note: 'struct gl::InterfaceBlock::PODStruct' declared here 278 | struct PODStruct | ^~~~~~~~~ /tmp/wip/webkit-gtk/work/webkitgtk-2.50.4/Source/ThirdParty/ANGLE/src/libANGLE/Uniform.cpp: In constructor 'gl::InterfaceBlock::InterfaceBlock(const std::string&, const std::string&, bool, bool, unsigned int, unsigned int, int)': /tmp/wip/webkit-gtk/work/webkitgtk-2.50.4/Source/ThirdParty/ANGLE/src/libANGLE/Uniform.cpp:143:11: warning: 'void* memset(void*, int, size_t)' clearing an object of non-trivial type 'struct gl::InterfaceBlock::PODStruct'; use assignment or value-initialization instead [-Wclass-memaccess] 143 | memset(&pod, 0, sizeof(pod)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~
Attachments
Add attachment
proposed patch, testcase, etc.
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