/* { dg-do run } */
/* { dg-options "-pthread" } */
/* { dg-skip-if "PR libitm/51822" { *-*-* } } */
/* Tests static constructors inside of transactional code.  */

#include <pthread.h>
#include <stdlib.h>

int f(int x) __attribute__((noinline,transaction_safe));
int f(int x)
{
  static int y = x;
  return y*x;
}

static void *thread (void *)
{
  int bar;
  __transaction_atomic { bar = f(10); }
  if (bar != 100)
    abort();
  return 0;
}

int main()
{
  int bar;

  // First, initialize y in another thread.
  pthread_t pt;
  pthread_create(&pt, NULL, thread, NULL);
  pthread_join(pt, NULL);

  // Now y should already be initialized.
  __transaction_atomic { bar = f(20); }
  if (bar != 200)
    abort();

  return 0;
}
