https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105256

--- Comment #16 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Don't both of those tests have UB (sure, we shouldn't ICE), using uninitialized
non-static data member?
Perhaps:

int
bar (int &)
{
  return 1;
}

struct S {
  struct T {
    struct U {
      int i = bar (i);
    } p;
    void foo ();
  };
};

void
S::T::foo ()
{
  *this = {};
};

is better?

Reply via email to