Lines Matching refs:options
73 if (Arg *A = Args.getLastArg(clang::driver::options::OPT_C, options::OPT_CC, in CheckPreprocessingOptions()
74 options::OPT_fminimize_whitespace, in CheckPreprocessingOptions()
75 options::OPT_fno_minimize_whitespace, in CheckPreprocessingOptions()
76 options::OPT_fkeep_system_includes, in CheckPreprocessingOptions()
77 options::OPT_fno_keep_system_includes)) { in CheckPreprocessingOptions()
78 if (!Args.hasArg(options::OPT_E) && !Args.hasArg(options::OPT__SLASH_P) && in CheckPreprocessingOptions()
79 !Args.hasArg(options::OPT__SLASH_EP) && !D.CCCIsCPP()) { in CheckPreprocessingOptions()
89 if (Args.hasArg(options::OPT_static)) in CheckCodeGenerationOptions()
91 Args.getLastArg(options::OPT_dynamic, options::OPT_mdynamic_no_pic)) in CheckCodeGenerationOptions()
185 Arg *A = Args.getLastArg(options::OPT_mrecip, options::OPT_mrecip_EQ); in ParseMRecip()
289 Arg *A = Args.getLastArg(options::OPT_mprefer_vector_width_EQ); in ParseMPreferVectorWidth()
336 Args.ClaimAllArgs(options::OPT_fexceptions); in addExceptionArgs()
337 Args.ClaimAllArgs(options::OPT_fno_exceptions); in addExceptionArgs()
338 Args.ClaimAllArgs(options::OPT_fobjc_exceptions); in addExceptionArgs()
339 Args.ClaimAllArgs(options::OPT_fno_objc_exceptions); in addExceptionArgs()
340 Args.ClaimAllArgs(options::OPT_fcxx_exceptions); in addExceptionArgs()
341 Args.ClaimAllArgs(options::OPT_fno_cxx_exceptions); in addExceptionArgs()
342 Args.ClaimAllArgs(options::OPT_fasync_exceptions); in addExceptionArgs()
343 Args.ClaimAllArgs(options::OPT_fno_async_exceptions); in addExceptionArgs()
348 bool EH = Args.hasFlag(options::OPT_fexceptions, options::OPT_fno_exceptions, in addExceptionArgs()
353 bool EHa = Args.hasFlag(options::OPT_fasync_exceptions, in addExceptionArgs()
354 options::OPT_fno_async_exceptions, false); in addExceptionArgs()
364 Args.hasFlag(options::OPT_fobjc_exceptions, in addExceptionArgs()
365 options::OPT_fno_objc_exceptions, true)) { in addExceptionArgs()
376 options::OPT_fcxx_exceptions, options::OPT_fno_cxx_exceptions, in addExceptionArgs()
377 options::OPT_fexceptions, options::OPT_fno_exceptions); in addExceptionArgs()
380 ExceptionArg->getOption().matches(options::OPT_fcxx_exceptions) || in addExceptionArgs()
381 ExceptionArg->getOption().matches(options::OPT_fexceptions); in addExceptionArgs()
393 Args.AddLastArg(CmdArgs, options::OPT_fignore_exceptions); in addExceptionArgs()
395 Args.addOptInFlag(CmdArgs, options::OPT_fassume_nothrow_exception_dtor, in addExceptionArgs()
396 options::OPT_fno_assume_nothrow_exception_dtor); in addExceptionArgs()
415 return Args.hasFlag(options::OPT_fautolink, options::OPT_fno_autolink, in ShouldEnableAutolink()
423 if (Arg *A = Args.getLastArg(options::OPT_ffile_compilation_dir_EQ, in addDebugCompDirArg()
424 options::OPT_fdebug_compilation_dir_EQ)) { in addDebugCompDirArg()
425 if (A->getOption().matches(options::OPT_ffile_compilation_dir_EQ)) in addDebugCompDirArg()
442 for (auto *Arg : Args.filtered(options::OPT_Xclang)) in addDebugObjectName()
446 if (Args.hasArg(options::OPT_object_file_name_EQ)) in addDebugObjectName()
481 for (const Arg *A : Args.filtered(options::OPT_ffile_prefix_map_EQ, in addDebugPrefixMapArg()
482 options::OPT_fdebug_prefix_map_EQ)) { in addDebugPrefixMapArg()
495 for (const Arg *A : Args.filtered(options::OPT_ffile_prefix_map_EQ, in addMacroPrefixMapArg()
496 options::OPT_fmacro_prefix_map_EQ)) { in addMacroPrefixMapArg()
510 for (const Arg *A : Args.filtered(options::OPT_ffile_prefix_map_EQ, in addCoveragePrefixMapArg()
511 options::OPT_fcoverage_prefix_map_EQ)) { in addCoveragePrefixMapArg()
526 if (Arg *A = Args.getLastArg(options::OPT_O_Group)) { in shouldEnableVectorizerAtOLevel()
527 if (A->getOption().matches(options::OPT_O4) || in shouldEnableVectorizerAtOLevel()
528 A->getOption().matches(options::OPT_Ofast)) in shouldEnableVectorizerAtOLevel()
531 if (A->getOption().matches(options::OPT_O0)) in shouldEnableVectorizerAtOLevel()
534 assert(A->getOption().matches(options::OPT_O) && "Must have a -O flag"); in shouldEnableVectorizerAtOLevel()
560 if (Args.hasArg(options::OPT_verify_pch) && Input.getType() == types::TY_PCH) in addDashXForInput()
564 if (Args.hasArg(options::OPT_rewrite_objc)) in addDashXForInput()
591 auto *PGOGenerateArg = Args.getLastArg(options::OPT_fprofile_generate, in addPGOAndCoverageFlags()
592 options::OPT_fprofile_generate_EQ, in addPGOAndCoverageFlags()
593 options::OPT_fno_profile_generate); in addPGOAndCoverageFlags()
595 PGOGenerateArg->getOption().matches(options::OPT_fno_profile_generate)) in addPGOAndCoverageFlags()
601 options::OPT_fprofile_instr_generate, in addPGOAndCoverageFlags()
602 options::OPT_fprofile_instr_generate_EQ, in addPGOAndCoverageFlags()
603 options::OPT_fno_profile_instr_generate); in addPGOAndCoverageFlags()
606 options::OPT_fno_profile_instr_generate)) in addPGOAndCoverageFlags()
637 options::OPT_fprofile_instr_generate_EQ)) in addPGOAndCoverageFlags()
643 Args.hasFlag(options::OPT_frtlib_defaultlib, in addPGOAndCoverageFlags()
644 options::OPT_fno_rtlib_defaultlib, true)) { in addPGOAndCoverageFlags()
664 Args.hasFlag(options::OPT_frtlib_defaultlib, in addPGOAndCoverageFlags()
665 options::OPT_fno_rtlib_defaultlib, true)) { in addPGOAndCoverageFlags()
671 PGOGenerateArg ? options::OPT_fprofile_generate_EQ in addPGOAndCoverageFlags()
672 : options::OPT_fcs_profile_generate_EQ)) { in addPGOAndCoverageFlags()
681 if (ProfileUseArg->getOption().matches(options::OPT_fprofile_instr_use_EQ)) in addPGOAndCoverageFlags()
685 options::OPT_fprofile_use_EQ) || in addPGOAndCoverageFlags()
687 options::OPT_fprofile_instr_use))) { in addPGOAndCoverageFlags()
697 bool EmitCovNotes = Args.hasFlag(options::OPT_ftest_coverage, in addPGOAndCoverageFlags()
698 options::OPT_fno_test_coverage, false) || in addPGOAndCoverageFlags()
699 Args.hasArg(options::OPT_coverage); in addPGOAndCoverageFlags()
702 if (Args.hasFlag(options::OPT_fcoverage_mapping, in addPGOAndCoverageFlags()
703 options::OPT_fno_coverage_mapping, false)) { in addPGOAndCoverageFlags()
712 if (Args.hasFlag(options::OPT_fmcdc_coverage, options::OPT_fno_mcdc_coverage, in addPGOAndCoverageFlags()
714 if (!Args.hasFlag(options::OPT_fcoverage_mapping, in addPGOAndCoverageFlags()
715 options::OPT_fno_coverage_mapping, false)) in addPGOAndCoverageFlags()
723 if (Arg *A = Args.getLastArg(options::OPT_ffile_compilation_dir_EQ, in addPGOAndCoverageFlags()
724 options::OPT_fcoverage_compilation_dir_EQ)) { in addPGOAndCoverageFlags()
725 if (A->getOption().matches(options::OPT_ffile_compilation_dir_EQ)) in addPGOAndCoverageFlags()
735 if (Args.hasArg(options::OPT_fprofile_exclude_files_EQ)) { in addPGOAndCoverageFlags()
736 auto *Arg = Args.getLastArg(options::OPT_fprofile_exclude_files_EQ); in addPGOAndCoverageFlags()
737 if (!Args.hasArg(options::OPT_coverage)) in addPGOAndCoverageFlags()
747 if (Args.hasArg(options::OPT_fprofile_filter_files_EQ)) { in addPGOAndCoverageFlags()
748 auto *Arg = Args.getLastArg(options::OPT_fprofile_filter_files_EQ); in addPGOAndCoverageFlags()
749 if (!Args.hasArg(options::OPT_coverage)) in addPGOAndCoverageFlags()
758 if (const auto *A = Args.getLastArg(options::OPT_fprofile_update_EQ)) { in addPGOAndCoverageFlags()
769 if (const auto *A = Args.getLastArg(options::OPT_fprofile_function_groups)) { in addPGOAndCoverageFlags()
775 Args.getLastArg(options::OPT_fprofile_selected_function_group)) { in addPGOAndCoverageFlags()
793 if (Args.hasArg(options::OPT_fprofile_arcs) || in addPGOAndCoverageFlags()
794 Args.hasArg(options::OPT_coverage)) in addPGOAndCoverageFlags()
795 FProfileDir = Args.getLastArg(options::OPT_fprofile_dir); in addPGOAndCoverageFlags()
799 (void)(Args.hasArg(options::OPT_c) || Args.hasArg(options::OPT_S)); in addPGOAndCoverageFlags()
806 if (Arg *DumpDir = Args.getLastArgNoClaim(options::OPT_dumpdir)) { in addPGOAndCoverageFlags()
812 C.getArgs().getLastArg(options::OPT__SLASH_Fo)) { in addPGOAndCoverageFlags()
814 } else if (Arg *FinalOutput = C.getArgs().getLastArg(options::OPT_o)) { in addPGOAndCoverageFlags()
881 const Arg *A = Args.getLastArg(options::OPT_gz_EQ); in RenderDebugInfoCompressionArgs()
980 Args.AddLastArg(CmdArgs, options::OPT_C); in AddPreprocessingOptions()
981 Args.AddLastArg(CmdArgs, options::OPT_CC); in AddPreprocessingOptions()
984 Arg *ArgM = Args.getLastArg(options::OPT_MM); in AddPreprocessingOptions()
986 ArgM = Args.getLastArg(options::OPT_M); in AddPreprocessingOptions()
987 Arg *ArgMD = Args.getLastArg(options::OPT_MMD); in AddPreprocessingOptions()
989 ArgMD = Args.getLastArg(options::OPT_MD); in AddPreprocessingOptions()
1000 if (Arg *MF = Args.getLastArg(options::OPT_MF)) { in AddPreprocessingOptions()
1015 for (const Arg *A : Args.filtered(options::OPT_MT, options::OPT_MQ)) { in AddPreprocessingOptions()
1018 if (A->getOption().matches(options::OPT_MT)) { in AddPreprocessingOptions()
1034 Arg *OutputOpt = Args.getLastArg(options::OPT_o, options::OPT__SLASH_Fo); in AddPreprocessingOptions()
1052 if (ArgM->getOption().matches(options::OPT_M) || in AddPreprocessingOptions()
1053 ArgM->getOption().matches(options::OPT_MD)) in AddPreprocessingOptions()
1056 !Args.hasArg(options::OPT_fno_module_file_deps)) || in AddPreprocessingOptions()
1057 Args.hasArg(options::OPT_fmodule_file_deps)) in AddPreprocessingOptions()
1061 if (Args.hasArg(options::OPT_MG)) { in AddPreprocessingOptions()
1062 if (!ArgM || ArgM->getOption().matches(options::OPT_MD) || in AddPreprocessingOptions()
1063 ArgM->getOption().matches(options::OPT_MMD)) in AddPreprocessingOptions()
1068 Args.AddLastArg(CmdArgs, options::OPT_MP); in AddPreprocessingOptions()
1069 Args.AddLastArg(CmdArgs, options::OPT_MV); in AddPreprocessingOptions()
1083 !Args.hasArg(options::OPT_nostdinc) && in AddPreprocessingOptions()
1084 !Args.hasArg(options::OPT_nogpuinc) && in AddPreprocessingOptions()
1087 if (!Args.hasArg(options::OPT_nobuiltininc)) { in AddPreprocessingOptions()
1108 const Arg *YcArg = Args.getLastArg(options::OPT__SLASH_Yc); in AddPreprocessingOptions()
1109 const Arg *YuArg = Args.getLastArg(options::OPT__SLASH_Yu); in AddPreprocessingOptions()
1115 if (Args.hasFlag(options::OPT_fpch_instantiate_templates, in AddPreprocessingOptions()
1116 options::OPT_fno_pch_instantiate_templates, true)) in AddPreprocessingOptions()
1140 for (const Arg *A : Args.filtered(options::OPT_clang_i_Group)) { in AddPreprocessingOptions()
1141 if (A->getOption().matches(options::OPT_include) && in AddPreprocessingOptions()
1174 } else if (A->getOption().matches(options::OPT_isystem_after)) { in AddPreprocessingOptions()
1181 } else if (A->getOption().matches(options::OPT_stdlibxx_isystem)) { in AddPreprocessingOptions()
1184 } else if (A->getOption().matches(options::OPT_ibuiltininc)) { in AddPreprocessingOptions()
1195 {options::OPT_D, options::OPT_U, options::OPT_I_Group, in AddPreprocessingOptions()
1196 options::OPT_F, options::OPT_index_header_map, in AddPreprocessingOptions()
1197 options::OPT_embed_dir_EQ}); in AddPreprocessingOptions()
1205 Args.AddAllArgValues(CmdArgs, options::OPT_Wp_COMMA, in AddPreprocessingOptions()
1206 options::OPT_Xpreprocessor); in AddPreprocessingOptions()
1209 if (Arg *A = Args.getLastArg(options::OPT_I_)) in AddPreprocessingOptions()
1216 if (!Args.hasArg(options::OPT_isysroot)) { in AddPreprocessingOptions()
1243 bool HasStdlibxxIsystem = Args.hasArg(options::OPT_stdlibxx_isystem); in AddPreprocessingOptions()
1256 if (!Args.hasArg(options::OPT_nostdinc) && in AddPreprocessingOptions()
1257 !Args.hasArg(options::OPT_nogpuinc) && in AddPreprocessingOptions()
1258 !Args.hasArg(options::OPT_nobuiltininc)) { in AddPreprocessingOptions()
1295 Args.AddLastArg(CmdArgs, options::OPT_ffile_reproducible, in AddPreprocessingOptions()
1296 options::OPT_fno_file_reproducible); in AddPreprocessingOptions()
1303 Args.addOptInFlag(CmdArgs, options::OPT_fdefine_target_os_macros, in AddPreprocessingOptions()
1304 options::OPT_fno_define_target_os_macros); in AddPreprocessingOptions()
1349 return Args.getAllArgValues(options::OPT_arch).size() > 1; in hasMultipleInvocations()
1359 Args.getLastArg(options::OPT_foptimization_record_file_EQ); in checkRemarksOptions()
1373 if (const Arg *A = Args.getLastArg(options::OPT_fsave_optimization_record_EQ)) in renderRemarksOptions()
1378 const Arg *A = Args.getLastArg(options::OPT_foptimization_record_file_EQ); in renderRemarksOptions()
1384 Args.getAllArgValues(options::OPT_arch).size() > 1; in renderRemarksOptions()
1388 if (Args.hasArg(options::OPT_c) || Args.hasArg(options::OPT_S)) { in renderRemarksOptions()
1389 if (Arg *FinalOutput = Args.getLastArg(options::OPT_o)) in renderRemarksOptions()
1440 Args.getLastArg(options::OPT_foptimization_record_passes_EQ)) { in renderRemarksOptions()
1452 if (!Args.hasFlag(options::OPT_faapcs_bitfield_width, in AddAAPCSVolatileBitfieldArgs()
1453 options::OPT_fno_aapcs_bitfield_width, true)) in AddAAPCSVolatileBitfieldArgs()
1456 if (Args.getLastArg(options::OPT_ForceAAPCSBitfieldLoad)) in AddAAPCSVolatileBitfieldArgs()
1467 if (Arg *A = Args.getLastArg(options::OPT_mabi_EQ)) { in RenderARMABI()
1493 if (!DriverArgs.hasArg(options::OPT_fptrauth_intrinsics, in handlePAuthABI()
1494 options::OPT_fno_ptrauth_intrinsics)) in handlePAuthABI()
1497 if (!DriverArgs.hasArg(options::OPT_fptrauth_calls, in handlePAuthABI()
1498 options::OPT_fno_ptrauth_calls)) in handlePAuthABI()
1501 if (!DriverArgs.hasArg(options::OPT_fptrauth_returns, in handlePAuthABI()
1502 options::OPT_fno_ptrauth_returns)) in handlePAuthABI()
1505 if (!DriverArgs.hasArg(options::OPT_fptrauth_auth_traps, in handlePAuthABI()
1506 options::OPT_fno_ptrauth_auth_traps)) in handlePAuthABI()
1510 options::OPT_fptrauth_vtable_pointer_address_discrimination, in handlePAuthABI()
1511 options::OPT_fno_ptrauth_vtable_pointer_address_discrimination)) in handlePAuthABI()
1515 options::OPT_fptrauth_vtable_pointer_type_discrimination, in handlePAuthABI()
1516 options::OPT_fno_ptrauth_vtable_pointer_type_discrimination)) in handlePAuthABI()
1519 if (!DriverArgs.hasArg(options::OPT_fptrauth_indirect_gotos, in handlePAuthABI()
1520 options::OPT_fno_ptrauth_indirect_gotos)) in handlePAuthABI()
1523 if (!DriverArgs.hasArg(options::OPT_fptrauth_init_fini, in handlePAuthABI()
1524 options::OPT_fno_ptrauth_init_fini)) in handlePAuthABI()
1531 ? Args.getLastArg(options::OPT_msign_return_address_EQ, in CollectARMPACBTIOptions()
1532 options::OPT_mbranch_protection_EQ) in CollectARMPACBTIOptions()
1533 : Args.getLastArg(options::OPT_mbranch_protection_EQ); in CollectARMPACBTIOptions()
1546 if (A->getOption().matches(options::OPT_msign_return_address_EQ)) { in CollectARMPACBTIOptions()
1640 if (Arg *A = Args.getLastArg(options::OPT_mglobal_merge, in AddARMTargetArgs()
1641 options::OPT_mno_global_merge)) { in AddARMTargetArgs()
1643 if (A->getOption().matches(options::OPT_mno_global_merge)) in AddARMTargetArgs()
1649 if (!Args.hasFlag(options::OPT_mimplicit_float, in AddARMTargetArgs()
1650 options::OPT_mno_implicit_float, true)) in AddARMTargetArgs()
1653 if (Args.getLastArg(options::OPT_mcmse)) in AddARMTargetArgs()
1753 if (Arg *A = Args.getLastArg(options::OPT_mabi_EQ)) in RenderAArch64ABI()
1771 if (!Args.hasFlag(options::OPT_mred_zone, options::OPT_mno_red_zone, true) || in AddAArch64TargetArgs()
1772 Args.hasArg(options::OPT_mkernel) || in AddAArch64TargetArgs()
1773 Args.hasArg(options::OPT_fapple_kext)) in AddAArch64TargetArgs()
1776 if (!Args.hasFlag(options::OPT_mimplicit_float, in AddAArch64TargetArgs()
1777 options::OPT_mno_implicit_float, true)) in AddAArch64TargetArgs()
1783 if (Arg *A = Args.getLastArg(options::OPT_mglobal_merge, in AddAArch64TargetArgs()
1784 options::OPT_mno_global_merge)) { in AddAArch64TargetArgs()
1786 if (A->getOption().matches(options::OPT_mno_global_merge)) in AddAArch64TargetArgs()
1799 if (Arg *A = Args.getLastArg(options::OPT_msve_vector_bits_EQ)) { in AddAArch64TargetArgs()
1826 if (const Arg *A = Args.getLastArg(clang::driver::options::OPT_mtune_EQ)) { in AddAArch64TargetArgs()
1836 Args.addOptInFlag(CmdArgs, options::OPT_fptrauth_intrinsics, in AddAArch64TargetArgs()
1837 options::OPT_fno_ptrauth_intrinsics); in AddAArch64TargetArgs()
1838 Args.addOptInFlag(CmdArgs, options::OPT_fptrauth_calls, in AddAArch64TargetArgs()
1839 options::OPT_fno_ptrauth_calls); in AddAArch64TargetArgs()
1840 Args.addOptInFlag(CmdArgs, options::OPT_fptrauth_returns, in AddAArch64TargetArgs()
1841 options::OPT_fno_ptrauth_returns); in AddAArch64TargetArgs()
1842 Args.addOptInFlag(CmdArgs, options::OPT_fptrauth_auth_traps, in AddAArch64TargetArgs()
1843 options::OPT_fno_ptrauth_auth_traps); in AddAArch64TargetArgs()
1845 CmdArgs, options::OPT_fptrauth_vtable_pointer_address_discrimination, in AddAArch64TargetArgs()
1846 options::OPT_fno_ptrauth_vtable_pointer_address_discrimination); in AddAArch64TargetArgs()
1848 CmdArgs, options::OPT_fptrauth_vtable_pointer_type_discrimination, in AddAArch64TargetArgs()
1849 options::OPT_fno_ptrauth_vtable_pointer_type_discrimination); in AddAArch64TargetArgs()
1851 CmdArgs, options::OPT_fptrauth_type_info_vtable_pointer_discrimination, in AddAArch64TargetArgs()
1852 options::OPT_fno_ptrauth_type_info_vtable_pointer_discrimination); in AddAArch64TargetArgs()
1853 Args.addOptInFlag(CmdArgs, options::OPT_fptrauth_init_fini, in AddAArch64TargetArgs()
1854 options::OPT_fno_ptrauth_init_fini); in AddAArch64TargetArgs()
1856 CmdArgs, options::OPT_fptrauth_function_pointer_type_discrimination, in AddAArch64TargetArgs()
1857 options::OPT_fno_ptrauth_function_pointer_type_discrimination); in AddAArch64TargetArgs()
1859 Args.addOptInFlag(CmdArgs, options::OPT_fptrauth_indirect_gotos, in AddAArch64TargetArgs()
1860 options::OPT_fno_ptrauth_indirect_gotos); in AddAArch64TargetArgs()
1873 if (const Arg *A = Args.getLastArg(options::OPT_mtune_EQ)) { in AddLoongArchTargetArgs()
1905 if (Arg *A = Args.getLastArg(options::OPT_mldc1_sdc1, in AddMIPSTargetArgs()
1906 options::OPT_mno_ldc1_sdc1)) { in AddMIPSTargetArgs()
1907 if (A->getOption().matches(options::OPT_mno_ldc1_sdc1)) { in AddMIPSTargetArgs()
1913 if (Arg *A = Args.getLastArg(options::OPT_mcheck_zero_division, in AddMIPSTargetArgs()
1914 options::OPT_mno_check_zero_division)) { in AddMIPSTargetArgs()
1915 if (A->getOption().matches(options::OPT_mno_check_zero_division)) { in AddMIPSTargetArgs()
1921 if (Args.getLastArg(options::OPT_mfix4300)) { in AddMIPSTargetArgs()
1926 if (Arg *A = Args.getLastArg(options::OPT_G)) { in AddMIPSTargetArgs()
1933 Arg *GPOpt = Args.getLastArg(options::OPT_mgpopt, options::OPT_mno_gpopt); in AddMIPSTargetArgs()
1935 Args.getLastArg(options::OPT_mabicalls, options::OPT_mno_abicalls); in AddMIPSTargetArgs()
1948 ABICalls && ABICalls->getOption().matches(options::OPT_mno_abicalls); in AddMIPSTargetArgs()
1959 bool WantGPOpt = GPOpt && GPOpt->getOption().matches(options::OPT_mgpopt); in AddMIPSTargetArgs()
1965 Arg *LocalSData = Args.getLastArg(options::OPT_mlocal_sdata, in AddMIPSTargetArgs()
1966 options::OPT_mno_local_sdata); in AddMIPSTargetArgs()
1967 Arg *ExternSData = Args.getLastArg(options::OPT_mextern_sdata, in AddMIPSTargetArgs()
1968 options::OPT_mno_extern_sdata); in AddMIPSTargetArgs()
1969 Arg *EmbeddedData = Args.getLastArg(options::OPT_membedded_data, in AddMIPSTargetArgs()
1970 options::OPT_mno_embedded_data); in AddMIPSTargetArgs()
1973 if (LocalSData->getOption().matches(options::OPT_mlocal_sdata)) { in AddMIPSTargetArgs()
1983 if (ExternSData->getOption().matches(options::OPT_mextern_sdata)) { in AddMIPSTargetArgs()
1993 if (EmbeddedData->getOption().matches(options::OPT_membedded_data)) { in AddMIPSTargetArgs()
2007 if (Arg *A = Args.getLastArg(options::OPT_mcompact_branches_EQ)) { in AddMIPSTargetArgs()
2020 if (Arg *A = Args.getLastArg(options::OPT_mrelax_pic_calls, in AddMIPSTargetArgs()
2021 options::OPT_mno_relax_pic_calls)) { in AddMIPSTargetArgs()
2022 if (A->getOption().matches(options::OPT_mno_relax_pic_calls)) { in AddMIPSTargetArgs()
2033 if (Args.getLastArg(options::OPT_mtune_EQ)) { in AddPPCTargetArgs()
2060 for (const Arg *A : Args.filtered(options::OPT_mabi_EQ)) { in AddPPCTargetArgs()
2121 if (Args.getLastArg(options::OPT_shared, options::OPT_fpic, in SetRISCVSmallDataLimit()
2122 options::OPT_fPIC)) { in SetRISCVSmallDataLimit()
2125 if (Args.hasArg(options::OPT_G)) { in SetRISCVSmallDataLimit()
2128 } else if (Args.getLastArgValue(options::OPT_mcmodel_EQ) in SetRISCVSmallDataLimit()
2133 if (Args.hasArg(options::OPT_G)) { in SetRISCVSmallDataLimit()
2139 if (Args.hasArg(options::OPT_G)) { in SetRISCVSmallDataLimit()
2142 } else if (Arg *A = Args.getLastArg(options::OPT_G)) { in SetRISCVSmallDataLimit()
2160 if (!Args.hasFlag(options::OPT_mimplicit_float, in AddRISCVTargetArgs()
2161 options::OPT_mno_implicit_float, true)) in AddRISCVTargetArgs()
2164 if (const Arg *A = Args.getLastArg(options::OPT_mtune_EQ)) { in AddRISCVTargetArgs()
2173 if (Arg *A = Args.getLastArg(options::OPT_mrvv_vector_bits_EQ)) { in AddRISCVTargetArgs()
2231 if (const Arg *A = Args.getLastArg(clang::driver::options::OPT_mtune_EQ)) { in AddSparcTargetArgs()
2246 if (const Arg *A = Args.getLastArg(options::OPT_mtune_EQ)) { in AddSystemZTargetArgs()
2255 Args.hasFlag(options::OPT_mbackchain, options::OPT_mno_backchain, false); in AddSystemZTargetArgs()
2256 bool HasPackedStack = Args.hasFlag(options::OPT_mpacked_stack, in AddSystemZTargetArgs()
2257 options::OPT_mno_packed_stack, false); in AddSystemZTargetArgs()
2283 if (!Args.hasFlag(options::OPT_mred_zone, options::OPT_mno_red_zone, true) || in AddX86TargetArgs()
2284 Args.hasArg(options::OPT_mkernel) || in AddX86TargetArgs()
2285 Args.hasArg(options::OPT_fapple_kext)) in AddX86TargetArgs()
2288 if (!Args.hasFlag(options::OPT_mtls_direct_seg_refs, in AddX86TargetArgs()
2289 options::OPT_mno_tls_direct_seg_refs, true)) in AddX86TargetArgs()
2294 bool NoImplicitFloat = (Args.hasArg(options::OPT_mkernel) || in AddX86TargetArgs()
2295 Args.hasArg(options::OPT_fapple_kext)); in AddX86TargetArgs()
2297 options::OPT_msoft_float, options::OPT_mno_soft_float, in AddX86TargetArgs()
2298 options::OPT_mimplicit_float, options::OPT_mno_implicit_float)) { in AddX86TargetArgs()
2300 NoImplicitFloat = (O.matches(options::OPT_mno_implicit_float) || in AddX86TargetArgs()
2301 O.matches(options::OPT_msoft_float)); in AddX86TargetArgs()
2306 if (Arg *A = Args.getLastArg(options::OPT_masm_EQ)) { in AddX86TargetArgs()
2321 if (Arg *A = Args.getLastArg(options::OPT_mskip_rax_setup, in AddX86TargetArgs()
2322 options::OPT_mno_skip_rax_setup)) in AddX86TargetArgs()
2323 if (A->getOption().matches(options::OPT_mskip_rax_setup)) in AddX86TargetArgs()
2327 if (Args.hasFlag(options::OPT_miamcu, options::OPT_mno_iamcu, false)) { in AddX86TargetArgs()
2337 if (!Args.hasArg(clang::driver::options::OPT_march_EQ) && in AddX86TargetArgs()
2342 if (const Arg *A = Args.getLastArg(clang::driver::options::OPT_mtune_EQ)) { in AddX86TargetArgs()
2370 if (!Args.hasArg(options::OPT_fno_short_enums)) in AddHexagonTargetArgs()
2372 if (Args.getLastArg(options::OPT_mieee_rnd_near)) { in AddHexagonTargetArgs()
2382 if (Arg *A = Args.getLastArg(options::OPT_mcpu_EQ)) { in AddLanaiTargetArgs()
2388 if (Arg *A = Args.getLastArg(options::OPT_mregparm_EQ)) { in AddLanaiTargetArgs()
2406 if (!Args.hasArg(options::OPT_fvisibility_EQ, in AddWebAssemblyTargetArgs()
2407 options::OPT_fvisibility_ms_compat)) in AddWebAssemblyTargetArgs()
2421 if (C.getArgs().hasArg(options::OPT__HASH_HASH_HASH)) in DumpCompilationDatabase()
2452 if (!D.SysRoot.empty() && !Args.hasArg(options::OPT__sysroot_EQ)) { in DumpCompilationDatabase()
2463 if (O.getID() == options::OPT_x) in DumpCompilationDatabase()
2466 if (O.getGroup().isValid() && O.getGroup().getID() == options::OPT_M_Group) in DumpCompilationDatabase()
2468 if (O.getID() == options::OPT_gen_cdb_fragment_path) in DumpCompilationDatabase()
2474 if (O.getID() == options::OPT_o) in DumpCompilationDatabase()
2491 if (C.getArgs().hasArg(options::OPT__HASH_HASH_HASH)) in DumpCompilationDatabaseFragmentToDir()
2545 Args.addOptInFlag(CmdArgs, options::OPT_mrelax_all, in CollectArgsForIntegratedAssembler()
2546 options::OPT_mno_relax_all); in CollectArgsForIntegratedAssembler()
2552 if (Args.hasFlag(options::OPT_mincremental_linker_compatible, in CollectArgsForIntegratedAssembler()
2553 options::OPT_mno_incremental_linker_compatible, in CollectArgsForIntegratedAssembler()
2557 Args.AddLastArg(CmdArgs, options::OPT_femit_dwarf_unwind_EQ); in CollectArgsForIntegratedAssembler()
2559 Args.addOptInFlag(CmdArgs, options::OPT_femit_compact_unwind_non_canonical, in CollectArgsForIntegratedAssembler()
2560 options::OPT_fno_emit_compact_unwind_non_canonical); in CollectArgsForIntegratedAssembler()
2579 Args.filtered(options::OPT_Wa_COMMA, options::OPT_Xassembler, in CollectArgsForIntegratedAssembler()
2580 options::OPT_mimplicit_it_EQ)) { in CollectArgsForIntegratedAssembler()
2583 if (A->getOption().getID() == options::OPT_mimplicit_it_EQ) { in CollectArgsForIntegratedAssembler()
2797 Args.AddLastArg(CmdArgs, options::OPT_fembed_bitcode_EQ); in CollectArgsForIntegratedAssembler()
2922 if (const Arg *A = Args.getLastArg(options::OPT_flimited_precision_EQ)) { in RenderFloatingPointOptions()
2932 case options::OPT_fcx_limited_range: in RenderFloatingPointOptions()
2944 case options::OPT_fno_cx_limited_range: in RenderFloatingPointOptions()
2957 case options::OPT_fcx_fortran_rules: in RenderFloatingPointOptions()
2966 case options::OPT_fno_cx_fortran_rules: in RenderFloatingPointOptions()
2978 case options::OPT_fcomplex_arithmetic_EQ: { in RenderFloatingPointOptions()
3013 case options::OPT_ffp_model_EQ: { in RenderFloatingPointOptions()
3057 case options::OPT_fhonor_infinities: HonorINFs = true; break; in RenderFloatingPointOptions()
3058 case options::OPT_fno_honor_infinities: HonorINFs = false; break; in RenderFloatingPointOptions()
3059 case options::OPT_fhonor_nans: HonorNaNs = true; break; in RenderFloatingPointOptions()
3060 case options::OPT_fno_honor_nans: HonorNaNs = false; break; in RenderFloatingPointOptions()
3061 case options::OPT_fapprox_func: ApproxFunc = true; break; in RenderFloatingPointOptions()
3062 case options::OPT_fno_approx_func: ApproxFunc = false; break; in RenderFloatingPointOptions()
3063 case options::OPT_fmath_errno: MathErrno = true; break; in RenderFloatingPointOptions()
3064 case options::OPT_fno_math_errno: MathErrno = false; break; in RenderFloatingPointOptions()
3065 case options::OPT_fassociative_math: AssociativeMath = true; break; in RenderFloatingPointOptions()
3066 case options::OPT_fno_associative_math: AssociativeMath = false; break; in RenderFloatingPointOptions()
3067 case options::OPT_freciprocal_math: ReciprocalMath = true; break; in RenderFloatingPointOptions()
3068 case options::OPT_fno_reciprocal_math: ReciprocalMath = false; break; in RenderFloatingPointOptions()
3069 case options::OPT_fsigned_zeros: SignedZeros = true; break; in RenderFloatingPointOptions()
3070 case options::OPT_fno_signed_zeros: SignedZeros = false; break; in RenderFloatingPointOptions()
3071 case options::OPT_ftrapping_math: in RenderFloatingPointOptions()
3083 case options::OPT_fno_trapping_math: in RenderFloatingPointOptions()
3096 case options::OPT_frounding_math: in RenderFloatingPointOptions()
3100 case options::OPT_fno_rounding_math: in RenderFloatingPointOptions()
3104 case options::OPT_fdenormal_fp_math_EQ: in RenderFloatingPointOptions()
3113 case options::OPT_fdenormal_fp_math_f32_EQ: in RenderFloatingPointOptions()
3122 case options::OPT_ffp_contract: { in RenderFloatingPointOptions()
3135 case options::OPT_ffp_exception_behavior_EQ: { in RenderFloatingPointOptions()
3157 case options::OPT_ffp_eval_method_EQ: { in RenderFloatingPointOptions()
3167 case options::OPT_fexcess_precision_EQ: { in RenderFloatingPointOptions()
3189 case options::OPT_ffinite_math_only: in RenderFloatingPointOptions()
3193 case options::OPT_fno_finite_math_only: in RenderFloatingPointOptions()
3198 case options::OPT_funsafe_math_optimizations: in RenderFloatingPointOptions()
3208 case options::OPT_fno_unsafe_math_optimizations: in RenderFloatingPointOptions()
3223 case options::OPT_Ofast: in RenderFloatingPointOptions()
3228 case options::OPT_ffast_math: { in RenderFloatingPointOptions()
3232 case options::OPT_fno_fast_math: in RenderFloatingPointOptions()
3377 if (const Arg *A = Args.getLastArg(options::OPT_mfpmath_EQ)) { in RenderFloatingPointOptions()
3383 if (Args.hasFlag(options::OPT_fno_strict_float_cast_overflow, in RenderFloatingPointOptions()
3384 options::OPT_fstrict_float_cast_overflow, false)) in RenderFloatingPointOptions()
3391 if (Args.hasArg(options::OPT_fcomplex_arithmetic_EQ)) in RenderFloatingPointOptions()
3395 if (Args.hasArg(options::OPT_fcx_limited_range)) in RenderFloatingPointOptions()
3397 if (Args.hasArg(options::OPT_fcx_fortran_rules)) in RenderFloatingPointOptions()
3399 if (Args.hasArg(options::OPT_fno_cx_limited_range)) in RenderFloatingPointOptions()
3401 if (Args.hasArg(options::OPT_fno_cx_fortran_rules)) in RenderFloatingPointOptions()
3409 if (!Args.hasArg(options::OPT__analyzer_no_default_checks)) { in RenderAnalyzerOptions()
3460 if (Arg *A = Args.getLastArg(options::OPT__analyzer_output)) in RenderAnalyzerOptions()
3471 Args.AddAllArgValues(CmdArgs, options::OPT_Xanalyzer); in RenderAnalyzerOptions()
3499 if (Arg *A = Args.getLastArg(options::OPT_fno_stack_protector, in RenderSSPOptions()
3500 options::OPT_fstack_protector_all, in RenderSSPOptions()
3501 options::OPT_fstack_protector_strong, in RenderSSPOptions()
3502 options::OPT_fstack_protector)) { in RenderSSPOptions()
3503 if (A->getOption().matches(options::OPT_fstack_protector)) in RenderSSPOptions()
3506 else if (A->getOption().matches(options::OPT_fstack_protector_strong)) in RenderSSPOptions()
3508 else if (A->getOption().matches(options::OPT_fstack_protector_all)) in RenderSSPOptions()
3526 for (const Arg *A : Args.filtered(options::OPT__param)) { in RenderSSPOptions()
3539 if (Arg *A = Args.getLastArg(options::OPT_mstack_protector_guard_EQ)) { in RenderSSPOptions()
3554 if (!Args.hasArg(options::OPT_mstack_protector_guard_offset_EQ)) { in RenderSSPOptions()
3566 if (Arg *A = Args.getLastArg(options::OPT_mtp_mode_EQ)) { in RenderSSPOptions()
3585 if (Arg *A = Args.getLastArg(options::OPT_mstack_protector_guard_offset_EQ)) { in RenderSSPOptions()
3605 if (Arg *A = Args.getLastArg(options::OPT_mstack_protector_guard_reg_EQ)) { in RenderSSPOptions()
3622 if (Arg *A = Args.getLastArg(options::OPT_mstack_protector_guard_symbol_EQ)) { in RenderSSPOptions()
3644 Args.addOptInFlag(CmdArgs, options::OPT_fstack_clash_protection, in RenderSCPOptions()
3645 options::OPT_fno_stack_clash_protection); in RenderSCPOptions()
3659 case options::OPT_ftrivial_auto_var_init: { in RenderTrivialAutoVarInitOptions()
3690 Args.getLastArg(options::OPT_ftrivial_auto_var_init_stop_after)) { in RenderTrivialAutoVarInitOptions()
3691 if (!Args.hasArg(options::OPT_ftrivial_auto_var_init) || in RenderTrivialAutoVarInitOptions()
3693 Args.getLastArg(options::OPT_ftrivial_auto_var_init)->getValue()) == in RenderTrivialAutoVarInitOptions()
3704 if (Arg *A = Args.getLastArg(options::OPT_ftrivial_auto_var_init_max_size)) { in RenderTrivialAutoVarInitOptions()
3705 if (!Args.hasArg(options::OPT_ftrivial_auto_var_init) || in RenderTrivialAutoVarInitOptions()
3707 Args.getLastArg(options::OPT_ftrivial_auto_var_init)->getValue()) == in RenderTrivialAutoVarInitOptions()
3724 options::OPT_cl_opt_disable, in RenderOpenCLOptions()
3725 options::OPT_cl_strict_aliasing, in RenderOpenCLOptions()
3726 options::OPT_cl_single_precision_constant, in RenderOpenCLOptions()
3727 options::OPT_cl_finite_math_only, in RenderOpenCLOptions()
3728 options::OPT_cl_kernel_arg_info, in RenderOpenCLOptions()
3729 options::OPT_cl_unsafe_math_optimizations, in RenderOpenCLOptions()
3730 options::OPT_cl_fast_relaxed_math, in RenderOpenCLOptions()
3731 options::OPT_cl_mad_enable, in RenderOpenCLOptions()
3732 options::OPT_cl_no_signed_zeros, in RenderOpenCLOptions()
3733 options::OPT_cl_fp32_correctly_rounded_divide_sqrt, in RenderOpenCLOptions()
3734 options::OPT_cl_uniform_work_group_size in RenderOpenCLOptions()
3737 if (Arg *A = Args.getLastArg(options::OPT_cl_std_EQ)) { in RenderOpenCLOptions()
3740 } else if (Arg *A = Args.getLastArg(options::OPT_cl_ext_EQ)) { in RenderOpenCLOptions()
3751 (Args.hasArg(options::OPT_cl_std_EQ) && types::isSrcFile(InputType))) && in RenderOpenCLOptions()
3752 !Args.hasArg(options::OPT_cl_no_stdinc)) { in RenderOpenCLOptions()
3760 const unsigned ForwardedArguments[] = {options::OPT_dxil_validator_version, in RenderHLSLOptions()
3761 options::OPT_D, in RenderHLSLOptions()
3762 options::OPT_I, in RenderHLSLOptions()
3763 options::OPT_O, in RenderHLSLOptions()
3764 options::OPT_emit_llvm, in RenderHLSLOptions()
3765 options::OPT_emit_obj, in RenderHLSLOptions()
3766 options::OPT_disable_llvm_passes, in RenderHLSLOptions()
3767 options::OPT_fnative_half_type, in RenderHLSLOptions()
3768 options::OPT_hlsl_entrypoint}; in RenderHLSLOptions()
3775 if (!Args.hasArg(options::OPT_dxc_no_stdinc) && in RenderHLSLOptions()
3776 !Args.hasArg(options::OPT_nostdinc)) in RenderHLSLOptions()
3782 if (!Args.hasArg(options::OPT_fopenacc)) in RenderOpenACCOptions()
3787 if (Arg *A = Args.getLastArg(options::OPT_openacc_macro_override)) { in RenderOpenACCOptions()
3800 if (!Args.hasArg(options::OPT_fno_objc_arc, options::OPT_fobjc_arc)) { in RenderARCMigrateToolOptions()
3801 if (const Arg *A = Args.getLastArg(options::OPT_ccc_arcmt_check, in RenderARCMigrateToolOptions()
3802 options::OPT_ccc_arcmt_modify, in RenderARCMigrateToolOptions()
3803 options::OPT_ccc_arcmt_migrate)) { in RenderARCMigrateToolOptions()
3807 case options::OPT_ccc_arcmt_check: in RenderARCMigrateToolOptions()
3810 case options::OPT_ccc_arcmt_modify: in RenderARCMigrateToolOptions()
3813 case options::OPT_ccc_arcmt_migrate: in RenderARCMigrateToolOptions()
3818 Args.AddLastArg(CmdArgs, options::OPT_arcmt_migrate_report_output); in RenderARCMigrateToolOptions()
3819 Args.AddLastArg(CmdArgs, options::OPT_arcmt_migrate_emit_arc_errors); in RenderARCMigrateToolOptions()
3824 Args.ClaimAllArgs(options::OPT_ccc_arcmt_check); in RenderARCMigrateToolOptions()
3825 Args.ClaimAllArgs(options::OPT_ccc_arcmt_modify); in RenderARCMigrateToolOptions()
3826 Args.ClaimAllArgs(options::OPT_ccc_arcmt_migrate); in RenderARCMigrateToolOptions()
3829 if (const Arg *A = Args.getLastArg(options::OPT_ccc_objcmt_migrate)) { in RenderARCMigrateToolOptions()
3837 if (!Args.hasArg(options::OPT_objcmt_migrate_literals, in RenderARCMigrateToolOptions()
3838 options::OPT_objcmt_migrate_subscripting, in RenderARCMigrateToolOptions()
3839 options::OPT_objcmt_migrate_property)) { in RenderARCMigrateToolOptions()
3845 Args.AddLastArg(CmdArgs, options::OPT_objcmt_migrate_literals); in RenderARCMigrateToolOptions()
3846 Args.AddLastArg(CmdArgs, options::OPT_objcmt_migrate_subscripting); in RenderARCMigrateToolOptions()
3847 Args.AddLastArg(CmdArgs, options::OPT_objcmt_migrate_property); in RenderARCMigrateToolOptions()
3850 Args.AddLastArg(CmdArgs, options::OPT_objcmt_migrate_literals); in RenderARCMigrateToolOptions()
3851 Args.AddLastArg(CmdArgs, options::OPT_objcmt_migrate_subscripting); in RenderARCMigrateToolOptions()
3852 Args.AddLastArg(CmdArgs, options::OPT_objcmt_migrate_property); in RenderARCMigrateToolOptions()
3853 Args.AddLastArg(CmdArgs, options::OPT_objcmt_migrate_all); in RenderARCMigrateToolOptions()
3854 Args.AddLastArg(CmdArgs, options::OPT_objcmt_migrate_readonly_property); in RenderARCMigrateToolOptions()
3855 Args.AddLastArg(CmdArgs, options::OPT_objcmt_migrate_readwrite_property); in RenderARCMigrateToolOptions()
3856 Args.AddLastArg(CmdArgs, options::OPT_objcmt_migrate_property_dot_syntax); in RenderARCMigrateToolOptions()
3857 Args.AddLastArg(CmdArgs, options::OPT_objcmt_migrate_annotation); in RenderARCMigrateToolOptions()
3858 Args.AddLastArg(CmdArgs, options::OPT_objcmt_migrate_instancetype); in RenderARCMigrateToolOptions()
3859 Args.AddLastArg(CmdArgs, options::OPT_objcmt_migrate_nsmacros); in RenderARCMigrateToolOptions()
3860 Args.AddLastArg(CmdArgs, options::OPT_objcmt_migrate_protocol_conformance); in RenderARCMigrateToolOptions()
3861 Args.AddLastArg(CmdArgs, options::OPT_objcmt_atomic_property); in RenderARCMigrateToolOptions()
3862 Args.AddLastArg(CmdArgs, options::OPT_objcmt_returns_innerpointer_property); in RenderARCMigrateToolOptions()
3863 Args.AddLastArg(CmdArgs, options::OPT_objcmt_ns_nonatomic_iosonly); in RenderARCMigrateToolOptions()
3864 Args.AddLastArg(CmdArgs, options::OPT_objcmt_migrate_designated_init); in RenderARCMigrateToolOptions()
3865 Args.AddLastArg(CmdArgs, options::OPT_objcmt_allowlist_dir_path); in RenderARCMigrateToolOptions()
3873 Args.hasFlag(options::OPT_fbuiltin, options::OPT_fno_builtin, in RenderBuiltinOptions()
3874 !Args.hasArg(options::OPT_mkernel)); in RenderBuiltinOptions()
3879 if (Args.hasArg(options::OPT_ffreestanding)) in RenderBuiltinOptions()
3883 for (const Arg *A : Args.filtered(options::OPT_fno_builtin_)) { in RenderBuiltinOptions()
3916 if (Arg *ModuleOutputEQ = Args.getLastArg(options::OPT_fmodule_output_EQ)) in getCXX20NamedModuleOutputPath()
3920 if (Arg *FinalOutput = Args.getLastArg(options::OPT_o); in getCXX20NamedModuleOutputPath()
3921 FinalOutput && Args.hasArg(options::OPT_c)) in getCXX20NamedModuleOutputPath()
3943 if (Args.hasFlag(options::OPT_fmodules, options::OPT_fno_modules, false)) { in RenderModulesOptions()
3944 bool AllowedInCXX = Args.hasFlag(options::OPT_fcxx_modules, in RenderModulesOptions()
3945 options::OPT_fno_cxx_modules, true); in RenderModulesOptions()
3956 if (Args.hasFlag(options::OPT_fimplicit_module_maps, in RenderModulesOptions()
3957 options::OPT_fno_implicit_module_maps, HaveClangModules)) in RenderModulesOptions()
3961 Args.addOptInFlag(CmdArgs, options::OPT_fmodules_decluse, in RenderModulesOptions()
3962 options::OPT_fno_modules_decluse); in RenderModulesOptions()
3966 if (Args.hasFlag(options::OPT_fmodules_strict_decluse, in RenderModulesOptions()
3967 options::OPT_fno_modules_strict_decluse, false)) in RenderModulesOptions()
3972 if (!Args.hasFlag(options::OPT_fimplicit_modules, in RenderModulesOptions()
3973 options::OPT_fno_implicit_modules, HaveClangModules)) { in RenderModulesOptions()
3981 if (Arg *A = Args.getLastArg(options::OPT_fmodules_cache_path)) in RenderModulesOptions()
4006 if (Args.hasFlag(options::OPT_fprebuilt_implicit_modules, in RenderModulesOptions()
4007 options::OPT_fno_prebuilt_implicit_modules, false)) in RenderModulesOptions()
4009 if (Args.hasFlag(options::OPT_fmodules_validate_input_files_content, in RenderModulesOptions()
4010 options::OPT_fno_modules_validate_input_files_content, in RenderModulesOptions()
4017 Args.AddLastArg(CmdArgs, options::OPT_fmodule_name_EQ); in RenderModulesOptions()
4021 Args.AddAllArgs(CmdArgs, options::OPT_fmodule_map_file); in RenderModulesOptions()
4025 if (Args.hasArg(options::OPT_fbuiltin_module_map)) { in RenderModulesOptions()
4039 Args.AddAllArgs(CmdArgs, options::OPT_fmodule_file); in RenderModulesOptions()
4042 for (const Arg *A : Args.filtered(options::OPT_fprebuilt_module_path)) { in RenderModulesOptions()
4048 Args.ClaimAllArgs(options::OPT_fmodule_file); in RenderModulesOptions()
4064 Args.AddLastArg(CmdArgs, options::OPT_fmodules_user_build_path); in RenderModulesOptions()
4067 Args.AddAllArgs(CmdArgs, options::OPT_fmodules_ignore_macro); in RenderModulesOptions()
4068 Args.AddLastArg(CmdArgs, options::OPT_fmodules_prune_interval); in RenderModulesOptions()
4069 Args.AddLastArg(CmdArgs, options::OPT_fmodules_prune_after); in RenderModulesOptions()
4072 Args.AddLastArg(CmdArgs, options::OPT_fbuild_session_timestamp); in RenderModulesOptions()
4074 if (Arg *A = Args.getLastArg(options::OPT_fbuild_session_file)) { in RenderModulesOptions()
4075 if (Args.hasArg(options::OPT_fbuild_session_timestamp)) in RenderModulesOptions()
4090 options::OPT_fmodules_validate_once_per_build_session)) { in RenderModulesOptions()
4091 if (!Args.getLastArg(options::OPT_fbuild_session_timestamp, in RenderModulesOptions()
4092 options::OPT_fbuild_session_file)) in RenderModulesOptions()
4096 options::OPT_fmodules_validate_once_per_build_session); in RenderModulesOptions()
4099 if (Args.hasFlag(options::OPT_fmodules_validate_system_headers, in RenderModulesOptions()
4100 options::OPT_fno_modules_validate_system_headers, in RenderModulesOptions()
4105 options::OPT_fmodules_disable_diagnostic_validation); in RenderModulesOptions()
4107 Args.ClaimAllArgs(options::OPT_fbuild_session_timestamp); in RenderModulesOptions()
4108 Args.ClaimAllArgs(options::OPT_fbuild_session_file); in RenderModulesOptions()
4109 Args.ClaimAllArgs(options::OPT_fmodules_validate_once_per_build_session); in RenderModulesOptions()
4110 Args.ClaimAllArgs(options::OPT_fmodules_validate_system_headers); in RenderModulesOptions()
4111 Args.ClaimAllArgs(options::OPT_fno_modules_validate_system_headers); in RenderModulesOptions()
4112 Args.ClaimAllArgs(options::OPT_fmodules_disable_diagnostic_validation); in RenderModulesOptions()
4119 if (Args.hasArg(options::OPT_modules_reduced_bmi) && in RenderModulesOptions()
4124 if (Args.hasArg(options::OPT_fmodule_output_EQ)) in RenderModulesOptions()
4125 Args.AddLastArg(CmdArgs, options::OPT_fmodule_output_EQ); in RenderModulesOptions()
4135 Args.ClaimAllArgs(options::OPT_modules_reduced_bmi); in RenderModulesOptions()
4146 Args.ClaimAllArgs(options::OPT_fmodule_output); in RenderModulesOptions()
4147 Args.ClaimAllArgs(options::OPT_fmodule_output_EQ); in RenderModulesOptions()
4156 if (const Arg *A = Args.getLastArg(options::OPT_fsigned_char, in RenderCharacterOptions()
4157 options::OPT_fno_signed_char, in RenderCharacterOptions()
4158 options::OPT_funsigned_char, in RenderCharacterOptions()
4159 options::OPT_fno_unsigned_char)) { in RenderCharacterOptions()
4160 if (A->getOption().matches(options::OPT_funsigned_char) || in RenderCharacterOptions()
4161 A->getOption().matches(options::OPT_fno_signed_char)) { in RenderCharacterOptions()
4169 Args.AddLastArg(CmdArgs, options::OPT_fchar8__t, options::OPT_fno_char8__t); in RenderCharacterOptions()
4171 if (const Arg *A = Args.getLastArg(options::OPT_fshort_wchar, in RenderCharacterOptions()
4172 options::OPT_fno_short_wchar)) { in RenderCharacterOptions()
4173 if (A->getOption().matches(options::OPT_fshort_wchar)) { in RenderCharacterOptions()
4199 if (!Args.hasFlag(options::OPT_fobjc_legacy_dispatch, in RenderObjCOptions()
4200 options::OPT_fno_objc_legacy_dispatch, in RenderObjCOptions()
4234 if (Args.hasFlag(options::OPT_fobjc_arc_exceptions, in RenderObjCOptions()
4235 options::OPT_fno_objc_arc_exceptions, in RenderObjCOptions()
4242 if (Args.hasArg(options::OPT_fno_objc_arc)) { in RenderObjCOptions()
4243 Args.ClaimAllArgs(options::OPT_fobjc_arc_exceptions); in RenderObjCOptions()
4244 Args.ClaimAllArgs(options::OPT_fno_objc_arc_exceptions); in RenderObjCOptions()
4251 options::OPT_fobjc_convert_messages_to_runtime_calls, in RenderObjCOptions()
4252 options::OPT_fno_objc_convert_messages_to_runtime_calls); in RenderObjCOptions()
4255 options::OPT_fno_objc_convert_messages_to_runtime_calls)) in RenderObjCOptions()
4267 Args.getLastArg(options::OPT_fobjc_weak, options::OPT_fno_objc_weak); in RenderObjCOptions()
4271 if (WeakArg->getOption().matches(options::OPT_fobjc_weak)) in RenderObjCOptions()
4278 if (Args.hasArg(options::OPT_fobjc_disable_direct_methods_for_testing)) in RenderObjCOptions()
4287 if (const Arg *A = Args.getLastArg(options::OPT__SLASH_diagnostics_classic, in RenderDiagnosticsOptions()
4288 options::OPT__SLASH_diagnostics_column, in RenderDiagnosticsOptions()
4289 options::OPT__SLASH_diagnostics_caret)) { in RenderDiagnosticsOptions()
4291 case options::OPT__SLASH_diagnostics_caret: in RenderDiagnosticsOptions()
4295 case options::OPT__SLASH_diagnostics_column: in RenderDiagnosticsOptions()
4299 case options::OPT__SLASH_diagnostics_classic: in RenderDiagnosticsOptions()
4307 if (!Args.hasFlag(options::OPT_fcaret_diagnostics, in RenderDiagnosticsOptions()
4308 options::OPT_fno_caret_diagnostics, CaretDefault)) in RenderDiagnosticsOptions()
4311 Args.addOptOutFlag(CmdArgs, options::OPT_fdiagnostics_fixit_info, in RenderDiagnosticsOptions()
4312 options::OPT_fno_diagnostics_fixit_info); in RenderDiagnosticsOptions()
4313 Args.addOptOutFlag(CmdArgs, options::OPT_fdiagnostics_show_option, in RenderDiagnosticsOptions()
4314 options::OPT_fno_diagnostics_show_option); in RenderDiagnosticsOptions()
4317 Args.getLastArg(options::OPT_fdiagnostics_show_category_EQ)) { in RenderDiagnosticsOptions()
4322 Args.addOptInFlag(CmdArgs, options::OPT_fdiagnostics_show_hotness, in RenderDiagnosticsOptions()
4323 options::OPT_fno_diagnostics_show_hotness); in RenderDiagnosticsOptions()
4326 Args.getLastArg(options::OPT_fdiagnostics_hotness_threshold_EQ)) { in RenderDiagnosticsOptions()
4333 Args.getLastArg(options::OPT_fdiagnostics_misexpect_tolerance_EQ)) { in RenderDiagnosticsOptions()
4339 if (const Arg *A = Args.getLastArg(options::OPT_fdiagnostics_format_EQ)) { in RenderDiagnosticsOptions()
4348 options::OPT_fdiagnostics_show_note_include_stack, in RenderDiagnosticsOptions()
4349 options::OPT_fno_diagnostics_show_note_include_stack)) { in RenderDiagnosticsOptions()
4351 if (O.matches(options::OPT_fdiagnostics_show_note_include_stack)) in RenderDiagnosticsOptions()
4361 Args.getLastArg(options::OPT_fcolor_diagnostics, in RenderDiagnosticsOptions()
4362 options::OPT_fno_color_diagnostics); in RenderDiagnosticsOptions()
4363 if (const Arg *A = Args.getLastArg(options::OPT_fdiagnostics_color_EQ)) { in RenderDiagnosticsOptions()
4373 if (Args.hasArg(options::OPT_fansi_escape_codes)) in RenderDiagnosticsOptions()
4376 Args.addOptOutFlag(CmdArgs, options::OPT_fshow_source_location, in RenderDiagnosticsOptions()
4377 options::OPT_fno_show_source_location); in RenderDiagnosticsOptions()
4379 Args.addOptOutFlag(CmdArgs, options::OPT_fdiagnostics_show_line_numbers, in RenderDiagnosticsOptions()
4380 options::OPT_fno_diagnostics_show_line_numbers); in RenderDiagnosticsOptions()
4382 if (Args.hasArg(options::OPT_fdiagnostics_absolute_paths)) in RenderDiagnosticsOptions()
4385 if (!Args.hasFlag(options::OPT_fshow_column, options::OPT_fno_show_column, in RenderDiagnosticsOptions()
4389 Args.addOptOutFlag(CmdArgs, options::OPT_fspell_checking, in RenderDiagnosticsOptions()
4390 options::OPT_fno_spell_checking); in RenderDiagnosticsOptions()
4395 Arg = Args.getLastArg(options::OPT_gsplit_dwarf, options::OPT_gsplit_dwarf_EQ, in getDebugFissionKind()
4396 options::OPT_gno_split_dwarf); in getDebugFissionKind()
4397 if (!Arg || Arg->getOption().matches(options::OPT_gno_split_dwarf)) in getDebugFissionKind()
4400 if (Arg->getOption().matches(options::OPT_gsplit_dwarf)) in getDebugFissionKind()
4418 Args.getLastArg(options::OPT_gdwarf64, options::OPT_gdwarf32); in renderDwarfFormat()
4422 if (DwarfFormatArg->getOption().matches(options::OPT_gdwarf64)) { in renderDwarfFormat()
4443 if (Args.hasFlag(options::OPT_fdebug_info_for_profiling, in renderDebugOptions()
4444 options::OPT_fno_debug_info_for_profiling, false) && in renderDebugOptions()
4446 Args.getLastArg(options::OPT_fdebug_info_for_profiling), Args, D, TC)) in renderDebugOptions()
4461 Args.hasFlag(options::OPT_fsplit_dwarf_inlining, in renderDebugOptions()
4462 options::OPT_fno_split_dwarf_inlining, false); in renderDebugOptions()
4467 if (IRInput || Args.hasArg(options::OPT_g_Group)) { in renderDebugOptions()
4476 if (const Arg *A = Args.getLastArg(options::OPT_g_Group)) { in renderDebugOptions()
4481 A->getOption().matches(options::OPT_gN_Group)) { in renderDebugOptions()
4498 Args.getLastArg(options::OPT_gTune_Group, options::OPT_ggdbN_Group)) { in renderDebugOptions()
4501 if (A->getOption().matches(options::OPT_glldb)) in renderDebugOptions()
4503 else if (A->getOption().matches(options::OPT_gsce)) in renderDebugOptions()
4505 else if (A->getOption().matches(options::OPT_gdbx)) in renderDebugOptions()
4518 if (const Arg *A = Args.getLastArg(options::OPT_gcodeview)) in renderDebugOptions()
4544 Args.ClaimAllArgs(options::OPT_fdebug_default_version); in renderDebugOptions()
4554 if (const Arg *A = Args.getLastArg(options::OPT_gstrict_dwarf)) in renderDebugOptions()
4556 if (Args.hasFlag(options::OPT_gstrict_dwarf, options::OPT_gno_strict_dwarf, in renderDebugOptions()
4561 Args.ClaimAllArgs(options::OPT_g_flags_Group); in renderDebugOptions()
4569 if (const Arg *A = Args.getLastArg(options::OPT_gcolumn_info)) in renderDebugOptions()
4571 if (!Args.hasFlag(options::OPT_gcolumn_info, options::OPT_gno_column_info, in renderDebugOptions()
4578 if (Args.hasFlag(options::OPT_gmodules, options::OPT_gno_modules, false)) { in renderDebugOptions()
4581 if (checkDebugInfoOption(Args.getLastArg(options::OPT_gmodules), Args, D, in renderDebugOptions()
4601 options::OPT_fstandalone_debug, options::OPT_fno_standalone_debug, in renderDebugOptions()
4604 if (const Arg *A = Args.getLastArg(options::OPT_fstandalone_debug)) in renderDebugOptions()
4609 if (Args.hasFlag(options::OPT_fno_eliminate_unused_debug_types, in renderDebugOptions()
4610 options::OPT_feliminate_unused_debug_types, false)) in renderDebugOptions()
4616 if (Args.hasFlag(options::OPT_gembed_source, options::OPT_gno_embed_source, in renderDebugOptions()
4622 const Arg *A = Args.getLastArg(options::OPT_gembed_source); in renderDebugOptions()
4639 Args.addOptInFlag(CmdArgs, options::OPT_gcodeview_ghash, in renderDebugOptions()
4640 options::OPT_gno_codeview_ghash); in renderDebugOptions()
4642 Args.addOptOutFlag(CmdArgs, options::OPT_gcodeview_command_line, in renderDebugOptions()
4643 options::OPT_gno_codeview_command_line); in renderDebugOptions()
4646 Args.addOptOutFlag(CmdArgs, options::OPT_ginline_line_tables, in renderDebugOptions()
4647 options::OPT_gno_inline_line_tables); in renderDebugOptions()
4665 if (Args.hasFlag(options::OPT_fdebug_macro, options::OPT_fno_debug_macro, in renderDebugOptions()
4667 if (checkDebugInfoOption(Args.getLastArg(options::OPT_fdebug_macro), Args, in renderDebugOptions()
4673 Args.getLastArg(options::OPT_ggnu_pubnames, options::OPT_gno_gnu_pubnames, in renderDebugOptions()
4674 options::OPT_gpubnames, options::OPT_gno_pubnames); in renderDebugOptions()
4679 (PubnamesArg->getOption().matches(options::OPT_gpubnames) || in renderDebugOptions()
4680 PubnamesArg->getOption().matches(options::OPT_ggnu_pubnames))); in renderDebugOptions()
4683 (!PubnamesArg->getOption().matches(options::OPT_gno_gnu_pubnames) && in renderDebugOptions()
4684 !PubnamesArg->getOption().matches(options::OPT_gno_pubnames)))) in renderDebugOptions()
4686 options::OPT_gpubnames) in renderDebugOptions()
4691 Args.getLastArg(options::OPT_gsimple_template_names, in renderDebugOptions()
4692 options::OPT_gno_simple_template_names); in renderDebugOptions()
4697 if (Opt.matches(options::OPT_gsimple_template_names)) { in renderDebugOptions()
4707 options::OPT_gtemplate_alias, options::OPT_gno_template_alias)) { in renderDebugOptions()
4712 UseDebugTemplateAlias = Opt.matches(options::OPT_gtemplate_alias); in renderDebugOptions()
4718 if (const Arg *A = Args.getLastArg(options::OPT_gsrc_hash_EQ)) { in renderDebugOptions()
4723 Args.addOptInFlag(CmdArgs, options::OPT_fdebug_ranges_base_address, in renderDebugOptions()
4724 options::OPT_fno_debug_ranges_base_address); in renderDebugOptions()
4730 if (const Arg *A = Args.getLastArg(options::OPT_gdwarf_aranges)) in renderDebugOptions()
4737 Args.addOptInFlag(CmdArgs, options::OPT_fforce_dwarf_frame, in renderDebugOptions()
4738 options::OPT_fno_force_dwarf_frame); in renderDebugOptions()
4741 if (Args.hasFlag(options::OPT_fdebug_types_section, in renderDebugOptions()
4742 options::OPT_fno_debug_types_section, false)) { in renderDebugOptions()
4745 << Args.getLastArg(options::OPT_fdebug_types_section) in renderDebugOptions()
4749 Args.getLastArg(options::OPT_fdebug_types_section), Args, D, in renderDebugOptions()
4758 Args.getLastArg(options::OPT_gomit_unreferenced_methods, in renderDebugOptions()
4759 options::OPT_gno_omit_unreferenced_methods)) in renderDebugOptions()
4761 if (Args.hasFlag(options::OPT_gomit_unreferenced_methods, in renderDebugOptions()
4762 options::OPT_gno_omit_unreferenced_methods, false) && in renderDebugOptions()
4772 if (!Args.hasFlag(options::OPT_fdwarf_directory_asm, in renderDebugOptions()
4773 options::OPT_fno_dwarf_directory_asm, in renderDebugOptions()
4791 if (Args.hasFlag(options::OPT_fjmc, options::OPT_fno_jmc, false)) { in renderDebugOptions()
4820 unsigned RTOptionID = options::OPT__SLASH_MT; in ProcessVSRuntimeLibrary()
4822 if (Args.hasArg(options::OPT__SLASH_LDd)) in ProcessVSRuntimeLibrary()
4825 RTOptionID = options::OPT__SLASH_MTd; in ProcessVSRuntimeLibrary()
4827 if (Arg *A = Args.getLastArg(options::OPT__SLASH_M_Group)) in ProcessVSRuntimeLibrary()
4830 if (Arg *A = Args.getLastArg(options::OPT_fms_runtime_lib_EQ)) { in ProcessVSRuntimeLibrary()
4832 .Case("static", options::OPT__SLASH_MT) in ProcessVSRuntimeLibrary()
4833 .Case("static_dbg", options::OPT__SLASH_MTd) in ProcessVSRuntimeLibrary()
4834 .Case("dll", options::OPT__SLASH_MD) in ProcessVSRuntimeLibrary()
4835 .Case("dll_dbg", options::OPT__SLASH_MDd) in ProcessVSRuntimeLibrary()
4836 .Default(options::OPT__SLASH_MT); in ProcessVSRuntimeLibrary()
4841 case options::OPT__SLASH_MD: in ProcessVSRuntimeLibrary()
4842 if (Args.hasArg(options::OPT__SLASH_LDd)) in ProcessVSRuntimeLibrary()
4848 case options::OPT__SLASH_MDd: in ProcessVSRuntimeLibrary()
4854 case options::OPT__SLASH_MT: in ProcessVSRuntimeLibrary()
4855 if (Args.hasArg(options::OPT__SLASH_LDd)) in ProcessVSRuntimeLibrary()
4861 case options::OPT__SLASH_MTd: in ProcessVSRuntimeLibrary()
4871 if (Args.hasArg(options::OPT_fms_omit_default_lib)) { in ProcessVSRuntimeLibrary()
4898 Args.hasArg(options::OPT_mkernel, options::OPT_fapple_kext); in ConstructJob()
4920 Args.hasFlag(options::OPT_offload_new_driver, in ConstructJob()
4921 options::OPT_no_offload_new_driver, false)); in ConstructJob()
4924 Args.hasFlag(options::OPT_fgpu_rdc, options::OPT_fno_gpu_rdc, false); in ConstructJob()
4986 if (const Arg *MJ = Args.getLastArg(options::OPT_MJ)) { in ConstructJob()
4988 Args.ClaimAllArgs(options::OPT_MJ); in ConstructJob()
4990 Args.getLastArg(options::OPT_gen_cdb_fragment_path)) { in ConstructJob()
4993 Args.ClaimAllArgs(options::OPT_gen_cdb_fragment_path); in ConstructJob()
5039 if (Args.getLastArg(options::OPT_mprintf_kind_EQ)) { in ConstructJob()
5042 Args.getLastArgValue(options::OPT_mprintf_kind_EQ))); in ConstructJob()
5051 if (const Arg *PF = Args.getLastArg(options::OPT_mprintf_kind_EQ)) in ConstructJob()
5054 if (Args.hasFlag(options::OPT_fsycl, options::OPT_fno_sycl, false)) { in ConstructJob()
5057 if (Arg *A = Args.getLastArg(options::OPT_sycl_std_EQ)) { in ConstructJob()
5100 UnifiedLTO = Args.hasFlag(options::OPT_funified_lto, in ConstructJob()
5101 options::OPT_fno_unified_lto, Triple.isPS()); in ConstructJob()
5117 Args.ClaimAllArgs(options::OPT_mrelax_all); in ConstructJob()
5118 Args.ClaimAllArgs(options::OPT_mno_relax_all); in ConstructJob()
5119 Args.ClaimAllArgs(options::OPT_mincremental_linker_compatible); in ConstructJob()
5120 Args.ClaimAllArgs(options::OPT_mno_incremental_linker_compatible); in ConstructJob()
5126 Args.ClaimAllArgs(options::OPT_mimplicit_it_EQ); in ConstructJob()
5132 Args.ClaimAllArgs(options::OPT_Wa_COMMA); in ConstructJob()
5133 Args.ClaimAllArgs(options::OPT_Xassembler); in ConstructJob()
5134 Args.ClaimAllArgs(options::OPT_femit_dwarf_unwind_EQ); in ConstructJob()
5147 if (Args.hasArg(options::OPT_rewrite_objc) && in ConstructJob()
5148 !Args.hasArg(options::OPT_g_Group)) in ConstructJob()
5159 (void)Args.hasArg(options::OPT_force__cpusubtype__ALL); in ConstructJob()
5176 if (Arg *PrettySGFArg = Args.getLastArg(options::OPT_emit_pretty_sgf)) in ConstructJob()
5179 Arg *SymbolGraphDirArg = Args.getLastArg(options::OPT_symbol_graph_dir_EQ); in ConstructJob()
5181 if (Arg *ProductNameArg = Args.getLastArg(options::OPT_product_name_EQ)) in ConstructJob()
5184 Args.getLastArg(options::OPT_extract_api_ignores_EQ)) in ConstructJob()
5187 Args.getLastArg(options::OPT_emit_extension_symbol_graphs)) { in ConstructJob()
5206 if (Triple.isAMDGCN() && IsOpenMPDevice && Args.hasArg(options::OPT_S) && in ConstructJob()
5207 Args.hasArg(options::OPT_emit_llvm)) { in ConstructJob()
5215 Args.hasArg(options::OPT_interface_stub_version_EQ) in ConstructJob()
5216 ? Args.getLastArgValue(options::OPT_interface_stub_version_EQ) in ConstructJob()
5246 !Args.hasFlag(options::OPT_offload_new_driver, in ConstructJob()
5247 options::OPT_no_offload_new_driver, false) && in ConstructJob()
5250 << Args.getLastArg(options::OPT_foffload_lto, in ConstructJob()
5251 options::OPT_foffload_lto_EQ) in ConstructJob()
5257 << Args.getLastArg(options::OPT_foffload_lto, in ConstructJob()
5258 options::OPT_foffload_lto_EQ) in ConstructJob()
5274 Args.AddLastArg(CmdArgs, options::OPT_dumpdir); in ConstructJob()
5276 if (const Arg *A = Args.getLastArg(options::OPT_fthinlto_index_EQ)) { in ConstructJob()
5279 Args.AddLastArg(CmdArgs, options::OPT_fthinlto_index_EQ); in ConstructJob()
5283 Args.addOptInFlag(CmdArgs, options::OPT_mregnames, in ConstructJob()
5284 options::OPT_mno_regnames); in ConstructJob()
5286 if (Args.getLastArg(options::OPT_fthin_link_bitcode_EQ)) in ConstructJob()
5287 Args.AddLastArg(CmdArgs, options::OPT_fthin_link_bitcode_EQ); in ConstructJob()
5289 if (Args.getLastArg(options::OPT_save_temps_EQ)) in ConstructJob()
5290 Args.AddLastArg(CmdArgs, options::OPT_save_temps_EQ); in ConstructJob()
5292 auto *MemProfArg = Args.getLastArg(options::OPT_fmemory_profile, in ConstructJob()
5293 options::OPT_fmemory_profile_EQ, in ConstructJob()
5294 options::OPT_fno_memory_profile); in ConstructJob()
5296 !MemProfArg->getOption().matches(options::OPT_fno_memory_profile)) in ConstructJob()
5300 Args.getLastArg(options::OPT_fmemory_profile_use_EQ)) { in ConstructJob()
5304 if (auto *PGOInstrArg = Args.getLastArg(options::OPT_fprofile_generate, in ConstructJob()
5305 options::OPT_fprofile_generate_EQ)) in ConstructJob()
5316 Args.AddLastArg(CmdArgs, options::OPT_fembed_bitcode_EQ); in ConstructJob()
5326 options::OPT_mkernel, in ConstructJob()
5327 options::OPT_fapple_kext, in ConstructJob()
5328 options::OPT_ffunction_sections, in ConstructJob()
5329 options::OPT_fno_function_sections, in ConstructJob()
5330 options::OPT_fdata_sections, in ConstructJob()
5331 options::OPT_fno_data_sections, in ConstructJob()
5332 options::OPT_fbasic_block_sections_EQ, in ConstructJob()
5333 options::OPT_funique_internal_linkage_names, in ConstructJob()
5334 options::OPT_fno_unique_internal_linkage_names, in ConstructJob()
5335 options::OPT_funique_section_names, in ConstructJob()
5336 options::OPT_fno_unique_section_names, in ConstructJob()
5337 options::OPT_funique_basic_block_section_names, in ConstructJob()
5338 options::OPT_fno_unique_basic_block_section_names, in ConstructJob()
5339 options::OPT_mrestrict_it, in ConstructJob()
5340 options::OPT_mno_restrict_it, in ConstructJob()
5341 options::OPT_mstackrealign, in ConstructJob()
5342 options::OPT_mno_stackrealign, in ConstructJob()
5343 options::OPT_mstack_alignment, in ConstructJob()
5344 options::OPT_mcmodel_EQ, in ConstructJob()
5345 options::OPT_mlong_calls, in ConstructJob()
5346 options::OPT_mno_long_calls, in ConstructJob()
5347 options::OPT_ggnu_pubnames, in ConstructJob()
5348 options::OPT_gdwarf_aranges, in ConstructJob()
5349 options::OPT_fdebug_types_section, in ConstructJob()
5350 options::OPT_fno_debug_types_section, in ConstructJob()
5351 options::OPT_fdwarf_directory_asm, in ConstructJob()
5352 options::OPT_fno_dwarf_directory_asm, in ConstructJob()
5353 options::OPT_mrelax_all, in ConstructJob()
5354 options::OPT_mno_relax_all, in ConstructJob()
5355 options::OPT_ftrap_function_EQ, in ConstructJob()
5356 options::OPT_ffixed_r9, in ConstructJob()
5357 options::OPT_mfix_cortex_a53_835769, in ConstructJob()
5358 options::OPT_mno_fix_cortex_a53_835769, in ConstructJob()
5359 options::OPT_ffixed_x18, in ConstructJob()
5360 options::OPT_mglobal_merge, in ConstructJob()
5361 options::OPT_mno_global_merge, in ConstructJob()
5362 options::OPT_mred_zone, in ConstructJob()
5363 options::OPT_mno_red_zone, in ConstructJob()
5364 options::OPT_Wa_COMMA, in ConstructJob()
5365 options::OPT_Xassembler, in ConstructJob()
5366 options::OPT_mllvm, in ConstructJob()
5373 Args.addOptOutFlag(CmdArgs, options::OPT_foptimize_sibling_calls, in ConstructJob()
5374 options::OPT_fno_optimize_sibling_calls); in ConstructJob()
5395 if (const Arg *A = Args.getLastArg(options::OPT_O_Group)) { in ConstructJob()
5396 if (A->getOption().matches(options::OPT_O4)) { in ConstructJob()
5445 if (Args.hasFlag(options::OPT_fno_verify_intermediate_code, in ConstructJob()
5446 options::OPT_fverify_intermediate_code, !IsAssertBuild)) { in ConstructJob()
5451 if (Args.hasFlag(options::OPT_fdiscard_value_names, in ConstructJob()
5452 options::OPT_fno_discard_value_names, !IsAssertBuild)) { in ConstructJob()
5453 if (Args.hasArg(options::OPT_fdiscard_value_names) && in ConstructJob()
5469 if (Args.hasArg(options::OPT_static)) in ConstructJob()
5472 if (Args.hasArg(options::OPT_municode)) in ConstructJob()
5479 (isa<PreprocessJobAction>(JA) && Args.hasArg(options::OPT__analyze))) in ConstructJob()
5486 for (auto *Arg : Args.filtered(options::OPT_Xclang)) in ConstructJob()
5492 for (auto *Arg : Args.filtered(options::OPT_Xanalyzer)) in ConstructJob()
5511 if (const Arg *A = Args.getLastArg(options::OPT_falign_loops_EQ)) { in ConstructJob()
5535 auto MacroDefs = Args.getAllArgValues(options::OPT_D); in ConstructJob()
5559 Args.getLastArg(options::OPT_mno_pic_data_is_text_relative, in ConstructJob()
5560 options::OPT_mpic_data_is_text_relative); in ConstructJob()
5564 options::OPT_mno_pic_data_is_text_relative)) { in ConstructJob()
5583 if (Args.hasArg(options::OPT_mcmse) && in ConstructJob()
5584 !Args.hasArg(options::OPT_fallow_unsupported)) { in ConstructJob()
5592 !Args.hasArg(options::OPT_fallow_unsupported)) in ConstructJob()
5616 if (Arg *A = Args.getLastArg(options::OPT_meabi)) { in ConstructJob()
5633 Arg *A = Args.getLastArg(options::OPT_fsemantic_interposition, in ConstructJob()
5634 options::OPT_fno_semantic_interposition); in ConstructJob()
5641 else if (A->getOption().matches(options::OPT_fsemantic_interposition)) in ConstructJob()
5650 if (Arg *A = Args.getLastArg(options::OPT_mthread_model)) { in ConstructJob()
5663 if (Arg *A = Args.getLastArg(options::OPT_fveclib)) { in ConstructJob()
5684 if (Args.hasFlag(options::OPT_fmerge_all_constants, in ConstructJob()
5685 options::OPT_fno_merge_all_constants, false)) in ConstructJob()
5688 Args.addOptOutFlag(CmdArgs, options::OPT_fdelete_null_pointer_checks, in ConstructJob()
5689 options::OPT_fno_delete_null_pointer_checks); in ConstructJob()
5693 if (Arg *A = Args.getLastArg(options::OPT_mabi_EQ_quadword_atomics)) { in ConstructJob()
5700 if (Arg *A = Args.getLastArg(options::OPT_mlong_double_128)) { in ConstructJob()
5708 if (Arg *A = Args.getLastArg(options::OPT_Wframe_larger_than_EQ)) { in ConstructJob()
5718 Args.addOptOutFlag(CmdArgs, options::OPT_fjump_tables, in ConstructJob()
5719 options::OPT_fno_jump_tables); in ConstructJob()
5720 Args.addOptInFlag(CmdArgs, options::OPT_fprofile_sample_accurate, in ConstructJob()
5721 options::OPT_fno_profile_sample_accurate); in ConstructJob()
5722 Args.addOptOutFlag(CmdArgs, options::OPT_fpreserve_as_comments, in ConstructJob()
5723 options::OPT_fno_preserve_as_comments); in ConstructJob()
5725 if (Arg *A = Args.getLastArg(options::OPT_mregparm_EQ)) { in ConstructJob()
5730 if (Arg *A = Args.getLastArg(options::OPT_maix_struct_return, in ConstructJob()
5731 options::OPT_msvr4_struct_return)) { in ConstructJob()
5735 } else if (A->getOption().matches(options::OPT_maix_struct_return)) { in ConstructJob()
5738 assert(A->getOption().matches(options::OPT_msvr4_struct_return)); in ConstructJob()
5743 if (Arg *A = Args.getLastArg(options::OPT_fpcc_struct_return, in ConstructJob()
5744 options::OPT_freg_struct_return)) { in ConstructJob()
5748 } else if (A->getOption().matches(options::OPT_fpcc_struct_return)) { in ConstructJob()
5751 assert(A->getOption().matches(options::OPT_freg_struct_return)); in ConstructJob()
5756 if (Args.hasFlag(options::OPT_mrtd, options::OPT_mno_rtd, false)) { in ConstructJob()
5763 if (Args.hasArg(options::OPT_fenable_matrix)) { in ConstructJob()
5790 Args.addOptOutFlag(CmdArgs, options::OPT_fzero_initialized_in_bss, in ConstructJob()
5791 options::OPT_fno_zero_initialized_in_bss); in ConstructJob()
5799 OFastEnabled ? options::OPT_Ofast : options::OPT_fstrict_aliasing; in ConstructJob()
5802 if (!Args.hasFlag(options::OPT_fstrict_aliasing, StrictAliasingAliasOption, in ConstructJob()
5803 options::OPT_fno_strict_aliasing, !IsWindowsMSVC)) in ConstructJob()
5805 if (Args.hasFlag(options::OPT_fpointer_tbaa, options::OPT_fno_pointer_tbaa, in ConstructJob()
5808 if (!Args.hasFlag(options::OPT_fstruct_path_tbaa, in ConstructJob()
5809 options::OPT_fno_struct_path_tbaa, true)) in ConstructJob()
5811 Args.addOptInFlag(CmdArgs, options::OPT_fstrict_enums, in ConstructJob()
5812 options::OPT_fno_strict_enums); in ConstructJob()
5813 Args.addOptOutFlag(CmdArgs, options::OPT_fstrict_return, in ConstructJob()
5814 options::OPT_fno_strict_return); in ConstructJob()
5815 Args.addOptInFlag(CmdArgs, options::OPT_fallow_editor_placeholders, in ConstructJob()
5816 options::OPT_fno_allow_editor_placeholders); in ConstructJob()
5817 Args.addOptInFlag(CmdArgs, options::OPT_fstrict_vtable_pointers, in ConstructJob()
5818 options::OPT_fno_strict_vtable_pointers); in ConstructJob()
5819 Args.addOptInFlag(CmdArgs, options::OPT_fforce_emit_vtables, in ConstructJob()
5820 options::OPT_fno_force_emit_vtables); in ConstructJob()
5821 Args.addOptOutFlag(CmdArgs, options::OPT_foptimize_sibling_calls, in ConstructJob()
5822 options::OPT_fno_optimize_sibling_calls); in ConstructJob()
5823 Args.addOptOutFlag(CmdArgs, options::OPT_fescaping_block_tail_calls, in ConstructJob()
5824 options::OPT_fno_escaping_block_tail_calls); in ConstructJob()
5826 Args.AddLastArg(CmdArgs, options::OPT_ffine_grained_bitfield_accesses, in ConstructJob()
5827 options::OPT_fno_fine_grained_bitfield_accesses); in ConstructJob()
5829 Args.AddLastArg(CmdArgs, options::OPT_fexperimental_relative_cxx_abi_vtables, in ConstructJob()
5830 options::OPT_fno_experimental_relative_cxx_abi_vtables); in ConstructJob()
5832 Args.AddLastArg(CmdArgs, options::OPT_fexperimental_omit_vtable_rtti, in ConstructJob()
5833 options::OPT_fno_experimental_omit_vtable_rtti); in ConstructJob()
5835 Args.AddLastArg(CmdArgs, options::OPT_fdisable_block_signature_string, in ConstructJob()
5836 options::OPT_fno_disable_block_signature_string); in ConstructJob()
5839 Args.addOptInFlag(CmdArgs, options::OPT_fsplit_stack, in ConstructJob()
5840 options::OPT_fno_split_stack); in ConstructJob()
5843 if (Args.hasFlag(options::OPT_fprotect_parens, in ConstructJob()
5844 options::OPT_fno_protect_parens, false)) in ConstructJob()
5849 if (Arg *A = Args.getLastArg(options::OPT_fextend_args_EQ)) { in ConstructJob()
5863 if (Arg *A = Args.getLastArg(options::OPT_mdouble_EQ)) { in ConstructJob()
5871 if (Arg *A = Args.getLastArg(options::OPT_LongDouble_Group)) { in ConstructJob()
5875 (A->getOption().getID() != options::OPT_mlong_double_80)) in ConstructJob()
5885 if (!Args.hasFlag(options::OPT_fverbose_asm, options::OPT_fno_verbose_asm, in ConstructJob()
5891 if (Arg *A = Args.getLastArg(options::OPT_fbinutils_version_EQ)) { in ConstructJob()
5910 if (Args.hasArg(options::OPT_fdebug_pass_structure)) { in ConstructJob()
5914 if (Args.hasArg(options::OPT_fdebug_pass_arguments)) { in ConstructJob()
5930 if (Args.hasFlag(options::OPT_mms_bitfields, options::OPT_mno_ms_bitfields, in ConstructJob()
5936 Args.addOptOutFlag(CmdArgs, options::OPT_fauto_import, in ConstructJob()
5937 options::OPT_fno_auto_import); in ConstructJob()
5940 if (Args.hasFlag(options::OPT_fms_volatile, options::OPT_fno_ms_volatile, in ConstructJob()
5947 if (Arg *A = Args.getLastArg(options::OPT_fdirect_access_external_data, in ConstructJob()
5948 options::OPT_fno_direct_access_external_data)) { in ConstructJob()
5949 if (A->getOption().matches(options::OPT_fdirect_access_external_data) != in ConstructJob()
5958 if (Args.hasFlag(options::OPT_fno_plt, options::OPT_fplt, false)) { in ConstructJob()
5966 Args.hasFlag(options::OPT_ffreestanding, options::OPT_fhosted, false) || in ConstructJob()
5971 Args.AddLastArg(CmdArgs, options::OPT_fno_knr_functions); in ConstructJob()
5984 options::OPT_fasynchronous_unwind_tables, in ConstructJob()
5985 options::OPT_fno_asynchronous_unwind_tables, in ConstructJob()
5989 Args.hasFlag(options::OPT_funwind_tables, options::OPT_fno_unwind_tables, in ConstructJob()
5998 if (!Args.getLastArg(options::OPT_gpu_use_aux_triple_only) && in ConstructJob()
6016 if (Arg *A = Args.getLastArg(options::OPT_mtls_size_EQ)) { in ConstructJob()
6026 Args.AddLastArg(CmdArgs, options::OPT_mtls_size_EQ); in ConstructJob()
6071 if (Arg *A = Args.getLastArg(options::OPT_mlinker_version_EQ)) { in ConstructJob()
6078 if (!Args.hasArg(options::OPT_fallow_unsupported)) { in ConstructJob()
6082 if ((Unsupported = Args.getLastArg(options::OPT_fapple_kext)) || in ConstructJob()
6083 (Unsupported = Args.getLastArg(options::OPT_mkernel))) in ConstructJob()
6088 if ((Unsupported = Args.getLastArg(options::OPT_faltivec))) in ConstructJob()
6092 if ((Unsupported = Args.getLastArg(options::OPT_fno_altivec))) in ConstructJob()
6097 Args.AddAllArgs(CmdArgs, options::OPT_v); in ConstructJob()
6099 if (Args.getLastArg(options::OPT_H)) { in ConstructJob()
6103 Args.AddAllArgs(CmdArgs, options::OPT_fshow_skipped_includes); in ConstructJob()
6119 Args.AddLastArg(CmdArgs, options::OPT_P); in ConstructJob()
6120 Args.AddLastArg(CmdArgs, options::OPT_print_ivar_layout); in ConstructJob()
6136 if (Args.hasArg(options::OPT_fcrash_diagnostics_dir)) { in ConstructJob()
6137 StringRef Dir = Args.getLastArgValue(options::OPT_fcrash_diagnostics_dir); in ConstructJob()
6144 if (Args.hasFlag(options::OPT_ffunction_sections, in ConstructJob()
6145 options::OPT_fno_function_sections, UseSeparateSections)) { in ConstructJob()
6149 if (Arg *A = Args.getLastArg(options::OPT_fbasic_block_address_map, in ConstructJob()
6150 options::OPT_fno_basic_block_address_map)) { in ConstructJob()
6152 if (A->getOption().matches(options::OPT_fbasic_block_address_map)) in ConstructJob()
6160 if (Arg *A = Args.getLastArg(options::OPT_fbasic_block_sections_EQ)) { in ConstructJob()
6189 if (Args.hasFlag(options::OPT_fdata_sections, options::OPT_fno_data_sections, in ConstructJob()
6194 Args.addOptOutFlag(CmdArgs, options::OPT_funique_section_names, in ConstructJob()
6195 options::OPT_fno_unique_section_names); in ConstructJob()
6196 Args.addOptInFlag(CmdArgs, options::OPT_fseparate_named_sections, in ConstructJob()
6197 options::OPT_fno_separate_named_sections); in ConstructJob()
6198 Args.addOptInFlag(CmdArgs, options::OPT_funique_internal_linkage_names, in ConstructJob()
6199 options::OPT_fno_unique_internal_linkage_names); in ConstructJob()
6200 Args.addOptInFlag(CmdArgs, options::OPT_funique_basic_block_section_names, in ConstructJob()
6201 options::OPT_fno_unique_basic_block_section_names); in ConstructJob()
6202 Args.addOptInFlag(CmdArgs, options::OPT_fconvergent_functions, in ConstructJob()
6203 options::OPT_fno_convergent_functions); in ConstructJob()
6205 if (Arg *A = Args.getLastArg(options::OPT_fsplit_machine_functions, in ConstructJob()
6206 options::OPT_fno_split_machine_functions)) { in ConstructJob()
6207 if (!A->getOption().matches(options::OPT_fno_split_machine_functions)) { in ConstructJob()
6217 Args.AddLastArg(CmdArgs, options::OPT_finstrument_functions, in ConstructJob()
6218 options::OPT_finstrument_functions_after_inlining, in ConstructJob()
6219 options::OPT_finstrument_function_entry_bare); in ConstructJob()
6227 Args.AddLastArg(CmdArgs, options::OPT_fclang_abi_compat_EQ); in ConstructJob()
6230 Args.hasArg(options::OPT_fsample_profile_use_profi)) { in ConstructJob()
6237 !Args.hasArg(options::OPT_nostdlib, options::OPT_nodefaultlibs)) { in ConstructJob()
6243 if (Args.hasArg(options::OPT_nostdinc)) { in ConstructJob()
6247 if (Args.hasArg(options::OPT_nostdlibinc)) in ConstructJob()
6249 Args.AddLastArg(CmdArgs, options::OPT_nostdincxx); in ConstructJob()
6250 Args.AddLastArg(CmdArgs, options::OPT_nobuiltininc); in ConstructJob()
6257 Args.AddLastArg(CmdArgs, options::OPT_working_directory); in ConstructJob()
6272 Args.ClaimAllArgs(options::OPT_D); in ConstructJob()
6275 if (Arg *A = Args.getLastArg(options::OPT_O_Group)) { in ConstructJob()
6276 if (A->getOption().matches(options::OPT_O4)) { in ConstructJob()
6286 Args.filtered(options::OPT_clang_ignored_gcc_optimization_f_Group)) { in ConstructJob()
6292 Args.filtered(options::OPT_clang_ignored_legacy_options_Group)) { in ConstructJob()
6299 Args.AddAllArgs(CmdArgs, options::OPT_R_Group); in ConstructJob()
6302 Args.filtered(options::OPT_W_Group, options::OPT__SLASH_wd)) { in ConstructJob()
6304 if (A->getOption().getID() == options::OPT__SLASH_wd) { in ConstructJob()
6321 Args.AddAllArgs(CmdArgs, options::OPT_Wsystem_headers_in_module_EQ); in ConstructJob()
6323 if (Args.hasFlag(options::OPT_pedantic, options::OPT_no_pedantic, false)) in ConstructJob()
6325 Args.AddLastArg(CmdArgs, options::OPT_pedantic_errors); in ConstructJob()
6326 Args.AddLastArg(CmdArgs, options::OPT_w); in ConstructJob()
6328 Args.addOptInFlag(CmdArgs, options::OPT_ffixed_point, in ConstructJob()
6329 options::OPT_fno_fixed_point); in ConstructJob()
6331 if (Arg *A = Args.getLastArg(options::OPT_fcxx_abi_EQ)) in ConstructJob()
6334 Args.AddLastArg(CmdArgs, options::OPT_fexperimental_relative_cxx_abi_vtables, in ConstructJob()
6335 options::OPT_fno_experimental_relative_cxx_abi_vtables); in ConstructJob()
6337 Args.AddLastArg(CmdArgs, options::OPT_fexperimental_omit_vtable_rtti, in ConstructJob()
6338 options::OPT_fno_experimental_omit_vtable_rtti); in ConstructJob()
6340 if (Arg *A = Args.getLastArg(options::OPT_ffuchsia_api_level_EQ)) in ConstructJob()
6350 const Arg *Std = Args.getLastArg(options::OPT_std_EQ, options::OPT_ansi); in ConstructJob()
6352 if (Std->getOption().matches(options::OPT_ansi)) in ConstructJob()
6361 if (Arg *A = Args.getLastArg(options::OPT_std_EQ, options::OPT_ansi, in ConstructJob()
6362 options::OPT_ftrigraphs, in ConstructJob()
6363 options::OPT_fno_trigraphs)) in ConstructJob()
6374 if (!Args.hasArg(options::OPT__SLASH_std)) { in ConstructJob()
6375 Args.AddAllArgsTranslated(CmdArgs, options::OPT_std_default_EQ, "-std=", in ConstructJob()
6383 Args.AddLastArg(CmdArgs, options::OPT_ftrigraphs, in ConstructJob()
6384 options::OPT_fno_trigraphs); in ConstructJob()
6400 Args.getLastArg(options::OPT_Wwrite_strings, in ConstructJob()
6401 options::OPT_Wno_write_strings, options::OPT_w); in ConstructJob()
6403 WriteStrings->getOption().matches(options::OPT_Wwrite_strings)) in ConstructJob()
6411 Args.hasFlag(options::OPT_Wdeprecated, options::OPT_Wno_deprecated, in ConstructJob()
6417 if (Arg *Asm = Args.getLastArg(options::OPT_fasm, options::OPT_fno_asm)) { in ConstructJob()
6418 if (Asm->getOption().matches(options::OPT_fasm)) in ConstructJob()
6427 Args.AddLastArg(CmdArgs, options::OPT_ftemplate_depth_EQ); in ConstructJob()
6428 Args.AddLastArg(CmdArgs, options::OPT_foperator_arrow_depth_EQ); in ConstructJob()
6429 Args.AddLastArg(CmdArgs, options::OPT_fconstexpr_depth_EQ); in ConstructJob()
6430 Args.AddLastArg(CmdArgs, options::OPT_fconstexpr_steps_EQ); in ConstructJob()
6432 Args.AddLastArg(CmdArgs, options::OPT_fexperimental_library); in ConstructJob()
6434 if (Args.hasArg(options::OPT_fexperimental_new_constant_interpreter)) in ConstructJob()
6437 if (Arg *A = Args.getLastArg(options::OPT_fbracket_depth_EQ)) { in ConstructJob()
6442 if (Arg *A = Args.getLastArg(options::OPT_Wlarge_by_value_copy_EQ, in ConstructJob()
6443 options::OPT_Wlarge_by_value_copy_def)) { in ConstructJob()
6451 if (Args.hasArg(options::OPT_relocatable_pch)) in ConstructJob()
6454 if (const Arg *A = Args.getLastArg(options::OPT_fcf_runtime_abi_EQ)) { in ConstructJob()
6465 if (Arg *A = Args.getLastArg(options::OPT_fconstant_string_class_EQ)) { in ConstructJob()
6470 if (Arg *A = Args.getLastArg(options::OPT_ftabstop_EQ)) { in ConstructJob()
6475 Args.addOptInFlag(CmdArgs, options::OPT_fstack_size_section, in ConstructJob()
6476 options::OPT_fno_stack_size_section); in ConstructJob()
6478 if (Args.hasArg(options::OPT_fstack_usage)) { in ConstructJob()
6481 if (Arg *OutputOpt = Args.getLastArg(options::OPT_o)) { in ConstructJob()
6491 if (Arg *A = Args.getLastArg(options::OPT_ferror_limit_EQ)) in ConstructJob()
6496 Args.AddLastArg(CmdArgs, options::OPT_fconstexpr_backtrace_limit_EQ); in ConstructJob()
6497 Args.AddLastArg(CmdArgs, options::OPT_fmacro_backtrace_limit_EQ); in ConstructJob()
6498 Args.AddLastArg(CmdArgs, options::OPT_ftemplate_backtrace_limit_EQ); in ConstructJob()
6499 Args.AddLastArg(CmdArgs, options::OPT_fspell_checking_limit_EQ); in ConstructJob()
6500 Args.AddLastArg(CmdArgs, options::OPT_fcaret_diagnostics_max_lines_EQ); in ConstructJob()
6504 if (Arg *A = Args.getLastArg(options::OPT_fmessage_length_EQ)) { in ConstructJob()
6518 if (Arg *A = Args.getLastArg(options::OPT_frandomize_layout_seed_EQ)) in ConstructJob()
6522 if (Arg *A = Args.getLastArg(options::OPT_frandomize_layout_seed_file_EQ)) in ConstructJob()
6527 if (const Arg *A = Args.getLastArg(options::OPT_fvisibility_EQ, in ConstructJob()
6528 options::OPT_fvisibility_ms_compat)) { in ConstructJob()
6529 if (A->getOption().matches(options::OPT_fvisibility_EQ)) { in ConstructJob()
6532 assert(A->getOption().matches(options::OPT_fvisibility_ms_compat)); in ConstructJob()
6546 Args.getLastArg(options::OPT_fvisibility_from_dllstorageclass, in ConstructJob()
6547 options::OPT_fno_visibility_from_dllstorageclass)) { in ConstructJob()
6549 options::OPT_fvisibility_from_dllstorageclass)) { in ConstructJob()
6551 Args.AddLastArg(CmdArgs, options::OPT_fvisibility_dllexport_EQ); in ConstructJob()
6552 Args.AddLastArg(CmdArgs, options::OPT_fvisibility_nodllstorageclass_EQ); in ConstructJob()
6553 Args.AddLastArg(CmdArgs, options::OPT_fvisibility_externs_dllimport_EQ); in ConstructJob()
6555 options::OPT_fvisibility_externs_nodllstorageclass_EQ); in ConstructJob()
6560 if (Args.hasFlag(options::OPT_fvisibility_inlines_hidden, in ConstructJob()
6561 options::OPT_fno_visibility_inlines_hidden, false)) in ConstructJob()
6564 Args.AddLastArg(CmdArgs, options::OPT_fvisibility_inlines_hidden_static_local_var, in ConstructJob()
6565 options::OPT_fno_visibility_inlines_hidden_static_local_var); in ConstructJob()
6570 Args.getLastArg(options::OPT_fvisibility_global_new_delete_hidden)) { in ConstructJob()
6577 Args.getLastArg(options::OPT_fvisibility_global_new_delete_EQ, in ConstructJob()
6578 options::OPT_fvisibility_global_new_delete_hidden)) { in ConstructJob()
6579 if (A->getOption().matches(options::OPT_fvisibility_global_new_delete_EQ)) { in ConstructJob()
6583 options::OPT_fvisibility_global_new_delete_hidden)); in ConstructJob()
6588 Args.AddLastArg(CmdArgs, options::OPT_ftlsmodel_EQ); in ConstructJob()
6590 if (Args.hasFlag(options::OPT_fnew_infallible, in ConstructJob()
6591 options::OPT_fno_new_infallible, false)) in ConstructJob()
6594 if (Args.hasFlag(options::OPT_fno_operator_names, in ConstructJob()
6595 options::OPT_foperator_names, false)) in ConstructJob()
6599 Args.AddLastArg(CmdArgs, options::OPT_femit_all_decls); in ConstructJob()
6600 Args.AddLastArg(CmdArgs, options::OPT_fheinous_gnu_extensions); in ConstructJob()
6601 Args.AddLastArg(CmdArgs, options::OPT_fdigraphs, options::OPT_fno_digraphs); in ConstructJob()
6602 Args.AddLastArg(CmdArgs, options::OPT_fzero_call_used_regs_EQ); in ConstructJob()
6603 Args.AddLastArg(CmdArgs, options::OPT_fraw_string_literals, in ConstructJob()
6604 options::OPT_fno_raw_string_literals); in ConstructJob()
6606 if (Args.hasFlag(options::OPT_femulated_tls, options::OPT_fno_emulated_tls, in ConstructJob()
6610 Args.addOptInFlag(CmdArgs, options::OPT_fcheck_new, in ConstructJob()
6611 options::OPT_fno_check_new); in ConstructJob()
6613 if (Arg *A = Args.getLastArg(options::OPT_fzero_call_used_regs_EQ)) { in ConstructJob()
6624 Args.AddLastArg(CmdArgs, options::OPT_fzvector); in ConstructJob()
6626 Args.AddLastArg(CmdArgs, options::OPT_fdiagnostics_show_template_tree); in ConstructJob()
6627 Args.AddLastArg(CmdArgs, options::OPT_fno_elide_type); in ConstructJob()
6631 if (Args.hasFlag(options::OPT_fopenmp, options::OPT_fopenmp_EQ, in ConstructJob()
6632 options::OPT_fno_openmp, false) && in ConstructJob()
6644 if (!Args.hasFlag(options::OPT_fopenmp_use_tls, in ConstructJob()
6645 options::OPT_fnoopenmp_use_tls, /*Default=*/true)) in ConstructJob()
6647 Args.AddLastArg(CmdArgs, options::OPT_fopenmp_simd, in ConstructJob()
6648 options::OPT_fno_openmp_simd); in ConstructJob()
6649 Args.AddAllArgs(CmdArgs, options::OPT_fopenmp_enable_irbuilder); in ConstructJob()
6650 Args.AddAllArgs(CmdArgs, options::OPT_fopenmp_version_EQ); in ConstructJob()
6651 if (!Args.hasFlag(options::OPT_fopenmp_extensions, in ConstructJob()
6652 options::OPT_fno_openmp_extensions, /*Default=*/true)) in ConstructJob()
6654 Args.AddAllArgs(CmdArgs, options::OPT_fopenmp_cuda_number_of_sm_EQ); in ConstructJob()
6655 Args.AddAllArgs(CmdArgs, options::OPT_fopenmp_cuda_blocks_per_sm_EQ); in ConstructJob()
6657 options::OPT_fopenmp_cuda_teams_reduction_recs_num_EQ); in ConstructJob()
6658 if (Args.hasFlag(options::OPT_fopenmp_optimistic_collapse, in ConstructJob()
6659 options::OPT_fno_openmp_optimistic_collapse, in ConstructJob()
6665 if (Args.hasFlag(options::OPT_fopenmp_cuda_mode, in ConstructJob()
6666 options::OPT_fno_openmp_cuda_mode, /*Default=*/false)) in ConstructJob()
6670 Args.AddAllArgs(CmdArgs, options::OPT_fopenmp_target_debug_EQ); in ConstructJob()
6671 if (Args.hasFlag(options::OPT_fopenmp_target_debug, in ConstructJob()
6672 options::OPT_fno_openmp_target_debug, /*Default=*/false)) in ConstructJob()
6677 if (Args.hasFlag(options::OPT_fopenmp_assume_teams_oversubscription, in ConstructJob()
6678 options::OPT_fno_openmp_assume_teams_oversubscription, in ConstructJob()
6681 if (Args.hasFlag(options::OPT_fopenmp_assume_threads_oversubscription, in ConstructJob()
6682 options::OPT_fno_openmp_assume_threads_oversubscription, in ConstructJob()
6685 if (Args.hasArg(options::OPT_fopenmp_assume_no_thread_state)) in ConstructJob()
6687 if (Args.hasArg(options::OPT_fopenmp_assume_no_nested_parallelism)) in ConstructJob()
6689 if (Args.hasArg(options::OPT_fopenmp_offload_mandatory)) in ConstructJob()
6691 if (Args.hasArg(options::OPT_fopenmp_force_usm)) in ConstructJob()
6704 Args.AddLastArg(CmdArgs, options::OPT_fopenmp_simd, in ConstructJob()
6705 options::OPT_fno_openmp_simd); in ConstructJob()
6706 Args.AddAllArgs(CmdArgs, options::OPT_fopenmp_version_EQ); in ConstructJob()
6707 Args.addOptOutFlag(CmdArgs, options::OPT_fopenmp_extensions, in ConstructJob()
6708 options::OPT_fno_openmp_extensions); in ConstructJob()
6712 if (Args.hasFlag(options::OPT_offload_new_driver, in ConstructJob()
6713 options::OPT_no_offload_new_driver, false)) in ConstructJob()
6722 Args.getAllArgValues(options::OPT_fprofile_list_EQ)) { in ConstructJob()
6729 if (Arg *A = Args.getLastArg(options::OPT_fpatchable_function_entry_EQ)) { in ConstructJob()
6752 Args.AddLastArg(CmdArgs, options::OPT_fms_hotpatch); in ConstructJob()
6755 Args.AddLastArg(CmdArgs, options::OPT_pg); in ConstructJob()
6758 if (Arg *A = Args.getLastArg(options::OPT_mfentry)) { in ConstructJob()
6765 if (Arg *A = Args.getLastArg(options::OPT_mnop_mcount)) { in ConstructJob()
6772 if (Arg *A = Args.getLastArg(options::OPT_mrecord_mcount)) { in ConstructJob()
6781 if (Arg *A = Args.getLastArgNoClaim(options::OPT_pg)) { in ConstructJob()
6787 if (Arg *A = Args.getLastArgNoClaim(options::OPT_p)) { in ConstructJob()
6793 if (Arg *A = Args.getLastArgNoClaim(options::OPT_p, options::OPT_pg)) { in ConstructJob()
6794 if (A->getOption().matches(options::OPT_p)) { in ConstructJob()
6796 if (TC.getTriple().isOSAIX() && !Args.hasArgNoClaim(options::OPT_pg)) in ConstructJob()
6803 for (const Arg *A : Args.filtered(options::OPT_b, options::OPT_K, in ConstructJob()
6804 options::OPT_mxcoff_build_id_EQ)) { in ConstructJob()
6810 if (Args.getLastArg(options::OPT_fapple_kext) || in ConstructJob()
6811 (Args.hasArg(options::OPT_mkernel) && types::isCXX(InputType))) in ConstructJob()
6814 Args.AddLastArg(CmdArgs, options::OPT_altivec_src_compat); in ConstructJob()
6815 Args.AddLastArg(CmdArgs, options::OPT_flax_vector_conversions_EQ); in ConstructJob()
6816 Args.AddLastArg(CmdArgs, options::OPT_fobjc_sender_dependent_dispatch); in ConstructJob()
6817 Args.AddLastArg(CmdArgs, options::OPT_fdiagnostics_print_source_range_info); in ConstructJob()
6818 Args.AddLastArg(CmdArgs, options::OPT_fdiagnostics_parseable_fixits); in ConstructJob()
6819 Args.AddLastArg(CmdArgs, options::OPT_ftime_report); in ConstructJob()
6820 Args.AddLastArg(CmdArgs, options::OPT_ftime_report_EQ); in ConstructJob()
6821 Args.AddLastArg(CmdArgs, options::OPT_ftrapv); in ConstructJob()
6822 Args.AddLastArg(CmdArgs, options::OPT_malign_double); in ConstructJob()
6823 Args.AddLastArg(CmdArgs, options::OPT_fno_temp_file); in ConstructJob()
6827 Args.AddLastArg(CmdArgs, options::OPT_ftime_trace_granularity_EQ); in ConstructJob()
6828 Args.AddLastArg(CmdArgs, options::OPT_ftime_trace_verbose); in ConstructJob()
6831 if (Arg *A = Args.getLastArg(options::OPT_ftrapv_handler_EQ)) { in ConstructJob()
6836 Args.AddLastArg(CmdArgs, options::OPT_ftrap_function_EQ); in ConstructJob()
6840 if (Arg *A = Args.getLastArg(options::OPT_fwrapv, options::OPT_fno_wrapv)) { in ConstructJob()
6841 if (A->getOption().matches(options::OPT_fwrapv)) in ConstructJob()
6843 } else if (Arg *A = Args.getLastArg(options::OPT_fstrict_overflow, in ConstructJob()
6844 options::OPT_fno_strict_overflow)) { in ConstructJob()
6845 if (A->getOption().matches(options::OPT_fno_strict_overflow)) in ConstructJob()
6849 Args.AddLastArg(CmdArgs, options::OPT_ffinite_loops, in ConstructJob()
6850 options::OPT_fno_finite_loops); in ConstructJob()
6852 Args.AddLastArg(CmdArgs, options::OPT_fwritable_strings); in ConstructJob()
6853 Args.AddLastArg(CmdArgs, options::OPT_funroll_loops, in ConstructJob()
6854 options::OPT_fno_unroll_loops); in ConstructJob()
6856 Args.AddLastArg(CmdArgs, options::OPT_fstrict_flex_arrays_EQ); in ConstructJob()
6858 Args.AddLastArg(CmdArgs, options::OPT_pthread); in ConstructJob()
6860 Args.addOptInFlag(CmdArgs, options::OPT_mspeculative_load_hardening, in ConstructJob()
6861 options::OPT_mno_speculative_load_hardening); in ConstructJob()
6867 Args.AddLastArg(CmdArgs, options::OPT_fswift_async_fp_EQ); in ConstructJob()
6869 Args.addOptInFlag(CmdArgs, options::OPT_mstackrealign, in ConstructJob()
6870 options::OPT_mno_stackrealign); in ConstructJob()
6872 if (Args.hasArg(options::OPT_mstack_alignment)) { in ConstructJob()
6873 StringRef alignment = Args.getLastArgValue(options::OPT_mstack_alignment); in ConstructJob()
6877 if (Args.hasArg(options::OPT_mstack_probe_size)) { in ConstructJob()
6878 StringRef Size = Args.getLastArgValue(options::OPT_mstack_probe_size); in ConstructJob()
6886 Args.addOptOutFlag(CmdArgs, options::OPT_mstack_arg_probe, in ConstructJob()
6887 options::OPT_mno_stack_arg_probe); in ConstructJob()
6889 if (Arg *A = Args.getLastArg(options::OPT_mrestrict_it, in ConstructJob()
6890 options::OPT_mno_restrict_it)) { in ConstructJob()
6891 if (A->getOption().matches(options::OPT_mrestrict_it)) { in ConstructJob()
6910 if (Args.hasFlag(options::OPT_fhip_new_launch_api, in ConstructJob()
6911 options::OPT_fno_hip_new_launch_api, true)) in ConstructJob()
6913 Args.addOptInFlag(CmdArgs, options::OPT_fgpu_allow_device_init, in ConstructJob()
6914 options::OPT_fno_gpu_allow_device_init); in ConstructJob()
6915 Args.AddLastArg(CmdArgs, options::OPT_hipstdpar); in ConstructJob()
6916 Args.AddLastArg(CmdArgs, options::OPT_hipstdpar_interpose_alloc); in ConstructJob()
6917 Args.addOptInFlag(CmdArgs, options::OPT_fhip_kernel_arg_name, in ConstructJob()
6918 options::OPT_fno_hip_kernel_arg_name); in ConstructJob()
6924 Args.addOptInFlag(CmdArgs, options::OPT_fgpu_defer_diag, in ConstructJob()
6925 options::OPT_fno_gpu_defer_diag); in ConstructJob()
6926 if (Args.hasFlag(options::OPT_fgpu_exclude_wrong_side_overloads, in ConstructJob()
6927 options::OPT_fno_gpu_exclude_wrong_side_overloads, in ConstructJob()
6935 if (Args.hasArg(options::OPT_nogpulib)) in ConstructJob()
6938 if (Arg *A = Args.getLastArg(options::OPT_fcf_protection_EQ)) { in ConstructJob()
6943 if (Arg *A = Args.getLastArg(options::OPT_mfunction_return_EQ)) in ConstructJob()
6947 Args.AddLastArg(CmdArgs, options::OPT_mindirect_branch_cs_prefix); in ConstructJob()
6955 options::OPT_fprofile_generate, options::OPT_fprofile_generate_EQ, in ConstructJob()
6956 options::OPT_fcs_profile_generate, in ConstructJob()
6957 options::OPT_fcs_profile_generate_EQ, options::OPT_fprofile_use, in ConstructJob()
6958 options::OPT_fprofile_use_EQ); in ConstructJob()
6969 Args.AddLastArg(CmdArgs, options::OPT_fprofile_remapping_file_EQ); in ConstructJob()
6971 if (Args.hasFlag(options::OPT_fpseudo_probe_for_profiling, in ConstructJob()
6972 options::OPT_fno_pseudo_probe_for_profiling, false)) { in ConstructJob()
6976 if (Args.hasFlag(options::OPT_funique_internal_linkage_names, in ConstructJob()
6977 options::OPT_fno_unique_internal_linkage_names, true)) in ConstructJob()
6983 Args.addOptOutFlag(CmdArgs, options::OPT_fassume_sane_operator_new, in ConstructJob()
6984 options::OPT_fno_assume_sane_operator_new); in ConstructJob()
6986 if (Args.hasFlag(options::OPT_fapinotes, options::OPT_fno_apinotes, false)) in ConstructJob()
6988 if (Args.hasFlag(options::OPT_fapinotes_modules, in ConstructJob()
6989 options::OPT_fno_apinotes_modules, false)) in ConstructJob()
6991 Args.AddLastArg(CmdArgs, options::OPT_fapinotes_swift_version); in ConstructJob()
6994 if (Args.hasFlag(options::OPT_fblocks, options::OPT_fno_blocks, in ConstructJob()
6996 (Args.hasArg(options::OPT_fgnu_runtime) && in ConstructJob()
6997 Args.hasArg(options::OPT_fobjc_nonfragile_abi) && in ConstructJob()
6998 !Args.hasArg(options::OPT_fno_blocks))) { in ConstructJob()
7001 if (!Args.hasArg(options::OPT_fgnu_runtime) && !TC.hasBlocksRuntime()) in ConstructJob()
7009 if (Args.hasFlag(options::OPT_fcoro_aligned_allocation, in ConstructJob()
7010 options::OPT_fno_coro_aligned_allocation, false) && in ConstructJob()
7014 Args.AddLastArg(CmdArgs, options::OPT_fdouble_square_bracket_attributes, in ConstructJob()
7015 options::OPT_fno_double_square_bracket_attributes); in ConstructJob()
7017 Args.addOptOutFlag(CmdArgs, options::OPT_faccess_control, in ConstructJob()
7018 options::OPT_fno_access_control); in ConstructJob()
7019 Args.addOptOutFlag(CmdArgs, options::OPT_felide_constructors, in ConstructJob()
7020 options::OPT_fno_elide_constructors); in ConstructJob()
7029 if (Args.hasFlag(options::OPT_fshort_enums, options::OPT_fno_short_enums, in ConstructJob()
7037 options::OPT_fuse_cxa_atexit, options::OPT_fno_use_cxa_atexit, in ConstructJob()
7044 if (Args.hasFlag(options::OPT_fregister_global_dtors_with_atexit, in ConstructJob()
7045 options::OPT_fno_register_global_dtors_with_atexit, in ConstructJob()
7049 Args.addOptInFlag(CmdArgs, options::OPT_fuse_line_directives, in ConstructJob()
7050 options::OPT_fno_use_line_directives); in ConstructJob()
7053 if (Args.hasFlag(options::OPT_fminimize_whitespace, in ConstructJob()
7054 options::OPT_fno_minimize_whitespace, false)) { in ConstructJob()
7063 if (Args.hasFlag(options::OPT_fkeep_system_includes, in ConstructJob()
7064 options::OPT_fno_keep_system_includes, false)) { in ConstructJob()
7073 if (Args.hasFlag(options::OPT_fms_extensions, options::OPT_fno_ms_extensions, in ConstructJob()
7079 options::OPT_fms_compatibility, options::OPT_fno_ms_compatibility, in ConstructJob()
7080 (IsWindowsMSVC && Args.hasFlag(options::OPT_fms_extensions, in ConstructJob()
7081 options::OPT_fno_ms_extensions, true))); in ConstructJob()
7085 Args.hasArg(options::OPT_fms_define_stdc)) in ConstructJob()
7090 Args.hasArg(options::OPT_fms_runtime_lib_EQ)) in ConstructJob()
7095 if (Arg *A = Args.getLastArg(options::OPT_fgnuc_version_EQ)) { in ConstructJob()
7124 if (const Arg *StdArg = Args.getLastArg(options::OPT__SLASH_std)) { in ConstructJob()
7138 if (const Arg *StdArg = Args.getLastArg(options::OPT__SLASH_std)) { in ConstructJob()
7162 Args.addOptInFlag(CmdArgs, options::OPT_fborland_extensions, in ConstructJob()
7163 options::OPT_fno_borland_extensions); in ConstructJob()
7166 if (Args.hasFlag(options::OPT_fdeclspec, options::OPT_fno_declspec, in ConstructJob()
7169 else if (Args.hasArg(options::OPT_fno_declspec)) in ConstructJob()
7174 if (!Args.hasFlag(options::OPT_fthreadsafe_statics, in ConstructJob()
7175 options::OPT_fno_threadsafe_statics, in ConstructJob()
7181 if (!Args.hasFlag(options::OPT_fassumptions, options::OPT_fno_assumptions, in ConstructJob()
7187 Args.AddLastArg(CmdArgs, options::OPT_fgnu_keywords, in ConstructJob()
7188 options::OPT_fno_gnu_keywords); in ConstructJob()
7190 Args.addOptInFlag(CmdArgs, options::OPT_fgnu89_inline, in ConstructJob()
7191 options::OPT_fno_gnu89_inline); in ConstructJob()
7193 const Arg *InlineArg = Args.getLastArg(options::OPT_finline_functions, in ConstructJob()
7194 options::OPT_finline_hint_functions, in ConstructJob()
7195 options::OPT_fno_inline_functions); in ConstructJob()
7196 if (Arg *A = Args.getLastArg(options::OPT_finline, options::OPT_fno_inline)) { in ConstructJob()
7197 if (A->getOption().matches(options::OPT_fno_inline)) in ConstructJob()
7203 Args.AddLastArg(CmdArgs, options::OPT_finline_max_stacksize_EQ); in ConstructJob()
7229 if (Args.hasFlag(options::OPT_fdelayed_template_parsing, in ConstructJob()
7230 options::OPT_fno_delayed_template_parsing, in ConstructJob()
7238 if (Args.hasFlag(options::OPT_fpch_validate_input_files_content, in ConstructJob()
7239 options::OPT_fno_pch_validate_input_files_content, false)) in ConstructJob()
7241 if (Args.hasFlag(options::OPT_fpch_instantiate_templates, in ConstructJob()
7242 options::OPT_fno_pch_instantiate_templates, false)) in ConstructJob()
7244 if (Args.hasFlag(options::OPT_fpch_codegen, options::OPT_fno_pch_codegen, in ConstructJob()
7247 if (Args.hasFlag(options::OPT_fpch_debuginfo, options::OPT_fno_pch_debuginfo, in ConstructJob()
7256 Args.hasFlag(options::OPT_fobjc_encode_cxx_class_template_spec, in ConstructJob()
7257 options::OPT_fno_objc_encode_cxx_class_template_spec, in ConstructJob()
7261 if (Args.hasFlag(options::OPT_fapplication_extension, in ConstructJob()
7262 options::OPT_fno_application_extension, false)) in ConstructJob()
7272 options::OPT_fsjlj_exceptions, options::OPT_fseh_exceptions, in ConstructJob()
7273 options::OPT_fdwarf_exceptions, options::OPT_fwasm_exceptions); in ConstructJob()
7276 if (Opt.matches(options::OPT_fsjlj_exceptions)) in ConstructJob()
7278 if (Opt.matches(options::OPT_fseh_exceptions)) in ConstructJob()
7280 if (Opt.matches(options::OPT_fdwarf_exceptions)) in ConstructJob()
7282 if (Opt.matches(options::OPT_fwasm_exceptions)) in ConstructJob()
7301 Args.addOptOutFlag(CmdArgs, options::OPT_fassume_sane_operator_new, in ConstructJob()
7302 options::OPT_fno_assume_sane_operator_new); in ConstructJob()
7305 Args.addOptOutFlag(CmdArgs, options::OPT_fassume_unique_vtables, in ConstructJob()
7306 options::OPT_fno_assume_unique_vtables); in ConstructJob()
7310 Args.getLastArg(options::OPT_frelaxed_template_template_args, in ConstructJob()
7311 options::OPT_fno_relaxed_template_template_args)) { in ConstructJob()
7313 options::OPT_fno_relaxed_template_template_args)) { in ConstructJob()
7324 Args.addLastArg(CmdArgs, options::OPT_fsized_deallocation, in ConstructJob()
7325 options::OPT_fno_sized_deallocation); in ConstructJob()
7329 if (Arg *A = Args.getLastArg(options::OPT_faligned_allocation, in ConstructJob()
7330 options::OPT_fno_aligned_allocation, in ConstructJob()
7331 options::OPT_faligned_new_EQ)) { in ConstructJob()
7332 if (A->getOption().matches(options::OPT_fno_aligned_allocation)) in ConstructJob()
7340 if (Arg *A = Args.getLastArg(options::OPT_fnew_alignment_EQ, in ConstructJob()
7341 options::OPT_faligned_new_EQ)) in ConstructJob()
7347 if (!Args.hasFlag(options::OPT_fconstant_cfstrings, in ConstructJob()
7348 options::OPT_fno_constant_cfstrings, true) || in ConstructJob()
7349 !Args.hasFlag(options::OPT_mconstant_cfstrings, in ConstructJob()
7350 options::OPT_mno_constant_cfstrings, true)) in ConstructJob()
7353 Args.addOptInFlag(CmdArgs, options::OPT_fpascal_strings, in ConstructJob()
7354 options::OPT_fno_pascal_strings); in ConstructJob()
7358 if (Arg *A = Args.getLastArg(options::OPT_fpack_struct_EQ)) { in ConstructJob()
7362 } else if (Args.hasFlag(options::OPT_fpack_struct, in ConstructJob()
7363 options::OPT_fno_pack_struct, false)) { in ConstructJob()
7368 bool SkipMaxTypeAlign = Args.hasArg(options::OPT_fno_max_type_align); in ConstructJob()
7369 if (Arg *A = Args.getLastArg(options::OPT_fmax_type_align_EQ)) { in ConstructJob()
7382 if (!Args.hasFlag(options::OPT_Qy, options::OPT_Qn, true)) in ConstructJob()
7386 Args.addOptInFlag(CmdArgs, options::OPT_fcommon, options::OPT_fno_common); in ConstructJob()
7390 if (!Args.hasFlag(options::OPT_fsigned_bitfields, in ConstructJob()
7391 options::OPT_funsigned_bitfields, true)) in ConstructJob()
7393 << Args.getLastArg(options::OPT_funsigned_bitfields)->getAsString(Args); in ConstructJob()
7396 if (!Args.hasFlag(options::OPT_ffor_scope, options::OPT_fno_for_scope, true)) in ConstructJob()
7398 << Args.getLastArg(options::OPT_fno_for_scope)->getAsString(Args); in ConstructJob()
7401 if (Arg *inputCharset = Args.getLastArg(options::OPT_finput_charset_EQ)) { in ConstructJob()
7409 if (Arg *execCharset = Args.getLastArg(options::OPT_fexec_charset_EQ)) { in ConstructJob()
7418 Args.addOptInFlag(CmdArgs, options::OPT_fasm_blocks, in ConstructJob()
7419 options::OPT_fno_asm_blocks); in ConstructJob()
7421 Args.addOptOutFlag(CmdArgs, options::OPT_fgnu_inline_asm, in ConstructJob()
7422 options::OPT_fno_gnu_inline_asm); in ConstructJob()
7429 EnableVec ? options::OPT_O_Group : options::OPT_fvectorize; in ConstructJob()
7430 if (Args.hasFlag(options::OPT_fvectorize, VectorizeAliasOption, in ConstructJob()
7431 options::OPT_fno_vectorize, EnableVec)) in ConstructJob()
7437 EnableSLPVec ? options::OPT_O_Group : options::OPT_fslp_vectorize; in ConstructJob()
7438 if (Args.hasFlag(options::OPT_fslp_vectorize, SLPVectAliasOption, in ConstructJob()
7439 options::OPT_fno_slp_vectorize, EnableSLPVec)) in ConstructJob()
7444 Args.AddLastArg(CmdArgs, options::OPT_fshow_overloads_EQ); in ConstructJob()
7446 options::OPT_fsanitize_undefined_strip_path_components_EQ); in ConstructJob()
7450 if (Arg *A = Args.getLastArg(options::OPT_fdollars_in_identifiers, in ConstructJob()
7451 options::OPT_fno_dollars_in_identifiers)) { in ConstructJob()
7452 if (A->getOption().matches(options::OPT_fdollars_in_identifiers)) in ConstructJob()
7458 Args.addOptInFlag(CmdArgs, options::OPT_fapple_pragma_pack, in ConstructJob()
7459 options::OPT_fno_apple_pragma_pack); in ConstructJob()
7465 bool RewriteImports = Args.hasFlag(options::OPT_frewrite_imports, in ConstructJob()
7466 options::OPT_fno_rewrite_imports, false); in ConstructJob()
7470 Args.addOptInFlag(CmdArgs, options::OPT_fdirectives_only, in ConstructJob()
7471 options::OPT_fno_directives_only); in ConstructJob()
7477 if (Args.hasFlag(options::OPT_frewrite_includes, in ConstructJob()
7478 options::OPT_fno_rewrite_includes, false) || in ConstructJob()
7483 if (Arg *A = Args.getLastArg(options::OPT_traditional, in ConstructJob()
7484 options::OPT_traditional_cpp)) { in ConstructJob()
7491 Args.AddLastArg(CmdArgs, options::OPT_dM); in ConstructJob()
7492 Args.AddLastArg(CmdArgs, options::OPT_dD); in ConstructJob()
7493 Args.AddLastArg(CmdArgs, options::OPT_dI); in ConstructJob()
7495 Args.AddLastArg(CmdArgs, options::OPT_fmax_tokens_EQ); in ConstructJob()
7498 if (Arg *A = Args.getLastArg(options::OPT__serialize_diags)) { in ConstructJob()
7503 if (Args.hasArg(options::OPT_fretain_comments_from_system_headers)) in ConstructJob()
7507 Args.AddAllArgs(CmdArgs, options::OPT_fcomment_block_commands); in ConstructJob()
7509 Args.AddAllArgs(CmdArgs, options::OPT_fparse_all_comments); in ConstructJob()
7512 for (const Arg *A : Args.filtered(options::OPT_fplugin_EQ)) { in ConstructJob()
7526 for (const Arg *A : Args.filtered(options::OPT_fplugin_arg)) { in ConstructJob()
7548 for (const Arg *A : Args.filtered(options::OPT_fpass_plugin_EQ)) { in ConstructJob()
7555 for (const Arg *A : Args.filtered(options::OPT_vfsoverlay)) { in ConstructJob()
7561 Args.addOptInFlag(CmdArgs, options::OPT_fsafe_buffer_usage_suggestions, in ConstructJob()
7562 options::OPT_fno_safe_buffer_usage_suggestions); in ConstructJob()
7564 Args.addOptInFlag(CmdArgs, options::OPT_fexperimental_late_parse_attributes, in ConstructJob()
7565 options::OPT_fno_experimental_late_parse_attributes); in ConstructJob()
7577 for (auto Arg : Args.filtered(options::OPT_Xclang)) { in ConstructJob()
7588 for (const Arg *A : Args.filtered(options::OPT_mllvm)) { in ConstructJob()
7615 Args.AddAllArgs(CmdArgs, options::OPT_undef); in ConstructJob()
7625 Args.hasFlag(options::OPT_grecord_command_line, in ConstructJob()
7626 options::OPT_gno_record_command_line, false); in ConstructJob()
7628 Args.hasFlag(options::OPT_frecord_command_line, in ConstructJob()
7629 options::OPT_fno_record_command_line, false); in ConstructJob()
7633 << Args.getLastArg(options::OPT_frecord_command_line)->getAsString(Args) in ConstructJob()
7678 if (Args.hasFlag(options::OPT_fcuda_short_ptr, in ConstructJob()
7679 options::OPT_fno_cuda_short_ptr, false)) in ConstructJob()
7697 options::OPT_ffast_math, options::OPT_fno_fast_math, false); in ConstructJob()
7698 if (Args.hasFlag(options::OPT_fgpu_approx_transcendentals, in ConstructJob()
7699 options::OPT_fno_gpu_approx_transcendentals, in ConstructJob()
7703 Args.claimAllArgs(options::OPT_fgpu_approx_transcendentals, in ConstructJob()
7704 options::OPT_fno_gpu_approx_transcendentals); in ConstructJob()
7709 Args.AddLastArg(CmdArgs, options::OPT_fgpu_default_stream_EQ); in ConstructJob()
7712 Args.AddLastArg(CmdArgs, options::OPT_foffload_uniform_block, in ConstructJob()
7713 options::OPT_fno_offload_uniform_block); in ConstructJob()
7715 Args.AddLastArg(CmdArgs, options::OPT_foffload_implicit_host_device_templates, in ConstructJob()
7716 options::OPT_fno_offload_implicit_host_device_templates); in ConstructJob()
7720 Args.getLastArgValue(options::OPT_fgpu_inline_threshold_EQ); in ConstructJob()
7730 options::OPT_fhip_fp32_correctly_rounded_divide_sqrt, in ConstructJob()
7731 options::OPT_fno_hip_fp32_correctly_rounded_divide_sqrt); in ConstructJob()
7749 Args.addOptInFlag(CmdArgs, options::OPT_munsafe_fp_atomics, in ConstructJob()
7750 options::OPT_mno_unsafe_fp_atomics); in ConstructJob()
7751 Args.addOptOutFlag(CmdArgs, options::OPT_mamdgpu_ieee, in ConstructJob()
7752 options::OPT_mno_amdgpu_ieee); in ConstructJob()
7768 Args.hasFlag(options::OPT_fvirtual_function_elimination, in ConstructJob()
7769 options::OPT_fno_virtual_function_elimination, false); in ConstructJob()
7783 options::OPT_fwhole_program_vtables, in ConstructJob()
7784 options::OPT_fno_whole_program_vtables, VirtualFunctionElimination); in ConstructJob()
7817 Args.hasFlag(options::OPT_fsplit_lto_unit, in ConstructJob()
7818 options::OPT_fno_split_lto_unit, DefaultsSplitLTOUnit); in ConstructJob()
7825 if (Arg *A = Args.getLastArg(options::OPT_ffat_lto_objects, in ConstructJob()
7826 options::OPT_fno_fat_lto_objects)) { in ConstructJob()
7827 if (IsUsingLTO && A->getOption().matches(options::OPT_ffat_lto_objects)) { in ConstructJob()
7841 if (Arg *A = Args.getLastArg(options::OPT_fglobal_isel, in ConstructJob()
7842 options::OPT_fno_global_isel)) { in ConstructJob()
7844 if (A->getOption().matches(options::OPT_fglobal_isel)) { in ConstructJob()
7853 Arg *A = Args.getLastArg(options::OPT_O_Group); in ConstructJob()
7855 if (!A || A->getOption().matches(options::OPT_O0)) in ConstructJob()
7872 if (Args.hasArg(options::OPT_forder_file_instrumentation)) { in ConstructJob()
7883 if (Arg *A = Args.getLastArg(options::OPT_fforce_enable_int128, in ConstructJob()
7884 options::OPT_fno_force_enable_int128)) { in ConstructJob()
7885 if (A->getOption().matches(options::OPT_fforce_enable_int128)) in ConstructJob()
7889 Args.addOptInFlag(CmdArgs, options::OPT_fkeep_static_consts, in ConstructJob()
7890 options::OPT_fno_keep_static_consts); in ConstructJob()
7891 Args.addOptInFlag(CmdArgs, options::OPT_fkeep_persistent_storage_variables, in ConstructJob()
7892 options::OPT_fno_keep_persistent_storage_variables); in ConstructJob()
7893 Args.addOptInFlag(CmdArgs, options::OPT_fcomplete_member_pointers, in ConstructJob()
7894 options::OPT_fno_complete_member_pointers); in ConstructJob()
7895 Args.addOptOutFlag(CmdArgs, options::OPT_fcxx_static_destructors, in ConstructJob()
7896 options::OPT_fno_cxx_static_destructors); in ConstructJob()
7903 (Args.hasArg(options::OPT_mno_fmv) || in ConstructJob()
7911 if (Args.hasFlag(options::OPT_faddrsig, options::OPT_fno_addrsig, in ConstructJob()
7925 if (Arg *A = Args.getLastArg(options::OPT_fsymbol_partition_EQ)) { in ConstructJob()
7980 Args.hasFlag(options::OPT__SLASH_showFilenames, in ConstructJob()
7981 options::OPT__SLASH_showFilenames_, false)) { in ConstructJob()
7985 if (Arg *A = Args.getLastArg(options::OPT_pg)) in ConstructJob()
7987 !Args.hasArg(options::OPT_mfentry)) in ConstructJob()
7995 Args.ClaimAllArgs(options::OPT_fpch_preprocess); in ConstructJob()
7999 Args.ClaimAllArgs(options::OPT_clang_ignored_f_Group); in ConstructJob()
8000 Args.ClaimAllArgs(options::OPT_clang_ignored_m_Group); in ConstructJob()
8003 Args.ClaimAllArgs(options::OPT_emit_llvm); in ConstructJob()
8023 args.getLastArg(options::OPT_fnext_runtime, options::OPT_fgnu_runtime, in AddObjCRuntimeArgs()
8024 options::OPT_fobjc_runtime_EQ); in AddObjCRuntimeArgs()
8029 runtimeArg->getOption().matches(options::OPT_fobjc_runtime_EQ)) { in AddObjCRuntimeArgs()
8056 if (Arg *abiArg = args.getLastArg(options::OPT_fobjc_abi_version_EQ)) { in AddObjCRuntimeArgs()
8072 if (args.hasFlag(options::OPT_fobjc_nonfragile_abi, in AddObjCRuntimeArgs()
8073 options::OPT_fno_objc_nonfragile_abi, in AddObjCRuntimeArgs()
8083 args.getLastArg(options::OPT_fobjc_nonfragile_abi_version_EQ)) { in AddObjCRuntimeArgs()
8121 } else if (runtimeArg->getOption().matches(options::OPT_fnext_runtime)) { in AddObjCRuntimeArgs()
8133 assert(runtimeArg->getOption().matches(options::OPT_fgnu_runtime)); in AddObjCRuntimeArgs()
8176 Args.getAllArgValues(options::OPT__SLASH_EH); in parseClangCLEHFlags()
8210 Args.hasFlag(options::OPT__SLASH_GX, options::OPT__SLASH_GX_, in parseClangCLEHFlags()
8216 if (Args.hasArg(options::OPT__SLASH_kernel)) { in parseClangCLEHFlags()
8232 Args.getLastArg(options::OPT__SLASH_showIncludes, in AddClangCLArgs()
8233 options::OPT__SLASH_showIncludes_user)) { in AddClangCLArgs()
8235 if (ShowIncludes->getOption().matches(options::OPT__SLASH_showIncludes)) in AddClangCLArgs()
8240 if (Args.hasFlag(options::OPT__SLASH_GR_, options::OPT__SLASH_GR, in AddClangCLArgs()
8246 if (!isNVPTX && Args.hasFlag(options::OPT__SLASH_GS, options::OPT__SLASH_GS_, in AddClangCLArgs()
8267 if (Args.hasArg(options::OPT__SLASH_EP)) { in AddClangCLArgs()
8272 if (Args.hasFlag(options::OPT__SLASH_Zc_dllexportInlines_, in AddClangCLArgs()
8273 options::OPT__SLASH_Zc_dllexportInlines, in AddClangCLArgs()
8278 if (Args.hasFlag(options::OPT__SLASH_Zc_wchar_t_, in AddClangCLArgs()
8279 options::OPT__SLASH_Zc_wchar_t, false)) { in AddClangCLArgs()
8283 if (Args.hasArg(options::OPT__SLASH_kernel)) { in AddClangCLArgs()
8286 Args.getAllArgValues(options::OPT__SLASH_arch); in AddClangCLArgs()
8299 if (Args.hasFlag(options::OPT__SLASH_GR, options::OPT__SLASH_GR_, false)) in AddClangCLArgs()
8304 Arg *MostGeneralArg = Args.getLastArg(options::OPT__SLASH_vmg); in AddClangCLArgs()
8305 Arg *BestCaseArg = Args.getLastArg(options::OPT__SLASH_vmb); in AddClangCLArgs()
8311 Arg *SingleArg = Args.getLastArg(options::OPT__SLASH_vms); in AddClangCLArgs()
8312 Arg *MultipleArg = Args.getLastArg(options::OPT__SLASH_vmm); in AddClangCLArgs()
8313 Arg *VirtualArg = Args.getLastArg(options::OPT__SLASH_vmv); in AddClangCLArgs()
8330 if (Args.hasArg(options::OPT_regcall4)) in AddClangCLArgs()
8335 Args.getLastArg(options::OPT__SLASH_Gd, options::OPT__SLASH_Gr, in AddClangCLArgs()
8336 options::OPT__SLASH_Gz, options::OPT__SLASH_Gv, in AddClangCLArgs()
8337 options::OPT__SLASH_Gregcall)) { in AddClangCLArgs()
8343 case options::OPT__SLASH_Gd: in AddClangCLArgs()
8346 case options::OPT__SLASH_Gr: in AddClangCLArgs()
8350 case options::OPT__SLASH_Gz: in AddClangCLArgs()
8354 case options::OPT__SLASH_Gv: in AddClangCLArgs()
8358 case options::OPT__SLASH_Gregcall: in AddClangCLArgs()
8369 if (Args.hasArg(options::OPT__SLASH_Gregcall4)) in AddClangCLArgs()
8372 Args.AddLastArg(CmdArgs, options::OPT_vtordisp_mode_EQ); in AddClangCLArgs()
8374 if (!Args.hasArg(options::OPT_fdiagnostics_format_EQ)) { in AddClangCLArgs()
8379 if (Args.hasArg(options::OPT__SLASH_kernel)) in AddClangCLArgs()
8382 for (const Arg *A : Args.filtered(options::OPT__SLASH_guard)) { in AddClangCLArgs()
8424 if (Arg *OutputOpt = Args.getLastArg(options::OPT_o)) { in getDependencyFileName()
8451 if (Arg *A = Args.getLastArg(options::OPT_masm_EQ)) { in AddX86TargetArgs()
8479 if (Args.hasFlag(options::OPT_mdefault_build_attributes, in AddRISCVTargetArgs()
8480 options::OPT_mno_default_build_attributes, true)) { in AddRISCVTargetArgs()
8500 Args.ClaimAllArgs(options::OPT_w); in ConstructJob()
8502 Args.ClaimAllArgs(options::OPT_emit_llvm); in ConstructJob()
8538 (void)Args.hasArg(options::OPT_force__cpusubtype__ALL); in ConstructJob()
8541 Args.AddAllArgs(CmdArgs, options::OPT_I_Group); in ConstructJob()
8544 Args.AddAllArgs(CmdArgs, options::OPT_embed_dir_EQ); in ConstructJob()
8559 Args.ClaimAllArgs(options::OPT_g_Group); in ConstructJob()
8560 if (Arg *A = Args.getLastArg(options::OPT_g_Group)) in ConstructJob()
8561 WantDebug = !A->getOption().matches(options::OPT_g0) && in ConstructJob()
8562 !A->getOption().matches(options::OPT_ggdb0); in ConstructJob()
8570 if (const Arg *A = Args.getLastArg(options::OPT_gcodeview)) in ConstructJob()
8615 Args.AddAllArgs(CmdArgs, options::OPT_I); in ConstructJob()
8682 if (Args.hasFlag(options::OPT_mdefault_build_attributes, in ConstructJob()
8683 options::OPT_mno_default_build_attributes, true)) { in ConstructJob()
8692 if (Args.hasArg(options::OPT_mmark_bti_property)) { in ConstructJob()
8709 if (Args.hasFlag(options::OPT_mdefault_build_attributes, in ConstructJob()
8710 options::OPT_mno_default_build_attributes, true)) { in ConstructJob()
8722 Args.ClaimAllArgs(options::OPT_W_Group); in ConstructJob()
8727 Args.AddAllArgs(CmdArgs, options::OPT_mllvm); in ConstructJob()
8965 if (TCArgs.hasArg(options::OPT_v)) in ConstructJobMultipleOutputs()
8997 : TCArgs.getLastArgValue(options::OPT_march_EQ); in ConstructJob()
9063 if (const Arg *A = Args.getLastArg(options::OPT_O_Group)) { in ConstructJob()
9065 if (A->getOption().matches(options::OPT_O4) || in ConstructJob()
9066 A->getOption().matches(options::OPT_Ofast)) in ConstructJob()
9068 else if (A->getOption().matches(options::OPT_O)) { in ConstructJob()
9074 } else if (A->getOption().matches(options::OPT_O0)) in ConstructJob()
9082 if (Args.hasArg(options::OPT_v)) in ConstructJob()
9085 if (const Arg *A = Args.getLastArg(options::OPT_g_Group)) { in ConstructJob()
9086 if (!A->getOption().matches(options::OPT_g0)) in ConstructJob()
9092 if (const Arg *A = Args.getLastArg(options::OPT_mcode_object_version_EQ)) { in ConstructJob()
9098 for (const auto &A : Args.getAllArgValues(options::OPT_Xcuda_ptxas)) in ConstructJob()
9102 if (const Arg *A = Args.getLastArg(options::OPT_Rpass_EQ)) in ConstructJob()
9105 if (const Arg *A = Args.getLastArg(options::OPT_Rpass_missed_EQ)) in ConstructJob()
9108 if (const Arg *A = Args.getLastArg(options::OPT_Rpass_analysis_EQ)) in ConstructJob()
9111 if (Args.getLastArg(options::OPT_save_temps_EQ)) in ConstructJob()
9119 for (Arg *A : Args.filtered(options::OPT_Xoffload_linker)) { in ConstructJob()
9130 Args.ClaimAllArgs(options::OPT_Xoffload_linker); in ConstructJob()
9133 if (Args.hasFlag(options::OPT_fopenmp_target_jit, in ConstructJob()
9134 options::OPT_fno_openmp_target_jit, false)) in ConstructJob()
9138 for (Arg *A : Args.filtered(options::OPT_mllvm)) { in ConstructJob()