https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120498
--- Comment #11 from Jonathan Wakely <redi at gcc dot gnu.org> --- .sa_handler is not a real member of the struct, it's a macro referring to a nested member. So you can't use designated initializers with that type in C++.