From 6ff7e9643524b5cad27a5c180028908db73f1fd6 Mon Sep 17 00:00:00 2001 From: Paolo Carlini Date: Tue, 29 Jun 2010 10:03:36 +0000 Subject: [PATCH] re PR libstdc++/44708 (Enabling -std=c++0x results in ambiguous function overload in header) 2010-06-29 Paolo Carlini PR libstdc++/44708 * include/ext/algorithm (copy_n): Qualify __copy_n call with __gnu_cxx:: * testsuite/ext/rope/44708.cc: New. From-SVN: r161524 --- libstdc++-v3/ChangeLog | 7 ++++++ libstdc++-v3/include/ext/algorithm | 4 +-- libstdc++-v3/testsuite/ext/rope/44708.cc | 31 ++++++++++++++++++++++++ 3 files changed, 40 insertions(+), 2 deletions(-) create mode 100644 libstdc++-v3/testsuite/ext/rope/44708.cc diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 394d5602634..0feb6fd286f 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,10 @@ +2010-06-29 Paolo Carlini + + PR libstdc++/44708 + * include/ext/algorithm (copy_n): Qualify __copy_n call with + __gnu_cxx:: + * testsuite/ext/rope/44708.cc: New. + 2010-06-27 Paolo Carlini * include/bits/regex_compiler.h: Trivial formatting / stylistic fixes. diff --git a/libstdc++-v3/include/ext/algorithm b/libstdc++-v3/include/ext/algorithm index 5956e24bcd0..cac4ff70e8e 100644 --- a/libstdc++-v3/include/ext/algorithm +++ b/libstdc++-v3/include/ext/algorithm @@ -123,8 +123,8 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) __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 diff --git a/libstdc++-v3/testsuite/ext/rope/44708.cc b/libstdc++-v3/testsuite/ext/rope/44708.cc new file mode 100644 index 00000000000..ac2fa95c742 --- /dev/null +++ b/libstdc++-v3/testsuite/ext/rope/44708.cc @@ -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 +// . + +#include +#include + +using namespace std; + +// libstdc++/44708 +void test01() +{ + __gnu_cxx::crope line("test-test-test"); + cout << line.c_str() << endl; +}