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:
Benjamin Kosnik 2007-06-01 17:03:22 +00:00 committed by Benjamin Kosnik
parent 0374328683
commit 5e984b909c
13 changed files with 391 additions and 47 deletions

View file

@ -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):

View file

@ -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 ();
}

View 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;
}

View 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;
}

View file

@ -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") );
}

View 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;
}

View 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;
}

View file

@ -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;
}

View 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;
}

View file

@ -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;
}

View file

@ -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;

View file

@ -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;
}