https://gcc.gnu.org/g:9e1e285549bfc5d7424d9429b6b1d1c43da8caaf
commit r13-9877-g9e1e285549bfc5d7424d9429b6b1d1c43da8caaf Author: Tomasz Kamiński <tkami...@redhat.com> Date: Fri Sep 5 13:16:40 2025 +0200 libstdc++: Document missing implementation defined behavior for std::filesystem. libstdc++-v3/ChangeLog: * doc/html/manual/status.html: Regenerate the file. * doc/xml/manual/status_cxx2017.xml: Addd more entires. Reviewed-by: Jonathan Wakely <jwak...@redhat.com> Signed-off-by: Tomasz Kamiński <tkami...@redhat.com> (cherry picked from commit d6c370b8e96d43448537276d91c2b33fedb9754a) Diff: --- libstdc++-v3/doc/html/manual/status.html | 18 ++++++++++++++++-- libstdc++-v3/doc/xml/manual/status_cxx2017.xml | 23 ++++++++++++++++++++--- 2 files changed, 36 insertions(+), 5 deletions(-) diff --git a/libstdc++-v3/doc/html/manual/status.html b/libstdc++-v3/doc/html/manual/status.html index 440fe109e131..c337fb5d15fa 100644 --- a/libstdc++-v3/doc/html/manual/status.html +++ b/libstdc++-v3/doc/html/manual/status.html @@ -1103,7 +1103,8 @@ since C++14 and the implementation is complete. The effect of calling the mathematical special functions with large inputs should be documented here. </p><p> - <span class="emphasis"><em>30.10.2.1 [fs.conform.9945]</em></span> + <span class="emphasis"><em>30.10.2.1 [fs.conform.9945]</em></span>, + <span class="emphasis"><em>30.10.2.2 [fs.conform.os]</em></span> The behavior of the filesystem library implementation will depend on the target operating system. Some features will not be supported on some targets. Symbolic links and file permissions @@ -1139,7 +1140,20 @@ since C++14 and the implementation is complete. Specifically, it is not possible to rename a directory to replace another directory (POSIX requires that to work if the directory being replaced is empty). - </p><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="iso.2017.par2ts"></a>Parallelism 2 TS</h5></div></div></div><p> + </p><p> + <span class="emphasis"><em>30.10.29.2 [fs.enum.file_type]</em></span>, + <span class="emphasis"><em>30.10.34.3 [fs.op.copy]</em></span>, + <span class="emphasis"><em>30.10.34.35 [fs.op.status]</em></span> + No additional file types are supported, and there are no + implementation-defined enumerators in + <code class="code">std::filesystem::file_type</code>. + </p><p> + <span class="emphasis"><em>30.10.32 [fs.class.directory_iterator]</em></span>, + <span class="emphasis"><em>30.10.33 [fs.class.rec.dir.itr]</em></span> + Any directory-like file types supported by + <code class="code">opendir</code>/<code class="code">readdir</code> + (or <code class="code">_wopendir</code>/<code class="code">_wreaddir</code> on Windows). + </p><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="iso.2017.par2ts"></a>Parallelism 2 TS</h5></div></div></div><p> <span class="emphasis"><em>9.3 [parallel.simd.abi]</em></span> <code class="code">max_fixed_size<T></code> is 32, except when targetting AVX512BW and <code class="code">sizeof(T)</code> is 1. diff --git a/libstdc++-v3/doc/xml/manual/status_cxx2017.xml b/libstdc++-v3/doc/xml/manual/status_cxx2017.xml index f8afadb84c80..f2de117f9e15 100644 --- a/libstdc++-v3/doc/xml/manual/status_cxx2017.xml +++ b/libstdc++-v3/doc/xml/manual/status_cxx2017.xml @@ -2986,7 +2986,8 @@ since C++14 and the implementation is complete. </para> <para> - <emphasis>30.10.2.1 [fs.conform.9945]</emphasis> + <emphasis>30.10.2.1 [fs.conform.9945]</emphasis>, + <emphasis>30.10.2.2 [fs.conform.os]</emphasis> The behavior of the filesystem library implementation will depend on the target operating system. Some features will not be supported on some targets. Symbolic links and file permissions @@ -3023,7 +3024,7 @@ since C++14 and the implementation is complete. If <code>!is_regular_file(p)</code>, an error is reported. </para> - <para> + <para> <emphasis>30.10.15.32 [fs.op.rename]</emphasis> On Windows, <code>filesystem::rename</code> is implemented by calling <code>MoveFileExW</code> and so @@ -3032,8 +3033,24 @@ since C++14 and the implementation is complete. Specifically, it is not possible to rename a directory to replace another directory (POSIX requires that to work if the directory being replaced is empty). - </para> + </para> + <para> + <emphasis>30.10.29.2 [fs.enum.file_type]</emphasis>, + <emphasis>30.10.34.3 [fs.op.copy]</emphasis>, + <emphasis>30.10.34.35 [fs.op.status]</emphasis> + No additional file types are supported, and there are no + implementation-defined enumerators in + <code>std::filesystem::file_type</code>. + </para> + + <para> + <emphasis>30.10.32 [fs.class.directory_iterator]</emphasis>, + <emphasis>30.10.33 [fs.class.rec.dir.itr]</emphasis> + Any directory-like file types supported by + <code>opendir</code>/<code>readdir</code> + (or <code>_wopendir</code>/<code>_wreaddir</code> on Windows). + </para> <section xml:id="iso.2017.par2ts" xreflabel="Implementation Specific Behavior of the Parallelism 2 TS"><info><title>Parallelism 2 TS</title></info>