mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-27 13:30:05 +00:00
Support/PathV2: Add is_{absolute,relative} implementation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120560 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
ae18008584
commit
ce2b68fb54
@ -642,6 +642,30 @@ error_code has_extension(const Twine &path, bool &result) {
|
|||||||
return make_error_code(errc::success);
|
return make_error_code(errc::success);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
error_code is_absolute(const Twine &path, bool &result) {
|
||||||
|
SmallString<128> path_storage;
|
||||||
|
StringRef p = path.toStringRef(path_storage);
|
||||||
|
|
||||||
|
bool rootDir = false,
|
||||||
|
rootName = false;
|
||||||
|
if (error_code ec = has_root_directory(p, rootDir)) return ec;
|
||||||
|
#ifdef LLVM_ON_WIN32
|
||||||
|
if (error_code ec = has_root_name(p, rootName)) return ec;
|
||||||
|
#else
|
||||||
|
rootName = true;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
result = rootDir && rootName;
|
||||||
|
return make_error_code(errc::success);
|
||||||
|
}
|
||||||
|
|
||||||
|
error_code is_relative(const Twine &path, bool &result) {
|
||||||
|
bool res;
|
||||||
|
error_code ec = is_absolute(path, res);
|
||||||
|
result = !res;
|
||||||
|
return ec;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -112,6 +112,8 @@ TEST(Support, Path) {
|
|||||||
TEST_PATH(stem, *i, sfres);
|
TEST_PATH(stem, *i, sfres);
|
||||||
TEST_PATH(has_extension, *i, bres);
|
TEST_PATH(has_extension, *i, bres);
|
||||||
TEST_PATH(extension, *i, sfres);
|
TEST_PATH(extension, *i, sfres);
|
||||||
|
TEST_PATH(is_absolute, *i, bres);
|
||||||
|
TEST_PATH(is_relative, *i, bres);
|
||||||
|
|
||||||
SmallString<16> temp_store;
|
SmallString<16> temp_store;
|
||||||
TEST_PATH_SMALLVEC(make_absolute, *i, temp_store);
|
TEST_PATH_SMALLVEC(make_absolute, *i, temp_store);
|
||||||
|
Loading…
Reference in New Issue
Block a user