https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110382
--- Comment #2 from Marek Polacek <mpolacek at gcc dot gnu.org> --- Cleaned-up test: struct S { double a = 0; }; constexpr double g () { S arr[1]; S s = arr[0]; return s.a; } int main() { return g (); } Note that changing double a = 0; to double a = 0.; gets rid of the ICE!