// { dg-do compile } // Mangling of classes from std::decimal are special-cased. // Derived from g++.dg/abi/mangle20-1.C. namespace std { namespace decimal { class decimal64 { public: typedef float __decfloat64 __attribute__ ((mode (DD))); explicit decimal64 (int __r):__val (__r) {} private: __decfloat64 __val; }; } } template void f(std::decimal::decimal64 (*)[2]) {} template void g(std::decimal::decimal64 (*)[I+2]) {} static const std::decimal::decimal64 I(1); static const std::decimal::decimal64 J(2); template void f<1>(std::decimal::decimal64 (*)[2]); template void g<1>(std::decimal::decimal64 (*)[3]); // { dg-final { scan-assembler "\n_?_Z1fILi1EEvPA2_Dd\[: \t\n\]" } } // { dg-final { scan-assembler "\n_?_Z1gILi1EEvPAplT_Li2E_Dd\[: \t\n\]" } }