libstdc++: Fix filesystem build for Windows

I only half remembered to use char_type instead of char for filesystem
paths, so that it works with wchar_t on Windows. This fixes the
bootstrap failure.

libstdc++-v3/ChangeLog:

	* src/filesystem/dir-common.h (_Dir_base::_At_path):
	Use char_type consistently for paths.
This commit is contained in:
Jonathan Wakely 2022-06-28 12:56:19 +01:00
parent 133d0d422e
commit bb1f266a7d

View file

@ -99,18 +99,22 @@ struct _Dir_base
struct _At_path
{
// No file descriptor given, so interpret the pathname relative to the CWD.
_At_path(const char* p) noexcept
_At_path(const posix::char_type* p) noexcept
: pathname(p), dir_fd(fdcwd()), offset(0)
{ }
_At_path(int fd, const char* p, size_t offset) noexcept
_At_path(int fd, const posix::char_type* p, size_t offset) noexcept
: pathname(p), dir_fd(fd), offset(offset)
{ }
const char* path() const noexcept { return pathname; }
const posix::char_type*
path() const noexcept { return pathname; }
int dir() const noexcept { return dir_fd; }
const char* path_at_dir() const noexcept { return pathname + offset; }
int
dir() const noexcept { return dir_fd; }
const posix::char_type*
path_at_dir() const noexcept { return pathname + offset; }
private:
const posix::char_type* pathname; // Full path relative to CWD.