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 /// @result true if \a value is a path separator character on the host OS
bool is_separator(char value); 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., /// @brief Get the typical temporary directory for the system, e.g.,
/// "/var/tmp" or "C:/TEMP" /// "/var/tmp" or "C:/TEMP"
/// ///

View File

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

View File

@ -18,6 +18,7 @@
#include "llvm/ADT/Twine.h" #include "llvm/ADT/Twine.h"
#include "llvm/Support/Locale.h" #include "llvm/Support/Locale.h"
#include "llvm/Support/MemoryBuffer.h" #include "llvm/Support/MemoryBuffer.h"
#include "llvm/Support/Path.h"
#include "llvm/Support/raw_ostream.h" #include "llvm/Support/raw_ostream.h"
#include "llvm/Support/system_error.h" #include "llvm/Support/system_error.h"
using namespace llvm; 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. // 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) { 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); MemoryBuffer::getFile(IncludedFile.c_str(), NewBuf);
} }