
2004-01-28 Benjamin Kosnik <bkoz@redhat.com> * include/Makefile.am (bits_headers): Remove allocator_traits.h. * include/Makefile.in: Regenerate. * include/bits/allocator_traits.h: Remove. * include/bits/allocator.h: Remove allocator_traits.h include, and relevant comments. (allocator): Empty base class, inherit from the underlying allocator. * src/allocator-inst.cc: Move __pool_alloc instantiation to... * src/allocator.cc: ...here. New. For the underlying allocators. Add __mt_alloc, __pool_alloc, new_allocator, malloc_allocator bits. * config/linker-map.gnu: Remove __pool_alloc bits. * src/Makefile.am (sources): Add allocator.cc. * src/Makefile.in: Regenerate. * testsuite/20_util/allocator/1.cc: Split second test into... * testsuite/20_util/allocator/8230.cc: ...this. * include/bits/stl_bvector.h (__gnu_norm): Change bit_vector typedef to use std::allocatore. Format. * include/ext/pool_allocator.h: Remove allocator_traits.h include, _Alloc_traits. * include/ext/mt_allocator.h (__gnu_cxx): Qualify __throw_bad_alloc calls. Don't include <memory>. * include/ext/malloc_allocator.h: Remove <memory> include. * include/ext/new_allocator.h (new_allocator): Same. * include/ext/ropeimpl.h (__gnu_cxx): Remove __alloc using declaration. Switch __alloc to _Alloc. * include/ext/hashtable.h: Remove __alloc. * include/backward/alloc.h: Only inject allocator, not implementation details. * include/ext/mt_allocator.h: Replace free with delete. From-SVN: r76821
54 lines
1.4 KiB
C++
54 lines
1.4 KiB
C++
// 2001-06-14 Benjamin Kosnik <bkoz@redhat.com>
|
|
|
|
// Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc.
|
|
//
|
|
// This file is part of the GNU ISO C++ Library. This library is free
|
|
// software; you can redistribute it and/or modify it under the
|
|
// terms of the GNU General Public License as published by the
|
|
// Free Software Foundation; either version 2, or (at your option)
|
|
// any later version.
|
|
|
|
// This library is distributed in the hope that it will be useful,
|
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
// GNU General Public License for more details.
|
|
|
|
// You should have received a copy of the GNU General Public License along
|
|
// with this library; see the file COPYING. If not, write to the Free
|
|
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
|
// USA.
|
|
|
|
// 20.4.1.1 allocator members
|
|
|
|
#include <memory>
|
|
#include <stdexcept>
|
|
#include <testsuite_hooks.h>
|
|
|
|
// libstdc++/8230
|
|
void test02()
|
|
{
|
|
bool test __attribute__((unused)) = true;
|
|
try
|
|
{
|
|
std::allocator<int> alloc;
|
|
const std::allocator<int>::size_type n = alloc.max_size();
|
|
int* p = alloc.allocate(n + 1);
|
|
p[n] = 2002;
|
|
}
|
|
catch(const std::bad_alloc& e)
|
|
{
|
|
// Allowed.
|
|
test = true;
|
|
}
|
|
catch(...)
|
|
{
|
|
test = false;
|
|
}
|
|
VERIFY( test );
|
|
}
|
|
|
|
int main()
|
|
{
|
|
test02();
|
|
return 0;
|
|
}
|