(root)/
gcc-13.2.0/
gcc/
testsuite/
g++.dg/
warn/
Wuninitialized-14.C
// PR c++/19808
// { dg-do compile { target c++11 } }
// { dg-options "-Wuninitialized" }

struct A {
  int m;
  int get() const { return m; }

  A() : m{} { }
  A(int) { }
  A(const A &) { }
  A(A *) { }
};

struct S {
  A a, b;

  S(int (*)[1]) : a() {}
  S(int (*)[2]) : b(a.get()) {}
  S(int (*)[3]) : b(a) {}
  S(int (*)[4]) : a(&a) {}
};

struct R {
  A a, b;

  R(int (*)[1]) : a{} {}
  R(int (*)[2]) : b{a.get()} {}
  R(int (*)[3]) : b{a} {}
  R(int (*)[4]) : a{&a} {}
};