|
20 | 20 | #include "llvm/ADT/StringRef.h" |
21 | 21 | #include "llvm/ADT/Twine.h" |
22 | 22 | #include "llvm/Support/ErrorOr.h" |
| 23 | +#include "llvm/Support/FileSystem.h" |
23 | 24 | #include "llvm/Support/Locale.h" |
24 | 25 | #include "llvm/Support/MemoryBuffer.h" |
25 | 26 | #include "llvm/Support/Path.h" |
@@ -52,15 +53,18 @@ unsigned SourceMgr::AddIncludeFile(const std::string &Filename, |
52 | 53 | ErrorOr<std::unique_ptr<MemoryBuffer>> |
53 | 54 | SourceMgr::OpenIncludeFile(const std::string &Filename, |
54 | 55 | std::string &IncludedFile) { |
| 56 | + SmallString<128> Path{Filename}; |
| 57 | + sys::fs::make_absolute(Path); |
55 | 58 | ErrorOr<std::unique_ptr<MemoryBuffer>> NewBufOrErr = |
56 | | - MemoryBuffer::getFile(Filename); |
| 59 | + MemoryBuffer::getFile(Path); |
57 | 60 |
|
58 | | - SmallString<64> Buffer(Filename); |
| 61 | + SmallString<64> Buffer(Path); |
59 | 62 | // If the file didn't exist directly, see if it's in an include path. |
60 | 63 | for (unsigned i = 0, e = IncludeDirectories.size(); i != e && !NewBufOrErr; |
61 | 64 | ++i) { |
62 | 65 | Buffer = IncludeDirectories[i]; |
63 | 66 | sys::path::append(Buffer, Filename); |
| 67 | + sys::fs::make_absolute(Buffer); |
64 | 68 | NewBufOrErr = MemoryBuffer::getFile(Buffer); |
65 | 69 | } |
66 | 70 |
|
|
0 commit comments