]> gcc.gnu.org Git - gcc.git/commit
libstdc++: Use non-throwing increment in recursive_directory_iterator [PR 97731]
authorJonathan Wakely <jwakely@redhat.com>
Thu, 5 Nov 2020 17:26:13 +0000 (17:26 +0000)
committerJonathan Wakely <jwakely@redhat.com>
Thu, 5 Nov 2020 18:01:26 +0000 (18:01 +0000)
commit2f93a2a03a343a29f614a530d7657f1ed6347ed5
tree123d81efebe07a7e284cb2bc6a3dc134e9ff5a35
parent710508c7b1a2c8e1d75d4c4f1ac79473dbf2b2bb
libstdc++: Use non-throwing increment in recursive_directory_iterator [PR 97731]

As described in the PR, the recursive_directory_iterator constructor
calls advance(ec), but ec is a pointer so it calls _Dir::advance(bool).
The intention was to either call advance() or advance(*ec) depending
whether the pointer is null or not.

This fixes the bug and renames the parameter to ecptr to make similar
mistakes less likely in future.

libstdc++-v3/ChangeLog:

PR libstdc++/97731
* src/filesystem/dir.cc (recursive_directory_iterator): Call the
right overload of _Dir::advance.
* testsuite/experimental/filesystem/iterators/97731.cc: New test.
libstdc++-v3/src/filesystem/dir.cc
libstdc++-v3/testsuite/experimental/filesystem/iterators/97731.cc [new file with mode: 0644]
This page took 0.057354 seconds and 5 git commands to generate.