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

--- Comment #4 from Jonathan Wakely <redi at gcc dot gnu.org> ---
Without the library dependency, and without the defaulted destructor (since GCC 

int constructions = 0;
int destructions = 0;

struct A
{
  A()
  {
    constructions++;
  }
  virtual ~A() {
    destructions++;
  }
};

struct B : public virtual A
{
  B(int)
  {
  };

  B() : B(1)
  {
    throw -1;
  }
  virtual ~B() = default;
};

struct C : public B
{
};

int main() {
  try
  {
    C c;
  }
  catch (int)
  {
  }
  if (constructions != destructions)
    throw 1;
  return 0;
}

Reply via email to