https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79671
--- Comment #40 from Bernd Edlinger <bernd.edlinger at hotmail dot de> --- Yikes, I need an assignement operator: B(const B &o) { __builtin_memcpy(this, &o, sizeof(B)); } B& operator = (const B &o) { __builtin_memcpy(this, &o, sizeof(B)); return *this; } now it seems to work...