https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80864
--- Comment #4 from Marek Polacek <mpolacek at gcc dot gnu.org> --- Expanded testcase: struct S { char c[1]; }; template <typename T> void fn () { constexpr S s1 = S{}; constexpr S s2 = S{{}}; constexpr S s3 = S{{{}}}; constexpr S s4 = {}; constexpr S s5 = {{}}; constexpr S s6 = {{{}}}; constexpr S s7{{}}; constexpr S s8{S{}}; constexpr S s9{S{{}}}; constexpr S s10{S{{{}}}}; constexpr S s11 = S(); constexpr S s12 = S({}); constexpr S s13 = S({{}}); constexpr S s14 = {{}}; constexpr S s15 = {{{}}}; } void foo () { fn<int>(); }