reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

tools/clang/lib/Driver/ToolChains/Clang.cpp
 3379       Args.hasArg(options::OPT_mkernel, options::OPT_fapple_kext);
 3398     auto *ModuleNameArg = Args.getLastArg(options::OPT_fmodule_name_EQ);
 3451   CmdArgs.push_back(Args.MakeArgString(TripleStr));
 3453   if (const Arg *MJ = Args.getLastArg(options::OPT_MJ)) {
 3454     DumpCompilationDatabase(C, MJ->getValue(), TripleStr, Output, Input, Args);
 3455     Args.ClaimAllArgs(options::OPT_MJ);
 3457                  Args.getLastArg(options::OPT_gen_cdb_fragment_path)) {
 3459                                          TripleStr, Output, Input, Args);
 3460     Args.ClaimAllArgs(options::OPT_gen_cdb_fragment_path);
 3486           CmdArgs.push_back(Args.MakeArgString(
 3492     CmdArgs.push_back(Args.MakeArgString(NormalizedTriple));
 3502     CmdArgs.push_back(Args.MakeArgString(NormalizedTriple));
 3534       Args.ClaimAllArgs(options::OPT_mrelax_all);
 3535       Args.ClaimAllArgs(options::OPT_mno_relax_all);
 3536       Args.ClaimAllArgs(options::OPT_mincremental_linker_compatible);
 3537       Args.ClaimAllArgs(options::OPT_mno_incremental_linker_compatible);
 3543         Args.ClaimAllArgs(options::OPT_mimplicit_it_EQ);
 3549     Args.ClaimAllArgs(options::OPT_Wa_COMMA);
 3550     Args.ClaimAllArgs(options::OPT_Xassembler);
 3563       if (Args.hasArg(options::OPT_rewrite_objc) &&
 3564           !Args.hasArg(options::OPT_g_Group))
 3570     CollectArgsForIntegratedAssembler(C, Args, CmdArgs, D);
 3573     (void)Args.hasArg(options::OPT_force__cpusubtype__ALL);
 3599           Args.hasArg(options::OPT_interface_stub_version_EQ)
 3600               ? Args.getLastArgValue(options::OPT_interface_stub_version_EQ)
 3604           Args.MakeArgString(Twine("-interface-stub-version=") + ArgStr.str()));
 3633       Args.AddLastArg(CmdArgs, options::OPT_flto, options::OPT_flto_EQ);
 3638   if (const Arg *A = Args.getLastArg(options::OPT_fthinlto_index_EQ)) {
 3640       D.Diag(diag::err_drv_arg_requires_bitcode_input) << A->getAsString(Args);
 3641     Args.AddLastArg(CmdArgs, options::OPT_fthinlto_index_EQ);
 3644   if (Args.getLastArg(options::OPT_fthin_link_bitcode_EQ))
 3645     Args.AddLastArg(CmdArgs, options::OPT_fthin_link_bitcode_EQ);
 3647   if (Args.getLastArg(options::OPT_save_temps_EQ))
 3648     Args.AddLastArg(CmdArgs, options::OPT_save_temps_EQ);
 3655     Args.AddLastArg(CmdArgs, options::OPT_fembed_bitcode_EQ);
 3660     TC.addClangTargetOptions(Args, CmdArgs, JA.getOffloadingDeviceKind());
 3702     for (const auto &A : Args)
 3708     if (!Args.hasFlag(options::OPT_foptimize_sibling_calls,
 3712     RenderFloatingPointOptions(TC, D, isOptimizationLevelFast(Args), Args,
 3712     RenderFloatingPointOptions(TC, D, isOptimizationLevelFast(Args), Args,
 3721       RenderARMABI(Triple, Args, CmdArgs);
 3725       RenderAArch64ABI(Triple, Args, CmdArgs);
 3730     if (const Arg *A = Args.getLastArg(options::OPT_O_Group)) {
 3735         A->render(Args, CmdArgs);
 3750       addDashXForInput(Args, II, CmdArgs);
 3754         II.getInputArg().renderAsInput(Args, CmdArgs);
 3782   if (Args.hasFlag(options::OPT_fdiscard_value_names,
 3789   CmdArgs.push_back(getBaseInputName(Args, Input));
 3793   if (Args.hasArg(options::OPT_static))
 3796   if (Args.hasArg(options::OPT_municode))
 3800     RenderAnalyzerOptions(Args, CmdArgs, Triple, Input);
 3803       (isa<PreprocessJobAction>(JA) && Args.hasArg(options::OPT__analyze)))
 3810   for (auto Arg : Args.filtered(options::OPT_Xclang))
 3816     for (auto Arg : Args.filtered(options::OPT_Xanalyzer))
 3824   CheckCodeGenerationOptions(D, Args);
 3826   unsigned FunctionAlignment = ParseFunctionAlignment(TC, Args);
 3830     CmdArgs.push_back(Args.MakeArgString(std::to_string(FunctionAlignment)));
 3836   std::tie(RelocationModel, PICLevel, IsPIE) = ParsePICArgs(TC, Args);
 3843       !Args.hasArg(options::OPT_fallow_unsupported))
 3864   if (Arg *A = Args.getLastArg(options::OPT_meabi)) {
 3870   if (Arg *A = Args.getLastArg(options::OPT_mthread_model)) {
 3873           << A->getValue() << A->getAsString(Args);
 3877     CmdArgs.push_back(Args.MakeArgString(TC.getThreadModel()));
 3879   Args.AddLastArg(CmdArgs, options::OPT_fveclib);
 3881   if (Args.hasFlag(options::OPT_fmerge_all_constants,
 3885   if (Args.hasFlag(options::OPT_fno_delete_null_pointer_checks,
 3891   if (Args.hasArg(options::OPT_frewrite_map_file) ||
 3892       Args.hasArg(options::OPT_frewrite_map_file_EQ)) {
 3893     for (const Arg *A : Args.filtered(options::OPT_frewrite_map_file,
 3906   if (Arg *A = Args.getLastArg(options::OPT_Wframe_larger_than_EQ)) {
 3909     CmdArgs.push_back(Args.MakeArgString("-warn-stack-size=" + v));
 3913   if (!Args.hasFlag(options::OPT_fjump_tables, options::OPT_fno_jump_tables,
 3917   if (Args.hasFlag(options::OPT_fprofile_sample_accurate,
 3921   if (!Args.hasFlag(options::OPT_fpreserve_as_comments,
 3925   if (Arg *A = Args.getLastArg(options::OPT_mregparm_EQ)) {
 3930   if (Arg *A = Args.getLastArg(options::OPT_fpcc_struct_return,
 3943   if (Args.hasFlag(options::OPT_mrtd, options::OPT_mno_rtd, false))
 3947                   getFramePointerKind(Args, RawTriple);
 3963   if (!Args.hasFlag(options::OPT_fzero_initialized_in_bss,
 3967   bool OFastEnabled = isOptimizationLevelFast(Args);
 3975   if (!Args.hasFlag(options::OPT_fstrict_aliasing, StrictAliasingAliasOption,
 3978   if (!Args.hasFlag(options::OPT_fstruct_path_tbaa,
 3981   if (Args.hasFlag(options::OPT_fstrict_enums, options::OPT_fno_strict_enums,
 3984   if (!Args.hasFlag(options::OPT_fstrict_return, options::OPT_fno_strict_return,
 3987   if (Args.hasFlag(options::OPT_fallow_editor_placeholders,
 3990   if (Args.hasFlag(options::OPT_fstrict_vtable_pointers,
 3994   if (Args.hasFlag(options::OPT_fforce_emit_vtables,
 3998   if (!Args.hasFlag(options::OPT_foptimize_sibling_calls,
 4001   if (Args.hasFlag(options::OPT_fno_escaping_block_tail_calls,
 4005   Args.AddLastArg(CmdArgs, options::OPT_ffine_grained_bitfield_accesses,
 4009   if (Args.hasArg(options::OPT_fsplit_stack))
 4012   RenderFloatingPointOptions(TC, D, OFastEnabled, Args, CmdArgs);
 4014   if (Arg *A = Args.getLastArg(options::OPT_LongDouble_Group)) {
 4017       A->render(Args, CmdArgs);
 4020       A->render(Args, CmdArgs);
 4023           << A->getAsString(Args) << TripleStr;
 4029   if (Args.hasFlag(options::OPT_fverbose_asm, options::OPT_fno_verbose_asm,
 4036   if (Args.hasArg(options::OPT_fdebug_pass_structure)) {
 4040   if (Args.hasArg(options::OPT_fdebug_pass_arguments)) {
 4056   if (Args.hasFlag(options::OPT_mms_bitfields, options::OPT_mno_ms_bitfields,
 4061   if (Args.hasFlag(options::OPT_mpie_copy_relocations,
 4067   if (Args.hasFlag(options::OPT_fno_plt, options::OPT_fplt, false)) {
 4075       Args.hasFlag(options::OPT_ffreestanding, options::OPT_fhosted, false) ||
 4084       Args.hasFlag(options::OPT_fasynchronous_unwind_tables,
 4086                    (TC.IsUnwindTablesDefault(Args) ||
 4089   if (Args.hasFlag(options::OPT_funwind_tables, options::OPT_fno_unwind_tables,
 4093   TC.addClangTargetOptions(Args, CmdArgs, JA.getOffloadingDeviceKind());
 4096   (void)Args.hasArg(options::OPT_mtune_EQ);
 4098   if (Arg *A = Args.getLastArg(options::OPT_mcmodel_EQ)) {
 4104   std::string CPU = getCPUName(Args, Triple, /*FromAs*/ false);
 4107     CmdArgs.push_back(Args.MakeArgString(CPU));
 4110   RenderTargetOptions(Triple, Args, KernelOrKext, CmdArgs);
 4119     AddClangCLArgs(Args, InputType, CmdArgs, &DebugInfoKind, &EmitCodeView);
 4122   RenderDebugOptions(TC, D, RawTriple, Args, EmitCodeView, IsWindowsMSVC,
 4132     const char *SplitDWARFOut = SplitDebugName(Args, Input, Output);
 4142   if (Arg *A = Args.getLastArg(options::OPT_mlinker_version_EQ)) {
 4149   if (!Args.hasArg(options::OPT_fallow_unsupported)) {
 4153       if ((Unsupported = Args.getLastArg(options::OPT_fapple_kext)) ||
 4154           (Unsupported = Args.getLastArg(options::OPT_mkernel)))
 4159     if ((Unsupported = Args.getLastArg(options::OPT_faltivec)))
 4163     if ((Unsupported = Args.getLastArg(options::OPT_fno_altivec)))
 4168   Args.AddAllArgs(CmdArgs, options::OPT_v);
 4169   Args.AddLastArg(CmdArgs, options::OPT_H);
 4175   Args.AddLastArg(CmdArgs, options::OPT_P);
 4176   Args.AddLastArg(CmdArgs, options::OPT_print_ivar_layout);
 4186   if (Args.hasFlag(options::OPT_ffunction_sections,
 4191   if (Args.hasFlag(options::OPT_fdata_sections, options::OPT_fno_data_sections,
 4196   if (!Args.hasFlag(options::OPT_funique_section_names,
 4200   Args.AddLastArg(CmdArgs, options::OPT_finstrument_functions,
 4208     addPGOAndCoverageFlags(TC, C, D, Output, Args, CmdArgs);
 4210   Args.AddLastArg(CmdArgs, options::OPT_fclang_abi_compat_EQ);
 4214       !Args.hasArg(options::OPT_nostdlib, options::OPT_nodefaultlibs)) {
 4215     PS4cpu::addProfileRTArgs(TC, Args, CmdArgs);
 4220   if (Args.hasArg(options::OPT_nostdinc)) {
 4224     if (Args.hasArg(options::OPT_nostdlibinc))
 4226     Args.AddLastArg(CmdArgs, options::OPT_nostdincxx);
 4227     Args.AddLastArg(CmdArgs, options::OPT_nobuiltininc);
 4234   Args.AddLastArg(CmdArgs, options::OPT_working_directory);
 4236   RenderARCMigrateToolOptions(D, Args, CmdArgs);
 4243     AddPreprocessingOptions(C, JA, D, Args, CmdArgs, Output, Inputs);
 4249   Args.ClaimAllArgs(options::OPT_D);
 4252   if (Arg *A = Args.getLastArg(options::OPT_O_Group)) {
 4257       A->render(Args, CmdArgs);
 4263        Args.filtered(options::OPT_clang_ignored_gcc_optimization_f_Group)) {
 4264     D.Diag(diag::warn_ignored_gcc_optimization) << A->getAsString(Args);
 4269        Args.filtered(options::OPT_clang_ignored_legacy_options_Group)) {
 4270     D.Diag(diag::warn_ignored_clang_option) << A->getAsString(Args);
 4274   claimNoWarnArgs(Args);
 4276   Args.AddAllArgs(CmdArgs, options::OPT_R_Group);
 4278   Args.AddAllArgs(CmdArgs, options::OPT_W_Group);
 4279   if (Args.hasFlag(options::OPT_pedantic, options::OPT_no_pedantic, false))
 4281   Args.AddLastArg(CmdArgs, options::OPT_pedantic_errors);
 4282   Args.AddLastArg(CmdArgs, options::OPT_w);
 4285   if (Args.hasFlag(options::OPT_ffixed_point, options::OPT_fno_fixed_point,
 4287     Args.AddLastArg(CmdArgs, options::OPT_ffixed_point);
 4295   const Arg *Std = Args.getLastArg(options::OPT_std_EQ, options::OPT_ansi);
 4303       Std->render(Args, CmdArgs);
 4306     if (Arg *A = Args.getLastArg(options::OPT_std_EQ, options::OPT_ansi,
 4310         A->render(Args, CmdArgs);
 4319       Args.AddAllArgsTranslated(CmdArgs, options::OPT_std_default_EQ, "-std=",
 4324     Args.AddLastArg(CmdArgs, options::OPT_ftrigraphs,
 4341         Args.getLastArg(options::OPT_Wwrite_strings,
 4352       Args.hasFlag(options::OPT_Wdeprecated, options::OPT_Wno_deprecated,
 4358   if (Arg *Asm = Args.getLastArg(options::OPT_fasm, options::OPT_fno_asm)) {
 4365   if (ShouldDisableDwarfDirectory(Args, TC))
 4368   if (ShouldDisableAutolink(Args, TC))
 4372   addDebugCompDirArg(Args, CmdArgs, D.getVFS());
 4374   addDebugPrefixMapArg(D, Args, CmdArgs);
 4376   if (Arg *A = Args.getLastArg(options::OPT_ftemplate_depth_,
 4382   if (Arg *A = Args.getLastArg(options::OPT_foperator_arrow_depth_EQ)) {
 4387   if (Arg *A = Args.getLastArg(options::OPT_fconstexpr_depth_EQ)) {
 4392   if (Arg *A = Args.getLastArg(options::OPT_fconstexpr_steps_EQ)) {
 4397   if (Args.hasArg(options::OPT_fexperimental_new_constant_interpreter))
 4400   if (Args.hasArg(options::OPT_fforce_experimental_new_constant_interpreter))
 4403   if (Arg *A = Args.getLastArg(options::OPT_fbracket_depth_EQ)) {
 4408   if (Arg *A = Args.getLastArg(options::OPT_Wlarge_by_value_copy_EQ,
 4412       CmdArgs.push_back(Args.MakeArgString("-Wlarge-by-value-copy=" + bytes));
 4417   if (Args.hasArg(options::OPT_relocatable_pch))
 4420   if (const Arg *A = Args.getLastArg(options::OPT_fcf_runtime_abi_EQ)) {
 4428       A->render(Args, CmdArgs);
 4431   if (Arg *A = Args.getLastArg(options::OPT_fconstant_string_class_EQ)) {
 4436   if (Arg *A = Args.getLastArg(options::OPT_ftabstop_EQ)) {
 4441   if (Args.hasFlag(options::OPT_fstack_size_section,
 4446   if (Arg *A = Args.getLastArg(options::OPT_ferror_limit_EQ))
 4451   if (Arg *A = Args.getLastArg(options::OPT_fmacro_backtrace_limit_EQ)) {
 4456   if (Arg *A = Args.getLastArg(options::OPT_ftemplate_backtrace_limit_EQ)) {
 4461   if (Arg *A = Args.getLastArg(options::OPT_fconstexpr_backtrace_limit_EQ)) {
 4466   if (Arg *A = Args.getLastArg(options::OPT_fspell_checking_limit_EQ)) {
 4473   if (Arg *A = Args.getLastArg(options::OPT_fmessage_length_EQ)) {
 4479     CmdArgs.push_back(Args.MakeArgString(Twine(N)));
 4483   if (const Arg *A = Args.getLastArg(options::OPT_fvisibility_EQ,
 4497   Args.AddLastArg(CmdArgs, options::OPT_fvisibility_inlines_hidden);
 4498   Args.AddLastArg(CmdArgs, options::OPT_fvisibility_global_new_delete_hidden);
 4500   Args.AddLastArg(CmdArgs, options::OPT_ftlsmodel_EQ);
 4503   Args.AddLastArg(CmdArgs, options::OPT_femit_all_decls);
 4504   Args.AddLastArg(CmdArgs, options::OPT_fheinous_gnu_extensions);
 4505   Args.AddLastArg(CmdArgs, options::OPT_fdigraphs, options::OPT_fno_digraphs);
 4506   Args.AddLastArg(CmdArgs, options::OPT_fno_operator_names);
 4507   Args.AddLastArg(CmdArgs, options::OPT_femulated_tls,
 4509   Args.AddLastArg(CmdArgs, options::OPT_fkeep_static_consts);
 4513     Args.AddLastArg(CmdArgs, options::OPT_fzvector);
 4515   Args.AddLastArg(CmdArgs, options::OPT_fdiagnostics_show_template_tree);
 4516   Args.AddLastArg(CmdArgs, options::OPT_fno_elide_type);
 4520   if (Args.hasFlag(options::OPT_fopenmp, options::OPT_fopenmp_EQ,
 4524     switch (D.getOpenMPRuntime(Args)) {
 4533       if (!Args.hasFlag(options::OPT_fopenmp_use_tls,
 4536       Args.AddLastArg(CmdArgs, options::OPT_fopenmp_simd,
 4538       Args.AddAllArgs(CmdArgs, options::OPT_fopenmp_version_EQ);
 4539       Args.AddAllArgs(CmdArgs, options::OPT_fopenmp_cuda_number_of_sm_EQ);
 4540       Args.AddAllArgs(CmdArgs, options::OPT_fopenmp_cuda_blocks_per_sm_EQ);
 4541       Args.AddAllArgs(CmdArgs,
 4543       if (Args.hasFlag(options::OPT_fopenmp_optimistic_collapse,
 4550       if (Args.hasFlag(options::OPT_fopenmp_cuda_mode,
 4556       if (Args.hasFlag(options::OPT_fopenmp_cuda_force_full_runtime,
 4571     Args.AddLastArg(CmdArgs, options::OPT_fopenmp_simd,
 4573     Args.AddAllArgs(CmdArgs, options::OPT_fopenmp_version_EQ);
 4577   Sanitize.addArgs(TC, Args, CmdArgs, InputType);
 4580   XRay.addArgs(TC, Args, CmdArgs, InputType);
 4583     Args.AddLastArg(CmdArgs, options::OPT_pg);
 4586     Args.AddLastArg(CmdArgs, options::OPT_mfentry);
 4588   if (Args.getLastArg(options::OPT_fapple_kext) ||
 4589       (Args.hasArg(options::OPT_mkernel) && types::isCXX(InputType)))
 4592   Args.AddLastArg(CmdArgs, options::OPT_flax_vector_conversions_EQ);
 4593   Args.AddLastArg(CmdArgs, options::OPT_fobjc_sender_dependent_dispatch);
 4594   Args.AddLastArg(CmdArgs, options::OPT_fdiagnostics_print_source_range_info);
 4595   Args.AddLastArg(CmdArgs, options::OPT_fdiagnostics_parseable_fixits);
 4596   Args.AddLastArg(CmdArgs, options::OPT_ftime_report);
 4597   Args.AddLastArg(CmdArgs, options::OPT_ftime_trace);
 4598   Args.AddLastArg(CmdArgs, options::OPT_ftime_trace_granularity_EQ);
 4599   Args.AddLastArg(CmdArgs, options::OPT_ftrapv);
 4600   Args.AddLastArg(CmdArgs, options::OPT_malign_double);
 4602   if (Arg *A = Args.getLastArg(options::OPT_ftrapv_handler_EQ)) {
 4607   Args.AddLastArg(CmdArgs, options::OPT_ftrap_function_EQ);
 4611   if (Arg *A = Args.getLastArg(options::OPT_fwrapv, options::OPT_fno_wrapv)) {
 4614   } else if (Arg *A = Args.getLastArg(options::OPT_fstrict_overflow,
 4620   if (Arg *A = Args.getLastArg(options::OPT_freroll_loops,
 4625   Args.AddLastArg(CmdArgs, options::OPT_fwritable_strings);
 4626   Args.AddLastArg(CmdArgs, options::OPT_funroll_loops,
 4629   Args.AddLastArg(CmdArgs, options::OPT_pthread);
 4631   if (Args.hasFlag(options::OPT_mspeculative_load_hardening, options::OPT_mno_speculative_load_hardening,
 4633     CmdArgs.push_back(Args.MakeArgString("-mspeculative-load-hardening"));
 4635   RenderSSPOptions(TC, Args, CmdArgs, KernelOrKext);
 4636   RenderTrivialAutoVarInitOptions(D, TC, Args, CmdArgs);
 4639   if (Args.hasFlag(options::OPT_mstackrealign, options::OPT_mno_stackrealign,
 4641     CmdArgs.push_back(Args.MakeArgString("-mstackrealign"));
 4643   if (Args.hasArg(options::OPT_mstack_alignment)) {
 4644     StringRef alignment = Args.getLastArgValue(options::OPT_mstack_alignment);
 4645     CmdArgs.push_back(Args.MakeArgString("-mstack-alignment=" + alignment));
 4648   if (Args.hasArg(options::OPT_mstack_probe_size)) {
 4649     StringRef Size = Args.getLastArgValue(options::OPT_mstack_probe_size);
 4652       CmdArgs.push_back(Args.MakeArgString("-mstack-probe-size=" + Size));
 4657   if (!Args.hasFlag(options::OPT_mstack_arg_probe,
 4659     CmdArgs.push_back(Args.MakeArgString("-mno-stack-arg-probe"));
 4661   if (Arg *A = Args.getLastArg(options::OPT_mrestrict_it,
 4679   RenderOpenCLOptions(Args, CmdArgs);
 4681   if (Args.hasFlag(options::OPT_fhip_new_launch_api,
 4685   if (Arg *A = Args.getLastArg(options::OPT_fcf_protection_EQ)) {
 4687         Args.MakeArgString(Twine("-fcf-protection=") + A->getValue()));
 4692   if (Arg *A = getLastProfileSampleUseArg(Args)) {
 4693     auto *PGOArg = Args.getLastArg(
 4705       A->render(Args, CmdArgs);
 4707   Args.AddLastArg(CmdArgs, options::OPT_fprofile_remapping_file_EQ);
 4709   RenderBuiltinOptions(TC, RawTriple, Args, CmdArgs);
 4711   if (!Args.hasFlag(options::OPT_fassume_sane_operator_new,
 4716   if (Args.hasFlag(options::OPT_fblocks, options::OPT_fno_blocks,
 4718       (Args.hasArg(options::OPT_fgnu_runtime) &&
 4719        Args.hasArg(options::OPT_fobjc_nonfragile_abi) &&
 4720        !Args.hasArg(options::OPT_fno_blocks))) {
 4723     if (!Args.hasArg(options::OPT_fgnu_runtime) && !TC.hasBlocksRuntime())
 4731   if (Args.hasFlag(options::OPT_fcoroutines_ts, options::OPT_fno_coroutines_ts,
 4737   Args.AddLastArg(CmdArgs, options::OPT_fdouble_square_bracket_attributes,
 4741   if (Args.hasFlag(options::OPT_fno_access_control,
 4746   if (Args.hasFlag(options::OPT_fno_elide_constructors,
 4757   if (Args.hasFlag(options::OPT_fshort_enums, options::OPT_fno_short_enums,
 4761   RenderCharacterOptions(Args, AuxTriple ? *AuxTriple : RawTriple, CmdArgs);
 4764   if (!Args.hasFlag(
 4773   if (Args.hasFlag(options::OPT_fregister_global_dtors_with_atexit,
 4779   if (Args.hasFlag(options::OPT_fms_extensions, options::OPT_fno_ms_extensions,
 4784   if (Args.hasFlag(options::OPT_fuse_line_directives,
 4789   bool IsMSVCCompat = Args.hasFlag(
 4791       (IsWindowsMSVC && Args.hasFlag(options::OPT_fms_extensions,
 4798   if (Arg *A = Args.getLastArg(options::OPT_fgnuc_version_EQ)) {
 4808           << A->getAsString(Args) << A->getValue();
 4816         Args.MakeArgString("-fgnuc-version=" + GNUCVer.getAsString()));
 4819   VersionTuple MSVT = TC.computeMSVCVersion(&D, Args);
 4822         Args.MakeArgString("-fms-compatibility-version=" + MSVT.getAsString()));
 4827     if (const Arg *StdArg = Args.getLastArg(options::OPT__SLASH_std)) {
 4836             << StdArg->getAsString(Args);
 4850   if (Args.hasFlag(options::OPT_fborland_extensions,
 4855   if (Args.hasFlag(options::OPT_fdeclspec, options::OPT_fno_declspec,
 4858   else if (Args.hasArg(options::OPT_fno_declspec))
 4863   if (!Args.hasFlag(options::OPT_fthreadsafe_statics,
 4872   if (Args.hasFlag(options::OPT_fdelayed_template_parsing,
 4878   Args.AddLastArg(CmdArgs, options::OPT_fgnu_keywords,
 4881   if (Args.hasFlag(options::OPT_fgnu89_inline, options::OPT_fno_gnu89_inline,
 4885   if (Args.hasArg(options::OPT_fno_inline))
 4888   Args.AddLastArg(CmdArgs, options::OPT_finline_functions,
 4896   RenderModulesOptions(C, D, Args, Input, Output, CmdArgs, HaveModules);
 4898   if (Args.hasFlag(options::OPT_fpch_validate_input_files_content,
 4902   Args.AddLastArg(CmdArgs, options::OPT_fexperimental_new_pass_manager,
 4905   ObjCRuntime Runtime = AddObjCRuntimeArgs(Args, CmdArgs, rewriteKind);
 4906   RenderObjCOptions(TC, D, RawTriple, Args, Runtime, rewriteKind != RK_None,
 4909   if (Args.hasFlag(options::OPT_fapplication_extension,
 4915     addExceptionArgs(Args, InputType, TC, KernelOrKext, Runtime, CmdArgs);
 4918   Arg *A = Args.getLastArg(
 4932     switch (TC.GetExceptionModel(Args)) {
 4948   if (!Args.hasFlag(options::OPT_fassume_sane_operator_new,
 4955   if (Args.hasFlag(options::OPT_frelaxed_template_template_args,
 4961   if (Args.hasFlag(options::OPT_fsized_deallocation,
 4967   if (Arg *A = Args.getLastArg(options::OPT_faligned_allocation,
 4978   if (Arg *A = Args.getLastArg(options::OPT_fnew_alignment_EQ,
 4981         Args.MakeArgString(Twine("-fnew-alignment=") + A->getValue()));
 4985   if (!Args.hasFlag(options::OPT_fconstant_cfstrings,
 4987       !Args.hasFlag(options::OPT_mconstant_cfstrings,
 4992   if (Args.hasFlag(options::OPT_fpascal_strings,
 4998   if (Arg *A = Args.getLastArg(options::OPT_fpack_struct_EQ)) {
 5001     CmdArgs.push_back(Args.MakeArgString(PackStructStr));
 5002   } else if (Args.hasFlag(options::OPT_fpack_struct,
 5008   bool SkipMaxTypeAlign = Args.hasArg(options::OPT_fno_max_type_align);
 5009   if (Arg *A = Args.getLastArg(options::OPT_fmax_type_align_EQ)) {
 5013       CmdArgs.push_back(Args.MakeArgString(MaxTypeAlignStr));
 5018       CmdArgs.push_back(Args.MakeArgString(MaxTypeAlignStr));
 5022   if (!Args.hasFlag(options::OPT_Qy, options::OPT_Qn, true))
 5027   if (!Args.hasFlag(options::OPT_fcommon, options::OPT_fno_common,
 5033   if (!Args.hasFlag(options::OPT_fsigned_bitfields,
 5036         << Args.getLastArg(options::OPT_funsigned_bitfields)->getAsString(Args);
 5036         << Args.getLastArg(options::OPT_funsigned_bitfields)->getAsString(Args);
 5039   if (!Args.hasFlag(options::OPT_ffor_scope, options::OPT_fno_for_scope))
 5041         << Args.getLastArg(options::OPT_fno_for_scope)->getAsString(Args);
 5041         << Args.getLastArg(options::OPT_fno_for_scope)->getAsString(Args);
 5044   if (Arg *inputCharset = Args.getLastArg(options::OPT_finput_charset_EQ)) {
 5047       D.Diag(diag::err_drv_invalid_value) << inputCharset->getAsString(Args)
 5052   if (Arg *execCharset = Args.getLastArg(options::OPT_fexec_charset_EQ)) {
 5055       D.Diag(diag::err_drv_invalid_value) << execCharset->getAsString(Args)
 5059   RenderDiagnosticsOptions(D, Args, CmdArgs);
 5062   if (Args.hasFlag(options::OPT_fasm_blocks, options::OPT_fno_asm_blocks,
 5067   if (!Args.hasFlag(options::OPT_fgnu_inline_asm,
 5074   bool EnableVec = shouldEnableVectorizerAtOLevel(Args, false);
 5077   if (Args.hasFlag(options::OPT_fvectorize, VectorizeAliasOption,
 5082   bool EnableSLPVec = shouldEnableVectorizerAtOLevel(Args, true);
 5085   if (Args.hasFlag(options::OPT_fslp_vectorize, SLPVectAliasOption,
 5089   ParseMPreferVectorWidth(D, Args, CmdArgs);
 5091   Args.AddLastArg(CmdArgs, options::OPT_fshow_overloads_EQ);
 5092   Args.AddLastArg(CmdArgs,
 5097   if (Arg *A = Args.getLastArg(options::OPT_fdollars_in_identifiers,
 5107   if (Arg *A = Args.getLastArg(options::OPT_funit_at_a_time,
 5110       D.Diag(diag::warn_drv_clang_unsupported) << A->getAsString(Args);
 5113   if (Args.hasFlag(options::OPT_fapple_pragma_pack,
 5118   if (Args.hasFlag(options::OPT_fsave_optimization_record,
 5121       Args.hasFlag(options::OPT_fsave_optimization_record_EQ,
 5123       Args.hasFlag(options::OPT_foptimization_record_passes_EQ,
 5127     const Arg *A = Args.getLastArg(options::OPT_foptimization_record_file_EQ);
 5133       if (Args.hasArg(options::OPT_c) || Args.hasArg(options::OPT_S)) {
 5133       if (Args.hasArg(options::OPT_c) || Args.hasArg(options::OPT_S)) {
 5134         if (Arg *FinalOutput = Args.getLastArg(options::OPT_o))
 5157               Args.getLastArg(options::OPT_fsave_optimization_record_EQ))
 5163       CmdArgs.push_back(Args.MakeArgString(F));
 5167             Args.getLastArg(options::OPT_foptimization_record_passes_EQ)) {
 5173             Args.getLastArg(options::OPT_fsave_optimization_record_EQ)) {
 5179   bool RewriteImports = Args.hasFlag(options::OPT_frewrite_imports,
 5188   if (Args.hasFlag(options::OPT_frewrite_includes,
 5194   if (Arg *A = Args.getLastArg(options::OPT_traditional,
 5199       D.Diag(diag::err_drv_clang_unsupported) << A->getAsString(Args);
 5202   Args.AddLastArg(CmdArgs, options::OPT_dM);
 5203   Args.AddLastArg(CmdArgs, options::OPT_dD);
 5206   if (Arg *A = Args.getLastArg(options::OPT__serialize_diags)) {
 5208     CmdArgs.push_back(Args.MakeArgString(A->getValue()));
 5211   if (Args.hasArg(options::OPT_fretain_comments_from_system_headers))
 5215   Args.AddAllArgs(CmdArgs, options::OPT_fcomment_block_commands);
 5217   Args.AddAllArgs(CmdArgs, options::OPT_fparse_all_comments);
 5220   for (const Arg *A : Args.filtered(options::OPT_fplugin_EQ)) {
 5227   for (const Arg *A : Args.filtered(options::OPT_fpass_plugin_EQ)) {
 5229         Args.MakeArgString(Twine("-fpass-plugin=") + A->getValue()));
 5234   SmallString<128> StatsFile = getStatsFileName(Args, Output, Input, D);
 5236     CmdArgs.push_back(Args.MakeArgString(Twine("-stats-file=") + StatsFile));
 5244     for (auto Arg : Args.filtered(options::OPT_Xclang)) {
 5251     Args.AddAllArgValues(CmdArgs, options::OPT_Xclang);
 5253   for (const Arg *A : Args.filtered(options::OPT_mllvm)) {
 5262       A->render(Args, CmdArgs);
 5279   Args.AddAllArgs(CmdArgs, options::OPT_undef);
 5289       Args.hasFlag(options::OPT_grecord_command_line,
 5292       Args.hasFlag(options::OPT_frecord_command_line,
 5296         << Args.getLastArg(options::OPT_frecord_command_line)->getAsString(Args)
 5296         << Args.getLastArg(options::OPT_frecord_command_line)->getAsString(Args)
 5300     for (const auto &Arg : Args)
 5301       Arg->render(Args, OriginalArgs);
 5311     auto FlagsArgString = Args.MakeArgString(Flags);
 5327       if (Args.hasFlag(options::OPT_fgpu_rdc, options::OPT_fno_gpu_rdc, false))
 5332     if (Args.hasFlag(options::OPT_fcuda_short_ptr,
 5349       CmdArgs.push_back(Args.MakeArgString(OpenMPDeviceInput->getFilename()));
 5358     Arg *Tgts = Args.getLastArg(options::OPT_fopenmp_targets_EQ);
 5369     CmdArgs.push_back(Args.MakeArgString(TargetInfo.str()));
 5373       Args.hasFlag(options::OPT_fvirtual_function_elimination,
 5387   bool WholeProgramVTables = Args.hasFlag(
 5408       Args.hasFlag(options::OPT_fsplit_lto_unit,
 5416   if (Arg *A = Args.getLastArg(options::OPT_fexperimental_isel,
 5428       Arg *A = Args.getLastArg(options::OPT_O_Group);
 5447   if (Args.hasArg(options::OPT_forder_file_instrumentation)) {
 5458   if (Arg *A = Args.getLastArg(options::OPT_fforce_enable_int128,
 5464   if (Args.hasFlag(options::OPT_fcomplete_member_pointers,
 5468   if (!Args.hasFlag(options::OPT_fcxx_static_destructors,
 5472   if (Arg *A = Args.getLastArg(options::OPT_moutline,
 5491   if (Args.hasFlag(options::OPT_faddrsig, options::OPT_fno_addrsig,
 5501   if (Arg *A = Args.getLastArg(options::OPT_fsymbol_partition_EQ)) {
 5502     std::string Str = A->getAsString(Args);
 5506     CmdArgs.push_back(Args.MakeArgString(Str));
 5520   addDashXForInput(Args, Input, CmdArgs);
 5532       Input.getInputArg().renderAsInput(Args, CmdArgs);
 5536   if (Args.hasArg(options::OPT__SLASH_fallback) &&
 5540         getCLFallback()->GetCommand(C, JA, Output, Inputs, Args, LinkingOutput);
 5543   } else if (Args.hasArg(options::OPT__SLASH_fallback) &&
 5555       Args.hasFlag(options::OPT__SLASH_showFilenames,
 5560   if (Arg *A = Args.getLastArg(options::OPT_pg))
 5563                                                       << A->getAsString(Args);
 5569   Args.ClaimAllArgs(options::OPT_fpch_preprocess);
 5573   Args.ClaimAllArgs(options::OPT_clang_ignored_f_Group);
 5574   Args.ClaimAllArgs(options::OPT_clang_ignored_m_Group);
 5577   Args.ClaimAllArgs(options::OPT_emit_llvm);