https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83626

Christophe Lyon <clyon at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |clyon at gcc dot gnu.org

--- Comment #10 from Christophe Lyon <clyon at gcc dot gnu.org> ---
(In reply to Jonathan Wakely from comment #6)
> Author: redi
> Date: Fri Jan  5 21:27:25 2018
> New Revision: 256287
> 
> URL: https://gcc.gnu.org/viewcvs?rev=256287&root=gcc&view=rev
> Log:
> PR libstdc++/83626 Don't report errors when removing non-existent files
> 
> Backport from mainline
> 2018-01-05  Jonathan Wakely  <jwak...@redhat.com>
> 
>       PR libstdc++/83626
>       * src/filesystem/ops.cc (remove(const path&, error_code&)): Do not
>       report an error for ENOENT.
>       (remove_all(const path&)): Fix type of result variable.
>       (remove_all(const path&, error_code&)): Use non-throwing increment
>       for directory iterator. Call POSIX remove directly to avoid redundant
>       calls to symlink_status. Do not report errors for ENOENT.
>       * testsuite/experimental/filesystem/operations/remove_all.cc: Test
>         throwing overload.
> 
> Backport from mainline
> 2018-01-04  Jonathan Wakely  <jwak...@redhat.com>
> 
>       PR libstdc++/83626
>       * src/filesystem/ops.cc (remove(const path&, error_code&))): Remove
>       redundant call to ec.clear().
>       (remove_all(const path&, error_code&))): Do not return an error for
>       non-existent paths.
>       * testsuite/experimental/filesystem/operations/remove.cc: New test.
>       * testsuite/experimental/filesystem/operations/remove_all.cc: Fix
>       expected results for non-existent paths.
> 
> Added:
>    
> branches/gcc-7-branch/libstdc++-v3/testsuite/experimental/filesystem/
> operations/remove.cc
>       - copied, changed from r256286,
> branches/gcc-7-branch/libstdc++-v3/testsuite/experimental/filesystem/
> operations/remove_all.cc
> Modified:
>     branches/gcc-7-branch/libstdc++-v3/ChangeLog
>     branches/gcc-7-branch/libstdc++-v3/src/filesystem/ops.cc
>    
> branches/gcc-7-branch/libstdc++-v3/testsuite/experimental/filesystem/
> operations/remove_all.cc

In my testing, I have a new failure:
FAIL:: experimental/filesystem/operations/remove.cc execution test
on aarch64-linux-gnu and arm*linux* targets.

I'm cross-testing using proot+qemu, so maybe there is a bad interaction.

The log says:
/libstdc++-v3/testsuite/experimental/filesystem/operations/remove.cc:81: void
test01(): Assertion 'ec' failed.

I don't have the results for trunk yet.

Reply via email to