/* { dg-do compile } */ /* { dg-options "-O -fschedule-insns2 -fschedule-insns -g" } */ /* { dg-require-effective-target scheduling } */ template < class _T1, class _T2 > struct pair { _T1 first; _T2 second; pair (_T1 & __a, _T2 & __b) :first (__a), second (__b) { } } ; template < typename _Tp > struct _Vector_base { ~_Vector_base (); } ; template < typename _Tp>struct vector : _Vector_base < _Tp> { template < typename _ForwardIterator > inline void _Destroy (_ForwardIterator) { } _Tp * _M_finish; ~vector () { _Destroy ( this->_M_finish); } } ; template < typename ITV > struct Box { Box (const Box &); Box (); typedef vector < ITV > Sequence; Sequence seq; }; template < typename D > struct Powerset { Powerset (const Powerset &y) :reduced (y.reduced) {} bool reduced; } ; template < typename PS > struct Pointset_Powerset :Powerset < int > { Pointset_Powerset (); int space_dim; } ; pair < Box, Pointset_Powerset < int > > linear_partition () { Pointset_Powerset < int > r ; Box qq; return pair,Pointset_Powerset < int > > (qq, r); }