// 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) { }