https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71037
Bug ID: 71037
Summary: Exceptions thrown from "filesystem::canonical(...)"
should contain both paths.
Product: gcc
Version: 6.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: libstdc++
Assignee: unassigned at gcc dot gnu.org
Reporter: eric at efcs dot ca
Target Milestone: ---
The filesystem error thrown from canonical only contains the first path, not
the base. Since the base path can be user specified the exception should
contain this as well.
#include <experimental/filesystem>
#include <cassert>
using namespace std::experimental::filesystem;
int main() {
const path p = "DNE"
const path base = "BASE";
try {
canonical(p, base);
assert(false);
} catch (filesystem_error const& err) {
assert(err.path1() == p);
assert(err.path2() == base); // FIRES
}
}