aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorNico Weber <nicolasweber@gmx.de>2019-10-03 02:38:43 +0000
committerNico Weber <nicolasweber@gmx.de>2019-10-03 02:38:43 +0000
commit6713f8235bac3a5883af6eee841cb50a8832d754 (patch)
tree3a3a1b5ff96132cb61a7a412a1668fdac6f62a22 /clang/lib/Frontend/CompilerInvocation.cpp
parent45f682f47129c05414d4c5ae7be851772273978f (diff)
downloadllvm-6713f8235bac3a5883af6eee841cb50a8832d754.zip
llvm-6713f8235bac3a5883af6eee841cb50a8832d754.tar.gz
llvm-6713f8235bac3a5883af6eee841cb50a8832d754.tar.bz2
Revert 373538 and follow-ups 373549 and 373552.
They break tests on (at least) macOS. llvm-svn: 373556
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
-rw-r--r--clang/lib/Frontend/CompilerInvocation.cpp23
1 files changed, 11 insertions, 12 deletions
diff --git a/clang/lib/Frontend/CompilerInvocation.cpp b/clang/lib/Frontend/CompilerInvocation.cpp
index 6fc8afc..61a2c07 100644
--- a/clang/lib/Frontend/CompilerInvocation.cpp
+++ b/clang/lib/Frontend/CompilerInvocation.cpp
@@ -1734,25 +1734,24 @@ static InputKind ParseFrontendArgs(FrontendOptions &Opts, ArgList &Args,
StringRef ArgStr =
Args.hasArg(OPT_iterface_stub_version_EQ)
? Args.getLastArgValue(OPT_iterface_stub_version_EQ)
- : "experimental-ifs-v1";
- if (ArgStr == "experimental-yaml-elf-v1" ||
- ArgStr == "experimental-tapi-elf-v1") {
+ : "";
+ llvm::Optional<frontend::ActionKind> ProgramAction =
+ llvm::StringSwitch<llvm::Optional<frontend::ActionKind>>(ArgStr)
+ .Case("experimental-ifs-v1", frontend::GenerateInterfaceIfsExpV1)
+ .Default(llvm::None);
+ if (!ProgramAction) {
std::string ErrorMessage =
"Invalid interface stub format: " + ArgStr.str() +
- " is deprecated.";
- Diags.Report(diag::err_drv_invalid_value)
- << "Must specify a valid interface stub format type, ie: "
- "-interface-stub-version=experimental-ifs-v1"
- << ErrorMessage;
- } else if (ArgStr != "experimental-ifs-v1") {
- std::string ErrorMessage =
- "Invalid interface stub format: " + ArgStr.str() + ".";
+ ((ArgStr == "experimental-yaml-elf-v1" ||
+ ArgStr == "experimental-tapi-elf-v1")
+ ? " is deprecated."
+ : ".");
Diags.Report(diag::err_drv_invalid_value)
<< "Must specify a valid interface stub format type, ie: "
"-interface-stub-version=experimental-ifs-v1"
<< ErrorMessage;
} else {
- Opts.ProgramAction = frontend::GenerateInterfaceIfsExpV1;
+ Opts.ProgramAction = *ProgramAction;
}
break;
}