// Transaction-unsafe testcase from TM TS.
// { dg-options -fgnu-tm }

struct S {
  virtual ~S();
};
int f() transaction_safe {
  S s;		     // { dg-error "unsafe" "invocation of unsafe destructor" }
}

int g(int x) { // is transaction-safe
  if (x <= 0)
    return 0;
  return x + g(x-1);
}
