// Testcase from TM TS
// { dg-options "-std=c++14 -fgnu-tm" }

#include <iostream>

struct B {
  virtual void f() transaction_safe;
  virtual ~B() transaction_safe_dynamic;
};
// pre-existing code
struct D1 : B
{
  void f() override { } // ok
  ~D1() override { } // ok
};
struct D2 : B
{
  void f() override { std::cout << "D2::f" << std::endl; } // { dg-error "" "transaction-safe f has transaction-unsafe definition" }
  ~D2() override { std::cout << "~D2" << std::endl; } // ok
};
int main()
{
  D2 * d2 = new D2;
  B * b2 = d2;
  atomic_commit {
    B b; // ok
    D1 d1; // ok
    B& b1 = d1;
    D2 x;
    b1.f(); // ok, calls D1::f()
    delete b2; // undefined behavior: calls unsafe destructor of D2
  } // { dg-error "" "destructor of D2 is not transaction-safe" }
}
