Use the LLVM function instead.
There are two subtle behavioral changes here which I want to make clear so someone can determine whether this matters on their platform.
- Previously all LLDB callers were passing eFilePermissionsDirectoryDefault which is equal to eFilePermissionsUserRWX (0o700). The LLVM default is equivalent to eFilePermissionsUserRWX | eFilePermissionsGroupRWX (0o770). If this is a problem it's easy to update all callsites to explicitly pass 0o700, but I don't think it is.
- The implementation of MakeDirectory would first try to create the directory, then if it failed due to ENOENT would try to create the parent directory. But it only went up one level. So if /foo existed but not /foo/bar, and you tried to create /foo/bar/baz, it would create /foo/bar first and then /foo/bar/baz. On the other hand, if not even /foo existed, the function would fail.
This seems like very strange behavior to me, but I don't know if anyone depends on it. I imagine if the tests pass everywhere, then nobody does. They pass on Windows. If someone could confirm that they pass on other platforms after this patch it would be helpful.