1// { dg-do compile }
2
3typedef __SIZE_TYPE__ size_t;
4namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) {
5    template<typename _Tp>     class new_allocator     {
6    public:
7	typedef size_t size_type;
8	typedef _Tp* pointer;
9	typedef _Tp& reference;
10	void       deallocate(pointer __p, size_type)       {
11	    ::operator delete(__p);
12	}
13    };
14}
15namespace std __attribute__ ((__visibility__ ("default"))) {
16    template<typename _Tp>     class allocator: public __gnu_cxx::new_allocator<_Tp>     {
17    public:
18	template<typename _Tp1>         struct rebind         {
19	    typedef allocator<_Tp1> other;
20	};
21    };
22    template<typename _Tp, typename _Alloc>     struct _Vector_base     {
23	typedef typename _Alloc::template rebind<_Tp>::other _Tp_alloc_type;
24	struct _Vector_impl       : public _Tp_alloc_type       {
25	    typename _Tp_alloc_type::pointer _M_start;
26	    typename _Tp_alloc_type::pointer _M_end_of_storage;
27	};
28	~_Vector_base()       {
29	    _M_deallocate(this->_M_impl._M_start, this->_M_impl._M_end_of_storage         - this->_M_impl._M_start);
30	}
31	_Vector_impl _M_impl;
32	void       _M_deallocate(typename _Tp_alloc_type::pointer __p, size_t __n)       {
33	    if (__p)    _M_impl.deallocate(__p, __n);
34	}
35    };
36    template<typename _Tp, typename _Alloc = std::allocator<_Tp> >     class vector : protected _Vector_base<_Tp, _Alloc>     {
37	typedef _Vector_base<_Tp, _Alloc> _Base;
38	typedef typename _Base::_Tp_alloc_type _Tp_alloc_type;
39    public:
40	typedef typename _Tp_alloc_type::reference reference;
41	typedef size_t size_type;
42	size_type       size() const       {
43	}
44	reference       operator[](size_type __n)       {
45	}
46    };
47};
48class vtkConvexPointSet  {
49public:
50    static vtkConvexPointSet *New();
51};
52void MakeInternalMesh() {
53    std::vector< int > tempFaces[2];
54    std::vector< int > firstFace;
55    int i, j, k;
56    for(i = 0; i < 1000; i++)     {
57	for(int pointCount = 0; pointCount < 1000; pointCount++) 	{
58	    for(j = 0; j < (int)tempFaces[0].size(); k++)
59	      if(tempFaces[0][j] == tempFaces[1][k]) 		break;
60	}
61	vtkConvexPointSet::New();
62    }
63}
64