mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-12-15 23:57:48 +00:00
[llvm-rc] Support absolute filenames in manifests
CMake generate manifests that contain absolute filenames and these currently result in assertion error. This change ensures that we handle these correctly. Differential Revision: https://reviews.llvm.org/D54194 llvm-svn: 346450
This commit is contained in:
parent
13da0d9efa
commit
f2727f2785
3
test/tools/llvm-rc/absolute.test
Normal file
3
test/tools/llvm-rc/absolute.test
Normal file
@ -0,0 +1,3 @@
|
||||
; RUN: touch %t.manifest
|
||||
; RUN: echo "1 24 \"%t.manifest\"" > %t.rc
|
||||
; RUN: llvm-rc %t.rc
|
@ -1502,6 +1502,10 @@ ResourceFileWriter::loadFile(StringRef File) const {
|
||||
SmallString<128> Cwd;
|
||||
std::unique_ptr<MemoryBuffer> Result;
|
||||
|
||||
// 0. The file path is absolute and the file exists.
|
||||
if (sys::path::is_absolute(File))
|
||||
return errorOrToExpected(MemoryBuffer::getFile(File, -1, false));
|
||||
|
||||
// 1. The current working directory.
|
||||
sys::fs::current_path(Cwd);
|
||||
Path.assign(Cwd.begin(), Cwd.end());
|
||||
@ -1510,8 +1514,7 @@ ResourceFileWriter::loadFile(StringRef File) const {
|
||||
return errorOrToExpected(MemoryBuffer::getFile(Path, -1, false));
|
||||
|
||||
// 2. The directory of the input resource file, if it is different from the
|
||||
// current
|
||||
// working directory.
|
||||
// current working directory.
|
||||
StringRef InputFileDir = sys::path::parent_path(Params.InputFilePath);
|
||||
Path.assign(InputFileDir.begin(), InputFileDir.end());
|
||||
sys::path::append(Path, File);
|
||||
|
Loading…
Reference in New Issue
Block a user