diff options
Diffstat (limited to 'gcc-4.9/gcc/testsuite/c-c++-common/tm/attrib-1.c')
-rw-r--r-- | gcc-4.9/gcc/testsuite/c-c++-common/tm/attrib-1.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/c-c++-common/tm/attrib-1.c b/gcc-4.9/gcc/testsuite/c-c++-common/tm/attrib-1.c new file mode 100644 index 000000000..534fa0e9e --- /dev/null +++ b/gcc-4.9/gcc/testsuite/c-c++-common/tm/attrib-1.c @@ -0,0 +1,25 @@ +/* { dg-do compile } */ +/* { dg-options "-fgnu-tm -ftrack-macro-expansion=0" } */ + +#define TC __attribute__((transaction_callable)) +#define TU __attribute__((transaction_unsafe)) +#define TP __attribute__((transaction_pure)) +#define TS __attribute__((transaction_safe)) +extern void f1(void) TC; +extern void f2(void) TU; +extern void f3(void) TP; +extern void f4(void) TS; + +extern void g1(void) TC TS; /* { dg-error "previously declared" } */ + +extern int v1 TP; /* { dg-warning "ignored" } */ + +typedef void t1(void) TC; +typedef void (*t2)(void) TC; +typedef int t3 TC; /* { dg-warning "ignored" } */ + +typedef void u0(void); +typedef u0 u1 TC; +typedef u1 u2 TP; /* { dg-error "previously declared" } */ +typedef u0 *u3 TS; +typedef u3 u4 TU; /* { dg-error "previously declared" } */ |