what-big.cc: New.
2007-06-01 Benjamin Kosnik <bkoz@redhat.com> * testsuite/19_diagnostics/logic_error/what-big.cc: New. * testsuite/19_diagnostics/logic_error/what-3.cc: Same. * testsuite/19_diagnostics/runtime_error/what-big.cc: Same. * testsuite/19_diagnostics/runtime_error/what-3.cc: Same. * testsuite/18_support/14493.cc: Break into... * testsuite/18_support/exception/what.cc: ...this. * testsuite/18_support/bad_cast/what.cc: ...this. * testsuite/18_support/bad_alloc/what.cc: ...this. * testsuite/18_support/bad_typeid/what.cc: ...this. * testsuite/18_support/bad_exception/what.cc: ...this. * testsuite/19_diagnostics/bad_exception/23591_thread-1.c: Move... * testsuite/18_support/bad_exception/23591_thread-1.c: ...here. * testsuite/18_support/14026.cc: Move... * testsuite/18_support/uncaught_exception/14026.cc: ...here. From-SVN: r125267
This commit is contained in:
parent
0374328683
commit
5e984b909c
13 changed files with 391 additions and 47 deletions
|
@ -1,3 +1,23 @@
|
|||
2007-06-01 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
* testsuite/19_diagnostics/logic_error/what-big.cc: New.
|
||||
* testsuite/19_diagnostics/logic_error/what-3.cc: Same.
|
||||
* testsuite/19_diagnostics/runtime_error/what-big.cc: Same.
|
||||
* testsuite/19_diagnostics/runtime_error/what-3.cc: Same.
|
||||
|
||||
* testsuite/18_support/14493.cc: Break into...
|
||||
* testsuite/18_support/exception/what.cc: ...this.
|
||||
* testsuite/18_support/bad_cast/what.cc: ...this.
|
||||
* testsuite/18_support/bad_alloc/what.cc: ...this.
|
||||
* testsuite/18_support/bad_typeid/what.cc: ...this.
|
||||
* testsuite/18_support/bad_exception/what.cc: ...this.
|
||||
|
||||
* testsuite/19_diagnostics/bad_exception/23591_thread-1.c: Move...
|
||||
* testsuite/18_support/bad_exception/23591_thread-1.c: ...here.
|
||||
|
||||
* testsuite/18_support/14026.cc: Move...
|
||||
* testsuite/18_support/uncaught_exception/14026.cc: ...here.
|
||||
|
||||
2007-06-01 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
* include/ext/throw_allocator.h (__throw_allocator::allocate):
|
||||
|
|
|
@ -1,34 +0,0 @@
|
|||
// PR 14026
|
||||
// 18.6.4 uncaught_exception
|
||||
|
||||
#include <cstdlib>
|
||||
#include <exception>
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
static void
|
||||
no_uncaught ()
|
||||
{
|
||||
if (std::uncaught_exception ())
|
||||
abort ();
|
||||
}
|
||||
|
||||
int
|
||||
main ()
|
||||
{
|
||||
try
|
||||
{
|
||||
throw 1;
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
try
|
||||
{
|
||||
throw;
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
no_uncaught ();
|
||||
}
|
||||
}
|
||||
no_uncaught ();
|
||||
}
|
41
libstdc++-v3/testsuite/18_support/bad_alloc/what.cc
Normal file
41
libstdc++-v3/testsuite/18_support/bad_alloc/what.cc
Normal file
|
@ -0,0 +1,41 @@
|
|||
// 2007-01-30 Paolo Carlini <pcarlini@suse.de>
|
||||
|
||||
// Copyright (C) 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.
|
||||
|
||||
#include <new>
|
||||
#include <typeinfo>
|
||||
#include <exception>
|
||||
#include <cstring>
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// libstdc++/14493
|
||||
void test01()
|
||||
{
|
||||
bool test __attribute__((unused)) = true;
|
||||
using namespace std;
|
||||
|
||||
bad_alloc ba;
|
||||
VERIFY( !strcmp(ba.what(), "std::bad_alloc") );
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
test01();
|
||||
return 0;
|
||||
}
|
41
libstdc++-v3/testsuite/18_support/bad_cast/what.cc
Normal file
41
libstdc++-v3/testsuite/18_support/bad_cast/what.cc
Normal file
|
@ -0,0 +1,41 @@
|
|||
// 2007-01-30 Paolo Carlini <pcarlini@suse.de>
|
||||
|
||||
// Copyright (C) 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.
|
||||
|
||||
#include <new>
|
||||
#include <typeinfo>
|
||||
#include <exception>
|
||||
#include <cstring>
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// libstdc++/14493
|
||||
void test01()
|
||||
{
|
||||
bool test __attribute__((unused)) = true;
|
||||
using namespace std;
|
||||
|
||||
bad_cast bc;
|
||||
VERIFY( !strcmp(bc.what(), "std::bad_cast") );
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
test01();
|
||||
return 0;
|
||||
}
|
|
@ -30,18 +30,6 @@ void test01()
|
|||
bool test __attribute__((unused)) = true;
|
||||
using namespace std;
|
||||
|
||||
bad_alloc ba;
|
||||
VERIFY( !strcmp(ba.what(), "std::bad_alloc") );
|
||||
|
||||
bad_cast bc;
|
||||
VERIFY( !strcmp(bc.what(), "std::bad_cast") );
|
||||
|
||||
bad_typeid bt;
|
||||
VERIFY( !strcmp(bt.what(), "std::bad_typeid") );
|
||||
|
||||
exception e;
|
||||
VERIFY( !strcmp(e.what(), "std::exception") );
|
||||
|
||||
bad_exception be;
|
||||
VERIFY( !strcmp(be.what(), "std::bad_exception") );
|
||||
}
|
41
libstdc++-v3/testsuite/18_support/bad_typeid/what.cc
Normal file
41
libstdc++-v3/testsuite/18_support/bad_typeid/what.cc
Normal file
|
@ -0,0 +1,41 @@
|
|||
// 2007-01-30 Paolo Carlini <pcarlini@suse.de>
|
||||
|
||||
// Copyright (C) 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.
|
||||
|
||||
#include <new>
|
||||
#include <typeinfo>
|
||||
#include <exception>
|
||||
#include <cstring>
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// libstdc++/14493
|
||||
void test01()
|
||||
{
|
||||
bool test __attribute__((unused)) = true;
|
||||
using namespace std;
|
||||
|
||||
bad_typeid bt;
|
||||
VERIFY( !strcmp(bt.what(), "std::bad_typeid") );
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
test01();
|
||||
return 0;
|
||||
}
|
41
libstdc++-v3/testsuite/18_support/exception/what.cc
Normal file
41
libstdc++-v3/testsuite/18_support/exception/what.cc
Normal file
|
@ -0,0 +1,41 @@
|
|||
// 2007-01-30 Paolo Carlini <pcarlini@suse.de>
|
||||
|
||||
// Copyright (C) 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.
|
||||
|
||||
#include <new>
|
||||
#include <typeinfo>
|
||||
#include <exception>
|
||||
#include <cstring>
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// libstdc++/14493
|
||||
void test01()
|
||||
{
|
||||
bool test __attribute__((unused)) = true;
|
||||
using namespace std;
|
||||
|
||||
exception e;
|
||||
VERIFY( !strcmp(e.what(), "std::exception") );
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
test01();
|
||||
return 0;
|
||||
}
|
|
@ -0,0 +1,54 @@
|
|||
// Copyright (C) 2004, 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.
|
||||
|
||||
// PR 14026
|
||||
// 18.6.4 uncaught_exception
|
||||
|
||||
#include <cstdlib>
|
||||
#include <exception>
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
static void
|
||||
no_uncaught ()
|
||||
{
|
||||
if (std::uncaught_exception())
|
||||
abort();
|
||||
}
|
||||
|
||||
int
|
||||
main()
|
||||
{
|
||||
try
|
||||
{
|
||||
throw 1;
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
try
|
||||
{
|
||||
throw;
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
no_uncaught ();
|
||||
}
|
||||
}
|
||||
no_uncaught();
|
||||
|
||||
return 0;
|
||||
}
|
69
libstdc++-v3/testsuite/19_diagnostics/logic_error/what-3.cc
Normal file
69
libstdc++-v3/testsuite/19_diagnostics/logic_error/what-3.cc
Normal file
|
@ -0,0 +1,69 @@
|
|||
// { dg-options "-std=gnu++0x" }
|
||||
|
||||
// Copyright (C) 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.
|
||||
|
||||
#include <string>
|
||||
#include <stdexcept>
|
||||
#include <cstring>
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// test copy ctors, assignment operators, and persistence of member string data
|
||||
// libstdc++/1972
|
||||
// via Greg Bumgardner <bumgard@roguewave.com>
|
||||
void allocate_on_stack(void)
|
||||
{
|
||||
const size_t num = 512;
|
||||
__extension__ char array[num];
|
||||
for (size_t i = 0; i < num; i++)
|
||||
array[i]=0;
|
||||
}
|
||||
|
||||
void test04()
|
||||
{
|
||||
bool test __attribute__((unused)) = true;
|
||||
const std::string s("CA ISO emergency once again:immediate power down");
|
||||
const char* strlit1 = "wish I lived in Palo Alto";
|
||||
const char* strlit2 = "...or Santa Barbara";
|
||||
std::logic_error obj1(s);
|
||||
|
||||
// block 01
|
||||
{
|
||||
const std::string s2(strlit1);
|
||||
std::logic_error obj2(s2);
|
||||
obj1 = obj2;
|
||||
}
|
||||
allocate_on_stack();
|
||||
VERIFY( std::strcmp(strlit1, obj1.what()) == 0 );
|
||||
|
||||
// block 02
|
||||
{
|
||||
const std::string s3(strlit2);
|
||||
std::logic_error obj3 = std::logic_error(s3);
|
||||
obj1 = obj3;
|
||||
}
|
||||
allocate_on_stack();
|
||||
VERIFY( std::strcmp(strlit2, obj1.what()) == 0 );
|
||||
}
|
||||
|
||||
int main(void)
|
||||
{
|
||||
test04();
|
||||
return 0;
|
||||
}
|
|
@ -0,0 +1,41 @@
|
|||
// 2007-05-29 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
// Copyright (C) 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.
|
||||
|
||||
#include <cstring>
|
||||
#include <string>
|
||||
#include <stdexcept>
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// Can construct and return 10k character error string.
|
||||
void test01()
|
||||
{
|
||||
typedef std::logic_error test_type;
|
||||
|
||||
bool test __attribute__((unused)) = true;
|
||||
const std::string xxx(10000, 'x');
|
||||
test_type t(xxx);
|
||||
VERIFY( std::strcmp(t.what(), xxx.c_str()) == 0 );
|
||||
}
|
||||
|
||||
int main(void)
|
||||
{
|
||||
test01();
|
||||
return 0;
|
||||
}
|
|
@ -26,7 +26,7 @@
|
|||
#include <cstring>
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// test copy ctors and assignment operators
|
||||
// test copy ctors, assignment operators, and persistence of member string data
|
||||
// libstdc++/1972
|
||||
// via Greg Bumgardner <bumgard@roguewave.com>
|
||||
void allocate_on_stack(void)
|
||||
|
@ -36,6 +36,7 @@ void allocate_on_stack(void)
|
|||
for (size_t i = 0; i < num; i++)
|
||||
array[i]=0;
|
||||
}
|
||||
|
||||
void test04()
|
||||
{
|
||||
bool test __attribute__((unused)) = true;
|
||||
|
|
|
@ -0,0 +1,41 @@
|
|||
// 2007-05-29 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
// Copyright (C) 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.
|
||||
|
||||
#include <cstring>
|
||||
#include <string>
|
||||
#include <stdexcept>
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// Can construct and return 10k character error string.
|
||||
void test01()
|
||||
{
|
||||
typedef std::runtime_error test_type;
|
||||
|
||||
bool test __attribute__((unused)) = true;
|
||||
const std::string xxx(10000, 'x');
|
||||
test_type t(xxx);
|
||||
VERIFY( std::strcmp(t.what(), xxx.c_str()) == 0 );
|
||||
}
|
||||
|
||||
int main(void)
|
||||
{
|
||||
test01();
|
||||
return 0;
|
||||
}
|
Loading…
Add table
Reference in a new issue