2 // { dg-options "-fgnu-tm" }
4 #define __ts __attribute__((transaction_safe))
5 #define __tc __attribute__((transaction_callable))
6 #define __tp __attribute__((transaction_pure))
7 #define __tu __attribute__((transaction_unsafe))
15 struct __tc B : public A
17 void f() __tc; // { dg-error ".transaction_callable. overriding .transaction_safe." }
24 void g() __tc; // { dg-error ".transaction_callable. overriding .transaction_safe." }
30 void h() __tu; // { dg-error ".transaction_unsafe. overriding .transaction_callable." }
35 virtual void f() __tp;
36 virtual void g() __tp;
41 void f() __ts; // { dg-error ".transaction_safe. overriding .transaction_pure." }
47 void g() __ts; // { dg-error ".transaction_safe. overriding .transaction_pure." }