URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [libitm/] [testsuite/] [libitm.c++/] [static_ctor.C] - Rev 752
Go to most recent revision | Compare with Previous | Blame | View Log
/* { 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;}
Go to most recent revision | Compare with Previous | Blame | View Log
