Revert "Reapply: [Driver] Use forward slashes in most linker arguments"
This reverts commit r345370, as it uncovered even more issues in
tests with partial/inconsistent path normalization:
http://lab.llvm.org:8011/builders/llvm-clang-x86_64-expensive-checks-win/builds/13562
http://lab.llvm.org:8011/builders/clang-x64-windows-msvc/builds/886
http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast/builds/20994
In particular, these tests seem to have failed:
Clang :: CodeGen/thinlto-diagnostic-handler-remarks-with-hotness.ll
Clang :: CodeGen/thinlto-multi-module.ll
Clang :: Driver/cuda-external-tools.cu
Clang :: Driver/cuda-options.cu
Clang :: Driver/hip-toolchain-no-rdc.hip
Clang :: Driver/hip-toolchain-rdc.hip
Clang :: Driver/openmp-offload-gpu.c
At least the Driver tests could potentially be fixed by extending
the path normalization to even more places, but the issues with the
CodeGen tests are still unknown.
In addition, a number of other tests seem to have been broken in
other clang dependent tools such as clang-tidy and clangd.
llvm-svn: 345372
diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp
index 67c94da..a8ddd8a 100644
--- a/clang/lib/Driver/ToolChains/Clang.cpp
+++ b/clang/lib/Driver/ToolChains/Clang.cpp
@@ -3570,8 +3570,7 @@
for (const auto &II : Inputs) {
addDashXForInput(Args, II, CmdArgs);
if (II.isFilename())
- CmdArgs.push_back(
- Args.MakeArgString(TC.normalizePath(II.getFilename())));
+ CmdArgs.push_back(II.getFilename());
else
II.getInputArg().renderAsInput(Args, CmdArgs);
}
@@ -4964,8 +4963,7 @@
// Handled with other dependency code.
} else if (Output.isFilename()) {
CmdArgs.push_back("-o");
- CmdArgs.push_back(
- Args.MakeArgString(TC.normalizePath(Output.getFilename())));
+ CmdArgs.push_back(Output.getFilename());
} else {
assert(Output.isNothing() && "Invalid output.");
}
@@ -4980,8 +4978,7 @@
for (const InputInfo &Input : FrontendInputs) {
if (Input.isFilename())
- CmdArgs.push_back(
- Args.MakeArgString(TC.normalizePath(Input.getFilename())));
+ CmdArgs.push_back(Input.getFilename());
else
Input.getInputArg().renderAsInput(Args, CmdArgs);
}
@@ -5674,10 +5671,9 @@
assert(Inputs.size() == 1 && "Unexpected number of inputs.");
const InputInfo &Input = Inputs[0];
- const ToolChain &TC = getToolChain();
- const llvm::Triple &Triple = TC.getEffectiveTriple();
+ const llvm::Triple &Triple = getToolChain().getEffectiveTriple();
const std::string &TripleStr = Triple.getTriple();
- const auto &D = TC.getDriver();
+ const auto &D = getToolChain().getDriver();
// Don't warn about "clang -w -c foo.s"
Args.ClaimAllArgs(options::OPT_w);
@@ -5851,7 +5847,7 @@
assert(Output.isFilename() && "Unexpected lipo output.");
CmdArgs.push_back("-o");
- CmdArgs.push_back(Args.MakeArgString(TC.normalizePath(Output.getFilename())));
+ CmdArgs.push_back(Output.getFilename());
const llvm::Triple &T = getToolChain().getTriple();
if (Args.hasArg(options::OPT_gsplit_dwarf) &&
@@ -5861,7 +5857,7 @@
}
assert(Input.isFilename() && "Invalid input.");
- CmdArgs.push_back(Args.MakeArgString(TC.normalizePath(Input.getFilename())));
+ CmdArgs.push_back(Input.getFilename());
const char *Exec = getToolChain().getDriver().getClangProgramPath();
C.addCommand(llvm::make_unique<Command>(JA, *this, Exec, CmdArgs, Inputs));
diff --git a/clang/lib/Driver/ToolChains/CommonArgs.cpp b/clang/lib/Driver/ToolChains/CommonArgs.cpp
index 0278074..171d1ae 100644
--- a/clang/lib/Driver/ToolChains/CommonArgs.cpp
+++ b/clang/lib/Driver/ToolChains/CommonArgs.cpp
@@ -163,7 +163,7 @@
// Add filenames immediately.
if (II.isFilename()) {
- CmdArgs.push_back(Args.MakeArgString(TC.normalizePath(II.getFilename())));
+ CmdArgs.push_back(II.getFilename());
continue;
}
diff --git a/clang/lib/Driver/ToolChains/Gnu.cpp b/clang/lib/Driver/ToolChains/Gnu.cpp
index 514632b..d91808d 100644
--- a/clang/lib/Driver/ToolChains/Gnu.cpp
+++ b/clang/lib/Driver/ToolChains/Gnu.cpp
@@ -1699,7 +1699,7 @@
if (GCCToolchainDir.back() == '/')
GCCToolchainDir = GCCToolchainDir.drop_back(); // remove the /
- Prefixes.push_back(llvm::sys::path::convert_to_slash(GCCToolchainDir));
+ Prefixes.push_back(GCCToolchainDir);
} else {
// If we have a SysRoot, try that first.
if (!D.SysRoot.empty()) {