diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index b74d3f32579..34d072e0950 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,10 @@ +2002-12-18 Kaveh R. Ghazi + + * testsuite/23_containers/vector_capacity.cc (test03): Move ... + * testsuite/23_containers/vector_resize.cc: ...here as a new file. + Pass in -lmalloc for irix6. + * testsuite/27_io/ios_base_storage.cc: Pass in -lmalloc for irix6. + 2002-12-18 Jason Merrill * src/vterminate.cc (__verbose_terminate_handler): Send diff --git a/libstdc++-v3/testsuite/23_containers/vector_capacity.cc b/libstdc++-v3/testsuite/23_containers/vector_capacity.cc index 621ef7e373f..50740ba5967 100644 --- a/libstdc++-v3/testsuite/23_containers/vector_capacity.cc +++ b/libstdc++-v3/testsuite/23_containers/vector_capacity.cc @@ -100,26 +100,6 @@ void test02() } } -void test03() -{ - bool test = true; - std::vector v; - try - { - v.resize(v.max_size()); - v[v.max_size() - 1] = 2002; - } - catch (const std::bad_alloc& error) - { - test = true; - } - catch (...) - { - test = false; - } - VERIFY( test ); -} - // Verifies basic functionality of reserve() with forced reallocation. void test_reserve() @@ -184,7 +164,6 @@ int main() { test01(); test02(); - test03(); test_reserve(); test_reserve_exception_guarantee(); return 0; diff --git a/libstdc++-v3/testsuite/23_containers/vector_resize.cc b/libstdc++-v3/testsuite/23_containers/vector_resize.cc new file mode 100644 index 00000000000..3cc6c57ed42 --- /dev/null +++ b/libstdc++-v3/testsuite/23_containers/vector_resize.cc @@ -0,0 +1,57 @@ +// 1999-05-07 +// bkoz + +// Copyright (C) 1999, 2002 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. + +// 23.2.4.2 vector capacity + +// XXX This test will not work for irix6 because of bug(s) in libc malloc +// XXX for very large allocations. However -lmalloc seems to work. +// See http://gcc.gnu.org/ml/libstdc++/2002-12/msg00131.html +// { dg-options "-lmalloc" { target mips*-*-irix6* } } + +#include +#include +#include + +void test01() +{ + bool test = true; + std::vector v; + try + { + v.resize(v.max_size()); + v[v.max_size() - 1] = 2002; + } + catch (const std::bad_alloc& error) + { + test = true; + } + catch (...) + { + test = false; + } + VERIFY( test ); +} + +int main() +{ + test01(); + return 0; +} diff --git a/libstdc++-v3/testsuite/27_io/ios_base_storage.cc b/libstdc++-v3/testsuite/27_io/ios_base_storage.cc index c39d0302716..a02eacba166 100644 --- a/libstdc++-v3/testsuite/27_io/ios_base_storage.cc +++ b/libstdc++-v3/testsuite/27_io/ios_base_storage.cc @@ -20,6 +20,12 @@ // 27.4.2.5 ios_base storage functions +// XXX This test will not work for some versions of irix6 because of +// XXX bug(s) in libc malloc for very large allocations. However +// XXX -lmalloc seems to work. +// See http://gcc.gnu.org/ml/gcc/2002-05/msg01012.html +// { dg-options "-lmalloc" { target mips*-*-irix6* } } + #include #include