diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 3dd555b4a1e..11f587a7952 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,19 @@ +2007-05-11 Benjamin Kosnik + + * include/std/stdexcept: Remove extra spacing. + + * testsuite/19_diagnostics/stdexceptions.cc: Break into... + * testsuite/19_diagnostics/bad_exception: ...this. Populate. + * testsuite/19_diagnostics/logic_error: ... this. + * testsuite/19_diagnostics/logic_error/what-1.cc: ...this. + * testsuite/19_diagnostics/logic_error/what-2.cc: ...this. + * testsuite/19_diagnostics/runtime_error: ...this. + * testsuite/19_diagnostics/runtime_error/what-1.cc: ...this. + * testsuite/19_diagnostics/runtime_error/what-2.cc: ...this. + * testsuite/19_diagnostics/runtime_error/what-3.cc: ...this. + * testsuite/19_diagnostics/23591_thread-1.c: Move... + * testsuite/19_diagnostics/bad_exception/23591_thread-1.c: ...here. + 2007-05-10 Paolo Carlini * 27_io/objects/wchar_t/11.cc: Include . diff --git a/libstdc++-v3/include/std/stdexcept b/libstdc++-v3/include/std/stdexcept index d246428f4de..e47adb38989 100644 --- a/libstdc++-v3/include/std/stdexcept +++ b/libstdc++-v3/include/std/stdexcept @@ -1,6 +1,6 @@ // Standard exception classes -*- C++ -*- -// Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc. +// Copyright (C) 2001, 2002, 2005, 2007 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 @@ -57,7 +57,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) public: /** Takes a character string describing the error. */ explicit - logic_error(const string& __arg); + logic_error(const string& __arg); virtual ~logic_error() throw(); @@ -73,14 +73,14 @@ _GLIBCXX_BEGIN_NAMESPACE(std) class domain_error : public logic_error { public: - explicit domain_error(const string& __arg); + explicit domain_error(const string& __arg); }; /** Thrown to report invalid arguments to functions. */ class invalid_argument : public logic_error { public: - explicit invalid_argument(const string& __arg); + explicit invalid_argument(const string& __arg); }; /** Thrown when an object is constructed that would exceed its maximum @@ -88,7 +88,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) class length_error : public logic_error { public: - explicit length_error(const string& __arg); + explicit length_error(const string& __arg); }; /** This represents an argument whose value is not within the expected @@ -96,7 +96,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) class out_of_range : public logic_error { public: - explicit out_of_range(const string& __arg); + explicit out_of_range(const string& __arg); }; /** Runtime errors represent problems outside the scope of a program; @@ -111,7 +111,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) public: /** Takes a character string describing the error. */ explicit - runtime_error(const string& __arg); + runtime_error(const string& __arg); virtual ~runtime_error() throw(); @@ -126,21 +126,21 @@ _GLIBCXX_BEGIN_NAMESPACE(std) class range_error : public runtime_error { public: - explicit range_error(const string& __arg); + explicit range_error(const string& __arg); }; /** Thrown to indicate arithmetic overflow. */ class overflow_error : public runtime_error { public: - explicit overflow_error(const string& __arg); + explicit overflow_error(const string& __arg); }; /** Thrown to indicate arithmetic underflow. */ class underflow_error : public runtime_error { public: - explicit underflow_error(const string& __arg); + explicit underflow_error(const string& __arg); }; _GLIBCXX_END_NAMESPACE diff --git a/libstdc++-v3/testsuite/19_diagnostics/23591_thread-1.c b/libstdc++-v3/testsuite/19_diagnostics/bad_exception/23591_thread-1.c similarity index 100% rename from libstdc++-v3/testsuite/19_diagnostics/23591_thread-1.c rename to libstdc++-v3/testsuite/19_diagnostics/bad_exception/23591_thread-1.c diff --git a/libstdc++-v3/testsuite/19_diagnostics/logic_error/what-1.cc b/libstdc++-v3/testsuite/19_diagnostics/logic_error/what-1.cc new file mode 100644 index 00000000000..f8245ecb628 --- /dev/null +++ b/libstdc++-v3/testsuite/19_diagnostics/logic_error/what-1.cc @@ -0,0 +1,57 @@ +// 2001-02-26 Benjamin Kosnik + +// Copyright (C) 2001, 2002, 2007 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, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +// 19.1 Exception classes + +#include +#include +#include + +// libstdc++/1972 +void test01() +{ + bool test __attribute__((unused)) = true; + std::string s("lack of sunlight, no water error"); + + // 1 + std::logic_error obj1 = std::logic_error(s); + + // 2 + std::logic_error obj2(s); + + VERIFY( std::strcmp(obj1.what(), s.data()) == 0 ); + VERIFY( std::strcmp(obj2.what(), s.data()) == 0 ); +} + +void test02() +{ + bool test __attribute__((unused)) = true; + std::string s("lack of sunlight error"); + std::domain_error x(s); + + VERIFY( std::strcmp(x.what(), s.data()) == 0 ); +} + +int main(void) +{ + test01(); + test02(); + return 0; +} diff --git a/libstdc++-v3/testsuite/19_diagnostics/logic_error/what-2.cc b/libstdc++-v3/testsuite/19_diagnostics/logic_error/what-2.cc new file mode 100644 index 00000000000..7b8077b1000 --- /dev/null +++ b/libstdc++-v3/testsuite/19_diagnostics/logic_error/what-2.cc @@ -0,0 +1,49 @@ +// 2001-02-26 Benjamin Kosnik + +// Copyright (C) 2001, 2002, 2007 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, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +// 19.1 Exception classes + +#include +#include +#include + +// libstdc++/2089 +class fuzzy_logic : public std::logic_error +{ +public: + fuzzy_logic() : std::logic_error("whoa") { } +}; + +void test03() +{ + bool test __attribute__((unused)) = true; + try + { throw fuzzy_logic(); } + catch(const fuzzy_logic& obj) + { VERIFY( std::strcmp("whoa", obj.what()) == 0 ); } + catch(...) + { VERIFY( false ); } +} + +int main(void) +{ + test03(); + return 0; +} diff --git a/libstdc++-v3/testsuite/19_diagnostics/runtime_error/what-1.cc b/libstdc++-v3/testsuite/19_diagnostics/runtime_error/what-1.cc new file mode 100644 index 00000000000..64fd201b7a2 --- /dev/null +++ b/libstdc++-v3/testsuite/19_diagnostics/runtime_error/what-1.cc @@ -0,0 +1,57 @@ +// 2001-02-26 Benjamin Kosnik + +// Copyright (C) 2001, 2002, 2007 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, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +// 19.1 Exception classes + +#include +#include +#include + +// libstdc++/1972 +void test01() +{ + bool test __attribute__((unused)) = true; + std::string s("lack of sunlight, no water error"); + + // 1 + std::runtime_error obj1 = std::runtime_error(s); + + // 2 + std::runtime_error obj2(s); + + VERIFY( std::strcmp(obj1.what(), s.data()) == 0 ); + VERIFY( std::strcmp(obj2.what(), s.data()) == 0 ); +} + +void test02() +{ + bool test __attribute__((unused)) = true; + std::string s("lack of sunlight error"); + std::range_error x(s); + + VERIFY( std::strcmp(x.what(), s.data()) == 0 ); +} + +int main(void) +{ + test01(); + test02(); + return 0; +} diff --git a/libstdc++-v3/testsuite/19_diagnostics/runtime_error/what-2.cc b/libstdc++-v3/testsuite/19_diagnostics/runtime_error/what-2.cc new file mode 100644 index 00000000000..49c56e2d5c4 --- /dev/null +++ b/libstdc++-v3/testsuite/19_diagnostics/runtime_error/what-2.cc @@ -0,0 +1,49 @@ +// 2001-02-26 Benjamin Kosnik + +// Copyright (C) 2001, 2002, 2007 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, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +// 19.1 Exception classes + +#include +#include +#include + +// libstdc++/2089 +class fuzzy_logic : public std::runtime_error +{ +public: + fuzzy_logic() : std::runtime_error("whoa") { } +}; + +void test03() +{ + bool test __attribute__((unused)) = true; + try + { throw fuzzy_logic(); } + catch(const fuzzy_logic& obj) + { VERIFY( std::strcmp("whoa", obj.what()) == 0 ); } + catch(...) + { VERIFY( false ); } +} + +int main(void) +{ + test03(); + return 0; +} diff --git a/libstdc++-v3/testsuite/19_diagnostics/stdexceptions.cc b/libstdc++-v3/testsuite/19_diagnostics/runtime_error/what-3.cc similarity index 65% rename from libstdc++-v3/testsuite/19_diagnostics/stdexceptions.cc rename to libstdc++-v3/testsuite/19_diagnostics/runtime_error/what-3.cc index ee82b7f199e..31560877fd4 100644 --- a/libstdc++-v3/testsuite/19_diagnostics/stdexceptions.cc +++ b/libstdc++-v3/testsuite/19_diagnostics/runtime_error/what-3.cc @@ -1,7 +1,6 @@ // 2001-02-26 Benjamin Kosnik -// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007 -// Free Software Foundation, Inc. +// Copyright (C) 2001, 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 @@ -22,52 +21,9 @@ // 19.1 Exception classes #include -#include #include #include -// libstdc++/1972 -void test01() -{ - bool test __attribute__((unused)) = true; - std::string s("lack of sunlight, no water error"); - - // 1 - std::logic_error obj = std::logic_error(s); - - // 2 - // std::logic_error obj((std::string)strlit); - - VERIFY( std::strcmp(obj.what(), s.data()) == 0 ); -} - -void test02() -{ - bool test __attribute__((unused)) = true; - std::string s("lack of sunlight error"); - std::domain_error x(s); - - VERIFY( std::strcmp(x.what(), s.data()) == 0 ); -} - -// libstdc++/2089 -class fuzzy_logic : public std::logic_error -{ -public: - fuzzy_logic() : std::logic_error("whoa") { } -}; - -void test03() -{ - bool test __attribute__((unused)) = true; - try - { throw fuzzy_logic(); } - catch(const fuzzy_logic& obj) - { VERIFY( std::strcmp("whoa", obj.what()) == 0 ); } - catch(...) - { VERIFY( false ); } -} - // test copy ctors and assignment operators // libstdc++/1972 // via Greg Bumgardner @@ -107,10 +63,6 @@ void test04() int main(void) { - test01(); - test02(); - test03(); test04(); - return 0; }