https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79671
--- Comment #43 from Bernd Edlinger <bernd.edlinger at hotmail dot de> --- Would something like this also work? union function_buffer { [...] mutable char data; function_buffer() {} function_buffer(const function_buffer &other) { __builtin_memcpy(this, &other, sizeof(*this)); } function_buffer& operator = (const function_buffer &other) { __builtin_memcpy(this, &other, sizeof(*this)); return *this; } };