diff options
Diffstat (limited to 'gcc/testsuite/g++.dg/parse/primary-expression-1.C')
-rw-r--r-- | gcc/testsuite/g++.dg/parse/primary-expression-1.C | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/parse/primary-expression-1.C b/gcc/testsuite/g++.dg/parse/primary-expression-1.C new file mode 100644 index 000000000..931ecd88a --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/primary-expression-1.C @@ -0,0 +1,58 @@ +// Copyright (C) 2002 Free Software Foundation +// Origin: C++/717 +// Contributed by Gabriel Dos Reis <gdr@integrable-solutions.net +// { dg-do compile } + +class _eAny +{ +public: + _eAny(){} +}; + +template <class X> +class _eSeq +{ +public: + _eSeq(const X thing){} + int _oHash() {return 0;} + _eSeq<X > _oPlusPlus(const _eSeq<X > other) const + { + return *this; + } + _eSeq<X > take(const _eSeq<X > other) const + { + return *this; + } +}; + + +template <class X> +class _eHndl +{ +public: + _eHndl(const _eAny *obj){} +}; + +class VarInstances : public _eAny +{ +public: + VarInstances() : _eAny() {} +}; + +void testFunc(const VarInstances *testInstance) +{ + const _eSeq<_eHndl<VarInstances> > temp1 = + _eSeq<_eHndl<VarInstances> >(_eHndl<VarInstances>(testInstance)); + + if((_eSeq<_eHndl<VarInstances> + >(_eHndl<VarInstances>(testInstance))._oPlusPlus(temp1)._oHash() == + 7)) + { + return; + } +} + +int main(int argc, char** argv) +{ + testFunc(new VarInstances()); +} |