1 // Contributed by Dodji Seketeli <dodji@redhat.com>
4 // This tests the mangling of empty template argument list in a template
6 // { dg-final { scan-assembler "_ZNK5DummyclI3GenEENT_3SigIE10ResultTypeERKS2_" } }
11 template <class R> struct FunType {
15 struct WrongNumberOfSigArgs {};
17 template <typename R> struct CFunType {
18 template <class Dummy1=Void, class Dummy2=Void> struct Sig : public
19 FunType<WrongNumberOfSigArgs> {};
20 template <class Dummy> struct Sig<Void,Dummy> : public FunType<R> {};
24 template <typename F> typename F::template Sig<>::ResultType operator()(F
26 return typename F::template Sig<>::ResultType(0);
30 struct Gen: public CFunType<int> {
31 int operator()() const {return 0;}
36 return Dummy()(Gen());