https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83625
Bug ID: 83625
Summary: std::experimental::filesystem::remove lstat()'s before
remove() instead of checking errno
Product: gcc
Version: 7.2.1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: libstdc++
Assignee: unassigned at gcc dot gnu.org
Reporter: chillermillerlong at hotmail dot com
Target Milestone: ---
libstdc++'s std::experimental::filesystem::remove() function currently seems to
be doing an lstat() to check if the path exists before calling remove().
(https://github.com/gcc-mirror/gcc/blob/gcc-7_2_0-release/libstdc%2B%2B-v3/src/filesystem/ops.cc#L1235-L1249)
This could cause the function to report an error if the path is deleted between
the stat() and remove() instead of returning false. Would it make sense to
always attempt remove() and return false if errno == ENOENT instead?