1 // { dg-do compile } 2 3 // Mangling of classes from std::decimal are special-cased. 4 // Derived from g++.dg/abi/mangle35.C. 5 6 namespace std { 7 namespace decimal { 8 class decimal128 { 9 public: 10 typedef float __decfloat128 __attribute__ ((mode (TD))); decimal128(int __r)11 explicit decimal128 (int __r):__val (__r) {} 12 private: 13 __decfloat128 __val; 14 }; 15 } 16 } 17 18 template<void (*)()> struct A {}; 19 20 template<typename> void foo(); 21 22 template<typename T> A<foo<T> > bar(); 23 baz()24void baz() 25 { 26 bar<std::decimal::decimal128>(); 27 } 28 29 // { dg-final { scan-assembler "_Z3barIDeE1AIX3fooIT_EEEv" } } 30