2014-02-05 Balaji V. Iyer <balaji.v.iyer@intel.com>
[official-gcc.git] / gcc / testsuite / g++.dg / pr45056.C
blob1f3fda08f8fe08a5f4b029bad12fe5105f6935ea
1 /* { dg-do compile } */
2 /* { dg-options "-O -fschedule-insns2 -fschedule-insns -g" } */
3 /* { dg-require-effective-target scheduling } */
5 template < class _T1, class _T2 > struct pair
7   _T1 first;
8   _T2 second;
9   pair (_T1 & __a, _T2 & __b)
10       :first (__a), second (__b)   
11     {    }
14 template < typename _Tp > struct _Vector_base
16   ~_Vector_base ();
19 template < typename _Tp>struct vector
20 : _Vector_base < _Tp>
22   template    <    typename     _ForwardIterator >   inline     void _Destroy (_ForwardIterator)   {  }
23   _Tp * _M_finish;
24   ~vector ()
25     {
26       _Destroy  ( this->_M_finish);
27     }
28 }   ;
29 template < typename ITV > struct Box
31   Box (const Box &);
32   Box ();
33   typedef vector < ITV > Sequence;
34   Sequence seq;
36 template < typename D > struct Powerset
38   Powerset (const Powerset &y) :reduced (y.reduced) {}
39   bool reduced;
40 } ;
41 template < typename PS > struct Pointset_Powerset :Powerset <  int >
43   Pointset_Powerset ();
44   int space_dim;
45 } ;
46 pair
48 Box<int>,
49 Pointset_Powerset < int > >
50 linear_partition ()
52   Pointset_Powerset < int > r ;
53   Box<int> qq;
54   return pair<Box<int>,Pointset_Powerset < int > >  (qq, r);