Fix hardcoded slash to native path seperator which was exposed from llvm::sys::path.

http://reviews.llvm.org/D3687



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@208980 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Yaron Keren 2014-05-16 13:16:30 +00:00
parent 21cfedee05
commit 0d356ec0ee
4 changed files with 14 additions and 2 deletions

View File

@ -295,6 +295,11 @@ const StringRef extension(StringRef path);
/// @result true if \a value is a path separator character on the host OS
bool is_separator(char value);
/// @brief Return the preferred separator for this platform.
///
/// @result StringRef of the preferred separator, null-terminated.
const StringRef get_separator();
/// @brief Get the typical temporary directory for the system, e.g.,
/// "/var/tmp" or "C:/TEMP"
///

View File

@ -689,7 +689,7 @@ static void EmitGenDwarfInfo(MCStreamer *MCOS,
const SmallVectorImpl<std::string> &MCDwarfDirs = context.getMCDwarfDirs();
if (MCDwarfDirs.size() > 0) {
MCOS->EmitBytes(MCDwarfDirs[0]);
MCOS->EmitBytes("/");
MCOS->EmitBytes(sys::path::get_separator());
}
const SmallVectorImpl<MCDwarfFile> &MCDwarfFiles =
MCOS->getContext().getMCDwarfFiles();

View File

@ -569,6 +569,12 @@ bool is_separator(char value) {
}
}
static const char preferred_separator_string[] = { preferred_separator, '\0' };
const StringRef get_separator() {
return preferred_separator_string;
}
void system_temp_directory(bool erasedOnReboot, SmallVectorImpl<char> &result) {
result.clear();

View File

@ -18,6 +18,7 @@
#include "llvm/ADT/Twine.h"
#include "llvm/Support/Locale.h"
#include "llvm/Support/MemoryBuffer.h"
#include "llvm/Support/Path.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/Support/system_error.h"
using namespace llvm;
@ -60,7 +61,7 @@ size_t SourceMgr::AddIncludeFile(const std::string &Filename,
// If the file didn't exist directly, see if it's in an include path.
for (unsigned i = 0, e = IncludeDirectories.size(); i != e && !NewBuf; ++i) {
IncludedFile = IncludeDirectories[i] + "/" + Filename;
IncludedFile = IncludeDirectories[i] + sys::path::get_separator().data() + Filename;
MemoryBuffer::getFile(IncludedFile.c_str(), NewBuf);
}