https://gcc.gnu.org/g:2ba702c966e3772d3d4e29e4b25beb7ef4dabf73

commit r17-638-g2ba702c966e3772d3d4e29e4b25beb7ef4dabf73
Author: Jonathan Wakely <[email protected]>
Date:   Wed Apr 1 23:45:03 2026 +0100

    libstdc++: Restore allocator constructor for std::packaged_task (P3503R3)
    
    WG21 approved P3503R3 (by me and Nicolas Morales) in Sofia, 2025. The
    change is to make std::promise and std::packaged_task be constructible
    with an allocator, but not to support general uses-allocator
    construction. So they do not have specializations of std::uses_allocator
    and do not have an allocator-extended version of every normal
    constructor (i.e., no allocator-extended move constructors and for
    std::packaged_task, no allocator-extended default constructor).
    
    Since the changes were originally proposed as resolutions to LWG 2095
    and LWG 3003, this treats the change as a DR for all standard versions
    from C++11 up. This means the constructor semantics are consistent (and
    sensible) for all standard versions.
    
    Because I pre-emptively implemented the original resolution of LWG 2095
    (in r0-112872-g376d7c51ece6f8), we need to remove the allocator-extended
    constructors of std::promise and std::packaged_task which I added but
    which are not in the working draft after the P3503R3 changes.
    
    To restore the packaged_task(allocator_arg_t, const Alloc&, F&&)
    constructor that was removed by LWG 2921 we just need to remove the #if
    that disabled it for C++17 and later.
    
    Finally, we need to remove the std::uses_allocator partial
    specialization for std::promise (removed by P3503R3) and the one for
    std::packaged_task (already disabled for C++17 and later by LWG 2976).
    
    libstdc++-v3/ChangeLog:
    
            * doc/xml/manual/evolution.xml: Document constructor changes.
            * doc/html/*: Regenerate.
            * include/std/future (uses_allocator): Remove specializations
            for std::promise and std::packaged_task.
            (promise(allocator_arg_t, const Alloc&, promise&&)): Remove
            constructor proposed for LWG 2095 but not in P3503R3.
            (packaged_task(allocator_arg_t, const Alloc&)): Likewise.
            (packaged_task(allocator_arg_t, const Alloc&, packaged_task&&)):
            Likewise.
            (packaged_task(allocator_arg_t, const Alloc&, F&&)): Restore
            constructor for C++20 and later.
            * testsuite/30_threads/packaged_task/uses_allocator.cc: Adjust
            expected result for static_assert.
            * testsuite/30_threads/promise/uses_allocator.cc: Likewise.
    
    Reviewed-by: Tomasz Kamiński <[email protected]>

Diff:
---
 libstdc++-v3/doc/html/index.html                   |  2 +-
 libstdc++-v3/doc/html/manual/api.html              |  4 ++
 libstdc++-v3/doc/html/manual/appendix.html         |  2 +-
 libstdc++-v3/doc/html/manual/appendix_porting.html |  2 +-
 libstdc++-v3/doc/html/manual/index.html            |  2 +-
 libstdc++-v3/doc/xml/manual/evolution.xml          |  8 +++
 libstdc++-v3/include/std/future                    | 76 ++++------------------
 .../30_threads/packaged_task/uses_allocator.cc     |  6 +-
 .../testsuite/30_threads/promise/uses_allocator.cc |  4 +-
 9 files changed, 34 insertions(+), 72 deletions(-)

diff --git a/libstdc++-v3/doc/html/index.html b/libstdc++-v3/doc/html/index.html
index 782f3bbc299c..857de004c951 100644
--- a/libstdc++-v3/doc/html/index.html
+++ b/libstdc++-v3/doc/html/index.html
@@ -142,7 +142,7 @@
     Existing tests
 </a></span></dt><dt><span class="section"><a 
href="manual/test.html#test.exception.safety.containers">
 C++11 Requirements Test Sequence Descriptions
-</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="section"><a 
href="manual/abi.html">ABI Policy and 
Guidelines</a></span></dt><dd><dl><dt><span class="section"><a 
href="manual/abi.html#abi.cxx_interface">The C++ 
Interface</a></span></dt><dt><span class="section"><a 
href="manual/abi.html#abi.versioning">Versioning</a></span></dt><dd><dl><dt><span
 class="section"><a 
href="manual/abi.html#abi.versioning.goals">Goals</a></span></dt><dt><span 
class="section"><a 
href="manual/abi.html#abi.versioning.history">History</a></span></dt><dt><span 
class="section"><a 
href="manual/abi.html#abi.versioning.prereq">Prerequisites</a></span></dt><dt><span
 class="section"><a 
href="manual/abi.html#abi.versioning.config">Configuring</a></span></dt><dt><span
 class="section"><a href="manual/abi.html#abi.versioning.active">Checking 
Active</a></span></dt></dl></dd><dt><span class="section"><a 
href="manual/abi.html#abi.changes_allowed">Allowed 
Changes</a></span></dt><dt><span class="section"><a hre
 f="manual/abi.html#abi.changes_no">Prohibited Changes</a></span></dt><dt><span 
class="section"><a 
href="manual/abi.html#abi.impl">Implementation</a></span></dt><dt><span 
class="section"><a 
href="manual/abi.html#abi.testing">Testing</a></span></dt><dd><dl><dt><span 
class="section"><a href="manual/abi.html#abi.testing.single">Single ABI 
Testing</a></span></dt><dt><span class="section"><a 
href="manual/abi.html#abi.testing.multi">Multiple ABI 
Testing</a></span></dt></dl></dd><dt><span class="section"><a 
href="manual/abi.html#abi.issues">Outstanding 
Issues</a></span></dt></dl></dd><dt><span class="section"><a 
href="manual/api.html">API Evolution and Deprecation 
History</a></span></dt><dd><dl><dt><span class="section"><a 
href="manual/api.html#api.rel_300"><code 
class="constant">3.0</code></a></span></dt><dt><span class="section"><a 
href="manual/api.html#api.rel_310"><code 
class="constant">3.1</code></a></span></dt><dt><span class="section"><a 
href="manual/api.html#api.rel_320"><code class
 ="constant">3.2</code></a></span></dt><dt><span class="section"><a 
href="manual/api.html#api.rel_330"><code 
class="constant">3.3</code></a></span></dt><dt><span class="section"><a 
href="manual/api.html#api.rel_340"><code 
class="constant">3.4</code></a></span></dt><dt><span class="section"><a 
href="manual/api.html#api.rel_400"><code 
class="constant">4.0</code></a></span></dt><dt><span class="section"><a 
href="manual/api.html#api.rel_410"><code 
class="constant">4.1</code></a></span></dt><dt><span class="section"><a 
href="manual/api.html#api.rel_420"><code 
class="constant">4.2</code></a></span></dt><dt><span class="section"><a 
href="manual/api.html#api.rel_430"><code 
class="constant">4.3</code></a></span></dt><dt><span class="section"><a 
href="manual/api.html#api.rel_440"><code 
class="constant">4.4</code></a></span></dt><dt><span class="section"><a 
href="manual/api.html#api.rel_450"><code 
class="constant">4.5</code></a></span></dt><dt><span class="section"><a 
href="manual/api.html#api.
 rel_460"><code class="constant">4.6</code></a></span></dt><dt><span 
class="section"><a href="manual/api.html#api.rel_470"><code 
class="constant">4.7</code></a></span></dt><dt><span class="section"><a 
href="manual/api.html#api.rel_480"><code 
class="constant">4.8</code></a></span></dt><dt><span class="section"><a 
href="manual/api.html#api.rel_490"><code 
class="constant">4.9</code></a></span></dt><dt><span class="section"><a 
href="manual/api.html#api.rel_51"><code 
class="constant">5</code></a></span></dt><dd><dl><dt><span class="section"><a 
href="manual/api.html#api.rel_53"><code 
class="constant">5.3</code></a></span></dt></dl></dd><dt><span 
class="section"><a href="manual/api.html#api.rel_61"><code 
class="constant">6</code></a></span></dt><dt><span class="section"><a 
href="manual/api.html#api.rel_71"><code 
class="constant">7</code></a></span></dt><dd><dl><dt><span class="section"><a 
href="manual/api.html#api.rel_72"><code 
class="constant">7.2</code></a></span></dt><dt><span class="sec
 tion"><a href="manual/api.html#api.rel_73"><code 
class="constant">7.3</code></a></span></dt></dl></dd><dt><span 
class="section"><a href="manual/api.html#api.rel_81"><code 
class="constant">8</code></a></span></dt><dt><span class="section"><a 
href="manual/api.html#api.rel_91"><code 
class="constant">9</code></a></span></dt><dt><span class="section"><a 
href="manual/api.html#api.rel_101"><code 
class="constant">10</code></a></span></dt><dt><span class="section"><a 
href="manual/api.html#api.rel_111"><code 
class="constant">11</code></a></span></dt><dt><span class="section"><a 
href="manual/api.html#api.rel_121"><code 
class="constant">12</code></a></span></dt><dt><span class="section"><a 
href="manual/api.html#api.rel_123"><code 
class="constant">12.3</code></a></span></dt><dt><span class="section"><a 
href="manual/api.html#api.rel_131"><code 
class="constant">13</code></a></span></dt><dt><span class="section"><a 
href="manual/api.html#api.rel_133"><code 
class="constant">13.3</code></a></span></dt
 ><dt><span class="section"><a href="manual/api.html#api.rel_141"><code 
 >class="constant">14</code></a></span></dt><dt><span class="section"><a 
 >href="manual/api.html#api.rel_151"><code 
 >class="constant">15</code></a></span></dt><dt><span class="section"><a 
 >href="manual/api.html#api.rel_16"><code 
 >class="constant">16</code></a></span></dt></dl></dd><dt><span 
 >class="section"><a href="manual/backwards.html">Backwards 
 >Compatibility</a></span></dt><dd><dl><dt><span class="section"><a 
 >href="manual/backwards.html#backwards.first">First</a></span></dt><dt><span 
 >class="section"><a 
 >href="manual/backwards.html#backwards.second">Second</a></span></dt><dt><span 
 >class="section"><a 
 >href="manual/backwards.html#backwards.third">Third</a></span></dt><dd><dl><dt><span
 > class="section"><a 
 >href="manual/backwards.html#backwards.third.headers">Pre-ISO headers 
 >removed</a></span></dt><dt><span class="section"><a 
 >href="manual/backwards.html#backwards.third.hash">Extension headers hash_map, 
 >hash_set moved to ext o
 r backwards</a></span></dt><dt><span class="section"><a 
href="manual/backwards.html#backwards.third.nocreate_noreplace">No <code 
class="code">ios::nocreate/ios::noreplace</code>.
+</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="section"><a 
href="manual/abi.html">ABI Policy and 
Guidelines</a></span></dt><dd><dl><dt><span class="section"><a 
href="manual/abi.html#abi.cxx_interface">The C++ 
Interface</a></span></dt><dt><span class="section"><a 
href="manual/abi.html#abi.versioning">Versioning</a></span></dt><dd><dl><dt><span
 class="section"><a 
href="manual/abi.html#abi.versioning.goals">Goals</a></span></dt><dt><span 
class="section"><a 
href="manual/abi.html#abi.versioning.history">History</a></span></dt><dt><span 
class="section"><a 
href="manual/abi.html#abi.versioning.prereq">Prerequisites</a></span></dt><dt><span
 class="section"><a 
href="manual/abi.html#abi.versioning.config">Configuring</a></span></dt><dt><span
 class="section"><a href="manual/abi.html#abi.versioning.active">Checking 
Active</a></span></dt></dl></dd><dt><span class="section"><a 
href="manual/abi.html#abi.changes_allowed">Allowed 
Changes</a></span></dt><dt><span class="section"><a hre
 f="manual/abi.html#abi.changes_no">Prohibited Changes</a></span></dt><dt><span 
class="section"><a 
href="manual/abi.html#abi.impl">Implementation</a></span></dt><dt><span 
class="section"><a 
href="manual/abi.html#abi.testing">Testing</a></span></dt><dd><dl><dt><span 
class="section"><a href="manual/abi.html#abi.testing.single">Single ABI 
Testing</a></span></dt><dt><span class="section"><a 
href="manual/abi.html#abi.testing.multi">Multiple ABI 
Testing</a></span></dt></dl></dd><dt><span class="section"><a 
href="manual/abi.html#abi.issues">Outstanding 
Issues</a></span></dt></dl></dd><dt><span class="section"><a 
href="manual/api.html">API Evolution and Deprecation 
History</a></span></dt><dd><dl><dt><span class="section"><a 
href="manual/api.html#api.rel_300"><code 
class="constant">3.0</code></a></span></dt><dt><span class="section"><a 
href="manual/api.html#api.rel_310"><code 
class="constant">3.1</code></a></span></dt><dt><span class="section"><a 
href="manual/api.html#api.rel_320"><code class
 ="constant">3.2</code></a></span></dt><dt><span class="section"><a 
href="manual/api.html#api.rel_330"><code 
class="constant">3.3</code></a></span></dt><dt><span class="section"><a 
href="manual/api.html#api.rel_340"><code 
class="constant">3.4</code></a></span></dt><dt><span class="section"><a 
href="manual/api.html#api.rel_400"><code 
class="constant">4.0</code></a></span></dt><dt><span class="section"><a 
href="manual/api.html#api.rel_410"><code 
class="constant">4.1</code></a></span></dt><dt><span class="section"><a 
href="manual/api.html#api.rel_420"><code 
class="constant">4.2</code></a></span></dt><dt><span class="section"><a 
href="manual/api.html#api.rel_430"><code 
class="constant">4.3</code></a></span></dt><dt><span class="section"><a 
href="manual/api.html#api.rel_440"><code 
class="constant">4.4</code></a></span></dt><dt><span class="section"><a 
href="manual/api.html#api.rel_450"><code 
class="constant">4.5</code></a></span></dt><dt><span class="section"><a 
href="manual/api.html#api.
 rel_460"><code class="constant">4.6</code></a></span></dt><dt><span 
class="section"><a href="manual/api.html#api.rel_470"><code 
class="constant">4.7</code></a></span></dt><dt><span class="section"><a 
href="manual/api.html#api.rel_480"><code 
class="constant">4.8</code></a></span></dt><dt><span class="section"><a 
href="manual/api.html#api.rel_490"><code 
class="constant">4.9</code></a></span></dt><dt><span class="section"><a 
href="manual/api.html#api.rel_51"><code 
class="constant">5</code></a></span></dt><dd><dl><dt><span class="section"><a 
href="manual/api.html#api.rel_53"><code 
class="constant">5.3</code></a></span></dt></dl></dd><dt><span 
class="section"><a href="manual/api.html#api.rel_61"><code 
class="constant">6</code></a></span></dt><dt><span class="section"><a 
href="manual/api.html#api.rel_71"><code 
class="constant">7</code></a></span></dt><dd><dl><dt><span class="section"><a 
href="manual/api.html#api.rel_72"><code 
class="constant">7.2</code></a></span></dt><dt><span class="sec
 tion"><a href="manual/api.html#api.rel_73"><code 
class="constant">7.3</code></a></span></dt></dl></dd><dt><span 
class="section"><a href="manual/api.html#api.rel_81"><code 
class="constant">8</code></a></span></dt><dt><span class="section"><a 
href="manual/api.html#api.rel_91"><code 
class="constant">9</code></a></span></dt><dt><span class="section"><a 
href="manual/api.html#api.rel_101"><code 
class="constant">10</code></a></span></dt><dt><span class="section"><a 
href="manual/api.html#api.rel_111"><code 
class="constant">11</code></a></span></dt><dt><span class="section"><a 
href="manual/api.html#api.rel_121"><code 
class="constant">12</code></a></span></dt><dt><span class="section"><a 
href="manual/api.html#api.rel_123"><code 
class="constant">12.3</code></a></span></dt><dt><span class="section"><a 
href="manual/api.html#api.rel_131"><code 
class="constant">13</code></a></span></dt><dt><span class="section"><a 
href="manual/api.html#api.rel_133"><code 
class="constant">13.3</code></a></span></dt
 ><dt><span class="section"><a href="manual/api.html#api.rel_141"><code 
 >class="constant">14</code></a></span></dt><dt><span class="section"><a 
 >href="manual/api.html#api.rel_151"><code 
 >class="constant">15</code></a></span></dt><dt><span class="section"><a 
 >href="manual/api.html#api.rel_16"><code 
 >class="constant">16</code></a></span></dt><dt><span class="section"><a 
 >href="manual/api.html#api.rel_17"><code 
 >class="constant">17</code></a></span></dt></dl></dd><dt><span 
 >class="section"><a href="manual/backwards.html">Backwards 
 >Compatibility</a></span></dt><dd><dl><dt><span class="section"><a 
 >href="manual/backwards.html#backwards.first">First</a></span></dt><dt><span 
 >class="section"><a 
 >href="manual/backwards.html#backwards.second">Second</a></span></dt><dt><span 
 >class="section"><a 
 >href="manual/backwards.html#backwards.third">Third</a></span></dt><dd><dl><dt><span
 > class="section"><a 
 >href="manual/backwards.html#backwards.third.headers">Pre-ISO headers 
 >removed</a></span></dt><dt><span class="se
 ction"><a href="manual/backwards.html#backwards.third.hash">Extension headers 
hash_map, hash_set moved to ext or backwards</a></span></dt><dt><span 
class="section"><a 
href="manual/backwards.html#backwards.third.nocreate_noreplace">No <code 
class="code">ios::nocreate/ios::noreplace</code>.
 </a></span></dt><dt><span class="section"><a 
href="manual/backwards.html#backwards.third.streamattach">
 No <code class="code">stream::attach(int fd)</code>
 </a></span></dt><dt><span class="section"><a 
href="manual/backwards.html#backwards.third.support_cxx98">
diff --git a/libstdc++-v3/doc/html/manual/api.html 
b/libstdc++-v3/doc/html/manual/api.html
index f004ddc166d8..4fce14127ef8 100644
--- a/libstdc++-v3/doc/html/manual/api.html
+++ b/libstdc++-v3/doc/html/manual/api.html
@@ -515,4 +515,8 @@ Deprecated the non-standard overload of <code 
class="code">std::fabs</code> for
 </p><p>
 Made <code class="code">std::is_integral_v&lt;__int128&gt;</code> true for 
strict
 <code class="code">-std</code> dialects.
+</p></div><div class="section"><div class="titlepage"><div><div><h3 
class="title"><a id="api.rel_17"></a><code 
class="constant">17</code></h3></div></div></div><p>
+Removed allocator-extended constructors and support for uses-allocator
+construction from <code class="classname">std::promise</code> and
+<code class="classname">std::packaged_task</code>.
 </p></div></div><div class="navfooter"><hr /><table width="100%" 
summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" 
href="abi.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" 
href="appendix_porting.html">Up</a></td><td width="40%" align="right"> <a 
accesskey="n" href="backwards.html">Next</a></td></tr><tr><td width="40%" 
align="left" valign="top">ABI Policy and Guidelines </td><td width="20%" 
align="center"><a accesskey="h" href="../index.html">Home</a></td><td 
width="40%" align="right" valign="top"> Backwards 
Compatibility</td></tr></table></div></body></html>
\ No newline at end of file
diff --git a/libstdc++-v3/doc/html/manual/appendix.html 
b/libstdc++-v3/doc/html/manual/appendix.html
index e71ea5423a0a..bb9184bcb217 100644
--- a/libstdc++-v3/doc/html/manual/appendix.html
+++ b/libstdc++-v3/doc/html/manual/appendix.html
@@ -16,7 +16,7 @@
     Existing tests
 </a></span></dt><dt><span class="section"><a 
href="test.html#test.exception.safety.containers">
 C++11 Requirements Test Sequence Descriptions
-</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="section"><a 
href="abi.html">ABI Policy and Guidelines</a></span></dt><dd><dl><dt><span 
class="section"><a href="abi.html#abi.cxx_interface">The C++ 
Interface</a></span></dt><dt><span class="section"><a 
href="abi.html#abi.versioning">Versioning</a></span></dt><dd><dl><dt><span 
class="section"><a 
href="abi.html#abi.versioning.goals">Goals</a></span></dt><dt><span 
class="section"><a 
href="abi.html#abi.versioning.history">History</a></span></dt><dt><span 
class="section"><a 
href="abi.html#abi.versioning.prereq">Prerequisites</a></span></dt><dt><span 
class="section"><a 
href="abi.html#abi.versioning.config">Configuring</a></span></dt><dt><span 
class="section"><a href="abi.html#abi.versioning.active">Checking 
Active</a></span></dt></dl></dd><dt><span class="section"><a 
href="abi.html#abi.changes_allowed">Allowed Changes</a></span></dt><dt><span 
class="section"><a href="abi.html#abi.changes_no">Prohibited 
Changes</a></span></dt><
 dt><span class="section"><a 
href="abi.html#abi.impl">Implementation</a></span></dt><dt><span 
class="section"><a 
href="abi.html#abi.testing">Testing</a></span></dt><dd><dl><dt><span 
class="section"><a href="abi.html#abi.testing.single">Single ABI 
Testing</a></span></dt><dt><span class="section"><a 
href="abi.html#abi.testing.multi">Multiple ABI 
Testing</a></span></dt></dl></dd><dt><span class="section"><a 
href="abi.html#abi.issues">Outstanding 
Issues</a></span></dt></dl></dd><dt><span class="section"><a 
href="api.html">API Evolution and Deprecation 
History</a></span></dt><dd><dl><dt><span class="section"><a 
href="api.html#api.rel_300"><code 
class="constant">3.0</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_310"><code 
class="constant">3.1</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_320"><code 
class="constant">3.2</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_330"><code class="constant">3.3</code></a><
 /span></dt><dt><span class="section"><a href="api.html#api.rel_340"><code 
class="constant">3.4</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_400"><code 
class="constant">4.0</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_410"><code 
class="constant">4.1</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_420"><code 
class="constant">4.2</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_430"><code 
class="constant">4.3</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_440"><code 
class="constant">4.4</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_450"><code 
class="constant">4.5</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_460"><code 
class="constant">4.6</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_470"><code 
class="constant">4.7</code></a></span></dt><dt><span class="section"><a hre
 f="api.html#api.rel_480"><code 
class="constant">4.8</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_490"><code 
class="constant">4.9</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_51"><code 
class="constant">5</code></a></span></dt><dd><dl><dt><span class="section"><a 
href="api.html#api.rel_53"><code 
class="constant">5.3</code></a></span></dt></dl></dd><dt><span 
class="section"><a href="api.html#api.rel_61"><code 
class="constant">6</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_71"><code 
class="constant">7</code></a></span></dt><dd><dl><dt><span class="section"><a 
href="api.html#api.rel_72"><code 
class="constant">7.2</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_73"><code 
class="constant">7.3</code></a></span></dt></dl></dd><dt><span 
class="section"><a href="api.html#api.rel_81"><code 
class="constant">8</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_91
 "><code class="constant">9</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_101"><code 
class="constant">10</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_111"><code 
class="constant">11</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_121"><code 
class="constant">12</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_123"><code 
class="constant">12.3</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_131"><code 
class="constant">13</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_133"><code 
class="constant">13.3</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_141"><code 
class="constant">14</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_151"><code 
class="constant">15</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_16"><code class="constant">16</code></a></span></dt>
 </dl></dd><dt><span class="section"><a href="backwards.html">Backwards 
Compatibility</a></span></dt><dd><dl><dt><span class="section"><a 
href="backwards.html#backwards.first">First</a></span></dt><dt><span 
class="section"><a 
href="backwards.html#backwards.second">Second</a></span></dt><dt><span 
class="section"><a 
href="backwards.html#backwards.third">Third</a></span></dt><dd><dl><dt><span 
class="section"><a href="backwards.html#backwards.third.headers">Pre-ISO 
headers removed</a></span></dt><dt><span class="section"><a 
href="backwards.html#backwards.third.hash">Extension headers hash_map, hash_set 
moved to ext or backwards</a></span></dt><dt><span class="section"><a 
href="backwards.html#backwards.third.nocreate_noreplace">No <code 
class="code">ios::nocreate/ios::noreplace</code>.
+</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="section"><a 
href="abi.html">ABI Policy and Guidelines</a></span></dt><dd><dl><dt><span 
class="section"><a href="abi.html#abi.cxx_interface">The C++ 
Interface</a></span></dt><dt><span class="section"><a 
href="abi.html#abi.versioning">Versioning</a></span></dt><dd><dl><dt><span 
class="section"><a 
href="abi.html#abi.versioning.goals">Goals</a></span></dt><dt><span 
class="section"><a 
href="abi.html#abi.versioning.history">History</a></span></dt><dt><span 
class="section"><a 
href="abi.html#abi.versioning.prereq">Prerequisites</a></span></dt><dt><span 
class="section"><a 
href="abi.html#abi.versioning.config">Configuring</a></span></dt><dt><span 
class="section"><a href="abi.html#abi.versioning.active">Checking 
Active</a></span></dt></dl></dd><dt><span class="section"><a 
href="abi.html#abi.changes_allowed">Allowed Changes</a></span></dt><dt><span 
class="section"><a href="abi.html#abi.changes_no">Prohibited 
Changes</a></span></dt><
 dt><span class="section"><a 
href="abi.html#abi.impl">Implementation</a></span></dt><dt><span 
class="section"><a 
href="abi.html#abi.testing">Testing</a></span></dt><dd><dl><dt><span 
class="section"><a href="abi.html#abi.testing.single">Single ABI 
Testing</a></span></dt><dt><span class="section"><a 
href="abi.html#abi.testing.multi">Multiple ABI 
Testing</a></span></dt></dl></dd><dt><span class="section"><a 
href="abi.html#abi.issues">Outstanding 
Issues</a></span></dt></dl></dd><dt><span class="section"><a 
href="api.html">API Evolution and Deprecation 
History</a></span></dt><dd><dl><dt><span class="section"><a 
href="api.html#api.rel_300"><code 
class="constant">3.0</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_310"><code 
class="constant">3.1</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_320"><code 
class="constant">3.2</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_330"><code class="constant">3.3</code></a><
 /span></dt><dt><span class="section"><a href="api.html#api.rel_340"><code 
class="constant">3.4</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_400"><code 
class="constant">4.0</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_410"><code 
class="constant">4.1</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_420"><code 
class="constant">4.2</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_430"><code 
class="constant">4.3</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_440"><code 
class="constant">4.4</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_450"><code 
class="constant">4.5</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_460"><code 
class="constant">4.6</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_470"><code 
class="constant">4.7</code></a></span></dt><dt><span class="section"><a hre
 f="api.html#api.rel_480"><code 
class="constant">4.8</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_490"><code 
class="constant">4.9</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_51"><code 
class="constant">5</code></a></span></dt><dd><dl><dt><span class="section"><a 
href="api.html#api.rel_53"><code 
class="constant">5.3</code></a></span></dt></dl></dd><dt><span 
class="section"><a href="api.html#api.rel_61"><code 
class="constant">6</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_71"><code 
class="constant">7</code></a></span></dt><dd><dl><dt><span class="section"><a 
href="api.html#api.rel_72"><code 
class="constant">7.2</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_73"><code 
class="constant">7.3</code></a></span></dt></dl></dd><dt><span 
class="section"><a href="api.html#api.rel_81"><code 
class="constant">8</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_91
 "><code class="constant">9</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_101"><code 
class="constant">10</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_111"><code 
class="constant">11</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_121"><code 
class="constant">12</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_123"><code 
class="constant">12.3</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_131"><code 
class="constant">13</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_133"><code 
class="constant">13.3</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_141"><code 
class="constant">14</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_151"><code 
class="constant">15</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_16"><code class="constant">16</code></a></span></dt>
 <dt><span class="section"><a href="api.html#api.rel_17"><code 
class="constant">17</code></a></span></dt></dl></dd><dt><span 
class="section"><a href="backwards.html">Backwards 
Compatibility</a></span></dt><dd><dl><dt><span class="section"><a 
href="backwards.html#backwards.first">First</a></span></dt><dt><span 
class="section"><a 
href="backwards.html#backwards.second">Second</a></span></dt><dt><span 
class="section"><a 
href="backwards.html#backwards.third">Third</a></span></dt><dd><dl><dt><span 
class="section"><a href="backwards.html#backwards.third.headers">Pre-ISO 
headers removed</a></span></dt><dt><span class="section"><a 
href="backwards.html#backwards.third.hash">Extension headers hash_map, hash_set 
moved to ext or backwards</a></span></dt><dt><span class="section"><a 
href="backwards.html#backwards.third.nocreate_noreplace">No <code 
class="code">ios::nocreate/ios::noreplace</code>.
 </a></span></dt><dt><span class="section"><a 
href="backwards.html#backwards.third.streamattach">
 No <code class="code">stream::attach(int fd)</code>
 </a></span></dt><dt><span class="section"><a 
href="backwards.html#backwards.third.support_cxx98">
diff --git a/libstdc++-v3/doc/html/manual/appendix_porting.html 
b/libstdc++-v3/doc/html/manual/appendix_porting.html
index dc46db3086a6..028c766b5345 100644
--- a/libstdc++-v3/doc/html/manual/appendix_porting.html
+++ b/libstdc++-v3/doc/html/manual/appendix_porting.html
@@ -14,7 +14,7 @@
     Existing tests
 </a></span></dt><dt><span class="section"><a 
href="test.html#test.exception.safety.containers">
 C++11 Requirements Test Sequence Descriptions
-</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="section"><a 
href="abi.html">ABI Policy and Guidelines</a></span></dt><dd><dl><dt><span 
class="section"><a href="abi.html#abi.cxx_interface">The C++ 
Interface</a></span></dt><dt><span class="section"><a 
href="abi.html#abi.versioning">Versioning</a></span></dt><dd><dl><dt><span 
class="section"><a 
href="abi.html#abi.versioning.goals">Goals</a></span></dt><dt><span 
class="section"><a 
href="abi.html#abi.versioning.history">History</a></span></dt><dt><span 
class="section"><a 
href="abi.html#abi.versioning.prereq">Prerequisites</a></span></dt><dt><span 
class="section"><a 
href="abi.html#abi.versioning.config">Configuring</a></span></dt><dt><span 
class="section"><a href="abi.html#abi.versioning.active">Checking 
Active</a></span></dt></dl></dd><dt><span class="section"><a 
href="abi.html#abi.changes_allowed">Allowed Changes</a></span></dt><dt><span 
class="section"><a href="abi.html#abi.changes_no">Prohibited 
Changes</a></span></dt><
 dt><span class="section"><a 
href="abi.html#abi.impl">Implementation</a></span></dt><dt><span 
class="section"><a 
href="abi.html#abi.testing">Testing</a></span></dt><dd><dl><dt><span 
class="section"><a href="abi.html#abi.testing.single">Single ABI 
Testing</a></span></dt><dt><span class="section"><a 
href="abi.html#abi.testing.multi">Multiple ABI 
Testing</a></span></dt></dl></dd><dt><span class="section"><a 
href="abi.html#abi.issues">Outstanding 
Issues</a></span></dt></dl></dd><dt><span class="section"><a 
href="api.html">API Evolution and Deprecation 
History</a></span></dt><dd><dl><dt><span class="section"><a 
href="api.html#api.rel_300"><code 
class="constant">3.0</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_310"><code 
class="constant">3.1</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_320"><code 
class="constant">3.2</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_330"><code class="constant">3.3</code></a><
 /span></dt><dt><span class="section"><a href="api.html#api.rel_340"><code 
class="constant">3.4</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_400"><code 
class="constant">4.0</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_410"><code 
class="constant">4.1</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_420"><code 
class="constant">4.2</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_430"><code 
class="constant">4.3</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_440"><code 
class="constant">4.4</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_450"><code 
class="constant">4.5</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_460"><code 
class="constant">4.6</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_470"><code 
class="constant">4.7</code></a></span></dt><dt><span class="section"><a hre
 f="api.html#api.rel_480"><code 
class="constant">4.8</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_490"><code 
class="constant">4.9</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_51"><code 
class="constant">5</code></a></span></dt><dd><dl><dt><span class="section"><a 
href="api.html#api.rel_53"><code 
class="constant">5.3</code></a></span></dt></dl></dd><dt><span 
class="section"><a href="api.html#api.rel_61"><code 
class="constant">6</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_71"><code 
class="constant">7</code></a></span></dt><dd><dl><dt><span class="section"><a 
href="api.html#api.rel_72"><code 
class="constant">7.2</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_73"><code 
class="constant">7.3</code></a></span></dt></dl></dd><dt><span 
class="section"><a href="api.html#api.rel_81"><code 
class="constant">8</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_91
 "><code class="constant">9</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_101"><code 
class="constant">10</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_111"><code 
class="constant">11</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_121"><code 
class="constant">12</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_123"><code 
class="constant">12.3</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_131"><code 
class="constant">13</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_133"><code 
class="constant">13.3</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_141"><code 
class="constant">14</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_151"><code 
class="constant">15</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_16"><code class="constant">16</code></a></span></dt>
 </dl></dd><dt><span class="section"><a href="backwards.html">Backwards 
Compatibility</a></span></dt><dd><dl><dt><span class="section"><a 
href="backwards.html#backwards.first">First</a></span></dt><dt><span 
class="section"><a 
href="backwards.html#backwards.second">Second</a></span></dt><dt><span 
class="section"><a 
href="backwards.html#backwards.third">Third</a></span></dt><dd><dl><dt><span 
class="section"><a href="backwards.html#backwards.third.headers">Pre-ISO 
headers removed</a></span></dt><dt><span class="section"><a 
href="backwards.html#backwards.third.hash">Extension headers hash_map, hash_set 
moved to ext or backwards</a></span></dt><dt><span class="section"><a 
href="backwards.html#backwards.third.nocreate_noreplace">No <code 
class="code">ios::nocreate/ios::noreplace</code>.
+</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="section"><a 
href="abi.html">ABI Policy and Guidelines</a></span></dt><dd><dl><dt><span 
class="section"><a href="abi.html#abi.cxx_interface">The C++ 
Interface</a></span></dt><dt><span class="section"><a 
href="abi.html#abi.versioning">Versioning</a></span></dt><dd><dl><dt><span 
class="section"><a 
href="abi.html#abi.versioning.goals">Goals</a></span></dt><dt><span 
class="section"><a 
href="abi.html#abi.versioning.history">History</a></span></dt><dt><span 
class="section"><a 
href="abi.html#abi.versioning.prereq">Prerequisites</a></span></dt><dt><span 
class="section"><a 
href="abi.html#abi.versioning.config">Configuring</a></span></dt><dt><span 
class="section"><a href="abi.html#abi.versioning.active">Checking 
Active</a></span></dt></dl></dd><dt><span class="section"><a 
href="abi.html#abi.changes_allowed">Allowed Changes</a></span></dt><dt><span 
class="section"><a href="abi.html#abi.changes_no">Prohibited 
Changes</a></span></dt><
 dt><span class="section"><a 
href="abi.html#abi.impl">Implementation</a></span></dt><dt><span 
class="section"><a 
href="abi.html#abi.testing">Testing</a></span></dt><dd><dl><dt><span 
class="section"><a href="abi.html#abi.testing.single">Single ABI 
Testing</a></span></dt><dt><span class="section"><a 
href="abi.html#abi.testing.multi">Multiple ABI 
Testing</a></span></dt></dl></dd><dt><span class="section"><a 
href="abi.html#abi.issues">Outstanding 
Issues</a></span></dt></dl></dd><dt><span class="section"><a 
href="api.html">API Evolution and Deprecation 
History</a></span></dt><dd><dl><dt><span class="section"><a 
href="api.html#api.rel_300"><code 
class="constant">3.0</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_310"><code 
class="constant">3.1</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_320"><code 
class="constant">3.2</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_330"><code class="constant">3.3</code></a><
 /span></dt><dt><span class="section"><a href="api.html#api.rel_340"><code 
class="constant">3.4</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_400"><code 
class="constant">4.0</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_410"><code 
class="constant">4.1</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_420"><code 
class="constant">4.2</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_430"><code 
class="constant">4.3</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_440"><code 
class="constant">4.4</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_450"><code 
class="constant">4.5</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_460"><code 
class="constant">4.6</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_470"><code 
class="constant">4.7</code></a></span></dt><dt><span class="section"><a hre
 f="api.html#api.rel_480"><code 
class="constant">4.8</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_490"><code 
class="constant">4.9</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_51"><code 
class="constant">5</code></a></span></dt><dd><dl><dt><span class="section"><a 
href="api.html#api.rel_53"><code 
class="constant">5.3</code></a></span></dt></dl></dd><dt><span 
class="section"><a href="api.html#api.rel_61"><code 
class="constant">6</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_71"><code 
class="constant">7</code></a></span></dt><dd><dl><dt><span class="section"><a 
href="api.html#api.rel_72"><code 
class="constant">7.2</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_73"><code 
class="constant">7.3</code></a></span></dt></dl></dd><dt><span 
class="section"><a href="api.html#api.rel_81"><code 
class="constant">8</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_91
 "><code class="constant">9</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_101"><code 
class="constant">10</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_111"><code 
class="constant">11</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_121"><code 
class="constant">12</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_123"><code 
class="constant">12.3</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_131"><code 
class="constant">13</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_133"><code 
class="constant">13.3</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_141"><code 
class="constant">14</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_151"><code 
class="constant">15</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_16"><code class="constant">16</code></a></span></dt>
 <dt><span class="section"><a href="api.html#api.rel_17"><code 
class="constant">17</code></a></span></dt></dl></dd><dt><span 
class="section"><a href="backwards.html">Backwards 
Compatibility</a></span></dt><dd><dl><dt><span class="section"><a 
href="backwards.html#backwards.first">First</a></span></dt><dt><span 
class="section"><a 
href="backwards.html#backwards.second">Second</a></span></dt><dt><span 
class="section"><a 
href="backwards.html#backwards.third">Third</a></span></dt><dd><dl><dt><span 
class="section"><a href="backwards.html#backwards.third.headers">Pre-ISO 
headers removed</a></span></dt><dt><span class="section"><a 
href="backwards.html#backwards.third.hash">Extension headers hash_map, hash_set 
moved to ext or backwards</a></span></dt><dt><span class="section"><a 
href="backwards.html#backwards.third.nocreate_noreplace">No <code 
class="code">ios::nocreate/ios::noreplace</code>.
 </a></span></dt><dt><span class="section"><a 
href="backwards.html#backwards.third.streamattach">
 No <code class="code">stream::attach(int fd)</code>
 </a></span></dt><dt><span class="section"><a 
href="backwards.html#backwards.third.support_cxx98">
diff --git a/libstdc++-v3/doc/html/manual/index.html 
b/libstdc++-v3/doc/html/manual/index.html
index fb61205678f2..8a13efcfbc45 100644
--- a/libstdc++-v3/doc/html/manual/index.html
+++ b/libstdc++-v3/doc/html/manual/index.html
@@ -123,7 +123,7 @@
     Existing tests
 </a></span></dt><dt><span class="section"><a 
href="test.html#test.exception.safety.containers">
 C++11 Requirements Test Sequence Descriptions
-</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="section"><a 
href="abi.html">ABI Policy and Guidelines</a></span></dt><dd><dl><dt><span 
class="section"><a href="abi.html#abi.cxx_interface">The C++ 
Interface</a></span></dt><dt><span class="section"><a 
href="abi.html#abi.versioning">Versioning</a></span></dt><dd><dl><dt><span 
class="section"><a 
href="abi.html#abi.versioning.goals">Goals</a></span></dt><dt><span 
class="section"><a 
href="abi.html#abi.versioning.history">History</a></span></dt><dt><span 
class="section"><a 
href="abi.html#abi.versioning.prereq">Prerequisites</a></span></dt><dt><span 
class="section"><a 
href="abi.html#abi.versioning.config">Configuring</a></span></dt><dt><span 
class="section"><a href="abi.html#abi.versioning.active">Checking 
Active</a></span></dt></dl></dd><dt><span class="section"><a 
href="abi.html#abi.changes_allowed">Allowed Changes</a></span></dt><dt><span 
class="section"><a href="abi.html#abi.changes_no">Prohibited 
Changes</a></span></dt><
 dt><span class="section"><a 
href="abi.html#abi.impl">Implementation</a></span></dt><dt><span 
class="section"><a 
href="abi.html#abi.testing">Testing</a></span></dt><dd><dl><dt><span 
class="section"><a href="abi.html#abi.testing.single">Single ABI 
Testing</a></span></dt><dt><span class="section"><a 
href="abi.html#abi.testing.multi">Multiple ABI 
Testing</a></span></dt></dl></dd><dt><span class="section"><a 
href="abi.html#abi.issues">Outstanding 
Issues</a></span></dt></dl></dd><dt><span class="section"><a 
href="api.html">API Evolution and Deprecation 
History</a></span></dt><dd><dl><dt><span class="section"><a 
href="api.html#api.rel_300"><code 
class="constant">3.0</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_310"><code 
class="constant">3.1</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_320"><code 
class="constant">3.2</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_330"><code class="constant">3.3</code></a><
 /span></dt><dt><span class="section"><a href="api.html#api.rel_340"><code 
class="constant">3.4</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_400"><code 
class="constant">4.0</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_410"><code 
class="constant">4.1</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_420"><code 
class="constant">4.2</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_430"><code 
class="constant">4.3</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_440"><code 
class="constant">4.4</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_450"><code 
class="constant">4.5</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_460"><code 
class="constant">4.6</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_470"><code 
class="constant">4.7</code></a></span></dt><dt><span class="section"><a hre
 f="api.html#api.rel_480"><code 
class="constant">4.8</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_490"><code 
class="constant">4.9</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_51"><code 
class="constant">5</code></a></span></dt><dd><dl><dt><span class="section"><a 
href="api.html#api.rel_53"><code 
class="constant">5.3</code></a></span></dt></dl></dd><dt><span 
class="section"><a href="api.html#api.rel_61"><code 
class="constant">6</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_71"><code 
class="constant">7</code></a></span></dt><dd><dl><dt><span class="section"><a 
href="api.html#api.rel_72"><code 
class="constant">7.2</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_73"><code 
class="constant">7.3</code></a></span></dt></dl></dd><dt><span 
class="section"><a href="api.html#api.rel_81"><code 
class="constant">8</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_91
 "><code class="constant">9</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_101"><code 
class="constant">10</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_111"><code 
class="constant">11</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_121"><code 
class="constant">12</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_123"><code 
class="constant">12.3</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_131"><code 
class="constant">13</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_133"><code 
class="constant">13.3</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_141"><code 
class="constant">14</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_151"><code 
class="constant">15</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_16"><code class="constant">16</code></a></span></dt>
 </dl></dd><dt><span class="section"><a href="backwards.html">Backwards 
Compatibility</a></span></dt><dd><dl><dt><span class="section"><a 
href="backwards.html#backwards.first">First</a></span></dt><dt><span 
class="section"><a 
href="backwards.html#backwards.second">Second</a></span></dt><dt><span 
class="section"><a 
href="backwards.html#backwards.third">Third</a></span></dt><dd><dl><dt><span 
class="section"><a href="backwards.html#backwards.third.headers">Pre-ISO 
headers removed</a></span></dt><dt><span class="section"><a 
href="backwards.html#backwards.third.hash">Extension headers hash_map, hash_set 
moved to ext or backwards</a></span></dt><dt><span class="section"><a 
href="backwards.html#backwards.third.nocreate_noreplace">No <code 
class="code">ios::nocreate/ios::noreplace</code>.
+</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="section"><a 
href="abi.html">ABI Policy and Guidelines</a></span></dt><dd><dl><dt><span 
class="section"><a href="abi.html#abi.cxx_interface">The C++ 
Interface</a></span></dt><dt><span class="section"><a 
href="abi.html#abi.versioning">Versioning</a></span></dt><dd><dl><dt><span 
class="section"><a 
href="abi.html#abi.versioning.goals">Goals</a></span></dt><dt><span 
class="section"><a 
href="abi.html#abi.versioning.history">History</a></span></dt><dt><span 
class="section"><a 
href="abi.html#abi.versioning.prereq">Prerequisites</a></span></dt><dt><span 
class="section"><a 
href="abi.html#abi.versioning.config">Configuring</a></span></dt><dt><span 
class="section"><a href="abi.html#abi.versioning.active">Checking 
Active</a></span></dt></dl></dd><dt><span class="section"><a 
href="abi.html#abi.changes_allowed">Allowed Changes</a></span></dt><dt><span 
class="section"><a href="abi.html#abi.changes_no">Prohibited 
Changes</a></span></dt><
 dt><span class="section"><a 
href="abi.html#abi.impl">Implementation</a></span></dt><dt><span 
class="section"><a 
href="abi.html#abi.testing">Testing</a></span></dt><dd><dl><dt><span 
class="section"><a href="abi.html#abi.testing.single">Single ABI 
Testing</a></span></dt><dt><span class="section"><a 
href="abi.html#abi.testing.multi">Multiple ABI 
Testing</a></span></dt></dl></dd><dt><span class="section"><a 
href="abi.html#abi.issues">Outstanding 
Issues</a></span></dt></dl></dd><dt><span class="section"><a 
href="api.html">API Evolution and Deprecation 
History</a></span></dt><dd><dl><dt><span class="section"><a 
href="api.html#api.rel_300"><code 
class="constant">3.0</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_310"><code 
class="constant">3.1</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_320"><code 
class="constant">3.2</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_330"><code class="constant">3.3</code></a><
 /span></dt><dt><span class="section"><a href="api.html#api.rel_340"><code 
class="constant">3.4</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_400"><code 
class="constant">4.0</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_410"><code 
class="constant">4.1</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_420"><code 
class="constant">4.2</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_430"><code 
class="constant">4.3</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_440"><code 
class="constant">4.4</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_450"><code 
class="constant">4.5</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_460"><code 
class="constant">4.6</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_470"><code 
class="constant">4.7</code></a></span></dt><dt><span class="section"><a hre
 f="api.html#api.rel_480"><code 
class="constant">4.8</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_490"><code 
class="constant">4.9</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_51"><code 
class="constant">5</code></a></span></dt><dd><dl><dt><span class="section"><a 
href="api.html#api.rel_53"><code 
class="constant">5.3</code></a></span></dt></dl></dd><dt><span 
class="section"><a href="api.html#api.rel_61"><code 
class="constant">6</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_71"><code 
class="constant">7</code></a></span></dt><dd><dl><dt><span class="section"><a 
href="api.html#api.rel_72"><code 
class="constant">7.2</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_73"><code 
class="constant">7.3</code></a></span></dt></dl></dd><dt><span 
class="section"><a href="api.html#api.rel_81"><code 
class="constant">8</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_91
 "><code class="constant">9</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_101"><code 
class="constant">10</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_111"><code 
class="constant">11</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_121"><code 
class="constant">12</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_123"><code 
class="constant">12.3</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_131"><code 
class="constant">13</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_133"><code 
class="constant">13.3</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_141"><code 
class="constant">14</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_151"><code 
class="constant">15</code></a></span></dt><dt><span class="section"><a 
href="api.html#api.rel_16"><code class="constant">16</code></a></span></dt>
 <dt><span class="section"><a href="api.html#api.rel_17"><code 
class="constant">17</code></a></span></dt></dl></dd><dt><span 
class="section"><a href="backwards.html">Backwards 
Compatibility</a></span></dt><dd><dl><dt><span class="section"><a 
href="backwards.html#backwards.first">First</a></span></dt><dt><span 
class="section"><a 
href="backwards.html#backwards.second">Second</a></span></dt><dt><span 
class="section"><a 
href="backwards.html#backwards.third">Third</a></span></dt><dd><dl><dt><span 
class="section"><a href="backwards.html#backwards.third.headers">Pre-ISO 
headers removed</a></span></dt><dt><span class="section"><a 
href="backwards.html#backwards.third.hash">Extension headers hash_map, hash_set 
moved to ext or backwards</a></span></dt><dt><span class="section"><a 
href="backwards.html#backwards.third.nocreate_noreplace">No <code 
class="code">ios::nocreate/ios::noreplace</code>.
 </a></span></dt><dt><span class="section"><a 
href="backwards.html#backwards.third.streamattach">
 No <code class="code">stream::attach(int fd)</code>
 </a></span></dt><dt><span class="section"><a 
href="backwards.html#backwards.third.support_cxx98">
diff --git a/libstdc++-v3/doc/xml/manual/evolution.xml 
b/libstdc++-v3/doc/xml/manual/evolution.xml
index 911db8a7538b..2ebdebc98204 100644
--- a/libstdc++-v3/doc/xml/manual/evolution.xml
+++ b/libstdc++-v3/doc/xml/manual/evolution.xml
@@ -1164,4 +1164,12 @@ Made <code>std::is_integral_v&lt;__int128&gt;</code> 
true for strict
 </para>
 </section>
 
+<section 
xml:id="api.rel_17"><info><title><constant>17</constant></title></info>
+<para>
+Removed allocator-extended constructors and support for uses-allocator
+construction from <classname>std::promise</classname> and
+<classname>std::packaged_task</classname>.
+</para>
+</section>
+
 </section>
diff --git a/libstdc++-v3/include/std/future b/libstdc++-v3/include/std/future
index 693c52037b52..96a852e60cdc 100644
--- a/libstdc++-v3/include/std/future
+++ b/libstdc++-v3/include/std/future
@@ -52,7 +52,6 @@
 #include <bits/shared_ptr.h>
 #include <bits/std_function.h>
 #include <bits/std_thread.h>
-#include <bits/uses_allocator.h>
 #include <ext/aligned_buffer.h>
 
 namespace std _GLIBCXX_VISIBILITY(default)
@@ -1112,22 +1111,16 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
        _M_storage(new _Res_type())
       { }
 
-      promise(promise&& __rhs) noexcept
-      : _M_future(std::move(__rhs._M_future)),
-       _M_storage(std::move(__rhs._M_storage))
-      { }
-
       template<typename _Allocator>
        promise(allocator_arg_t, const _Allocator& __a)
        : _M_future(std::allocate_shared<_State>(__a)),
          _M_storage(__future_base::_S_allocate_result<_Res>(__a))
        { }
 
-      template<typename _Allocator>
-       promise(allocator_arg_t, const _Allocator&, promise&& __rhs)
-       : _M_future(std::move(__rhs._M_future)),
-         _M_storage(std::move(__rhs._M_storage))
-       { }
+      promise(promise&& __rhs) noexcept
+      : _M_future(std::move(__rhs._M_future)),
+       _M_storage(std::move(__rhs._M_storage))
+      { }
 
       promise(const promise&) = delete;
 
@@ -1207,11 +1200,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
     swap(promise<_Res>& __x, promise<_Res>& __y) noexcept
     { __x.swap(__y); }
 
-  template<typename _Res, typename _Alloc>
-    struct uses_allocator<promise<_Res>, _Alloc>
-    : public true_type { };
-
-
   /// Partial specialization for promise<R&>
   template<typename _Res>
     class promise<_Res&>
@@ -1231,22 +1219,16 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
        _M_storage(new _Res_type())
       { }
 
-      promise(promise&& __rhs) noexcept
-      : _M_future(std::move(__rhs._M_future)),
-       _M_storage(std::move(__rhs._M_storage))
-      { }
-
       template<typename _Allocator>
        promise(allocator_arg_t, const _Allocator& __a)
        : _M_future(std::allocate_shared<_State>(__a)),
          _M_storage(__future_base::_S_allocate_result<_Res&>(__a))
        { }
 
-      template<typename _Allocator>
-       promise(allocator_arg_t, const _Allocator&, promise&& __rhs)
-       : _M_future(std::move(__rhs._M_future)),
-         _M_storage(std::move(__rhs._M_storage))
-       { }
+      promise(promise&& __rhs) noexcept
+      : _M_future(std::move(__rhs._M_future)),
+       _M_storage(std::move(__rhs._M_storage))
+      { }
 
       promise(const promise&) = delete;
 
@@ -1329,24 +1311,16 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
        _M_storage(new _Res_type())
       { }
 
-      promise(promise&& __rhs) noexcept
-      : _M_future(std::move(__rhs._M_future)),
-       _M_storage(std::move(__rhs._M_storage))
-      { }
-
       template<typename _Allocator>
        promise(allocator_arg_t, const _Allocator& __a)
        : _M_future(std::allocate_shared<_State>(__a)),
          _M_storage(__future_base::_S_allocate_result<void>(__a))
        { }
 
-      // _GLIBCXX_RESOLVE_LIB_DEFECTS
-      // 2095.  missing constructors needed for uses-allocator construction
-      template<typename _Allocator>
-       promise(allocator_arg_t, const _Allocator&, promise&& __rhs)
-       : _M_future(std::move(__rhs._M_future)),
-         _M_storage(std::move(__rhs._M_storage))
-       { }
+      promise(promise&& __rhs) noexcept
+      : _M_future(std::move(__rhs._M_future)),
+       _M_storage(std::move(__rhs._M_storage))
+      { }
 
       promise(const promise&) = delete;
 
@@ -1575,33 +1549,17 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
        : _M_state(_Task_state<_Fn>::_S_create(std::forward<_Fn>(__fn), {}))
        { }
 
-#if __cplusplus < 201703L
       // _GLIBCXX_RESOLVE_LIB_DEFECTS
       // 2097. packaged_task constructors should be constrained
       // 2407. [this constructor should not be] explicit
       // 2921. packaged_task and type-erased allocators
+      // 3003. <future> still has type-erased allocators in promise
       template<typename _Fn, typename _Alloc, typename = __not_same<_Fn>>
        packaged_task(allocator_arg_t, const _Alloc& __a, _Fn&& __fn)
        : _M_state(_Task_state<_Fn, _Alloc>::_S_create(std::forward<_Fn>(__fn),
                                                       __a))
        { }
 
-      // _GLIBCXX_RESOLVE_LIB_DEFECTS
-      // 2095.  missing constructors needed for uses-allocator construction
-      template<typename _Allocator>
-       packaged_task(allocator_arg_t, const _Allocator&) noexcept
-       { }
-
-      template<typename _Allocator>
-       packaged_task(allocator_arg_t, const _Allocator&,
-                     const packaged_task&) = delete;
-
-      template<typename _Allocator>
-       packaged_task(allocator_arg_t, const _Allocator&,
-                     packaged_task&& __other) noexcept
-       { this->swap(__other); }
-#endif
-
       ~packaged_task()
       {
        if (static_cast<bool>(_M_state) && !_M_state.unique())
@@ -1678,14 +1636,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
         packaged_task<_Res(_ArgTypes...)>& __y) noexcept
     { __x.swap(__y); }
 
-#if __cplusplus < 201703L
-  // _GLIBCXX_RESOLVE_LIB_DEFECTS
-  // 2976. Dangling uses_allocator specialization for packaged_task
-  template<typename _Res, typename _Alloc>
-    struct uses_allocator<packaged_task<_Res>, _Alloc>
-    : public true_type { };
-#endif
-
   /// @cond undocumented
 
   // Shared state created by std::async().
diff --git a/libstdc++-v3/testsuite/30_threads/packaged_task/uses_allocator.cc 
b/libstdc++-v3/testsuite/30_threads/packaged_task/uses_allocator.cc
index c9b9f088f2f8..3b458a341bbc 100644
--- a/libstdc++-v3/testsuite/30_threads/packaged_task/uses_allocator.cc
+++ b/libstdc++-v3/testsuite/30_threads/packaged_task/uses_allocator.cc
@@ -1,4 +1,4 @@
-// { dg-do compile { target { c++11_only || c++14_only } } }
+// { dg-do compile { target c++11 } }
 // { dg-require-gthreads "" }
 
 // Copyright (C) 2011-2026 Free Software Foundation, Inc.
@@ -25,5 +25,5 @@
 using std::uses_allocator;
 using std::allocator;
 using std::packaged_task;
-static_assert( uses_allocator<packaged_task<int()>, allocator<int>>::value,
-               "packaged_task supports uses-allocator construction" );
+static_assert( ! uses_allocator<packaged_task<int()>, allocator<int>>::value,
+               "packaged_task does not support uses-allocator construction" );
diff --git a/libstdc++-v3/testsuite/30_threads/promise/uses_allocator.cc 
b/libstdc++-v3/testsuite/30_threads/promise/uses_allocator.cc
index 398d4f108b60..1233ef47a3ad 100644
--- a/libstdc++-v3/testsuite/30_threads/promise/uses_allocator.cc
+++ b/libstdc++-v3/testsuite/30_threads/promise/uses_allocator.cc
@@ -25,5 +25,5 @@
 using std::uses_allocator;
 using std::allocator;
 using std::promise;
-static_assert( uses_allocator<promise<int>, allocator<int>>::value,
-               "promise supports uses-allocator construction" );
+static_assert( ! uses_allocator<promise<int>, allocator<int>>::value,
+               "promise does not support uses-allocator construction" );

Reply via email to