Patchwork [v3] Fix libstdc++/56834

login
register
mail settings
Submitter Paolo Carlini
Date April 3, 2013, 3:11 p.m.
Message ID <515C468C.2060205@oracle.com>
Download mbox | patch
Permalink /patch/233548/
State New
Headers show

Comments

Paolo Carlini - April 3, 2013, 3:11 p.m.
Hi,

admittedly, I'm still missing some details of the 
--enable-symvers=gnu-versioned-namespace configuration, but this is 
straightforweard enough. Applied mainline and 4_8-branch.

Thanks,
Paolo.

///////////////////////
2013-04-03  Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/56834
	* include/debug/array (tuple_size, tuple_element): Do not declare.
	* include/profile/array: Likewise.
	* testsuite/23_containers/array/tuple_interface/
	tuple_element_debug_neg.cc: Adjust dg-error line number.

Patch

Index: include/debug/array
===================================================================
--- include/debug/array	(revision 197411)
+++ include/debug/array	(working copy)
@@ -289,17 +289,11 @@ 
   // Tuple interface to class template array.
 
   /// tuple_size
-  template<typename _Tp> 
-    class tuple_size;
-
   template<typename _Tp, std::size_t _Nm>
     struct tuple_size<__debug::array<_Tp, _Nm>>
     : public integral_constant<std::size_t, _Nm> { };
 
   /// tuple_element
-  template<std::size_t _Int, typename _Tp>
-    class tuple_element;
-
   template<std::size_t _Int, typename _Tp, std::size_t _Nm>
     struct tuple_element<_Int, __debug::array<_Tp, _Nm>>
     {
Index: include/profile/array
===================================================================
--- include/profile/array	(revision 197411)
+++ include/profile/array	(working copy)
@@ -251,17 +251,11 @@ 
   // Tuple interface to class template array.
 
   /// tuple_size
-  template<typename _Tp> 
-    class tuple_size;
-
   template<typename _Tp, std::size_t _Nm>
     struct tuple_size<__profile::array<_Tp, _Nm>>
     : public integral_constant<std::size_t, _Nm> { };
 
   /// tuple_element
-  template<std::size_t _Int, typename _Tp>
-    class tuple_element;
-
   template<std::size_t _Int, typename _Tp, std::size_t _Nm>
     struct tuple_element<_Int, __profile::array<_Tp, _Nm>>
     {
Index: testsuite/23_containers/array/tuple_interface/tuple_element_debug_neg.cc
===================================================================
--- testsuite/23_containers/array/tuple_interface/tuple_element_debug_neg.cc	(revision 197411)
+++ testsuite/23_containers/array/tuple_interface/tuple_element_debug_neg.cc	(working copy)
@@ -23,4 +23,4 @@ 
 
 typedef std::tuple_element<1, std::array<int, 1>>::type type;
 
-// { dg-error "static assertion failed" "" { target *-*-* } 306 }
+// { dg-error "static assertion failed" "" { target *-*-* } 300 }