[ThinLTO] Use semicolon to separate path prefix replacement
Summary: Colons can appear in Windows paths after drive letters. Both colon and semicolon are valid characters in filenames, but neither are very common. Semicolon seems just as good, and makes the test pass on Windows. Reviewers: tejohnson Subscribers: joker.eph, llvm-commits Differential Revision: http://reviews.llvm.org/D20332 llvm-svn: 269798
This commit is contained in:
parent
86564cad06
commit
8e96c3e9dd
|
@ -1,6 +1,5 @@
|
|||
; Check that changing the output path via prefix-replace works
|
||||
; Use of '/' in paths created here make this unsuitable for Windows.
|
||||
; REQUIRES: shell
|
||||
; RUN: mkdir -p %T/oldpath
|
||||
; RUN: opt -module-summary %s -o %T/oldpath/prefix_replace.o
|
||||
; Ensure that there is no existing file at the new path, so we properly
|
||||
|
@ -8,7 +7,7 @@
|
|||
; RUN: rm -f %T/newpath/prefix_replace.o.thinlto.bc
|
||||
|
||||
; RUN: llvm-lto -thinlto-action=thinlink -o %t.index.bc %T/oldpath/prefix_replace.o
|
||||
; RUN: llvm-lto -thinlto-action=distributedindexes -thinlto-prefix-replace="%T/oldpath/:%T/newpath/" -thinlto-index %t.index.bc %T/oldpath/prefix_replace.o
|
||||
; RUN: llvm-lto -thinlto-action=distributedindexes -thinlto-prefix-replace="%T/oldpath/;%T/newpath/" -thinlto-index %t.index.bc %T/oldpath/prefix_replace.o
|
||||
|
||||
; RUN: ls %T/newpath/prefix_replace.o.thinlto.bc
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
; RUN: %gold -plugin %llvmshlibdir/LLVMgold.so \
|
||||
; RUN: --plugin-opt=thinlto \
|
||||
; RUN: --plugin-opt=thinlto-index-only \
|
||||
; RUN: --plugin-opt=thinlto-prefix-replace="%T/oldpath/:%T/newpath/" \
|
||||
; RUN: --plugin-opt=thinlto-prefix-replace="%T/oldpath/;%T/newpath/" \
|
||||
; RUN: -shared %T/oldpath/thinlto_prefix_replace.o -o %T/thinlto_prefix_replace
|
||||
; RUN: ls %T/newpath/thinlto_prefix_replace.o.thinlto.bc
|
||||
|
||||
|
|
|
@ -234,8 +234,8 @@ namespace options {
|
|||
thinlto_emit_imports_files = true;
|
||||
} else if (opt.startswith("thinlto-prefix-replace=")) {
|
||||
thinlto_prefix_replace = opt.substr(strlen("thinlto-prefix-replace="));
|
||||
if (thinlto_prefix_replace.find(":") == std::string::npos)
|
||||
message(LDPL_FATAL, "thinlto-prefix-replace expects 'old:new' format");
|
||||
if (thinlto_prefix_replace.find(";") == std::string::npos)
|
||||
message(LDPL_FATAL, "thinlto-prefix-replace expects 'old;new' format");
|
||||
} else if (opt.size() == 2 && opt[0] == 'O') {
|
||||
if (opt[1] < '0' || opt[1] > '3')
|
||||
message(LDPL_FATAL, "Optimization level must be between 0 and 3");
|
||||
|
@ -1219,8 +1219,8 @@ static void thinLTOBackends(raw_fd_ostream *ApiFile,
|
|||
static void getThinLTOOldAndNewPrefix(std::string &OldPrefix,
|
||||
std::string &NewPrefix) {
|
||||
StringRef PrefixReplace = options::thinlto_prefix_replace;
|
||||
assert(PrefixReplace.empty() || PrefixReplace.find(":") != StringRef::npos);
|
||||
std::pair<StringRef, StringRef> Split = PrefixReplace.split(":");
|
||||
assert(PrefixReplace.empty() || PrefixReplace.find(";") != StringRef::npos);
|
||||
std::pair<StringRef, StringRef> Split = PrefixReplace.split(";");
|
||||
OldPrefix = Split.first.str();
|
||||
NewPrefix = Split.second.str();
|
||||
}
|
||||
|
|
|
@ -108,7 +108,7 @@ static cl::opt<std::string>
|
|||
static cl::opt<std::string> ThinLTOPrefixReplace(
|
||||
"thinlto-prefix-replace",
|
||||
cl::desc("Control where files for distributed backends are "
|
||||
"created. Expects 'oldprefix:newprefix' and if path "
|
||||
"created. Expects 'oldprefix;newprefix' and if path "
|
||||
"prefix of output file is oldprefix it will be "
|
||||
"replaced with newprefix."));
|
||||
|
||||
|
@ -307,9 +307,9 @@ static void createCombinedModuleSummaryIndex() {
|
|||
static void getThinLTOOldAndNewPrefix(std::string &OldPrefix,
|
||||
std::string &NewPrefix) {
|
||||
assert(ThinLTOPrefixReplace.empty() ||
|
||||
ThinLTOPrefixReplace.find(":") != StringRef::npos);
|
||||
ThinLTOPrefixReplace.find(";") != StringRef::npos);
|
||||
StringRef PrefixReplace = ThinLTOPrefixReplace;
|
||||
std::pair<StringRef, StringRef> Split = PrefixReplace.split(":");
|
||||
std::pair<StringRef, StringRef> Split = PrefixReplace.split(";");
|
||||
OldPrefix = Split.first.str();
|
||||
NewPrefix = Split.second.str();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue