Patchwork [v3] Fix some string exception tests

login
register
mail settings
Submitter Paolo Carlini
Date May 21, 2011, 12:32 a.m.
Message ID <4DD7081F.1010306@oracle.com>
Download mbox | patch
Permalink /patch/96676/
State New
Headers show

Comments

Paolo Carlini - May 21, 2011, 12:32 a.m.
Hi,

long standing quirks. Tested x86_64-linux, committed.

Paolo.

////////////////////
2011-05-20  Paolo Carlini  <paolo.carlini@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.

Patch

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