diff options
author | Paolo Carlini <pcarlini@suse.de> | 2004-10-21 00:06:02 +0000 |
---|---|---|
committer | Paolo Carlini <paolo@gcc.gnu.org> | 2004-10-21 00:06:02 +0000 |
commit | a063e891bd88967d9dcea0f8c163f8372116265f (patch) | |
tree | 86541239e0f24c6b8ccdb784b4212770c4b0f617 /libstdc++-v3/testsuite/ext | |
parent | f644cebf003c3dade9b0b583facc5c8d50a025f3 (diff) | |
download | gcc-a063e891bd88967d9dcea0f8c163f8372116265f.zip gcc-a063e891bd88967d9dcea0f8c163f8372116265f.tar.gz gcc-a063e891bd88967d9dcea0f8c163f8372116265f.tar.bz2 |
bitmap_allocator.h (allocate): Throw std::bad_alloc when n > max_size().
2004-10-20 Paolo Carlini <pcarlini@suse.de>
* include/ext/bitmap_allocator.h (allocate): Throw std::bad_alloc
when n > max_size().
* include/ext/malloc_allocator.h (allocate): Likewise.
* include/ext/mt_allocator.h (allocate): Likewise.
* include/ext/new_allocator.h (allocate): Likewise.
* include/ext/array_allocator.h: Use __throw_bad_alloc().
* include/ext/pool_allocator.h: Use __builtin_expect.
* testsuite/ext/array_allocator/check_allocate_max_size.cc: New.
* testsuite/ext/bitmap_allocator/check_allocate_max_size.cc: Likewise.
* testsuite/ext/malloc_allocator/check_allocate_max_size.cc: Likewise.
* testsuite/ext/mt_allocator/check_allocate_max_size.cc: Likewise.
* testsuite/ext/new_allocator/check_allocate_max_size.cc: Likewise.
* testsuite/ext/pool_allocator/check_allocate_max_size.cc: Likewise.
* testsuite/testsuite_allocator.h (check_allocate_max_size): New test.
From-SVN: r89351
Diffstat (limited to 'libstdc++-v3/testsuite/ext')
6 files changed, 186 insertions, 0 deletions
diff --git a/libstdc++-v3/testsuite/ext/array_allocator/check_allocate_max_size.cc b/libstdc++-v3/testsuite/ext/array_allocator/check_allocate_max_size.cc new file mode 100644 index 0000000..4225ee2 --- /dev/null +++ b/libstdc++-v3/testsuite/ext/array_allocator/check_allocate_max_size.cc @@ -0,0 +1,31 @@ +// +// Copyright (C) 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 <ext/array_allocator.h> +#include <testsuite_allocator.h> + +int main() +{ + typedef int value_type; + typedef __gnu_cxx::array_allocator<value_type> allocator_type; + __gnu_test::check_allocate_max_size<allocator_type>(); + return 0; +} diff --git a/libstdc++-v3/testsuite/ext/bitmap_allocator/check_allocate_max_size.cc b/libstdc++-v3/testsuite/ext/bitmap_allocator/check_allocate_max_size.cc new file mode 100644 index 0000000..442b91d --- /dev/null +++ b/libstdc++-v3/testsuite/ext/bitmap_allocator/check_allocate_max_size.cc @@ -0,0 +1,31 @@ +// +// Copyright (C) 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 <ext/bitmap_allocator.h> +#include <testsuite_allocator.h> + +int main() +{ + typedef int value_type; + typedef __gnu_cxx::bitmap_allocator<value_type> allocator_type; + __gnu_test::check_allocate_max_size<allocator_type>(); + return 0; +} diff --git a/libstdc++-v3/testsuite/ext/malloc_allocator/check_allocate_max_size.cc b/libstdc++-v3/testsuite/ext/malloc_allocator/check_allocate_max_size.cc new file mode 100644 index 0000000..421eb7b --- /dev/null +++ b/libstdc++-v3/testsuite/ext/malloc_allocator/check_allocate_max_size.cc @@ -0,0 +1,31 @@ +// +// Copyright (C) 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 <ext/malloc_allocator.h> +#include <testsuite_allocator.h> + +int main() +{ + typedef int value_type; + typedef __gnu_cxx::malloc_allocator<value_type> allocator_type; + __gnu_test::check_allocate_max_size<allocator_type>(); + return 0; +} diff --git a/libstdc++-v3/testsuite/ext/mt_allocator/check_allocate_max_size.cc b/libstdc++-v3/testsuite/ext/mt_allocator/check_allocate_max_size.cc new file mode 100644 index 0000000..1beaf93 --- /dev/null +++ b/libstdc++-v3/testsuite/ext/mt_allocator/check_allocate_max_size.cc @@ -0,0 +1,31 @@ +// +// Copyright (C) 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 <ext/mt_allocator.h> +#include <testsuite_allocator.h> + +int main() +{ + typedef int value_type; + typedef __gnu_cxx::__mt_alloc<value_type> allocator_type; + __gnu_test::check_allocate_max_size<allocator_type>(); + return 0; +} diff --git a/libstdc++-v3/testsuite/ext/new_allocator/check_allocate_max_size.cc b/libstdc++-v3/testsuite/ext/new_allocator/check_allocate_max_size.cc new file mode 100644 index 0000000..d5e0132 --- /dev/null +++ b/libstdc++-v3/testsuite/ext/new_allocator/check_allocate_max_size.cc @@ -0,0 +1,31 @@ +// +// Copyright (C) 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 <ext/new_allocator.h> +#include <testsuite_allocator.h> + +int main() +{ + typedef int value_type; + typedef __gnu_cxx::new_allocator<value_type> allocator_type; + __gnu_test::check_allocate_max_size<allocator_type>(); + return 0; +} diff --git a/libstdc++-v3/testsuite/ext/pool_allocator/check_allocate_max_size.cc b/libstdc++-v3/testsuite/ext/pool_allocator/check_allocate_max_size.cc new file mode 100644 index 0000000..9c96c3d --- /dev/null +++ b/libstdc++-v3/testsuite/ext/pool_allocator/check_allocate_max_size.cc @@ -0,0 +1,31 @@ +// +// Copyright (C) 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 <ext/pool_allocator.h> +#include <testsuite_allocator.h> + +int main() +{ + typedef int value_type; + typedef __gnu_cxx::__pool_alloc<value_type> allocator_type; + __gnu_test::check_allocate_max_size<allocator_type>(); + return 0; +} |