Fix PR35078 - recursive directory iterator's increment method throws incorrectly.
authorEric Fiselier <eric@efcs.ca>
Mon, 30 Oct 2017 18:43:21 +0000 (18:43 +0000)
committerEric Fiselier <eric@efcs.ca>
Mon, 30 Oct 2017 18:43:21 +0000 (18:43 +0000)
commit98cdfe6bcdb103de3299b8d1052460bfe70b09f8
treed7ac166d263c299ce3108c4d3db1a75fb199c00a
parent10d9e2706717d5eff9639d082c3d5d2c4c169e5c
Fix PR35078 - recursive directory iterator's increment method throws incorrectly.

The guts of the increment method for recursive_directory_iterator
was failing to pass an error code object to calls to status/symlink_status,
which can throw under certain conditions.

This patch fixes the issues by correctly propagating the error codes.
However the noexcept still needs to be removed from the signature, as
mentioned in LWG 3014, but that change will be made in a separate commit.

llvm-svn: 316939
libcxx/src/experimental/filesystem/directory_iterator.cpp
libcxx/test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.members/increment.pass.cpp