blob: 2f2953d9999c418996e0d050e97d4b6490a71ea1 [file] [log] [blame]
// { dg-do run }
/* { dg-options "-fcheck-new" } */
typedef __SIZE_TYPE__ size_t;
inline void *operator new (size_t, void *__p) throw() { return __p; }
struct _Vector_impl
{
int *_M_start;
int *_M_finish;
_Vector_impl () :_M_start (0), _M_finish (0) {}
};
struct vector
{
_Vector_impl _M_impl;
int *_M_allocate (size_t __n)
{
return __n != 0 ? new int[__n] : 0;
}
void push_back ()
{
new (this->_M_impl._M_finish) int ();
this->_M_impl._M_finish =
this->_M_allocate (this->_M_impl._M_finish - this->_M_impl._M_start) + 1;
}
};
int
main ()
{
for (int i = 0; i <= 1; i++)
for (int j = 0; j <= 1; j++)
{
vector a[2];
a[i].push_back ();
}
}