Bug 306260
| Summary: | libANGLE: lots of -Wclass-memaccess warnings | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Thomas Klausner <wiz> |
| Component: | ANGLE | Assignee: | Nobody <webkit-unassigned> |
| Status: | NEW | ||
| Severity: | Normal | CC: | djg, kbr, kkinnunen |
| Priority: | P2 | ||
| Version: | Other | ||
| Hardware: | All | ||
| OS: | Other | ||
Thomas Klausner
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. |