Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/g++.dg/abi/mangle34.C @ 158:494b0b89df80 default tip
...
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 25 May 2020 18:13:55 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line source
// Contributed by Dodji Seketeli <dodji@redhat.com> // Origin PR c++/40808 // { dg-do compile } // This tests the mangling of empty template argument list in a template // id. // { dg-final { scan-assembler "_ZNK5DummyclI3GenEENT_3SigIE10ResultTypeERKS2_" } } struct Void {}; template <class R> struct FunType { typedef R ResultType; }; struct WrongNumberOfSigArgs {}; template <typename R> struct CFunType { template <class Dummy1=Void, class Dummy2=Void> struct Sig : public FunType<WrongNumberOfSigArgs> {}; template <class Dummy> struct Sig<Void,Dummy> : public FunType<R> {}; }; struct Dummy { template <typename F> typename F::template Sig<>::ResultType operator()(F const& f) const { return typename F::template Sig<>::ResultType(0); } }; struct Gen: public CFunType<int> { int operator()() const {return 0;} Gen() {} }; int myfunction() { return Dummy()(Gen()); } int main() { myfunction(); }