mirror of git://gcc.gnu.org/git/gcc.git
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
|
@ -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>
|
2007-06-01 Benjamin Kosnik <bkoz@redhat.com>
|
||||||
|
|
||||||
* include/ext/throw_allocator.h (__throw_allocator::allocate):
|
* 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 ();
|
|
||||||
}
|
|
|
@ -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;
|
||||||
|
}
|
|
@ -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;
|
bool test __attribute__((unused)) = true;
|
||||||
using namespace std;
|
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;
|
bad_exception be;
|
||||||
VERIFY( !strcmp(be.what(), "std::bad_exception") );
|
VERIFY( !strcmp(be.what(), "std::bad_exception") );
|
||||||
}
|
}
|
|
@ -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;
|
||||||
|
}
|
|
@ -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;
|
||||||
|
}
|
|
@ -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 <cstring>
|
||||||
#include <testsuite_hooks.h>
|
#include <testsuite_hooks.h>
|
||||||
|
|
||||||
// test copy ctors and assignment operators
|
// test copy ctors, assignment operators, and persistence of member string data
|
||||||
// libstdc++/1972
|
// libstdc++/1972
|
||||||
// via Greg Bumgardner <bumgard@roguewave.com>
|
// via Greg Bumgardner <bumgard@roguewave.com>
|
||||||
void allocate_on_stack(void)
|
void allocate_on_stack(void)
|
||||||
|
@ -36,6 +36,7 @@ void allocate_on_stack(void)
|
||||||
for (size_t i = 0; i < num; i++)
|
for (size_t i = 0; i < num; i++)
|
||||||
array[i]=0;
|
array[i]=0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void test04()
|
void test04()
|
||||||
{
|
{
|
||||||
bool test __attribute__((unused)) = true;
|
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…
Reference in New Issue