forked from OSchip/llvm-project
[ELF] Don't replace path separators on *NIX.
Apparently this is wrong because it's legal to have a filename on UNIX which contains a backslash. Differential Revision: https://reviews.llvm.org/D26734 llvm-svn: 287143
This commit is contained in:
parent
8301c645c8
commit
c223d1bc6b
|
@ -53,7 +53,9 @@ static void writeMember(raw_fd_ostream &OS, StringRef Path, StringRef Data) {
|
|||
// Converts path to use unix path separators so the cpio can be extracted on
|
||||
// both unix and windows.
|
||||
static void convertToUnixPathSeparator(SmallString<128> &Path) {
|
||||
#ifdef LLVM_ON_WIN32
|
||||
std::replace(Path.begin(), Path.end(), '\\', '/');
|
||||
#endif
|
||||
}
|
||||
|
||||
void CpioFile::append(StringRef Path, StringRef Data) {
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
# REQUIRES: x86, cpio, shell
|
||||
|
||||
# Test that we don't erroneously replace \ with / on UNIX, as it's
|
||||
# legal for a filename to contain backslashes.
|
||||
# RUN: llvm-mc %s -o foo\\.o -filetype=obj -triple=x86_64-pc-linux
|
||||
# RUN: ld.lld foo\\.o --reproduce repro
|
||||
# RUN: cpio -t < repro.cpio | FileCheck %s
|
||||
|
||||
# CHECK: repro/{{.*}}/foo\.o
|
Loading…
Reference in New Issue