summaryrefslogtreecommitdiffstats
path: root/clang/lib/Driver/ToolChains/Clang.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/lib/Driver/ToolChains/Clang.cpp')
-rw-r--r--clang/lib/Driver/ToolChains/Clang.cpp27
1 files changed, 16 insertions, 11 deletions
diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp
index 7e420da94f0..76d3f623b2e 100644
--- a/clang/lib/Driver/ToolChains/Clang.cpp
+++ b/clang/lib/Driver/ToolChains/Clang.cpp
@@ -3631,22 +3631,27 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
JA.getType() == types::TY_LTO_BC) {
CmdArgs.push_back("-emit-llvm-bc");
} else if (JA.getType() == types::TY_IFS) {
+ StringRef ArgStr =
+ Args.hasArg(options::OPT_iterface_stub_version_EQ)
+ ? Args.getLastArgValue(options::OPT_iterface_stub_version_EQ)
+ : "";
StringRef StubFormat =
- llvm::StringSwitch<StringRef>(
- Args.hasArg(options::OPT_iterface_stub_version_EQ)
- ? Args.getLastArgValue(options::OPT_iterface_stub_version_EQ)
- : "")
- .Case("experimental-yaml-elf-v1", "experimental-yaml-elf-v1")
- .Case("experimental-tapi-elf-v1", "experimental-tapi-elf-v1")
+ llvm::StringSwitch<StringRef>(ArgStr)
.Case("experimental-ifs-v1", "experimental-ifs-v1")
.Default("");
- if (StubFormat.empty())
+ if (StubFormat.empty()) {
+ std::string ErrorMessage =
+ "Invalid interface stub format: " + ArgStr.str() +
+ ((ArgStr == "experimental-yaml-elf-v1" ||
+ ArgStr == "experimental-tapi-elf-v1")
+ ? " is deprecated."
+ : ".");
D.Diag(diag::err_drv_invalid_value)
- << "Must specify a valid interface stub format type using "
- << "-interface-stub-version=<experimental-tapi-elf-v1 | "
- "experimental-ifs-v1 | "
- "experimental-yaml-elf-v1>";
+ << "Must specify a valid interface stub format type, ie: "
+ "-interface-stub-version=experimental-ifs-v1"
+ << ErrorMessage;
+ }
CmdArgs.push_back("-emit-interface-stubs");
CmdArgs.push_back(
OpenPOWER on IntegriCloud