/* PR c++/98835 - -Wclass-memaccess with class with ref-qualified | |
copy-assignment operator | |
{ dg-do compile { target { c++11 } } } | |
{ dg-options "-Wall" } */ | |
struct Bad | |
{ | |
Bad* operator& () { return this; } | |
Bad & operator=(Bad const &) & = default; | |
}; | |
void test () | |
{ | |
static_assert (__has_trivial_copy (Bad)); | |
// T () = T (); // error | |
__builtin_memcpy (&Bad (), &Bad (), sizeof (Bad)); // { dg-warning "\\\[-Wclass-memaccess" } | |
} |