diff --git a/libcxx/src/filesystem/operations.cpp b/libcxx/src/filesystem/operations.cpp --- a/libcxx/src/filesystem/operations.cpp +++ b/libcxx/src/filesystem/operations.cpp @@ -1023,7 +1023,8 @@ if (ec && *ec) { return false; } - } + } else if (not is_directory(parent_st)) + return err.report(errc::not_a_directory); } return __create_directory(p, ec); }