diff options
Diffstat (limited to 'clang')
-rw-r--r-- | clang/lib/Driver/Driver.cpp | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp index bbfdaefaf3f..88412e35958 100644 --- a/clang/lib/Driver/Driver.cpp +++ b/clang/lib/Driver/Driver.cpp @@ -148,15 +148,13 @@ void Driver::setDriverModeFromOption(StringRef Opt) { return; StringRef Value = Opt.drop_front(OptName.size()); - auto M = llvm::StringSwitch<llvm::Optional<DriverMode>>(Value) - .Case("gcc", GCCMode) - .Case("g++", GXXMode) - .Case("cpp", CPPMode) - .Case("cl", CLMode) - .Default(None); - - if (M) - Mode = M.getValue(); + if (auto M = llvm::StringSwitch<llvm::Optional<DriverMode>>(Value) + .Case("gcc", GCCMode) + .Case("g++", GXXMode) + .Case("cpp", CPPMode) + .Case("cl", CLMode) + .Default(None)) + Mode = *M; else Diag(diag::err_drv_unsupported_option_argument) << OptName << Value; } |