Hi, long standing quirks. Tested x86_64-linux, committed.
Paolo. ////////////////////
2011-05-20 Paolo Carlini <paolo.carl...@oracle.com> * testsuite/21_strings/basic_string/requirements/exception/ propagation_consistent.cc: Fix vs POD-ness of value_type. * testsuite/21_strings/basic_string/requirements/exception/ basic.cc: Likewise. * testsuite/ext/vstring/requirements/exception/ propagation_consistent.cc: Likewise. * testsuite/ext/vstring/requirements/exception/basic.cc: Likewise.
Index: testsuite/21_strings/basic_string/requirements/exception/propagation_consistent.cc =================================================================== --- testsuite/21_strings/basic_string/requirements/exception/propagation_consistent.cc (revision 173985) +++ testsuite/21_strings/basic_string/requirements/exception/propagation_consistent.cc (working copy) @@ -1,10 +1,9 @@ // { dg-options "-std=gnu++0x" } // { dg-require-cstdint "" } -// { dg-do run { xfail *-*-* } } // 2009-09-14 Benjamin Kosnik <benja...@redhat.com> -// Copyright (C) 2009 Free Software Foundation, Inc. +// Copyright (C) 2009, 2010, 2011 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 @@ -27,7 +26,9 @@ void value() { - typedef __gnu_cxx::throw_value_limit value_type; + // NB: Instantiating with __gnu_cxx::throw_value_limit would be illegal, + // isn't a POD type. + typedef char value_type; typedef __gnu_cxx::throw_allocator_limit<value_type> allocator_type; typedef std::char_traits<value_type> traits_type; typedef std::basic_string<value_type, traits_type, allocator_type> test_type; Index: testsuite/21_strings/basic_string/requirements/exception/basic.cc =================================================================== --- testsuite/21_strings/basic_string/requirements/exception/basic.cc (revision 173985) +++ testsuite/21_strings/basic_string/requirements/exception/basic.cc (working copy) @@ -3,7 +3,7 @@ // 2009-11-10 Benjamin Kosnik <benja...@redhat.com> -// Copyright (C) 2009 Free Software Foundation, Inc. +// Copyright (C) 2009, 2010, 2011 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 @@ -26,7 +26,9 @@ void value() { - typedef __gnu_cxx::throw_value_limit value_type; + // NB: Instantiating with __gnu_cxx::throw_value_limit would be illegal, + // isn't a POD type. + typedef char value_type; typedef __gnu_cxx::throw_allocator_limit<value_type> allocator_type; typedef std::char_traits<value_type> traits_type; typedef std::basic_string<value_type, traits_type, allocator_type> test_type; Index: testsuite/ext/vstring/requirements/exception/propagation_consistent.cc =================================================================== --- testsuite/ext/vstring/requirements/exception/propagation_consistent.cc (revision 173985) +++ testsuite/ext/vstring/requirements/exception/propagation_consistent.cc (working copy) @@ -3,7 +3,7 @@ // 2009-09-14 Benjamin Kosnik <benja...@redhat.com> -// Copyright (C) 2009 Free Software Foundation, Inc. +// Copyright (C) 2009, 2010, 2011 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 @@ -26,14 +26,9 @@ void value() { -#if 1 + // NB: Instantiating with __gnu_cxx::throw_value_limit would be illegal, + // isn't a POD type. typedef char value_type; -#else - // XXX - // __gnu_cxx::__rc_string_base<>::_Rep::_M_alignâ with constructor - // not allowed in union - // typedef __gnu_cxx::throw_value_limit value_type; -#endif typedef __gnu_cxx::throw_allocator_limit<value_type> allocator_type; typedef std::char_traits<value_type> traits_type; Index: testsuite/ext/vstring/requirements/exception/basic.cc =================================================================== --- testsuite/ext/vstring/requirements/exception/basic.cc (revision 173985) +++ testsuite/ext/vstring/requirements/exception/basic.cc (working copy) @@ -3,7 +3,7 @@ // 2009-11-10 Benjamin Kosnik <benja...@redhat.com> -// Copyright (C) 2009 Free Software Foundation, Inc. +// Copyright (C) 2009, 2010, 2011 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 @@ -26,14 +26,9 @@ void value() { -#if 1 + // NB: Instantiating with __gnu_cxx::throw_value_limit would be illegal, + // isn't a POD type. typedef char value_type; -#else - // XXX - // __gnu_cxx::__rc_string_base<>::_Rep::_M_alignâ with constructor - // not allowed in union - // typedef __gnu_cxx::throw_value_limit value_type; -#endif typedef __gnu_cxx::throw_allocator_limit<value_type> allocator_type; typedef std::char_traits<value_type> traits_type;