Hi,
long standing quirks. Tested x86_64-linux, committed.
Paolo.
////////////////////
2011-05-20 Paolo Carlini <[email protected]>
* 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 <[email protected]>
-// 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 <[email protected]>
-// 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 <[email protected]>
-// 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 <[email protected]>
-// 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;