1 Upstream-Status: Inappropriate [Backport]
2 From 3329b7447ab817bb0374a689f3b381a5781ed8aa Mon Sep 17 00:00:00 2001
3 From: jyasskin <jyasskin@138bc75d-0d04-0410-961f-82ee72b054a4>
4 Date: Thu, 7 Apr 2011 04:50:23 +0000
5 Subject: [PATCH 076/200] Merge r172073 from trunk to the 4.6 release branch, to fix two
6 ambiguities between extensions and new C++0x functions.
8 Tested: bootstrap + make check-c++ on x86_64
10 libstdc++-v3/ChangeLog:
12 2011-04-06 Jeffrey Yasskin <jyasskin@google.com>
14 * include/ext/algorithm (is_sorted): In C++0x mode import from
16 * include/ext/numeric (iota): In C++0x mode import from
18 * testsuite/ext/is_sorted/cxx0x.cc: New.
19 * testsuite/ext/iota/cxx0x.cc: New.
23 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_6-branch@172074 138bc75d-0d04-0410-961f-82ee72b054a4
25 index 368b591..417a03a 100644
26 --- a/libstdc++-v3/include/ext/algorithm
27 +++ b/libstdc++-v3/include/ext/algorithm
28 @@ -471,6 +471,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
32 +#ifdef __GXX_EXPERIMENTAL_CXX0X__
33 + using std::is_sorted;
35 // is_sorted, a predicated testing whether a range is sorted in
36 // nondescending order. This is an extension, not part of the C++
38 @@ -526,6 +529,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
42 +#endif // __GXX_EXPERIMENTAL_CXX0X__
45 * @brief Find the median of three values.
46 diff --git a/libstdc++-v3/include/ext/numeric b/libstdc++-v3/include/ext/numeric
47 index d4a367f..b389177 100644
48 --- a/libstdc++-v3/include/ext/numeric
49 +++ b/libstdc++-v3/include/ext/numeric
50 @@ -123,6 +123,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
51 power(_Tp __x, _Integer __n)
52 { return __power(__x, __n); }
54 +#ifdef __GXX_EXPERIMENTAL_CXX0X__
58 * This is an SGI extension.
59 * @ingroup SGIextensions
60 @@ -141,9 +144,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
61 while (__first != __last)
62 *__first++ = __value++;
64 +#endif // __GXX_EXPERIMENTAL_CXX0X__
66 _GLIBCXX_END_NAMESPACE_VERSION
71 diff --git a/libstdc++-v3/testsuite/ext/iota/cxx0x.cc b/libstdc++-v3/testsuite/ext/iota/cxx0x.cc
73 index 0000000..84917ad
75 +++ b/libstdc++-v3/testsuite/ext/iota/cxx0x.cc
78 +// { dg-options "-std=gnu++0x" }
80 +// Copyright (C) 2011 Free Software Foundation, Inc.
82 +// This file is part of the GNU ISO C++ Library. This library is free
83 +// software; you can redistribute it and/or modify it under the
84 +// terms of the GNU General Public License as published by the
85 +// Free Software Foundation; either version 3, or (at your option)
86 +// any later version.
88 +// This library is distributed in the hope that it will be useful,
89 +// but WITHOUT ANY WARRANTY; without even the implied warranty of
90 +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
91 +// GNU General Public License for more details.
93 +// You should have received a copy of the GNU General Public License along
94 +// with this library; see the file COPYING3. If not see
95 +// <http://www.gnu.org/licenses/>.
97 +#include <ext/numeric>
102 + std::vector<int> v;
103 + iota(v.begin(), v.end(), 0);
105 diff --git a/libstdc++-v3/testsuite/ext/is_sorted/cxx0x.cc b/libstdc++-v3/testsuite/ext/is_sorted/cxx0x.cc
107 index 0000000..518716c
109 +++ b/libstdc++-v3/testsuite/ext/is_sorted/cxx0x.cc
111 +// { dg-do compile }
112 +// { dg-options "-std=gnu++0x" }
114 +// Copyright (C) 2011 Free Software Foundation, Inc.
116 +// This file is part of the GNU ISO C++ Library. This library is free
117 +// software; you can redistribute it and/or modify it under the
118 +// terms of the GNU General Public License as published by the
119 +// Free Software Foundation; either version 3, or (at your option)
120 +// any later version.
122 +// This library is distributed in the hope that it will be useful,
123 +// but WITHOUT ANY WARRANTY; without even the implied warranty of
124 +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
125 +// GNU General Public License for more details.
127 +// You should have received a copy of the GNU General Public License along
128 +// with this library; see the file COPYING3. If not see
129 +// <http://www.gnu.org/licenses/>.
131 +#include <ext/algorithm>
136 + std::vector<int> v;
137 + is_sorted(v.begin(), v.end());