Lines Matching defs:Args

76                                            const ArgList &Args) {
88 for (Arg *A : Args.filtered(options::OPT_mios_version_min_EQ))
91 for (Arg *A : Args.filtered(options::OPT_mwatchos_version_min_EQ))
94 for (Arg *A : Args.filtered(options::OPT_mtvos_version_min_EQ))
105 const ArgList &Args,
126 if (Args.hasArg(options::OPT_fno_integrated_as)) {
134 if (Args.hasArg(options::OPT_gstabs))
136 else if (Args.hasArg(options::OPT_g_Group))
141 AddMachOArch(Args, CmdArgs);
144 if (T.isX86() || Args.hasArg(options::OPT_force__cpusubtype__ALL))
148 (((Args.hasArg(options::OPT_mkernel) ||
149 Args.hasArg(options::OPT_fapple_kext)) &&
151 Args.hasArg(options::OPT_static)))
154 Args.AddAllArgValues(CmdArgs, options::OPT_Wa_COMMA, options::OPT_Xassembler);
165 const char *Exec = Args.MakeArgString(getToolChain().GetProgramPath("as"));
172 void darwin::MachOTool::AddMachOArch(const ArgList &Args,
174 StringRef ArchName = getMachOToolChain().getMachOArchName(Args);
178 CmdArgs.push_back(Args.MakeArgString(ArchName));
203 static bool shouldLinkerNotDedup(bool IsLinkerOnlyAction, const ArgList &Args) {
204 if (Arg *A = Args.getLastArg(options::OPT_O_Group)) {
219 void darwin::Linker::AddLinkArgs(Compilation &C, const ArgList &Args,
230 !Args.hasArg(options::OPT_Z_Xlinker__no_demangle))
233 if (Args.hasArg(options::OPT_rdynamic) &&
239 if (Args.hasFlag(options::OPT_fapplication_extension,
287 shouldLinkerNotDedup(C.getJobs().empty(), Args))
291 Args.AddAllArgs(CmdArgs, options::OPT_static);
292 if (!Args.hasArg(options::OPT_static))
294 if (Args.hasArg(options::OPT_fgnu_runtime)) {
299 if (!Args.hasArg(options::OPT_dynamiclib)) {
300 AddMachOArch(Args, CmdArgs);
302 Args.AddLastArg(CmdArgs, options::OPT_force__cpusubtype__ALL);
304 Args.AddLastArg(CmdArgs, options::OPT_bundle);
305 Args.AddAllArgs(CmdArgs, options::OPT_bundle__loader);
306 Args.AddAllArgs(CmdArgs, options::OPT_client__name);
309 if ((A = Args.getLastArg(options::OPT_compatibility__version)) ||
310 (A = Args.getLastArg(options::OPT_current__version)) ||
311 (A = Args.getLastArg(options::OPT_install__name)))
312 D.Diag(diag::err_drv_argument_only_allowed_with) << A->getAsString(Args)
315 Args.AddLastArg(CmdArgs, options::OPT_force__flat__namespace);
316 Args.AddLastArg(CmdArgs, options::OPT_keep__private__externs);
317 Args.AddLastArg(CmdArgs, options::OPT_private__bundle);
322 if ((A = Args.getLastArg(options::OPT_bundle)) ||
323 (A = Args.getLastArg(options::OPT_bundle__loader)) ||
324 (A = Args.getLastArg(options::OPT_client__name)) ||
325 (A = Args.getLastArg(options::OPT_force__flat__namespace)) ||
326 (A = Args.getLastArg(options::OPT_keep__private__externs)) ||
327 (A = Args.getLastArg(options::OPT_private__bundle)))
328 D.Diag(diag::err_drv_argument_not_allowed_with) << A->getAsString(Args)
331 Args.AddAllArgsTranslated(CmdArgs, options::OPT_compatibility__version,
333 Args.AddAllArgsTranslated(CmdArgs, options::OPT_current__version,
336 AddMachOArch(Args, CmdArgs);
338 Args.AddAllArgsTranslated(CmdArgs, options::OPT_install__name,
342 Args.AddLastArg(CmdArgs, options::OPT_all__load);
343 Args.AddAllArgs(CmdArgs, options::OPT_allowable__client);
344 Args.AddLastArg(CmdArgs, options::OPT_bind__at__load);
346 Args.AddLastArg(CmdArgs, options::OPT_arch__errors__fatal);
347 Args.AddLastArg(CmdArgs, options::OPT_dead__strip);
348 Args.AddLastArg(CmdArgs, options::OPT_no__dead__strip__inits__and__terms);
349 Args.AddAllArgs(CmdArgs, options::OPT_dylib__file);
350 Args.AddLastArg(CmdArgs, options::OPT_dynamic);
351 Args.AddAllArgs(CmdArgs, options::OPT_exported__symbols__list);
352 Args.AddLastArg(CmdArgs, options::OPT_flat__namespace);
353 Args.AddAllArgs(CmdArgs, options::OPT_force__load);
354 Args.AddAllArgs(CmdArgs, options::OPT_headerpad__max__install__names);
355 Args.AddAllArgs(CmdArgs, options::OPT_image__base);
356 Args.AddAllArgs(CmdArgs, options::OPT_init);
360 MachOTC.addPlatformVersionArgs(Args, CmdArgs);
362 MachOTC.addMinVersionArgs(Args, CmdArgs);
364 Args.AddLastArg(CmdArgs, options::OPT_nomultidefs);
365 Args.AddLastArg(CmdArgs, options::OPT_multi__module);
366 Args.AddLastArg(CmdArgs, options::OPT_single__module);
367 Args.AddAllArgs(CmdArgs, options::OPT_multiply__defined);
368 Args.AddAllArgs(CmdArgs, options::OPT_multiply__defined__unused);
371 Args.getLastArg(options::OPT_fpie, options::OPT_fPIE,
396 if (Arg *A = Args.getLastArg(options::OPT_fglobal_isel,
407 if (Args.hasArg(options::OPT_mkernel) ||
408 Args.hasArg(options::OPT_fapple_kext) ||
409 Args.hasArg(options::OPT_ffreestanding)) {
414 Args.AddLastArg(CmdArgs, options::OPT_prebind);
415 Args.AddLastArg(CmdArgs, options::OPT_noprebind);
416 Args.AddLastArg(CmdArgs, options::OPT_nofixprebinding);
417 Args.AddLastArg(CmdArgs, options::OPT_prebind__all__twolevel__modules);
418 Args.AddLastArg(CmdArgs, options::OPT_read__only__relocs);
419 Args.AddAllArgs(CmdArgs, options::OPT_sectcreate);
420 Args.AddAllArgs(CmdArgs, options::OPT_sectorder);
421 Args.AddAllArgs(CmdArgs, options::OPT_seg1addr);
422 Args.AddAllArgs(CmdArgs, options::OPT_segprot);
423 Args.AddAllArgs(CmdArgs, options::OPT_segaddr);
424 Args.AddAllArgs(CmdArgs, options::OPT_segs__read__only__addr);
425 Args.AddAllArgs(CmdArgs, options::OPT_segs__read__write__addr);
426 Args.AddAllArgs(CmdArgs, options::OPT_seg__addr__table);
427 Args.AddAllArgs(CmdArgs, options::OPT_seg__addr__table__filename);
428 Args.AddAllArgs(CmdArgs, options::OPT_sub__library);
429 Args.AddAllArgs(CmdArgs, options::OPT_sub__umbrella);
437 } else if (const Arg *A = Args.getLastArg(options::OPT_isysroot)) {
442 Args.AddLastArg(CmdArgs, options::OPT_twolevel__namespace);
443 Args.AddLastArg(CmdArgs, options::OPT_twolevel__namespace__hints);
444 Args.AddAllArgs(CmdArgs, options::OPT_umbrella);
445 Args.AddAllArgs(CmdArgs, options::OPT_undefined);
446 Args.AddAllArgs(CmdArgs, options::OPT_unexported__symbols__list);
447 Args.AddAllArgs(CmdArgs, options::OPT_weak__reference__mismatches);
448 Args.AddLastArg(CmdArgs, options::OPT_X_Flag);
449 Args.AddAllArgs(CmdArgs, options::OPT_y);
450 Args.AddLastArg(CmdArgs, options::OPT_w);
451 Args.AddAllArgs(CmdArgs, options::OPT_pagezero__size);
452 Args.AddAllArgs(CmdArgs, options::OPT_segs__read__);
453 Args.AddLastArg(CmdArgs, options::OPT_seglinkedit);
454 Args.AddLastArg(CmdArgs, options::OPT_noseglinkedit);
455 Args.AddAllArgs(CmdArgs, options::OPT_sectalign);
456 Args.AddAllArgs(CmdArgs, options::OPT_sectobjectsymbols);
457 Args.AddAllArgs(CmdArgs, options::OPT_segcreate);
458 Args.AddLastArg(CmdArgs, options::OPT_why_load);
459 Args.AddLastArg(CmdArgs, options::OPT_whatsloaded);
460 Args.AddAllArgs(CmdArgs, options::OPT_dylinker__install__name);
461 Args.AddLastArg(CmdArgs, options::OPT_dylinker);
462 Args.AddLastArg(CmdArgs, options::OPT_Mach);
465 if (auto *CSPGOGenerateArg = getLastCSProfileGenerateArg(Args)) {
471 CmdArgs.push_back(Args.MakeArgString(Twine("--cs-profile-path=") + Path));
472 } else if (auto *ProfileUseArg = getLastProfileUseArg(Args)) {
477 CmdArgs.push_back(Args.MakeArgString(Twine("--cs-profile-path=") + Path));
483 static bool isObjCRuntimeLinked(const ArgList &Args) {
484 if (isObjCAutoRefCount(Args)) {
485 Args.ClaimAllArgs(options::OPT_fobjc_link_runtime);
488 return Args.hasArg(options::OPT_fobjc_link_runtime);
491 static bool checkRemarksOptions(const Driver &D, const ArgList &Args,
497 Args.getAllArgValues(options::OPT_arch).size() > 1;
499 Args.getLastArg(options::OPT_foptimization_record_file_EQ);
508 static void renderRemarksOptions(const ArgList &Args, ArgStringList &CmdArgs,
512 if (const Arg *A = Args.getLastArg(options::OPT_fsave_optimization_record_EQ))
519 const Arg *A = Args.getLastArg(options::OPT_foptimization_record_file_EQ);
529 CmdArgs.push_back(Args.MakeArgString(F));
533 Args.getLastArg(options::OPT_foptimization_record_passes_EQ)) {
537 CmdArgs.push_back(Args.MakeArgString(Passes));
543 CmdArgs.push_back(Args.MakeArgString(FormatArg));
546 if (getLastProfileUseArg(Args)) {
551 Args.getLastArg(options::OPT_fdiagnostics_hotness_threshold_EQ)) {
555 CmdArgs.push_back(Args.MakeArgString(Opt));
565 const ArgList &Args,
581 if (Args.hasArg(options::OPT_ccc_arcmt_check,
583 for (const auto &Arg : Args)
586 Args.MakeArgString(getToolChain().GetProgramPath("touch"));
594 VersionTuple Version = getMachOToolChain().getLinkerVersion(Args);
598 Args.MakeArgString(getToolChain().GetLinkerPath(&LinkerIsLLD));
605 AddLinkArgs(C, Args, CmdArgs, Inputs, Version, LinkerIsLLD,
608 if (willEmitRemarks(Args) &&
609 checkRemarksOptions(getToolChain().getDriver(), Args,
611 renderRemarksOptions(Args, CmdArgs, getToolChain().getTriple(), Output, JA);
615 Args.getLastArg(options::OPT_moutline, options::OPT_mno_outline)) {
617 if (getMachOToolChain().getMachOArchName(Args) == "arm64") {
638 getStatsFileName(Args, Output, Inputs[0], getToolChain().getDriver());
641 CmdArgs.push_back(Args.MakeArgString("-lto-stats-file=" + StatsFile.str()));
646 Args.addAllArgs(CmdArgs, {options::OPT_d_Flag, options::OPT_s, options::OPT_t,
652 if (Args.hasArg(options::OPT_ObjC) || Args.hasArg(options::OPT_ObjCXX))
658 if (!Args.hasArg(options::OPT_nostdlib, options::OPT_nostartfiles))
659 getMachOToolChain().addStartObjectFileArgs(Args, CmdArgs);
661 Args.AddAllArgs(CmdArgs, options::OPT_L);
663 AddLinkerInputs(getToolChain(), Inputs, Args, CmdArgs, JA);
684 addFortranRuntimeLibraryPath(getToolChain(), Args, CmdArgs);
685 addFortranRuntimeLibs(getToolChain(), Args, CmdArgs);
688 if (!Args.hasArg(options::OPT_nostdlib, options::OPT_nodefaultlibs))
689 addOpenMPRuntime(C, CmdArgs, getToolChain(), Args);
691 if (isObjCRuntimeLinked(Args) &&
692 !Args.hasArg(options::OPT_nostdlib, options::OPT_nodefaultlibs)) {
694 getMachOToolChain().AddLinkARCArgs(Args, CmdArgs);
708 if (Args.hasArg(options::OPT_fnested_functions))
711 getMachOToolChain().addProfileRTLibs(Args, CmdArgs);
713 StringRef Parallelism = getLTOParallelism(Args, getToolChain().getDriver());
718 CmdArgs.push_back(Args.MakeArgString("-threads=" + Twine(NumThreads)));
721 if (getToolChain().ShouldLinkCXXStdlib(Args))
722 getToolChain().AddCXXStdlibLibArgs(Args, CmdArgs);
725 Args.hasArg(options::OPT_nostdlib, options::OPT_nodefaultlibs);
726 bool ForceLinkBuiltins = Args.hasArg(options::OPT_fapple_link_rtlib);
733 getMachOToolChain().AddLinkRuntimeLib(Args, CmdArgs, "builtins");
736 getMachOToolChain().AddLinkRuntimeLibArgs(Args, CmdArgs,
740 Args.ClaimAllArgs(options::OPT_pthread);
741 Args.ClaimAllArgs(options::OPT_pthreads);
745 if (!Args.hasArg(options::OPT_nostdlib, options::OPT_nostartfiles)) {
749 Args.AddAllArgs(CmdArgs, options::OPT_T_Group);
750 Args.AddAllArgs(CmdArgs, options::OPT_F);
753 for (const Arg *A : Args.filtered(options::OPT_iframework))
754 CmdArgs.push_back(Args.MakeArgString(std::string("-F") + A->getValue()));
756 if (!Args.hasArg(options::OPT_nostdlib, options::OPT_nodefaultlibs)) {
757 if (Arg *A = Args.getLastArg(options::OPT_fveclib)) {
779 if (auto *Sysroot = Args.getLastArg(options::OPT_isysroot)) {
785 CmdArgs.push_back(Args.MakeArgString(Flag + P));
812 const ArgList &Args,
817 Args.ClaimAllArgs(options::OPT_g_Group);
819 Args.ClaimAllArgs(options::OPT_emit_llvm);
822 Args.ClaimAllArgs(options::OPT_w);
824 Args.ClaimAllArgs(options::OPT_stdlib_EQ);
851 const char *Exec = Args.MakeArgString(getToolChain().GetStaticLibToolPath());
860 const ArgList &Args,
875 const char *Exec = Args.MakeArgString(getToolChain().GetProgramPath("lipo"));
883 const ArgList &Args,
896 Args.MakeArgString(getToolChain().GetProgramPath("dsymutil"));
904 const ArgList &Args,
920 Args.MakeArgString(getToolChain().GetProgramPath("dwarfdump"));
925 MachO::MachO(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
926 : ToolChain(D, Triple, Args) {
932 Darwin::Darwin(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
933 : MachO(D, Triple, Args), TargetInitialized(false),
934 CudaInstallation(D, Triple, Args), RocmInstallation(D, Triple, Args) {}
1033 StringRef MachO::getMachOArchName(const ArgList &Args) const {
1049 if (const Arg *A = Args.getLastArg(clang::driver::options::OPT_march_EQ))
1053 if (const Arg *A = Args.getLastArg(options::OPT_mcpu_EQ))
1061 VersionTuple MachO::getLinkerVersion(const llvm::opt::ArgList &Args) const {
1065 if (Arg *A = Args.getLastArg(options::OPT_mlinker_version_EQ))
1073 if (Arg *A = Args.getLastArg(options::OPT_mlinker_version_EQ))
1076 << A->getAsString(Args);
1086 std::string Darwin::ComputeEffectiveClangTriple(const ArgList &Args,
1088 llvm::Triple Triple(ComputeLLVMTriple(Args, InputType));
1144 const ArgList &Args)
1145 : Darwin(D, Triple, Args) {}
1178 void DarwinClang::AddLinkARCArgs(const ArgList &Args,
1193 if ((runtime.hasNativeARC() || !isObjCAutoRefCount(Args)) &&
1221 if (const Arg *A = Args.getLastArg(options::OPT_isysroot))
1225 if (const Arg *A = Args.getLastArg(options::OPT__sysroot_EQ))
1252 CmdArgs.push_back(Args.MakeArgString(P));
1272 void MachO::AddLinkRuntimeLib(const ArgList &Args, ArgStringList &CmdArgs,
1276 Args, Component, IsShared ? ToolChain::FT_Shared : ToolChain::FT_Static);
1282 const char *LibArg = Args.MakeArgString(P);
1301 CmdArgs.push_back(Args.MakeArgString(llvm::sys::path::parent_path(P)));
1400 static bool hasExportSymbolDirective(const ArgList &Args) {
1401 for (Arg *A : Args) {
1426 static void addSectalignToPage(const ArgList &Args, ArgStringList &CmdArgs,
1428 for (const char *A : {"-sectalign", Args.MakeArgString(Segment),
1429 Args.MakeArgString(Section), "0x4000"})
1433 void Darwin::addProfileRTLibs(const ArgList &Args,
1435 if (!needsProfileRT(Args) && !needsGCovInstrumentation(Args))
1438 AddLinkRuntimeLib(Args, CmdArgs, "profile",
1441 bool ForGCOV = needsGCovInstrumentation(Args);
1446 if (hasExportSymbolDirective(Args) && ForGCOV) {
1465 Args, CmdArgs, "__DATA",
1472 void DarwinClang::AddLinkSanitizerLibArgs(const ArgList &Args,
1477 AddLinkRuntimeLib(Args, CmdArgs, Sanitizer, RLO, Shared);
1481 const ArgList &Args) const {
1482 if (Arg* A = Args.getLastArg(options::OPT_rtlib_EQ)) {
1492 void DarwinClang::AddLinkRuntimeLibArgs(const ArgList &Args,
1496 GetRuntimeLibType(Args);
1500 if (Args.hasArg(options::OPT_static) ||
1501 Args.hasArg(options::OPT_fapple_kext) ||
1502 Args.hasArg(options::OPT_mkernel)) {
1504 AddLinkRuntimeLib(Args, CmdArgs, "builtins");
1511 if (const Arg *A = Args.getLastArg(options::OPT_static_libgcc)) {
1512 getDriver().Diag(diag::err_drv_unsupported_opt) << A->getAsString(Args);
1516 const SanitizerArgs &Sanitize = getSanitizerArgs(Args);
1537 AddLinkSanitizerLibArgs(Args, CmdArgs, "asan_abi", /*shared=*/false);
1541 AddLinkSanitizerLibArgs(Args, CmdArgs, "asan");
1545 AddLinkSanitizerLibArgs(Args, CmdArgs, "lsan");
1550 Args, CmdArgs,
1556 AddLinkSanitizerLibArgs(Args, CmdArgs, "tsan");
1558 if (Sanitize.needsFuzzer() && !Args.hasArg(options::OPT_dynamiclib)) {
1559 AddLinkSanitizerLibArgs(Args, CmdArgs, "fuzzer", /*shared=*/false);
1562 AddCXXStdlibLibArgs(Args, CmdArgs);
1565 AddLinkRuntimeLib(Args, CmdArgs, "stats_client", RLO_AlwaysLink);
1566 AddLinkSanitizerLibArgs(Args, CmdArgs, "stats");
1572 AddLinkRuntimeLib(Args, CmdArgs, "xray");
1573 AddLinkRuntimeLib(Args, CmdArgs, "xray-basic");
1574 AddLinkRuntimeLib(Args, CmdArgs, "xray-fdr");
1577 if (isTargetDriverKit() && !Args.hasArg(options::OPT_nodriverkitlib)) {
1596 AddLinkRuntimeLib(Args, CmdArgs, "builtins");
1683 void addOSVersionMinArgument(DerivedArgList &Args, const OptTable &Opts) {
1709 Argument = Args.MakeJoinedArg(nullptr, Opts.getOption(Opt), OSVersion);
1710 Args.append(Argument);
1715 std::string getAsString(DerivedArgList &Args, const OptTable &Opts) {
1723 return Argument->getAsString(Args);
1873 getDeploymentTargetFromOSVersionArg(DerivedArgList &Args,
1875 Arg *macOSVersion = Args.getLastArg(options::OPT_mmacos_version_min_EQ);
1876 Arg *iOSVersion = Args.getLastArg(options::OPT_mios_version_min_EQ,
1879 Args.getLastArg(options::OPT_mtvos_version_min_EQ,
1882 Args.getLastArg(options::OPT_mwatchos_version_min_EQ,
1887 << macOSVersion->getAsString(Args)
1890 ->getAsString(Args);
1897 << iOSVersion->getAsString(Args)
1898 << (TvOSVersion ? TvOSVersion : WatchOSVersion)->getAsString(Args);
1907 << TvOSVersion->getAsString(Args)
1908 << WatchOSVersion->getAsString(Args);
1992 inferDeploymentTargetFromSDK(DerivedArgList &Args,
1994 const Arg *A = Args.getLastArg(options::OPT_isysroot);
2099 inferDeploymentTargetFromArch(DerivedArgList &Args, const Darwin &Toolchain,
2104 StringRef MachOArchName = Toolchain.getMachOArchName(Args);
2122 DerivedArgList &Args, const llvm::Triple &Triple, const Driver &TheDriver,
2124 if (!Args.hasArg(options::OPT_target))
2131 for (const Arg *A : Args.filtered(options::OPT_darwin_target_variant)) {
2156 Args.getLastArg(options::OPT_target),
2162 DerivedArgList &Args, const Driver &TheDriver,
2164 auto *A = Args.getLastArg(options::OPT_mtargetos_EQ);
2177 << TT.getOSName() << A->getAsString(Args);
2184 << A->getAsString(Args);
2192 const ArgList &Args,
2194 const Arg *A = Args.getLastArg(options::OPT_isysroot);
2209 void Darwin::AddDeploymentTarget(DerivedArgList &Args) const {
2215 if (const Arg *A = Args.getLastArg(options::OPT_isysroot)) {
2225 Args.append(Args.MakeSeparateArg(
2233 SDKInfo = parseSDKSettings(getVFS(), Args, getDriver());
2237 getDeploymentTargetFromTargetArg(Args, getTriple(), getDriver(), SDKInfo);
2240 if (const auto *MTargetOSArg = Args.getLastArg(options::OPT_mtargetos_EQ)) {
2241 std::string TargetArgStr = OSTarget->getAsString(Args, Opts);
2242 std::string MTargetOSArgStr = MTargetOSArg->getAsString(Args);
2247 getDeploymentTargetFromOSVersionArg(Args, getDriver());
2270 OSVersionArgTarget->getAsString(Args, Opts);
2271 std::string TargetArg = OSTarget->getAsString(Args, Opts);
2277 } else if ((OSTarget = getDeploymentTargetFromMTargetOSArg(Args, getDriver(),
2282 getDeploymentTargetFromOSVersionArg(Args, getDriver());
2284 std::string MTargetOSArgStr = OSTarget->getAsString(Args, Opts);
2285 std::string OSVersionArgStr = OSVersionArgTarget->getAsString(Args, Opts);
2291 OSTarget = getDeploymentTargetFromOSVersionArg(Args, getDriver());
2300 inferDeploymentTargetFromSDK(Args, SDKInfo);
2309 OSTarget = inferDeploymentTargetFromSDK(Args, SDKInfo);
2319 inferDeploymentTargetFromArch(Args, *this, getTriple(), getDriver());
2323 OSTarget->addOSVersionMinArgument(Args, Opts);
2337 << OSTarget->getAsString(Args, Opts);
2343 << OSTarget->getAsString(Args, Opts);
2348 << OSTarget->getAsString(Args, Opts);
2362 << OSTarget->getAsString(Args, Opts);
2375 << OSTarget->getAsString(Args, Opts);
2381 << OSTarget->getAsString(Args, Opts);
2388 << OSTarget->getAsString(Args, Opts);
2395 << OSTarget->getAsString(Args, Opts);
2412 if (const Arg *A = Args.getLastArg(options::OPT_isysroot)) {
2634 void DarwinClang::AddCXXStdlibLibArgs(const ArgList &Args,
2636 CXXStdlibType Type = GetCXXStdlibType(Args);
2641 if (Args.hasArg(options::OPT_fexperimental_library))
2652 if (const Arg *A = Args.getLastArg(options::OPT_isysroot)) {
2660 CmdArgs.push_back(Args.MakeArgString(P));
2681 void DarwinClang::AddCCKextLibArgs(const ArgList &Args,
2710 CmdArgs.push_back(Args.MakeArgString(P));
2713 DerivedArgList *MachO::TranslateArgs(const DerivedArgList &Args,
2716 DerivedArgList *DAL = new DerivedArgList(Args.getBaseArgs());
2726 for (Arg *A : Args) {
2736 TranslateXarchArgs(Args, A, DAL);
2883 void MachO::AddLinkRuntimeLibArgs(const ArgList &Args,
2891 (tools::arm::getARMFloatABI(*this, Args) == tools::arm::FloatABI::Hard)
2894 CompilerRT += Args.hasArg(options::OPT_fPIC) ? "_pic" : "_static";
2896 AddLinkRuntimeLib(Args, CmdArgs, CompilerRT, RLO_IsEmbedded);
3073 const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CC1ASArgs) const {
3076 CC1ASArgs.push_back(Args.MakeArgString(TargetVariantTriple->getTriple()));
3086 CC1ASArgs.push_back(Args.MakeArgString(Arg));
3109 CC1ASArgs.push_back(Args.MakeArgString(Arg));
3120 CC1ASArgs.push_back(Args.MakeArgString(Arg));
3128 Darwin::TranslateArgs(const DerivedArgList &Args, StringRef BoundArch,
3132 MachO::TranslateArgs(Args, BoundArch, DeviceOffloadKind);
3166 if (Args.hasFlag(options::OPT_fomit_frame_pointer,
3175 ToolChain::UnwindTableLevel MachO::getDefaultUnwindTableLevel(const ArgList &Args) const {
3179 (GetExceptionModel(Args) != llvm::ExceptionHandling::SjLj &&
3180 Args.hasFlag(options::OPT_fexceptions, options::OPT_fno_exceptions,
3202 llvm::ExceptionHandling Darwin::GetExceptionModel(const ArgList &Args) const {
3209 llvm::Triple Triple(ComputeLLVMTriple(Args));
3225 bool MachO::isPIEDefault(const llvm::opt::ArgList &Args) const { return false; }
3237 void Darwin::addMinVersionArgs(const ArgList &Args,
3267 CmdArgs.push_back(Args.MakeArgString(TargetVersion.getAsString()));
3285 CmdArgs.push_back(Args.MakeArgString(VariantTargetVersion.getAsString()));
3310 void Darwin::addPlatformVersionArgs(const llvm::opt::ArgList &Args,
3323 CmdArgs.push_back(Args.MakeArgString(PlatformName));
3335 CmdArgs.push_back(Args.MakeArgString(TargetVersion.getAsString()));
3350 CmdArgs.push_back(Args.MakeArgString(
3361 CmdArgs.push_back(Args.MakeArgString(SDKVersion.getAsString()));
3372 CmdArgs.push_back(Args.MakeArgString(TargetVersion.getAsString()));
3399 static void addDynamicLibLinkArgs(const Darwin &D, const ArgList &Args,
3417 static void addBundleLinkArgs(const Darwin &D, const ArgList &Args,
3419 if (Args.hasArg(options::OPT_static))
3428 static void addPgProfilingLinkArgs(const Darwin &D, const ArgList &Args,
3431 if (Args.hasArg(options::OPT_static) || Args.hasArg(options::OPT_object) ||
3432 Args.hasArg(options::OPT_preload)) {
3452 static void addDefaultCRTLinkArgs(const Darwin &D, const ArgList &Args,
3476 void Darwin::addStartObjectFileArgs(const ArgList &Args,
3479 if (Args.hasArg(options::OPT_dynamiclib))
3480 addDynamicLibLinkArgs(*this, Args, CmdArgs);
3481 else if (Args.hasArg(options::OPT_bundle))
3482 addBundleLinkArgs(*this, Args, CmdArgs);
3483 else if (Args.hasArg(options::OPT_pg) && SupportsProfiling())
3484 addPgProfilingLinkArgs(*this, Args, CmdArgs);
3485 else if (Args.hasArg(options::OPT_static) ||
3486 Args.hasArg(options::OPT_object) ||
3487 Args.hasArg(options::OPT_preload))
3490 addDefaultCRTLinkArgs(*this, Args, CmdArgs);
3492 if (isTargetMacOS() && Args.hasArg(options::OPT_shared_libgcc) &&
3494 const char *Str = Args.MakeArgString(GetFilePath("crt3.o"));