aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/c-c++-common/tm/attrib-1.c
blob: 534fa0e9ea495db8ef95c79a9517cd260500b4a5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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" } */