diff options
author | Jonathan Wakely <jwakely@redhat.com> | 2017-06-14 20:38:30 +0100 |
---|---|---|
committer | Jonathan Wakely <redi@gcc.gnu.org> | 2017-06-14 20:38:30 +0100 |
commit | cdd17d6e9956853892e4c097cc33afc2156df69e (patch) | |
tree | 9dd093a8714a77cd2da1b8da47f96a2354503708 /libstdc++-v3/testsuite | |
parent | be75f645e6d1ef22806a0193abecd56a215e6594 (diff) | |
download | gcc-cdd17d6e9956853892e4c097cc33afc2156df69e.zip gcc-cdd17d6e9956853892e4c097cc33afc2156df69e.tar.gz gcc-cdd17d6e9956853892e4c097cc33afc2156df69e.tar.bz2 |
Fix libstdc++ testsuite failures with -D_GLIBCXX_USE_CXX11_ABI=0
* doc/xml/manual/test.xml: Correct instructions on running tests.
* testsuite/21_strings/basic_string/cons/char/deduction.cc: Adjust to
pass when -D_GLIBCXX_USE_CXX11_ABI=0 added to RUNTESTFLAGS.
* testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
Likewise.
* testsuite/27_io/basic_ios/copyfmt/char/1.cc: Likewise.
* testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
* testsuite/27_io/basic_istream/extractors_arithmetic/char/
exceptions_failbit.cc: Likewise.
* testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
exceptions_failbit.cc: Likewise.
* testsuite/27_io/basic_istream/extractors_other/char/
exceptions_null.cc: Likewise.
* testsuite/27_io/basic_istream/extractors_other/wchar_t/
exceptions_null.cc: Likewise.
* testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
* testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_other/char/
exceptions_null.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_other/wchar_t/
exceptions_null.cc: Likewise.
* testsuite/27_io/ios_base/storage/2.cc: Likewise.
From-SVN: r249206
Diffstat (limited to 'libstdc++-v3/testsuite')
13 files changed, 124 insertions, 77 deletions
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/cons/char/deduction.cc b/libstdc++-v3/testsuite/21_strings/basic_string/cons/char/deduction.cc index c9af333..205714a 100644 --- a/libstdc++-v3/testsuite/21_strings/basic_string/cons/char/deduction.cc +++ b/libstdc++-v3/testsuite/21_strings/basic_string/cons/char/deduction.cc @@ -50,11 +50,13 @@ test01() const std::basic_string s4 = s3; check_type<const std::string>(s4); +#if _GLIBCXX_USE_CXX11_ABI std::basic_string s5(s0, a); check_type<std::string>(s5); std::basic_string s6(std::move(s0), a); check_type<std::string>(s6); +#endif std::basic_string s7(s0, 0, 0); check_type<std::string>(s7); diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc b/libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc index 1f8eadb..23ae07c 100644 --- a/libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc +++ b/libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc @@ -46,11 +46,13 @@ test01() const std::basic_string s4 = s2; check_type<const std::wstring>(s4); +#if _GLIBCXX_USE_CXX11_ABI std::basic_string s5(s0, a); check_type<std::wstring>(s5); std::basic_string s6(std::move(s0), a); check_type<std::wstring>(s6); +#endif std::basic_string s7(s0, 0, 0); check_type<std::wstring>(s7); diff --git a/libstdc++-v3/testsuite/27_io/basic_ios/copyfmt/char/1.cc b/libstdc++-v3/testsuite/27_io/basic_ios/copyfmt/char/1.cc index 87551a0..840017e 100644 --- a/libstdc++-v3/testsuite/27_io/basic_ios/copyfmt/char/1.cc +++ b/libstdc++-v3/testsuite/27_io/basic_ios/copyfmt/char/1.cc @@ -17,9 +17,6 @@ // with this library; see the file COPYING3. If not see // <http://www.gnu.org/licenses/>. -// The library throws the new definition of std::ios::failure -// { dg-options "-D_GLIBCXX_USE_CXX11_ABI=1" } - // 27.4.4.2 basic_ios member functions // NB: Don't include any other headers in this file. @@ -36,29 +33,36 @@ void test02() // basic_ios& copyfmt(const basic_ios& rhs) { std::ios ios_01(0); - std::ios ios_02(0); + std::ios ios_02(0); ios_01.exceptions(std::ios_base::eofbit); ios_02.exceptions(std::ios_base::eofbit); - + try { - ios_01.copyfmt(ios_02); - } + ios_01.copyfmt(ios_02); + } catch(...) { VERIFY( false ); } } { + // The library throws the new definition of std::ios::failure +#if _GLIBCXX_USE_CXX11_ABI + typedef std::ios_base::failure exception_type; +#else + typedef std::exception exception_type; +#endif + std::ios ios_01(0); - std::ios ios_02(0); + std::ios ios_02(0); ios_01.clear(std::ios_base::eofbit); ios_02.exceptions(std::ios_base::eofbit); try { ios_01.copyfmt(ios_02); VERIFY( false ); - } - catch(std::ios_base::failure& fail) { + } + catch(exception_type&) { VERIFY( true ); } catch(...) { @@ -67,7 +71,7 @@ void test02() } } -int main() +int main() { test02(); return 0; diff --git a/libstdc++-v3/testsuite/27_io/basic_ios/exceptions/char/1.cc b/libstdc++-v3/testsuite/27_io/basic_ios/exceptions/char/1.cc index 86b7bee..152e783 100644 --- a/libstdc++-v3/testsuite/27_io/basic_ios/exceptions/char/1.cc +++ b/libstdc++-v3/testsuite/27_io/basic_ios/exceptions/char/1.cc @@ -17,9 +17,6 @@ // with this library; see the file COPYING3. If not see // <http://www.gnu.org/licenses/>. -// The library throws the new definition of std::ios::failure -// { dg-options "-D_GLIBCXX_USE_CXX11_ABI=1" } - // 27.4.4.2 basic_ios member functions // NB: Don't include any other headers in this file. @@ -44,7 +41,7 @@ void test01() std::ios ios_01(0); try { ios_01.exceptions(std::ios_base::eofbit); - } + } catch(...) { VERIFY( false ); } @@ -53,13 +50,20 @@ void test01() } { + // The library throws the new definition of std::ios::failure +#if _GLIBCXX_USE_CXX11_ABI + typedef std::ios_base::failure exception_type; +#else + typedef std::exception exception_type; +#endif + std::ios ios_01(0); ios_01.clear(std::ios_base::eofbit); try { ios_01.exceptions(std::ios_base::eofbit); VERIFY( false ); - } - catch(std::ios_base::failure& fail) { + } + catch(exception_type&) { iostate02 = ios_01.exceptions(); VERIFY( static_cast<bool>(iostate02 & std::ios_base::eofbit) ); } @@ -69,7 +73,7 @@ void test01() } } -int main() +int main() { test01(); return 0; diff --git a/libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/exceptions_failbit.cc b/libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/exceptions_failbit.cc index 2f1edf6..5fa3f1f 100644 --- a/libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/exceptions_failbit.cc +++ b/libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/exceptions_failbit.cc @@ -15,9 +15,6 @@ // with this library; see the file COPYING3. If not see // <http://www.gnu.org/licenses/>. -// The library throws the new definition of std::ios::failure -// { dg-options "-D_GLIBCXX_USE_CXX11_ABI=1" } - #include <sstream> #include <testsuite_hooks.h> @@ -29,20 +26,27 @@ void test_failbit() istringstream stream("jaylib - champion sound"); stream.exceptions(ios_base::failbit); - + + // The library throws the new definition of std::ios::failure +#if _GLIBCXX_USE_CXX11_ABI + typedef std::ios_base::failure exception_type; +#else + typedef std::exception exception_type; +#endif + try { T i; stream >> i; VERIFY( false ); } - catch (const ios_base::failure&) - { + catch (const exception_type&) + { // stream should set failbit and throw ios_base::failure. VERIFY( stream.fail() ); VERIFY( !stream.bad() ); VERIFY( !stream.eof() ); - } + } catch(...) { VERIFY( false ); } } diff --git a/libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/exceptions_failbit.cc b/libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/exceptions_failbit.cc index 7038565..4ff48f7 100644 --- a/libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/exceptions_failbit.cc +++ b/libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/exceptions_failbit.cc @@ -15,9 +15,6 @@ // with this library; see the file COPYING3. If not see // <http://www.gnu.org/licenses/>. -// The library throws the new definition of std::ios::failure -// { dg-options "-D_GLIBCXX_USE_CXX11_ABI=1" } - #include <sstream> #include <testsuite_hooks.h> @@ -29,20 +26,27 @@ void test_failbit() wistringstream stream(L"jaylib - champion sound"); stream.exceptions(ios_base::failbit); - + + // The library throws the new definition of std::ios::failure +#if _GLIBCXX_USE_CXX11_ABI + typedef std::ios_base::failure exception_type; +#else + typedef std::exception exception_type; +#endif + try { T i; stream >> i; VERIFY( false ); } - catch (const ios_base::failure&) - { + catch (const exception_type&) + { // stream should set failbit and throw ios_base::failure. VERIFY( stream.fail() ); VERIFY( !stream.bad() ); VERIFY( !stream.eof() ); - } + } catch(...) { VERIFY( false ); } } diff --git a/libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/exceptions_null.cc b/libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/exceptions_null.cc index 50c70f9..088aaa4 100644 --- a/libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/exceptions_null.cc +++ b/libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/exceptions_null.cc @@ -15,9 +15,6 @@ // with this library; see the file COPYING3. If not see // <http://www.gnu.org/licenses/>. -// The library throws the new definition of std::ios::failure -// { dg-options "-D_GLIBCXX_USE_CXX11_ABI=1" } - #include <istream> #include <ostream> #include <streambuf> @@ -38,12 +35,19 @@ void test4() istringstream stream; stream.exceptions(ios_base::failbit); + // The library throws the new definition of std::ios::failure +#if _GLIBCXX_USE_CXX11_ABI + typedef std::ios_base::failure exception_type; +#else + typedef std::exception exception_type; +#endif + try { stream >> static_cast<streambuf*>(0); VERIFY(false); } - catch (ios_base::failure&) + catch (exception_type&) { } diff --git a/libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/wchar_t/exceptions_null.cc b/libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/wchar_t/exceptions_null.cc index 0d8a3cd..fd6322b 100644 --- a/libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/wchar_t/exceptions_null.cc +++ b/libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/wchar_t/exceptions_null.cc @@ -15,9 +15,6 @@ // with this library; see the file COPYING3. If not see // <http://www.gnu.org/licenses/>. -// The library throws the new definition of std::ios::failure -// { dg-options "-D_GLIBCXX_USE_CXX11_ABI=1" } - #include <istream> #include <ostream> #include <streambuf> @@ -38,12 +35,19 @@ void test4() wistringstream stream; stream.exceptions(ios_base::failbit); + // The library throws the new definition of std::ios::failure +#if _GLIBCXX_USE_CXX11_ABI + typedef std::ios_base::failure exception_type; +#else + typedef std::exception exception_type; +#endif + try { stream >> static_cast<wstreambuf*>(0); VERIFY( false ); } - catch (ios_base::failure&) + catch (exception_type&) { } diff --git a/libstdc++-v3/testsuite/27_io/basic_istream/sentry/char/12297.cc b/libstdc++-v3/testsuite/27_io/basic_istream/sentry/char/12297.cc index ceb9234..0900a70 100644 --- a/libstdc++-v3/testsuite/27_io/basic_istream/sentry/char/12297.cc +++ b/libstdc++-v3/testsuite/27_io/basic_istream/sentry/char/12297.cc @@ -15,12 +15,8 @@ // with this library; see the file COPYING3. If not see // <http://www.gnu.org/licenses/>. - // 27.6.1.1.2 class basic_istream::sentry -// The library throws the new definition of std::ios::failure -// { dg-options "-D_GLIBCXX_USE_CXX11_ABI=1" } - #include <sstream> #include <testsuite_hooks.h> @@ -29,16 +25,23 @@ int main() using namespace std; istringstream stream; stream.exceptions(ios_base::eofbit); - + + // The library throws the new definition of std::ios::failure +#if _GLIBCXX_USE_CXX11_ABI + typedef std::ios_base::failure exception_type; +#else + typedef std::exception exception_type; +#endif + try { istream::sentry sentry(stream, false); VERIFY( false ); } - catch (ios_base::failure&) + catch (exception_type&) { VERIFY( stream.rdstate() == (ios_base::eofbit | ios_base::failbit) ); } - + return 0; } diff --git a/libstdc++-v3/testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc b/libstdc++-v3/testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc index dc9d48a..e72fe1a 100644 --- a/libstdc++-v3/testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc +++ b/libstdc++-v3/testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc @@ -15,9 +15,6 @@ // with this library; see the file COPYING3. If not see // <http://www.gnu.org/licenses/>. -// The library throws the new definition of std::ios::failure -// { dg-options "-D_GLIBCXX_USE_CXX11_ABI=1" } - // 27.6.1.1.2 class basic_istream::sentry #include <sstream> @@ -28,16 +25,23 @@ int main() using namespace std; wistringstream stream; stream.exceptions(ios_base::eofbit); - + + // The library throws the new definition of std::ios::failure +#if _GLIBCXX_USE_CXX11_ABI + typedef std::ios_base::failure exception_type; +#else + typedef std::exception exception_type; +#endif + try { wistream::sentry sentry(stream, false); VERIFY( false ); } - catch (ios_base::failure&) + catch (exception_type&) { VERIFY( stream.rdstate() == (ios_base::eofbit | ios_base::failbit) ); } - + return 0; } diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/exceptions_null.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/exceptions_null.cc index ab9ef94..9a7bd06 100644 --- a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/exceptions_null.cc +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/exceptions_null.cc @@ -15,9 +15,6 @@ // with this library; see the file COPYING3. If not see // <http://www.gnu.org/licenses/>. -// The library throws the new definition of std::ios::failure -// { dg-options "-D_GLIBCXX_USE_CXX11_ABI=1" } - #include <istream> #include <ostream> #include <streambuf> @@ -39,13 +36,20 @@ void test3() ostringstream stream; stream.exceptions(ios_base::badbit); - + + // The library throws the new definition of std::ios::failure +#if _GLIBCXX_USE_CXX11_ABI + typedef std::ios_base::failure exception_type; +#else + typedef std::exception exception_type; +#endif + try { stream << static_cast<streambuf*>(0); VERIFY( false ); } - catch (ios_base::failure&) + catch (exception_type&) { } diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/exceptions_null.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/exceptions_null.cc index bba6dd0..fcfb37d 100644 --- a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/exceptions_null.cc +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/exceptions_null.cc @@ -15,9 +15,6 @@ // with this library; see the file COPYING3. If not see // <http://www.gnu.org/licenses/>. -// The library throws the new definition of std::ios::failure -// { dg-options "-D_GLIBCXX_USE_CXX11_ABI=1" } - #include <istream> #include <ostream> #include <streambuf> @@ -39,13 +36,20 @@ void test3() wostringstream stream; stream.exceptions(ios_base::badbit); - + + // The library throws the new definition of std::ios::failure +#if _GLIBCXX_USE_CXX11_ABI + typedef std::ios_base::failure exception_type; +#else + typedef std::exception exception_type; +#endif + try { stream << static_cast<wstreambuf*>(0); VERIFY( false ); } - catch (ios_base::failure&) + catch (exception_type&) { } diff --git a/libstdc++-v3/testsuite/27_io/ios_base/storage/2.cc b/libstdc++-v3/testsuite/27_io/ios_base/storage/2.cc index d2c9ec5..8fa306f 100644 --- a/libstdc++-v3/testsuite/27_io/ios_base/storage/2.cc +++ b/libstdc++-v3/testsuite/27_io/ios_base/storage/2.cc @@ -26,10 +26,7 @@ // Skip test at -m64 on Darwin because RLIMITS are not being honored. // Radar 6467883: 10.4/10.5 setrlimits are not honored by memory allocators // Radar 6467884: 10.X systems are not robust when paging space is exceeded -// { dg-skip-if "" { *-*-darwin* && lp64 } { "*" } { "" } } - -// The library throws the new definition of std::ios::failure -// { dg-options "-D_GLIBCXX_USE_CXX11_ABI=1" } +// { dg-skip-if "" { *-*-darwin* && lp64 } { "*" } { "" } } #include <sstream> #include <iostream> @@ -52,12 +49,19 @@ void test02() // pword ios.pword(1) = v; VERIFY( ios.pword(1) == v ); - - try + + // The library throws the new definition of std::ios::failure +#if _GLIBCXX_USE_CXX11_ABI + typedef std::ios_base::failure exception_type; +#else + typedef std::exception exception_type; +#endif + + try { v = ios.pword(max); } - catch(std::ios_base::failure& obj) + catch(exception_type&) { // Ok. VERIFY( ios.bad() ); @@ -69,14 +73,14 @@ void test02() VERIFY( v == 0 ); VERIFY( ios.pword(1) == v ); - + // max is different code path from max-1 v = &test; try { v = ios.pword(std::numeric_limits<int>::max()); } - catch(std::ios_base::failure& obj) + catch(exception_type&) { // Ok. VERIFY( ios.bad() ); @@ -90,12 +94,12 @@ void test02() // iword ios.iword(1) = 1; VERIFY( ios.iword(1) == 1 ); - - try + + try { l = ios.iword(max); } - catch(std::ios_base::failure& obj) + catch(exception_type&) { // Ok. VERIFY( ios.bad() ); @@ -110,11 +114,11 @@ void test02() // max is different code path from max-1 l = 1; - try + try { l = ios.iword(std::numeric_limits<int>::max()); } - catch(std::ios_base::failure& obj) + catch(exception_type&) { // Ok. VERIFY( ios.bad() ); |