| // Test for transaction_safe mangling. |
| // { dg-options -fgnu-tm } |
| |
| // { dg-final { scan-assembler "_Z1fPDxFvvE" } } |
| void f(void (*)() transaction_safe) {} |
| |
| // { dg-final { scan-assembler "_Z1fPDxFvvEPFvvE" } } |
| void f(void (*)() transaction_safe, void (*)()) {} |
| |
| // { dg-final { scan-assembler "_Z1fPDxFvvES0_" } } |
| void f(void (*)() transaction_safe, void (*)() transaction_safe) {} |
| |
| // { dg-final { scan-assembler "_Z1f1AIKDxFvvEE" } } |
| template <class T> struct A { }; |
| void f(A<void () const transaction_safe>) { } |
| |
| // { dg-final { scan-assembler "_Z1fM1AIiEKDxFvvE" } } |
| void f(void (A<int>::*)() const transaction_safe) { } |