summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/pr45056.C
blob: 1f3fda08f8fe08a5f4b029bad12fe5105f6935ea (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
/* { 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<int>,
Pointset_Powerset < int > >
linear_partition ()
{
  Pointset_Powerset < int > r ;
  Box<int> qq;
  return pair<Box<int>,Pointset_Powerset < int > >  (qq, r);
}