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()24 void baz()
25 {
26   bar<std::decimal::decimal128>();
27 }
28 
29 // { dg-final { scan-assembler "_Z3barIDeE1AIX3fooIT_EEEv" } }
30