Patchwork [v3] Fix libstdc++/44708

login
register
mail settings
Submitter Paolo Carlini
Date June 29, 2010, 10:05 a.m.
Message ID <4C29C57F.2040706@oracle.com>
Download mbox | patch
Permalink /patch/57259/
State New
Headers show

Comments

Paolo Carlini - June 29, 2010, 10:05 a.m.
Hi,

tested x86_64-linux, committed mainline and 4_5-branch.

Paolo.

//////////////////////
2010-06-29  Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/44708
	* include/ext/algorithm (copy_n): Qualify __copy_n call with
	__gnu_cxx::
	* testsuite/ext/rope/44708.cc: New.

Patch

Index: include/ext/algorithm
===================================================================
--- include/ext/algorithm	(revision 161522)
+++ include/ext/algorithm	(working copy)
@@ -123,8 +123,8 @@ 
       __glibcxx_function_requires(_OutputIteratorConcept<_OutputIterator,
 	    typename iterator_traits<_InputIterator>::value_type>)
 
-      return __copy_n(__first, __count, __result,
-		      std::__iterator_category(__first));
+      return __gnu_cxx::__copy_n(__first, __count, __result,
+				 std::__iterator_category(__first));
     }
 
   template<typename _InputIterator1, typename _InputIterator2>
Index: testsuite/ext/rope/44708.cc
===================================================================
--- testsuite/ext/rope/44708.cc	(revision 0)
+++ testsuite/ext/rope/44708.cc	(revision 0)
@@ -0,0 +1,31 @@ 
+// { dg-options "-std=gnu++0x" }
+// { dg-do compile }
+
+// Copyright (C) 2010 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
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <iostream>
+#include <ext/rope>
+
+using namespace std;
+
+// libstdc++/44708
+void test01()
+{
+  __gnu_cxx::crope line("test-test-test");
+  cout << line.c_str() << endl;
+}