mirror of
https://github.com/RPCSX/llvm.git
synced 2025-01-23 12:45:47 +00:00
Support/PathV2: Add remove_filename implementation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120513 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
a5a42d9b3c
commit
dbfb56bebd
@ -140,7 +140,7 @@ error_code make_absolute(SmallVectorImpl<char> &path);
|
||||
/// @brief Remove the last component from \a path if it exists.
|
||||
///
|
||||
/// directory/filename.cpp => directory/
|
||||
/// directory/ => directory/
|
||||
/// directory/ => directory
|
||||
///
|
||||
/// @param path A path that is modified to not have a file component.
|
||||
/// @returns errc::success if \a path's file name has been removed (or there was
|
||||
|
@ -503,6 +503,14 @@ error_code parent_path(const StringRef &path, StringRef &result) {
|
||||
return make_error_code(errc::success);
|
||||
}
|
||||
|
||||
error_code remove_filename(SmallVectorImpl<char> &path) {
|
||||
size_t end_pos = parent_path_end(StringRef(path.begin(), path.size()));
|
||||
if (end_pos == StringRef::npos)
|
||||
return make_error_code(errc::success);
|
||||
path.set_size(end_pos);
|
||||
return make_error_code(errc::success);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -99,6 +99,10 @@ TEST(Support, Path) {
|
||||
if (error_code ec = sys::path::make_absolute(temp_store))
|
||||
ASSERT_FALSE(ec.message().c_str());
|
||||
outs() << " make_absolute: " << temp_store << '\n';
|
||||
temp_store = *i;
|
||||
if (error_code ec = sys::path::remove_filename(temp_store))
|
||||
ASSERT_FALSE(ec.message().c_str());
|
||||
outs() << " remove_filename: " << temp_store << '\n';
|
||||
|
||||
outs().flush();
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user