https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78551
--- Comment #7 from Vlad Petric <vlad at petric dot cc> --- Ok, so the example that I started this bug with is not standard compliant because it initialized different elements in a union with the constexpr constructor. The following does just one. I believe that the following is standard-compliant code (though obviously I could be wrong) And it generates a segfault. struct A { union { long s; char d[4]; }; constexpr A (char x) : d("") { d[0] = x; } }; A a{'a'};