https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82562
Jonathan Wakely <redi at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |WAITING Last reconfirmed| |2017-10-16 Ever confirmed|0 |1 --- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> --- (In reply to Andi from comment #0) > In file included from /root/firefox-gcc-last/js/src/builtin/RegExp.cpp:24:0: > /root/firefox-gcc-last/js/src/vm/NativeObject-inl.h: In member function > 'void js::NativeObject::initDenseElements(const JS::Value*, uint32_t)': > /root/firefox-gcc-last/js/src/vm/NativeObject-inl.h:184:52: error: 'void* > memcpy(void*, const void*, size_t)' writing to an object of non-trivially > copyable type 'class js::HeapSlot'; use copy-assignment or > copy-initialization instead [-Werror=class-memaccess] > memcpy(elements_, src, count * sizeof(HeapSlot)); > > I don't think that the warning is valid since what we try to do is copy in > eleements_ the number of 'count' elements of type HeadSlop from src. Why would that mean it's not valid? Is the class trivially-copyable or not? If it isn't, then using memcpy is undefined. Please read https://gcc.gnu.org/bugs/ and provide the preprocessed code.