================ @@ -4002,6 +4022,24 @@ bool CompilerInvocation::ParseLangArgs(LangOptions &Opts, ArgList &Args, parseSanitizerKinds("-fsanitize=", Args.getAllArgValues(OPT_fsanitize_EQ), Diags, Opts.Sanitize); + if (const Arg *A = Args.getLastArg(options::OPT_exception_model)) { + std::optional<LangOptions::ExceptionHandlingKind> EMValue = + llvm::StringSwitch<std::optional<LangOptions::ExceptionHandlingKind>>( + A->getValue()) + .Case("dwarf", LangOptions::ExceptionHandlingKind::DwarfCFI) + .Case("sjlj", LangOptions::ExceptionHandlingKind::SjLj) + .Case("wineh", LangOptions::ExceptionHandlingKind::WinEH) + .Case("wasm", LangOptions::ExceptionHandlingKind::Wasm) + .Case("none", LangOptions::ExceptionHandlingKind::None) + .Default(std::nullopt); + if (EMValue) { + Opts.ExceptionHandling = static_cast<unsigned>(*EMValue); + } else { + Diags.Report(diag::err_drv_invalid_value) + << A->getAsString(Args) << A->getValue(); + } ---------------- arsenm wrote:
Multiple lines implies braces, and then keep on all if one does https://github.com/llvm/llvm-project/pull/146342 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits