https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97328
--- Comment #2 from Patrick Palka <ppalka at gcc dot gnu.org> --- When 'storage' is a struct instead of a union, i.e. for the testcase template <typename T, int N> struct vector { struct storage { T t; constexpr storage() {} } data[N]; }; constexpr auto foo() { vector<char, 8> i; return i; } auto f = foo(); we started to ICE earlier, since r279019: PR c++/91353 - P1331R2: Allow trivial default init in constexpr contexts.