• Home
  • Raw
  • Download

Lines Matching refs:Args

44 static void CheckPreprocessingOptions(const Driver &D, const ArgList &Args) {  in CheckPreprocessingOptions()  argument
45 if (Arg *A = Args.getLastArg(options::OPT_C, options::OPT_CC)) in CheckPreprocessingOptions()
46 if (!Args.hasArg(options::OPT_E) && !D.CCCIsCPP) in CheckPreprocessingOptions()
48 << A->getAsString(Args) << "-E"; in CheckPreprocessingOptions()
53 static void CheckCodeGenerationOptions(const Driver &D, const ArgList &Args) { in CheckCodeGenerationOptions() argument
55 if (Args.hasArg(options::OPT_static)) in CheckCodeGenerationOptions()
56 if (const Arg *A = Args.getLastArg(options::OPT_dynamic, in CheckCodeGenerationOptions()
59 << A->getAsString(Args) << "-static"; in CheckCodeGenerationOptions()
91 static void addDirectoryList(const ArgList &Args, in addDirectoryList() argument
110 CmdArgs.push_back(Args.MakeArgString(Dirs.substr(0, Delim))); in addDirectoryList()
120 CmdArgs.push_back(Args.MakeArgString(Dirs)); in addDirectoryList()
125 const InputInfoList &Inputs, const ArgList &Args, in AddLinkerInputs() argument
131 Args.AddAllArgValues(CmdArgs, options::OPT_Zlinker_input); in AddLinkerInputs()
158 TC.AddCXXStdlibLibArgs(Args, CmdArgs); in AddLinkerInputs()
160 TC.AddCCKextLibArgs(Args, CmdArgs); in AddLinkerInputs()
162 A.renderAsInput(Args, CmdArgs); in AddLinkerInputs()
166 addDirectoryList(Args, CmdArgs, "-L", "LIBRARY_PATH"); in AddLinkerInputs()
171 static bool isObjCAutoRefCount(const ArgList &Args) { in isObjCAutoRefCount() argument
172 return Args.hasFlag(options::OPT_fobjc_arc, options::OPT_fno_objc_arc, false); in isObjCAutoRefCount()
176 static bool isObjCRuntimeLinked(const ArgList &Args) { in isObjCRuntimeLinked() argument
177 if (isObjCAutoRefCount(Args)) in isObjCRuntimeLinked()
179 return Args.hasArg(options::OPT_fobjc_link_runtime); in isObjCRuntimeLinked()
182 static void addProfileRT(const ToolChain &TC, const ArgList &Args, in addProfileRT() argument
185 if (!(Args.hasArg(options::OPT_fprofile_arcs) || in addProfileRT()
186 Args.hasArg(options::OPT_fprofile_generate) || in addProfileRT()
187 Args.hasArg(options::OPT_fcreate_profile) || in addProfileRT()
188 Args.hasArg(options::OPT_coverage))) in addProfileRT()
198 CmdArgs.push_back(Args.MakeArgString(ProfileRT)); in addProfileRT()
203 const ArgList &Args, in AddPreprocessingOptions() argument
209 CheckPreprocessingOptions(D, Args); in AddPreprocessingOptions()
211 Args.AddLastArg(CmdArgs, options::OPT_C); in AddPreprocessingOptions()
212 Args.AddLastArg(CmdArgs, options::OPT_CC); in AddPreprocessingOptions()
215 if ((A = Args.getLastArg(options::OPT_M, options::OPT_MM)) || in AddPreprocessingOptions()
216 (A = Args.getLastArg(options::OPT_MD)) || in AddPreprocessingOptions()
217 (A = Args.getLastArg(options::OPT_MMD))) { in AddPreprocessingOptions()
222 } else if (Arg *MF = Args.getLastArg(options::OPT_MF)) { in AddPreprocessingOptions()
223 DepFile = MF->getValue(Args); in AddPreprocessingOptions()
229 DepFile = darwin::CC1::getDependencyFileName(Args, Inputs); in AddPreprocessingOptions()
236 if (!Args.hasArg(options::OPT_MT) && !Args.hasArg(options::OPT_MQ)) { in AddPreprocessingOptions()
241 Arg *OutputOpt = Args.getLastArg(options::OPT_o); in AddPreprocessingOptions()
243 DepTarget = OutputOpt->getValue(Args); in AddPreprocessingOptions()
250 DepTarget = Args.MakeArgString(llvm::sys::path::filename(P)); in AddPreprocessingOptions()
256 CmdArgs.push_back(Args.MakeArgString(Quoted)); in AddPreprocessingOptions()
264 if (Args.hasArg(options::OPT_MG)) { in AddPreprocessingOptions()
271 Args.AddLastArg(CmdArgs, options::OPT_MP); in AddPreprocessingOptions()
274 for (arg_iterator it = Args.filtered_begin(options::OPT_MT, in AddPreprocessingOptions()
276 ie = Args.filtered_end(); it != ie; ++it) { in AddPreprocessingOptions()
283 QuoteTarget(A->getValue(Args), Quoted); in AddPreprocessingOptions()
284 CmdArgs.push_back(Args.MakeArgString(Quoted)); in AddPreprocessingOptions()
288 A->render(Args, CmdArgs); in AddPreprocessingOptions()
298 for (arg_iterator it = Args.filtered_begin(options::OPT_clang_i_Group), in AddPreprocessingOptions()
299 ie = Args.filtered_end(); it != ie; ++it) { in AddPreprocessingOptions()
311 llvm::sys::Path P(A->getValue(Args)); in AddPreprocessingOptions()
346 CmdArgs.push_back(Args.MakeArgString(P.str())); in AddPreprocessingOptions()
351 << P.str() << A->getAsString(Args); in AddPreprocessingOptions()
358 A->render(Args, CmdArgs); in AddPreprocessingOptions()
361 Args.AddAllArgs(CmdArgs, options::OPT_D, options::OPT_U); in AddPreprocessingOptions()
362 Args.AddAllArgs(CmdArgs, options::OPT_I_Group, options::OPT_F, in AddPreprocessingOptions()
371 Args.AddAllArgValues(CmdArgs, options::OPT_Wp_COMMA, in AddPreprocessingOptions()
375 if (Arg *A = Args.getLastArg(options::OPT_I_)) in AddPreprocessingOptions()
376 D.Diag(diag::err_drv_I_dash_not_supported) << A->getAsString(Args); in AddPreprocessingOptions()
382 if (!Args.hasArg(options::OPT_isysroot)) { in AddPreprocessingOptions()
390 if (Arg *A = Args.getLastArg(options::OPT_fmodule_cache_path)) { in AddPreprocessingOptions()
392 A->render(Args, CmdArgs); in AddPreprocessingOptions()
399 CmdArgs.push_back(Args.MakeArgString(DefaultModuleCache)); in AddPreprocessingOptions()
407 addDirectoryList(Args, CmdArgs, "-I", "CPATH"); in AddPreprocessingOptions()
409 addDirectoryList(Args, CmdArgs, "-c-isystem", "C_INCLUDE_PATH"); in AddPreprocessingOptions()
411 addDirectoryList(Args, CmdArgs, "-cxx-isystem", "CPLUS_INCLUDE_PATH"); in AddPreprocessingOptions()
413 addDirectoryList(Args, CmdArgs, "-objc-isystem", "OBJC_INCLUDE_PATH"); in AddPreprocessingOptions()
415 addDirectoryList(Args, CmdArgs, "-objcxx-isystem", "OBJCPLUS_INCLUDE_PATH"); in AddPreprocessingOptions()
419 getToolChain().AddClangCXXStdlibIncludeArgs(Args, CmdArgs); in AddPreprocessingOptions()
422 getToolChain().AddClangSystemIncludeArgs(Args, CmdArgs); in AddPreprocessingOptions()
428 static const char *getARMTargetCPU(const ArgList &Args, in getARMTargetCPU() argument
433 if (Arg *A = Args.getLastArg(options::OPT_mcpu_EQ)) in getARMTargetCPU()
434 return A->getValue(Args); in getARMTargetCPU()
437 if (Arg *A = Args.getLastArg(options::OPT_march_EQ)) { in getARMTargetCPU()
439 MArch = A->getValue(Args); in getARMTargetCPU()
512 static void addFPUArgs(const Driver &D, const Arg *A, const ArgList &Args, in addFPUArgs() argument
514 StringRef FPU = A->getValue(Args); in addFPUArgs()
546 D.Diag(diag::err_drv_clang_unsupported) << A->getAsString(Args); in addFPUArgs()
550 static void addFPMathArgs(const Driver &D, const Arg *A, const ArgList &Args, in addFPMathArgs() argument
552 StringRef FPMath = A->getValue(Args); in addFPMathArgs()
569 D.Diag(diag::err_drv_clang_unsupported) << A->getAsString(Args); in addFPMathArgs()
575 const ArgList &Args, in getARMFloatABI() argument
578 if (Arg *A = Args.getLastArg(options::OPT_msoft_float, in getARMFloatABI()
586 FloatABI = A->getValue(Args); in getARMFloatABI()
589 << A->getAsString(Args); in getARMFloatABI()
605 getLLVMArchSuffixForARM(getARMTargetCPU(Args, Triple)); in getARMFloatABI()
632 getLLVMArchSuffixForARM(getARMTargetCPU(Args, Triple)); in getARMFloatABI()
652 void Clang::AddARMTargetArgs(const ArgList &Args, in AddARMTargetArgs() argument
662 if (Arg *A = Args.getLastArg(options::OPT_mabi_EQ)) { in AddARMTargetArgs()
663 ABIName = A->getValue(Args); in AddARMTargetArgs()
683 CmdArgs.push_back(getARMTargetCPU(Args, Triple)); in AddARMTargetArgs()
686 StringRef FloatABI = getARMFloatABI(D, Args, Triple); in AddARMTargetArgs()
724 if (const Arg *A = Args.getLastArg(options::OPT_mfpu_EQ)) in AddARMTargetArgs()
725 addFPUArgs(D, A, Args, CmdArgs); in AddARMTargetArgs()
728 if (const Arg *A = Args.getLastArg(options::OPT_mfpmath_EQ)) in AddARMTargetArgs()
729 addFPMathArgs(D, A, Args, CmdArgs, getARMTargetCPU(Args, Triple)); in AddARMTargetArgs()
753 if (Arg *A = Args.getLastArg(options::OPT_mglobal_merge, in AddARMTargetArgs()
802 static void getMipsCPUAndABI(const ArgList &Args, in getMipsCPUAndABI() argument
809 if (Arg *A = Args.getLastArg(options::OPT_mcpu_EQ)) { in getMipsCPUAndABI()
810 CPUName = A->getValue(Args); in getMipsCPUAndABI()
814 ArchName = Args.MakeArgString(TC.getArchName()); in getMipsCPUAndABI()
822 if (Arg *A = Args.getLastArg(options::OPT_mabi_EQ)) in getMipsCPUAndABI()
823 ABIName = A->getValue(Args); in getMipsCPUAndABI()
828 void Clang::AddMIPSTargetArgs(const ArgList &Args, in AddMIPSTargetArgs() argument
833 getMipsCPUAndABI(Args, getToolChain(), CPUName, ABIName); in AddMIPSTargetArgs()
844 if (Arg *A = Args.getLastArg(options::OPT_msoft_float, in AddMIPSTargetArgs()
852 FloatABI = A->getValue(Args); in AddMIPSTargetArgs()
855 << A->getAsString(Args); in AddMIPSTargetArgs()
895 void Clang::AddSparcTargetArgs(const ArgList &Args, in AddSparcTargetArgs() argument
899 if (const Arg *A = Args.getLastArg(options::OPT_march_EQ)) { in AddSparcTargetArgs()
901 CmdArgs.push_back(A->getValue(Args)); in AddSparcTargetArgs()
906 if (Arg *A = Args.getLastArg(options::OPT_msoft_float, in AddSparcTargetArgs()
938 void Clang::AddX86TargetArgs(const ArgList &Args, in AddX86TargetArgs() argument
940 if (!Args.hasFlag(options::OPT_mred_zone, in AddX86TargetArgs()
943 Args.hasArg(options::OPT_mkernel) || in AddX86TargetArgs()
944 Args.hasArg(options::OPT_fapple_kext)) in AddX86TargetArgs()
947 if (Args.hasFlag(options::OPT_msoft_float, in AddX86TargetArgs()
953 if (const Arg *A = Args.getLastArg(options::OPT_march_EQ)) { in AddX86TargetArgs()
954 if (StringRef(A->getValue(Args)) == "native") { in AddX86TargetArgs()
962 CPUName = Args.MakeArgString(CPU); in AddX86TargetArgs()
964 CPUName = A->getValue(Args); in AddX86TargetArgs()
1016 for (arg_iterator it = Args.filtered_begin(options::OPT_m_x86_Features_Group), in AddX86TargetArgs()
1017 ie = Args.filtered_end(); it != ie; ++it) { in AddX86TargetArgs()
1033 Features.push_back(Args.MakeArgString((IsNegative ? "-" : "+") + Name)); in AddX86TargetArgs()
1043 static Arg* getLastHexagonArchArg (const ArgList &Args) in getLastHexagonArchArg() argument
1047 for (ArgList::const_iterator it = Args.begin(), ie = Args.end(); in getLastHexagonArchArg()
1055 StringRef Value = (*it)->getValue(Args,0); in getLastHexagonArchArg()
1065 static StringRef getHexagonTargetCPU(const ArgList &Args) in getHexagonTargetCPU() argument
1071 if ((A = getLastHexagonArchArg (Args))) { in getHexagonTargetCPU()
1072 WhichHexagon = A->getValue(Args); in getHexagonTargetCPU()
1082 void Clang::AddHexagonTargetArgs(const ArgList &Args, in AddHexagonTargetArgs() argument
1087 CmdArgs.push_back(Args.MakeArgString("hexagon" + getHexagonTargetCPU(Args))); in AddHexagonTargetArgs()
1091 if (Args.hasArg(options::OPT_mqdsp6_compat)) in AddHexagonTargetArgs()
1094 if (Arg *A = Args.getLastArg(options::OPT_G, in AddHexagonTargetArgs()
1097 SmallDataThreshold += A->getValue(Args); in AddHexagonTargetArgs()
1099 CmdArgs.push_back(Args.MakeArgString(SmallDataThreshold)); in AddHexagonTargetArgs()
1130 static void addExceptionArgs(const ArgList &Args, types::ID InputType, in addExceptionArgs() argument
1138 Args.ClaimAllArgs(options::OPT_fexceptions); in addExceptionArgs()
1139 Args.ClaimAllArgs(options::OPT_fno_exceptions); in addExceptionArgs()
1140 Args.ClaimAllArgs(options::OPT_fobjc_exceptions); in addExceptionArgs()
1141 Args.ClaimAllArgs(options::OPT_fno_objc_exceptions); in addExceptionArgs()
1142 Args.ClaimAllArgs(options::OPT_fcxx_exceptions); in addExceptionArgs()
1143 Args.ClaimAllArgs(options::OPT_fno_cxx_exceptions); in addExceptionArgs()
1153 if (Arg *A = Args.getLastArg(options::OPT_fexceptions, in addExceptionArgs()
1173 Args.hasFlag(options::OPT_fobjc_exceptions, in addExceptionArgs()
1185 if (Arg *A = Args.getLastArg(options::OPT_fcxx_exceptions, in addExceptionArgs()
1206 static bool ShouldDisableCFI(const ArgList &Args, in ShouldDisableCFI() argument
1212 Default = Args.hasFlag(options::OPT_integrated_as, in ShouldDisableCFI()
1216 return !Args.hasFlag(options::OPT_fdwarf2_cfi_asm, in ShouldDisableCFI()
1221 static bool ShouldDisableDwarfDirectory(const ArgList &Args, in ShouldDisableDwarfDirectory() argument
1224 bool UseIntegratedAs = Args.hasFlag(options::OPT_integrated_as, in ShouldDisableDwarfDirectory()
1227 bool UseDwarfDirectory = Args.hasFlag(options::OPT_fdwarf_directory_asm, in ShouldDisableDwarfDirectory()
1247 static bool UseRelaxAll(Compilation &C, const ArgList &Args) { in UseRelaxAll() argument
1250 if (Arg *A = Args.getLastArg(options::OPT_O_Group)) in UseRelaxAll()
1264 return Args.hasFlag(options::OPT_mrelax_all, options::OPT_mno_relax_all, in UseRelaxAll()
1270 static void addAsanRTLinux(const ToolChain &TC, const ArgList &Args, in addAsanRTLinux() argument
1273 if (Args.hasArg(options::OPT_shared) || in addAsanRTLinux()
1274 !Args.hasFlag(options::OPT_faddress_sanitizer, in addAsanRTLinux()
1284 CmdArgs.push_back(Args.MakeArgString(LibAsan)); in addAsanRTLinux()
1290 static bool shouldUseFramePointer(const ArgList &Args, in shouldUseFramePointer() argument
1292 if (Arg *A = Args.getLastArg(options::OPT_fno_omit_frame_pointer, in shouldUseFramePointer()
1300 if (Arg *A = Args.getLastArg(options::OPT_O_Group)) in shouldUseFramePointer()
1311 const ArgList &Args, in ConstructJob() argument
1313 bool KernelOrKext = Args.hasArg(options::OPT_mkernel, in ConstructJob()
1327 std::string TripleStr = getToolChain().ComputeEffectiveClangTriple(Args); in ConstructJob()
1328 CmdArgs.push_back(Args.MakeArgString(TripleStr)); in ConstructJob()
1347 if (UseRelaxAll(C, Args)) in ConstructJob()
1352 for (arg_iterator it = Args.filtered_begin(options::OPT_Wa_COMMA, in ConstructJob()
1354 ie = Args.filtered_end(); it != ie; ++it) { in ConstructJob()
1359 StringRef Value = A->getValue(Args, i); in ConstructJob()
1378 (void) Args.hasArg(options::OPT_force__cpusubtype__ALL); in ConstructJob()
1425 CmdArgs.push_back(darwin::CC1::getBaseInputName(Args, Inputs)); in ConstructJob()
1429 if (Args.hasArg(options::OPT_static)) in ConstructJob()
1444 if (!Args.hasArg(options::OPT__analyzer_no_default_checks)) { in ConstructJob()
1467 if (Arg *A = Args.getLastArg(options::OPT__analyzer_output)) in ConstructJob()
1468 CmdArgs.push_back(A->getValue(Args)); in ConstructJob()
1478 Args.AddAllArgValues(CmdArgs, options::OPT_Xanalyzer); in ConstructJob()
1481 CheckCodeGenerationOptions(D, Args); in ConstructJob()
1494 for (ArgList::const_iterator I = Args.begin(), E = Args.end(); I != E; ++I) { in ConstructJob()
1520 if (Args.hasArg(options::OPT_mkernel)) in ConstructJob()
1522 if (Args.hasArg(options::OPT_static)) in ConstructJob()
1524 bool DynamicNoPIC = Args.hasArg(options::OPT_mdynamic_no_pic); in ConstructJob()
1557 if (!Args.hasFlag(options::OPT_fmerge_all_constants, in ConstructJob()
1563 if (Arg *A = Args.getLastArg(options::OPT_mregparm_EQ)) { in ConstructJob()
1565 CmdArgs.push_back(A->getValue(Args)); in ConstructJob()
1568 if (Args.hasFlag(options::OPT_mrtd, options::OPT_mno_rtd, false)) in ConstructJob()
1571 if (shouldUseFramePointer(Args, getToolChain().getTriple())) in ConstructJob()
1573 if (!Args.hasFlag(options::OPT_fzero_initialized_in_bss, in ConstructJob()
1576 if (!Args.hasFlag(options::OPT_fstrict_aliasing, in ConstructJob()
1580 if (Args.hasFlag(options::OPT_fstrict_enums, options::OPT_fno_strict_enums, in ConstructJob()
1583 if (!Args.hasFlag(options::OPT_foptimize_sibling_calls, in ConstructJob()
1592 if (Arg *A = Args.getLastArg(options::OPT_ffast_math, in ConstructJob()
1600 if (Arg *A = Args.getLastArg(options::OPT_ffast_math, in ConstructJob()
1611 if (Arg *A = Args.getLastArg(options::OPT_ffast_math, in ConstructJob()
1625 if (Arg *A = Args.getLastArg(options::OPT_ffast_math, in ConstructJob()
1634 if (Arg *A = Args.getLastArg(options::OPT_ffast_math, in ConstructJob()
1643 if (Arg *A = Args.getLastArg(options::OPT_ffast_math, in ConstructJob()
1652 if (Arg *A = Args.getLastArg(options::OPT_ffast_math, in ConstructJob()
1668 if (Args.hasArg(options::OPT_ffast_math)) in ConstructJob()
1674 if (Args.hasFlag(options::OPT_fverbose_asm, options::OPT_fno_verbose_asm, in ConstructJob()
1676 Args.hasArg(options::OPT_dA)) in ConstructJob()
1679 if (Args.hasArg(options::OPT_fdebug_pass_structure)) { in ConstructJob()
1683 if (Args.hasArg(options::OPT_fdebug_pass_arguments)) { in ConstructJob()
1698 if (Args.hasArg(options::OPT_mms_bitfields)) { in ConstructJob()
1706 Args.hasFlag(options::OPT_fasynchronous_unwind_tables, in ConstructJob()
1710 if (Args.hasFlag(options::OPT_funwind_tables, options::OPT_fno_unwind_tables, in ConstructJob()
1714 if (Arg *A = Args.getLastArg(options::OPT_flimited_precision_EQ)) { in ConstructJob()
1716 CmdArgs.push_back(A->getValue(Args)); in ConstructJob()
1720 (void) Args.hasArg(options::OPT_mtune_EQ); in ConstructJob()
1722 if (Arg *A = Args.getLastArg(options::OPT_mcmodel_EQ)) { in ConstructJob()
1724 CmdArgs.push_back(A->getValue(Args)); in ConstructJob()
1734 AddARMTargetArgs(Args, CmdArgs, KernelOrKext); in ConstructJob()
1741 AddMIPSTargetArgs(Args, CmdArgs); in ConstructJob()
1745 AddSparcTargetArgs(Args, CmdArgs); in ConstructJob()
1750 AddX86TargetArgs(Args, CmdArgs); in ConstructJob()
1754 AddHexagonTargetArgs(Args, CmdArgs); in ConstructJob()
1761 if (Arg *A = Args.getLastArg(options::OPT_mlinker_version_EQ)) { in ConstructJob()
1763 CmdArgs.push_back(A->getValue(Args)); in ConstructJob()
1767 if (Args.hasFlag(options::OPT_momit_leaf_frame_pointer, in ConstructJob()
1775 if (!Args.hasArg(options::OPT_fallow_unsupported)) { in ConstructJob()
1780 if ((Unsupported = Args.getLastArg(options::OPT_fapple_kext)) || in ConstructJob()
1781 (Unsupported = Args.getLastArg(options::OPT_mkernel))) in ConstructJob()
1787 Args.AddAllArgs(CmdArgs, options::OPT_v); in ConstructJob()
1788 Args.AddLastArg(CmdArgs, options::OPT_H); in ConstructJob()
1794 Args.AddLastArg(CmdArgs, options::OPT_P); in ConstructJob()
1795 Args.AddLastArg(CmdArgs, options::OPT_print_ivar_layout); in ConstructJob()
1805 Args.ClaimAllArgs(options::OPT_g_Group); in ConstructJob()
1806 if (Arg *A = Args.getLastArg(options::OPT_g_Group)) in ConstructJob()
1811 Args.AddAllArgs(CmdArgs, options::OPT_ffunction_sections); in ConstructJob()
1812 Args.AddAllArgs(CmdArgs, options::OPT_fdata_sections); in ConstructJob()
1814 Args.AddAllArgs(CmdArgs, options::OPT_finstrument_functions); in ConstructJob()
1816 if (Args.hasArg(options::OPT_ftest_coverage) || in ConstructJob()
1817 Args.hasArg(options::OPT_coverage)) in ConstructJob()
1819 if (Args.hasArg(options::OPT_fprofile_arcs) || in ConstructJob()
1820 Args.hasArg(options::OPT_coverage)) in ConstructJob()
1827 CmdArgs.push_back(Args.MakeArgString(Output.getFilename())); in ConstructJob()
1832 if (Args.hasArg(options::OPT_nostdinc)) { in ConstructJob()
1836 if (Args.hasArg(options::OPT_nostdlibinc)) in ConstructJob()
1838 Args.AddLastArg(CmdArgs, options::OPT_nostdincxx); in ConstructJob()
1839 Args.AddLastArg(CmdArgs, options::OPT_nobuiltininc); in ConstructJob()
1846 Args.AddLastArg(CmdArgs, options::OPT_working_directory); in ConstructJob()
1849 if (!Args.hasArg(options::OPT_fno_objc_arc)) { in ConstructJob()
1850 if (const Arg *A = Args.getLastArg(options::OPT_ccc_arcmt_check, in ConstructJob()
1866 CmdArgs.push_back(A->getValue(Args)); in ConstructJob()
1868 Args.AddLastArg(CmdArgs, options::OPT_arcmt_migrate_report_output); in ConstructJob()
1869 Args.AddLastArg(CmdArgs, options::OPT_arcmt_migrate_emit_arc_errors); in ConstructJob()
1875 if (const Arg *A = Args.getLastArg(options::OPT_ccc_objcmt_migrate)) { in ConstructJob()
1878 << A->getAsString(Args) << "-ccc-arcmt-migrate"; in ConstructJob()
1881 CmdArgs.push_back(A->getValue(Args)); in ConstructJob()
1883 if (!Args.hasArg(options::OPT_objcmt_migrate_literals, in ConstructJob()
1889 Args.AddLastArg(CmdArgs, options::OPT_objcmt_migrate_literals); in ConstructJob()
1890 Args.AddLastArg(CmdArgs, options::OPT_objcmt_migrate_subscripting); in ConstructJob()
1899 AddPreprocessingOptions(C, D, Args, CmdArgs, Output, Inputs); in ConstructJob()
1905 Args.ClaimAllArgs(options::OPT_D); in ConstructJob()
1909 if (Arg *A = Args.getLastArg(options::OPT_O_Group)) { in ConstructJob()
1913 A->getValue(Args)[0] == '\0') in ConstructJob()
1916 A->render(Args, CmdArgs); in ConstructJob()
1919 Args.AddAllArgs(CmdArgs, options::OPT_W_Group); in ConstructJob()
1920 Args.AddLastArg(CmdArgs, options::OPT_pedantic); in ConstructJob()
1921 Args.AddLastArg(CmdArgs, options::OPT_pedantic_errors); in ConstructJob()
1922 Args.AddLastArg(CmdArgs, options::OPT_w); in ConstructJob()
1929 if (Arg *Std = Args.getLastArg(options::OPT_std_EQ, options::OPT_ansi)) { in ConstructJob()
1936 Std->render(Args, CmdArgs); in ConstructJob()
1938 if (Arg *A = Args.getLastArg(options::OPT_std_EQ, options::OPT_ansi, in ConstructJob()
1941 A->render(Args, CmdArgs); in ConstructJob()
1950 Args.AddAllArgsTranslated(CmdArgs, options::OPT_std_default_EQ, in ConstructJob()
1952 Args.AddLastArg(CmdArgs, options::OPT_trigraphs); in ConstructJob()
1957 if (Args.hasFlag(options::OPT_Wwrite_strings, options::OPT_Wno_write_strings, in ConstructJob()
1968 Args.hasFlag(options::OPT_Wdeprecated, options::OPT_Wno_deprecated, in ConstructJob()
1974 if (Arg *Asm = Args.getLastArg(options::OPT_fasm, options::OPT_fno_asm)) { in ConstructJob()
1981 if (ShouldDisableCFI(Args, getToolChain())) in ConstructJob()
1984 if (ShouldDisableDwarfDirectory(Args, getToolChain())) in ConstructJob()
1993 CmdArgs.push_back(Args.MakeArgString(CompDir)); in ConstructJob()
1997 if (Arg *A = Args.getLastArg(options::OPT_ftemplate_depth_, in ConstructJob()
2000 CmdArgs.push_back(A->getValue(Args)); in ConstructJob()
2003 if (Arg *A = Args.getLastArg(options::OPT_fconstexpr_depth_EQ)) { in ConstructJob()
2005 CmdArgs.push_back(A->getValue(Args)); in ConstructJob()
2008 if (Arg *A = Args.getLastArg(options::OPT_Wlarge_by_value_copy_EQ, in ConstructJob()
2012 CmdArgs.push_back(A->getValue(Args)); in ConstructJob()
2017 if (Args.hasArg(options::OPT__relocatable_pch)) in ConstructJob()
2020 if (Arg *A = Args.getLastArg(options::OPT_fconstant_string_class_EQ)) { in ConstructJob()
2022 CmdArgs.push_back(A->getValue(Args)); in ConstructJob()
2025 if (Arg *A = Args.getLastArg(options::OPT_ftabstop_EQ)) { in ConstructJob()
2027 CmdArgs.push_back(A->getValue(Args)); in ConstructJob()
2031 if (Arg *A = Args.getLastArg(options::OPT_ferror_limit_EQ)) in ConstructJob()
2032 CmdArgs.push_back(A->getValue(Args)); in ConstructJob()
2036 if (Arg *A = Args.getLastArg(options::OPT_fmacro_backtrace_limit_EQ)) { in ConstructJob()
2038 CmdArgs.push_back(A->getValue(Args)); in ConstructJob()
2041 if (Arg *A = Args.getLastArg(options::OPT_ftemplate_backtrace_limit_EQ)) { in ConstructJob()
2043 CmdArgs.push_back(A->getValue(Args)); in ConstructJob()
2046 if (Arg *A = Args.getLastArg(options::OPT_fconstexpr_backtrace_limit_EQ)) { in ConstructJob()
2048 CmdArgs.push_back(A->getValue(Args)); in ConstructJob()
2053 if (Arg *A = Args.getLastArg(options::OPT_fmessage_length_EQ)) { in ConstructJob()
2054 CmdArgs.push_back(A->getValue(Args)); in ConstructJob()
2059 CmdArgs.push_back(Args.MakeArgString(Twine(N))); in ConstructJob()
2062 if (const Arg *A = Args.getLastArg(options::OPT_fvisibility_EQ)) { in ConstructJob()
2064 CmdArgs.push_back(A->getValue(Args)); in ConstructJob()
2067 Args.AddLastArg(CmdArgs, options::OPT_fvisibility_inlines_hidden); in ConstructJob()
2070 if (Args.hasFlag(options::OPT_ffreestanding, options::OPT_fhosted, false) || in ConstructJob()
2075 Args.AddLastArg(CmdArgs, options::OPT_fcatch_undefined_behavior); in ConstructJob()
2076 Args.AddLastArg(CmdArgs, options::OPT_femit_all_decls); in ConstructJob()
2077 Args.AddLastArg(CmdArgs, options::OPT_fheinous_gnu_extensions); in ConstructJob()
2078 Args.AddLastArg(CmdArgs, options::OPT_flimit_debug_info); in ConstructJob()
2079 Args.AddLastArg(CmdArgs, options::OPT_fno_limit_debug_info); in ConstructJob()
2080 Args.AddLastArg(CmdArgs, options::OPT_fno_operator_names); in ConstructJob()
2081 Args.AddLastArg(CmdArgs, options::OPT_faltivec); in ConstructJob()
2084 if (const Arg *A = Args.getLastArg(options::OPT_faltivec)) in ConstructJob()
2088 << A->getAsString(Args) << "ppc/ppc64"; in ConstructJob()
2091 Args.AddLastArg(CmdArgs, options::OPT_pg); in ConstructJob()
2093 if (Args.hasFlag(options::OPT_faddress_sanitizer, in ConstructJob()
2097 if (Args.hasFlag(options::OPT_fthread_sanitizer, in ConstructJob()
2102 if (!Args.hasFlag(options::OPT_flax_vector_conversions, in ConstructJob()
2106 if (Args.getLastArg(options::OPT_fapple_kext)) in ConstructJob()
2109 Args.AddLastArg(CmdArgs, options::OPT_fobjc_sender_dependent_dispatch); in ConstructJob()
2110 Args.AddLastArg(CmdArgs, options::OPT_fdiagnostics_print_source_range_info); in ConstructJob()
2111 Args.AddLastArg(CmdArgs, options::OPT_fdiagnostics_parseable_fixits); in ConstructJob()
2112 Args.AddLastArg(CmdArgs, options::OPT_ftime_report); in ConstructJob()
2113 Args.AddLastArg(CmdArgs, options::OPT_ftrapv); in ConstructJob()
2115 if (Arg *A = Args.getLastArg(options::OPT_ftrapv_handler_EQ)) { in ConstructJob()
2117 CmdArgs.push_back(A->getValue(Args)); in ConstructJob()
2120 Args.AddLastArg(CmdArgs, options::OPT_ftrap_function_EQ); in ConstructJob()
2124 if (Arg *A = Args.getLastArg(options::OPT_fwrapv, in ConstructJob()
2128 } else if (Arg *A = Args.getLastArg(options::OPT_fstrict_overflow, in ConstructJob()
2133 Args.AddLastArg(CmdArgs, options::OPT_fwritable_strings); in ConstructJob()
2134 Args.AddLastArg(CmdArgs, options::OPT_funroll_loops); in ConstructJob()
2136 Args.AddLastArg(CmdArgs, options::OPT_pthread); in ConstructJob()
2140 if (Arg *A = Args.getLastArg(options::OPT_fno_stack_protector, in ConstructJob()
2153 CmdArgs.push_back(Args.MakeArgString(Twine(StackProtectorLevel))); in ConstructJob()
2157 if (Args.hasFlag(options::OPT_mstackrealign, options::OPT_mno_stackrealign, in ConstructJob()
2162 if (!Args.hasFlag(options::OPT_mno_stackrealign, options::OPT_mstackrealign, in ConstructJob()
2164 CmdArgs.push_back(Args.MakeArgString("-mstackrealign")); in ConstructJob()
2167 if (Args.hasArg(options::OPT_mstack_alignment)) { in ConstructJob()
2168 StringRef alignment = Args.getLastArgValue(options::OPT_mstack_alignment); in ConstructJob()
2169 CmdArgs.push_back(Args.MakeArgString("-mstack-alignment=" + alignment)); in ConstructJob()
2175 if (Args.hasArg(options::OPT_mkernel)) { in ConstructJob()
2176 if (!Args.hasArg(options::OPT_fapple_kext) && types::isCXX(InputType)) in ConstructJob()
2178 if (!Args.hasArg(options::OPT_fbuiltin)) in ConstructJob()
2180 Args.ClaimAllArgs(options::OPT_fno_builtin); in ConstructJob()
2183 else if (!Args.hasFlag(options::OPT_fbuiltin, options::OPT_fno_builtin)) in ConstructJob()
2186 if (!Args.hasFlag(options::OPT_fassume_sane_operator_new, in ConstructJob()
2191 if (Args.hasFlag(options::OPT_fblocks, options::OPT_fno_blocks, in ConstructJob()
2193 (Args.hasArg(options::OPT_fgnu_runtime) && in ConstructJob()
2194 Args.hasArg(options::OPT_fobjc_nonfragile_abi) && in ConstructJob()
2195 !Args.hasArg(options::OPT_fno_blocks))) { in ConstructJob()
2198 if (!Args.hasArg(options::OPT_fgnu_runtime) && in ConstructJob()
2206 if (Args.hasFlag(options::OPT_fmodules, options::OPT_fno_modules, false)) { in ConstructJob()
2207 bool AllowedInCXX = Args.hasFlag(options::OPT_fcxx_modules, in ConstructJob()
2215 if (Args.hasFlag(options::OPT_fno_access_control, in ConstructJob()
2221 if (Args.hasFlag(options::OPT_fno_elide_constructors, in ConstructJob()
2227 if (!Args.hasFlag(options::OPT_frtti, options::OPT_fno_rtti) || in ConstructJob()
2232 if (Args.hasFlag(options::OPT_fshort_enums, in ConstructJob()
2239 if (!Args.hasFlag(options::OPT_fsigned_char, options::OPT_funsigned_char, in ConstructJob()
2244 if (!Args.hasFlag(options::OPT_fthreadsafe_statics, in ConstructJob()
2249 if (!Args.hasFlag(options::OPT_fuse_cxa_atexit, in ConstructJob()
2258 if (Args.hasFlag(options::OPT_fms_extensions, options::OPT_fno_ms_extensions, in ConstructJob()
2263 if (Args.hasFlag(options::OPT_fms_compatibility, in ConstructJob()
2266 Args.hasFlag(options::OPT_fms_extensions, in ConstructJob()
2272 if (Args.hasFlag(options::OPT_fms_extensions, options::OPT_fno_ms_extensions, in ConstructJob()
2274 Args.hasArg(options::OPT_fmsc_version)) { in ConstructJob()
2275 StringRef msc_ver = Args.getLastArgValue(options::OPT_fmsc_version); in ConstructJob()
2279 CmdArgs.push_back(Args.MakeArgString("-fmsc-version=" + msc_ver)); in ConstructJob()
2284 if (Args.hasFlag(options::OPT_fborland_extensions, in ConstructJob()
2290 if (Args.hasFlag(options::OPT_fdelayed_template_parsing, in ConstructJob()
2297 if (Arg *A = Args.getLastArg(options::OPT_fgnu_keywords, in ConstructJob()
2299 A->render(Args, CmdArgs); in ConstructJob()
2301 if (Args.hasFlag(options::OPT_fgnu89_inline, in ConstructJob()
2306 if (Args.hasArg(options::OPT_fno_inline)) in ConstructJob()
2309 if (Args.hasArg(options::OPT_fno_inline_functions)) in ConstructJob()
2318 if (Args.hasFlag(options::OPT_fnext_runtime, options::OPT_fgnu_runtime, in ConstructJob()
2340 if (Arg *A = Args.getLastArg(options::OPT_fobjc_abi_version_EQ)) { in ConstructJob()
2341 if (StringRef(A->getValue(Args)) == "1") in ConstructJob()
2343 else if (StringRef(A->getValue(Args)) == "2") in ConstructJob()
2345 else if (StringRef(A->getValue(Args)) == "3") in ConstructJob()
2348 D.Diag(diag::err_drv_clang_unsupported) << A->getAsString(Args); in ConstructJob()
2354 if (Args.hasFlag(options::OPT_fobjc_nonfragile_abi, in ConstructJob()
2364 if (Arg *A = Args.getLastArg( in ConstructJob()
2366 if (StringRef(A->getValue(Args)) == "1") in ConstructJob()
2368 else if (StringRef(A->getValue(Args)) == "2") in ConstructJob()
2372 << A->getAsString(Args); in ConstructJob()
2386 if (!Args.hasFlag(options::OPT_fobjc_legacy_dispatch, in ConstructJob()
2404 bool ARC = isObjCAutoRefCount(Args); in ConstructJob()
2415 if (getToolChain().GetCXXStdlibType(Args) == ToolChain::CST_Libcxx) in ConstructJob()
2423 if (Args.hasFlag(options::OPT_fobjc_arc_exceptions, in ConstructJob()
2436 const Arg *GCArg = Args.getLastArg(options::OPT_fobjc_gc_only); in ConstructJob()
2438 GCArg = Args.getLastArg(options::OPT_fobjc_gc); in ConstructJob()
2442 << GCArg->getAsString(Args); in ConstructJob()
2444 GCArg->render(Args, CmdArgs); in ConstructJob()
2448 << GCArg->getAsString(Args); in ConstructJob()
2453 addExceptionArgs(Args, InputType, getToolChain().getTriple(), in ConstructJob()
2460 if (!Args.hasFlag(options::OPT_fassume_sane_operator_new, in ConstructJob()
2466 if (!Args.hasFlag(options::OPT_fconstant_cfstrings, in ConstructJob()
2468 !Args.hasFlag(options::OPT_mconstant_cfstrings, in ConstructJob()
2474 if (Arg *A = Args.getLastArg(options::OPT_fshort_wchar)) in ConstructJob()
2475 A->render(Args, CmdArgs); in ConstructJob()
2482 if (Args.hasFlag(options::OPT_fpascal_strings, in ConstructJob()
2485 Args.hasFlag(options::OPT_mpascal_strings, in ConstructJob()
2492 if (Arg *A = Args.getLastArg(options::OPT_fpack_struct_EQ)) { in ConstructJob()
2494 CmdArgs.push_back(A->getValue(Args)); in ConstructJob()
2495 } else if (Args.hasFlag(options::OPT_fpack_struct, in ConstructJob()
2501 if (Args.hasArg(options::OPT_mkernel) || in ConstructJob()
2502 Args.hasArg(options::OPT_fapple_kext)) { in ConstructJob()
2503 if (!Args.hasArg(options::OPT_fcommon)) in ConstructJob()
2505 Args.ClaimAllArgs(options::OPT_fno_common); in ConstructJob()
2509 else if (!Args.hasFlag(options::OPT_fcommon, options::OPT_fno_common)) in ConstructJob()
2514 if (!Args.hasFlag(options::OPT_fsigned_bitfields, in ConstructJob()
2517 << Args.getLastArg(options::OPT_funsigned_bitfields)->getAsString(Args); in ConstructJob()
2520 if (!Args.hasFlag(options::OPT_ffor_scope, in ConstructJob()
2523 << Args.getLastArg(options::OPT_fno_for_scope)->getAsString(Args); in ConstructJob()
2526 if (!Args.hasFlag(options::OPT_fcaret_diagnostics, in ConstructJob()
2531 if (!Args.hasFlag(options::OPT_fdiagnostics_fixit_info, in ConstructJob()
2536 if (Args.hasFlag(options::OPT_fdiagnostics_show_option, in ConstructJob()
2541 Args.getLastArg(options::OPT_fdiagnostics_show_category_EQ)) { in ConstructJob()
2543 CmdArgs.push_back(A->getValue(Args)); in ConstructJob()
2547 Args.getLastArg(options::OPT_fdiagnostics_format_EQ)) { in ConstructJob()
2549 CmdArgs.push_back(A->getValue(Args)); in ConstructJob()
2552 if (Arg *A = Args.getLastArg( in ConstructJob()
2564 if (Args.hasFlag(options::OPT_fcolor_diagnostics, in ConstructJob()
2569 if (!Args.hasFlag(options::OPT_fshow_source_location, in ConstructJob()
2573 if (!Args.hasFlag(options::OPT_fshow_column, in ConstructJob()
2578 if (!Args.hasFlag(options::OPT_fspell_checking, in ConstructJob()
2584 (void) Args.hasFlag(options::OPT_fasm_blocks, options::OPT_fno_asm_blocks, in ConstructJob()
2587 if (Arg *A = Args.getLastArg(options::OPT_fshow_overloads_EQ)) in ConstructJob()
2588 A->render(Args, CmdArgs); in ConstructJob()
2592 if (Arg *A = Args.getLastArg(options::OPT_fdollars_in_identifiers, in ConstructJob()
2602 if (Arg *A = Args.getLastArg(options::OPT_funit_at_a_time, in ConstructJob()
2605 D.Diag(diag::warn_drv_clang_unsupported) << A->getAsString(Args); in ConstructJob()
2608 if (Args.hasFlag(options::OPT_fapple_pragma_pack, in ConstructJob()
2619 if (!Args.hasArg(options::OPT_fbuiltin_strcat)) in ConstructJob()
2621 if (!Args.hasArg(options::OPT_fbuiltin_strcpy)) in ConstructJob()
2627 if (Arg *A = Args.getLastArg(options::OPT_traditional, in ConstructJob()
2632 D.Diag(diag::err_drv_clang_unsupported) << A->getAsString(Args); in ConstructJob()
2635 Args.AddLastArg(CmdArgs, options::OPT_dM); in ConstructJob()
2636 Args.AddLastArg(CmdArgs, options::OPT_dD); in ConstructJob()
2639 if (Arg *A = Args.getLastArg(options::OPT__serialize_diags)) { in ConstructJob()
2641 CmdArgs.push_back(Args.MakeArgString(A->getValue(Args))); in ConstructJob()
2646 Args.AddAllArgValues(CmdArgs, options::OPT_Xclang); in ConstructJob()
2647 for (arg_iterator it = Args.filtered_begin(options::OPT_mllvm), in ConstructJob()
2648 ie = Args.filtered_end(); it != ie; ++it) { in ConstructJob()
2653 if (StringRef((*it)->getValue(Args, 0)) == "-disable-llvm-optzns") in ConstructJob()
2656 (*it)->render(Args, CmdArgs); in ConstructJob()
2676 II.getInputArg().renderAsInput(Args, CmdArgs); in ConstructJob()
2679 Args.AddAllArgs(CmdArgs, options::OPT_undef); in ConstructJob()
2687 for (ArgList::const_iterator it = Args.begin(), in ConstructJob()
2688 ie = Args.end(); it != ie; ++it) in ConstructJob()
2689 (*it)->render(Args, OriginalArgs); in ConstructJob()
2698 CmdArgs.push_back(Args.MakeArgString(Flags.str())); in ConstructJob()
2703 if (Arg *A = Args.getLastArg(options::OPT_pg)) in ConstructJob()
2704 if (Args.hasArg(options::OPT_fomit_frame_pointer)) in ConstructJob()
2706 << "-fomit-frame-pointer" << A->getAsString(Args); in ConstructJob()
2713 Args.ClaimAllArgs(options::OPT_fpch_preprocess); in ConstructJob()
2717 Args.ClaimAllArgs(options::OPT_clang_ignored_f_Group); in ConstructJob()
2718 Args.ClaimAllArgs(options::OPT_clang_ignored_m_Group); in ConstructJob()
2721 Args.ClaimAllArgs(options::OPT_use_gold_plugin); in ConstructJob()
2722 Args.ClaimAllArgs(options::OPT_emit_llvm); in ConstructJob()
2725 void ClangAs::AddARMTargetArgs(const ArgList &Args, in AddARMTargetArgs() argument
2732 CmdArgs.push_back(getARMTargetCPU(Args, Triple)); in AddARMTargetArgs()
2735 if (const Arg *A = Args.getLastArg(options::OPT_mfpu_EQ)) in AddARMTargetArgs()
2736 addFPUArgs(D, A, Args, CmdArgs); in AddARMTargetArgs()
2739 if (const Arg *A = Args.getLastArg(options::OPT_mfpmath_EQ)) in AddARMTargetArgs()
2740 addFPMathArgs(D, A, Args, CmdArgs, getARMTargetCPU(Args, Triple)); in AddARMTargetArgs()
2746 const ArgList &Args, in ConstructJob() argument
2754 Args.ClaimAllArgs(options::OPT_w); in ConstructJob()
2756 Args.ClaimAllArgs(options::OPT_emit_llvm); in ConstructJob()
2758 Args.ClaimAllArgs(options::OPT_use_gold_plugin); in ConstructJob()
2768 getToolChain().ComputeEffectiveClangTriple(Args, Input.getType()); in ConstructJob()
2769 CmdArgs.push_back(Args.MakeArgString(TripleStr)); in ConstructJob()
2776 if (UseRelaxAll(C, Args)) in ConstructJob()
2786 AddARMTargetArgs(Args, CmdArgs); in ConstructJob()
2791 (void) Args.hasArg(options::OPT_force__cpusubtype__ALL); in ConstructJob()
2803 Args.ClaimAllArgs(options::OPT_g_Group); in ConstructJob()
2804 if (Arg *A = Args.getLastArg(options::OPT_g_Group)) in ConstructJob()
2813 for (ArgList::const_iterator it = Args.begin(), in ConstructJob()
2814 ie = Args.end(); it != ie; ++it) in ConstructJob()
2815 (*it)->render(Args, OriginalArgs); in ConstructJob()
2825 CmdArgs.push_back(Args.MakeArgString(Flags.str())); in ConstructJob()
2830 Args.AddAllArgValues(CmdArgs, options::OPT_Wa_COMMA, in ConstructJob()
2832 Args.AddAllArgs(CmdArgs, options::OPT_mllvm); in ConstructJob()
2848 const ArgList &Args, in ConstructJob() argument
2854 it = Args.begin(), ie = Args.end(); it != ie; ++it) { in ConstructJob()
2867 A->render(Args, CmdArgs); in ConstructJob()
2884 CmdArgs.push_back(Args.MakeArgString(Arch)); in ConstructJob()
2905 Args.AddAllArgValues(CmdArgs, options::OPT_Wa_COMMA, in ConstructJob()
2946 A.render(Args, CmdArgs); in ConstructJob()
2960 Args.MakeArgString(getToolChain().GetProgramPath(GCCName)); in ConstructJob()
3009 const ArgList &Args, in ConstructJob() argument
3016 MarchString += getHexagonTargetCPU(Args); in ConstructJob()
3017 CmdArgs.push_back(Args.MakeArgString(MarchString)); in ConstructJob()
3055 II.getInputArg().render(Args, CmdArgs); in ConstructJob()
3060 Args.MakeArgString(getToolChain().GetProgramPath(GCCName)); in ConstructJob()
3072 const ArgList &Args, in ConstructJob() argument
3079 it = Args.begin(), ie = Args.end(); it != ie; ++it) { in ConstructJob()
3092 A->render(Args, CmdArgs); in ConstructJob()
3100 if ((A = getLastHexagonArchArg(Args))) { in ConstructJob()
3102 A->render(Args, CmdArgs); in ConstructJob()
3104 CmdArgs.push_back (Args.MakeArgString("-m" + getHexagonTargetCPU(Args))); in ConstructJob()
3107 CmdArgs.push_back (Args.MakeArgString("-m" + getHexagonTargetCPU(Args))); in ConstructJob()
3118 Args.MakeArgString(getToolChain().GetProgramPath(GCCName)); in ConstructJob()
3142 II.getInputArg().render(Args, CmdArgs); in ConstructJob()
3174 const char *darwin::CC1::getBaseInputName(const ArgList &Args, in getBaseInputName() argument
3176 return Args.MakeArgString( in getBaseInputName()
3180 const char *darwin::CC1::getBaseInputStem(const ArgList &Args, in getBaseInputStem() argument
3182 const char *Str = getBaseInputName(Args, Inputs); in getBaseInputStem()
3185 return Args.MakeArgString(std::string(Str, End)); in getBaseInputStem()
3191 darwin::CC1::getDependencyFileName(const ArgList &Args, in getDependencyFileName() argument
3196 if (Arg *OutputOpt = Args.getLastArg(options::OPT_o)) { in getDependencyFileName()
3197 std::string Str(OutputOpt->getValue(Args)); in getDependencyFileName()
3200 Res = darwin::CC1::getBaseInputStem(Args, Inputs); in getDependencyFileName()
3202 return Args.MakeArgString(Res + ".d"); in getDependencyFileName()
3352 void darwin::CC1::AddCC1Args(const ArgList &Args, in AddCC1Args() argument
3356 CheckCodeGenerationOptions(D, Args); in AddCC1Args()
3359 if (!Args.hasArg(options::OPT_mkernel) && !Args.hasArg(options::OPT_static) && in AddCC1Args()
3360 !Args.hasArg(options::OPT_mdynamic_no_pic)) in AddCC1Args()
3365 if (!Args.hasArg(options::OPT_fbuiltin_strcat)) in AddCC1Args()
3367 if (!Args.hasArg(options::OPT_fbuiltin_strcpy)) in AddCC1Args()
3371 if (Args.hasArg(options::OPT_g_Flag) && in AddCC1Args()
3372 !Args.hasArg(options::OPT_fno_eliminate_unused_debug_symbols)) in AddCC1Args()
3376 void darwin::CC1::AddCC1OptionsArgs(const ArgList &Args, ArgStringList &CmdArgs, in AddCC1OptionsArgs() argument
3382 if (Args.hasArg(options::OPT_fast) || in AddCC1OptionsArgs()
3383 Args.hasArg(options::OPT_fastf) || in AddCC1OptionsArgs()
3384 Args.hasArg(options::OPT_fastcp)) in AddCC1OptionsArgs()
3387 if (Arg *A = Args.getLastArg(options::OPT_pg)) in AddCC1OptionsArgs()
3388 if (Args.hasArg(options::OPT_fomit_frame_pointer)) in AddCC1OptionsArgs()
3390 << A->getAsString(Args) << "-fomit-frame-pointer"; in AddCC1OptionsArgs()
3392 AddCC1Args(Args, CmdArgs); in AddCC1OptionsArgs()
3394 if (!Args.hasArg(options::OPT_Q)) in AddCC1OptionsArgs()
3398 CmdArgs.push_back(darwin::CC1::getBaseInputName(Args, Inputs)); in AddCC1OptionsArgs()
3400 Args.AddAllArgs(CmdArgs, options::OPT_d_Group); in AddCC1OptionsArgs()
3402 Args.AddAllArgs(CmdArgs, options::OPT_m_Group); in AddCC1OptionsArgs()
3403 Args.AddAllArgs(CmdArgs, options::OPT_a_Group); in AddCC1OptionsArgs()
3408 if ((Args.hasArg(options::OPT_c) || Args.hasArg(options::OPT_S)) && in AddCC1OptionsArgs()
3409 Args.hasArg(options::OPT_o)) { in AddCC1OptionsArgs()
3410 Arg *OutputOpt = Args.getLastArg(options::OPT_o); in AddCC1OptionsArgs()
3412 CmdArgs.push_back(OutputOpt->getValue(Args)); in AddCC1OptionsArgs()
3415 CmdArgs.push_back(darwin::CC1::getBaseInputStem(Args, Inputs)); in AddCC1OptionsArgs()
3418 Args.AddAllArgs(CmdArgs, options::OPT_g_Group); in AddCC1OptionsArgs()
3420 Args.AddAllArgs(CmdArgs, options::OPT_O); in AddCC1OptionsArgs()
3422 Args.AddAllArgs(CmdArgs, options::OPT_W_Group, options::OPT_pedantic_Group); in AddCC1OptionsArgs()
3423 Args.AddLastArg(CmdArgs, options::OPT_w); in AddCC1OptionsArgs()
3424 Args.AddAllArgs(CmdArgs, options::OPT_std_EQ, options::OPT_ansi, in AddCC1OptionsArgs()
3426 if (!Args.getLastArg(options::OPT_std_EQ, options::OPT_ansi)) { in AddCC1OptionsArgs()
3428 Args.AddAllArgsTranslated(CmdArgs, options::OPT_std_default_EQ, in AddCC1OptionsArgs()
3432 if (Args.hasArg(options::OPT_v)) in AddCC1OptionsArgs()
3434 if (Args.hasArg(options::OPT_pg) && in AddCC1OptionsArgs()
3437 Args.AddLastArg(CmdArgs, options::OPT_p); in AddCC1OptionsArgs()
3446 for (arg_iterator it = Args.filtered_begin(options::OPT_f_Group, in AddCC1OptionsArgs()
3448 ie = Args.filtered_end(); it != ie; ++it) { in AddCC1OptionsArgs()
3452 (*it)->render(Args, CmdArgs); in AddCC1OptionsArgs()
3456 Args.AddAllArgs(CmdArgs, options::OPT_f_Group, options::OPT_fsyntax_only); in AddCC1OptionsArgs()
3459 Args.ClaimAllArgs(options::OPT_f_clang_Group); in AddCC1OptionsArgs()
3461 Args.AddAllArgs(CmdArgs, options::OPT_undef); in AddCC1OptionsArgs()
3462 if (Args.hasArg(options::OPT_Qn)) in AddCC1OptionsArgs()
3472 Args.AddAllArgs(CmdArgs, options::OPT__param); in AddCC1OptionsArgs()
3474 if (Args.hasArg(options::OPT_fmudflap) || in AddCC1OptionsArgs()
3475 Args.hasArg(options::OPT_fmudflapth)) { in AddCC1OptionsArgs()
3480 if (Args.hasArg(options::OPT_coverage)) { in AddCC1OptionsArgs()
3489 void darwin::CC1::AddCPPOptionsArgs(const ArgList &Args, ArgStringList &CmdArgs, in AddCPPOptionsArgs() argument
3493 AddCPPUniqueOptionsArgs(Args, CmdArgs, Inputs); in AddCPPOptionsArgs()
3497 AddCC1Args(Args, CmdArgs); in AddCPPOptionsArgs()
3504 Args.AddAllArgs(CmdArgs, options::OPT_m_Group); in AddCPPOptionsArgs()
3505 Args.AddAllArgs(CmdArgs, options::OPT_std_EQ, options::OPT_ansi, in AddCPPOptionsArgs()
3507 if (!Args.getLastArg(options::OPT_std_EQ, options::OPT_ansi)) { in AddCPPOptionsArgs()
3509 Args.AddAllArgsTranslated(CmdArgs, options::OPT_std_default_EQ, in AddCPPOptionsArgs()
3512 Args.AddAllArgs(CmdArgs, options::OPT_W_Group, options::OPT_pedantic_Group); in AddCPPOptionsArgs()
3513 Args.AddLastArg(CmdArgs, options::OPT_w); in AddCPPOptionsArgs()
3516 Args.AddAllArgs(CmdArgs, options::OPT_f_Group, options::OPT_fsyntax_only); in AddCPPOptionsArgs()
3519 Args.ClaimAllArgs(options::OPT_f_clang_Group); in AddCPPOptionsArgs()
3521 if (Args.hasArg(options::OPT_g_Group) && !Args.hasArg(options::OPT_g0) && in AddCPPOptionsArgs()
3522 !Args.hasArg(options::OPT_fno_working_directory)) in AddCPPOptionsArgs()
3525 Args.AddAllArgs(CmdArgs, options::OPT_O); in AddCPPOptionsArgs()
3526 Args.AddAllArgs(CmdArgs, options::OPT_undef); in AddCPPOptionsArgs()
3527 if (Args.hasArg(options::OPT_save_temps)) in AddCPPOptionsArgs()
3531 void darwin::CC1::AddCPPUniqueOptionsArgs(const ArgList &Args, in AddCPPUniqueOptionsArgs() argument
3536 CheckPreprocessingOptions(D, Args); in AddCPPUniqueOptionsArgs()
3540 Args.AddLastArg(CmdArgs, options::OPT_C); in AddCPPUniqueOptionsArgs()
3541 Args.AddLastArg(CmdArgs, options::OPT_CC); in AddCPPUniqueOptionsArgs()
3542 if (!Args.hasArg(options::OPT_Q)) in AddCPPUniqueOptionsArgs()
3544 Args.AddAllArgs(CmdArgs, options::OPT_nostdinc); in AddCPPUniqueOptionsArgs()
3545 Args.AddAllArgs(CmdArgs, options::OPT_nostdincxx); in AddCPPUniqueOptionsArgs()
3546 Args.AddLastArg(CmdArgs, options::OPT_v); in AddCPPUniqueOptionsArgs()
3547 Args.AddAllArgs(CmdArgs, options::OPT_I_Group, options::OPT_F); in AddCPPUniqueOptionsArgs()
3548 Args.AddLastArg(CmdArgs, options::OPT_P); in AddCPPUniqueOptionsArgs()
3556 if (Args.hasArg(options::OPT_MD)) { in AddCPPUniqueOptionsArgs()
3558 CmdArgs.push_back(darwin::CC1::getDependencyFileName(Args, Inputs)); in AddCPPUniqueOptionsArgs()
3561 if (Args.hasArg(options::OPT_MMD)) { in AddCPPUniqueOptionsArgs()
3563 CmdArgs.push_back(darwin::CC1::getDependencyFileName(Args, Inputs)); in AddCPPUniqueOptionsArgs()
3566 Args.AddLastArg(CmdArgs, options::OPT_M); in AddCPPUniqueOptionsArgs()
3567 Args.AddLastArg(CmdArgs, options::OPT_MM); in AddCPPUniqueOptionsArgs()
3568 Args.AddAllArgs(CmdArgs, options::OPT_MF); in AddCPPUniqueOptionsArgs()
3569 Args.AddLastArg(CmdArgs, options::OPT_MG); in AddCPPUniqueOptionsArgs()
3570 Args.AddLastArg(CmdArgs, options::OPT_MP); in AddCPPUniqueOptionsArgs()
3571 Args.AddAllArgs(CmdArgs, options::OPT_MQ); in AddCPPUniqueOptionsArgs()
3572 Args.AddAllArgs(CmdArgs, options::OPT_MT); in AddCPPUniqueOptionsArgs()
3573 if (!Args.hasArg(options::OPT_M) && !Args.hasArg(options::OPT_MM) && in AddCPPUniqueOptionsArgs()
3574 (Args.hasArg(options::OPT_MD) || Args.hasArg(options::OPT_MMD))) { in AddCPPUniqueOptionsArgs()
3575 if (Arg *OutputOpt = Args.getLastArg(options::OPT_o)) { in AddCPPUniqueOptionsArgs()
3577 CmdArgs.push_back(OutputOpt->getValue(Args)); in AddCPPUniqueOptionsArgs()
3581 Args.AddLastArg(CmdArgs, options::OPT_remap); in AddCPPUniqueOptionsArgs()
3582 if (Args.hasArg(options::OPT_g3)) in AddCPPUniqueOptionsArgs()
3584 Args.AddLastArg(CmdArgs, options::OPT_H); in AddCPPUniqueOptionsArgs()
3586 AddCPPArgs(Args, CmdArgs); in AddCPPUniqueOptionsArgs()
3588 Args.AddAllArgs(CmdArgs, options::OPT_D, options::OPT_U, options::OPT_A); in AddCPPUniqueOptionsArgs()
3589 Args.AddAllArgs(CmdArgs, options::OPT_i_Group); in AddCPPUniqueOptionsArgs()
3598 Args.AddAllArgValues(CmdArgs, options::OPT_Wp_COMMA, in AddCPPUniqueOptionsArgs()
3601 if (Args.hasArg(options::OPT_fmudflap)) { in AddCPPUniqueOptionsArgs()
3607 if (Args.hasArg(options::OPT_fmudflapth)) { in AddCPPUniqueOptionsArgs()
3615 void darwin::CC1::AddCPPArgs(const ArgList &Args, in AddCPPArgs() argument
3619 if (Args.hasArg(options::OPT_static)) { in AddCPPArgs()
3628 if (Args.hasArg(options::OPT_pthread)) in AddCPPArgs()
3635 const ArgList &Args, in ConstructJob() argument
3643 if (Args.hasArg(options::OPT_traditional) || in ConstructJob()
3644 Args.hasArg(options::OPT_traditional_cpp)) in ConstructJob()
3652 if (Args.hasArg(options::OPT_E) || getToolChain().getDriver().CCCIsCPP) { in ConstructJob()
3653 AddCPPOptionsArgs(Args, CmdArgs, Inputs, OutputArgs); in ConstructJob()
3655 AddCPPOptionsArgs(Args, CmdArgs, Inputs, ArgStringList()); in ConstructJob()
3659 Args.AddAllArgs(CmdArgs, options::OPT_d_Group); in ConstructJob()
3665 Args.MakeArgString(getToolChain().GetProgramPath(CC1Name)); in ConstructJob()
3672 const ArgList &Args, in ConstructJob() argument
3680 Args.ClaimAllArgs(options::OPT__serialize_diags); in ConstructJob()
3683 if (const Arg *A = Args.getLastArg(options::OPT_traditional)) in ConstructJob()
3685 << A->getAsString(Args) << "-E"; in ConstructJob()
3712 bool OutputArgsEarly = (Args.hasArg(options::OPT_fsyntax_only) || in ConstructJob()
3713 Args.hasArg(options::OPT_S)); in ConstructJob()
3716 AddCPPUniqueOptionsArgs(Args, CmdArgs, Inputs); in ConstructJob()
3718 AddCC1OptionsArgs(Args, CmdArgs, Inputs, OutputArgs); in ConstructJob()
3720 AddCC1OptionsArgs(Args, CmdArgs, Inputs, ArgStringList()); in ConstructJob()
3741 AddCC1OptionsArgs(Args, CmdArgs, Inputs, OutputArgs); in ConstructJob()
3743 AddCC1OptionsArgs(Args, CmdArgs, Inputs, ArgStringList()); in ConstructJob()
3773 Args.MakeArgString(getToolChain().GetProgramPath(CC1Name)); in ConstructJob()
3780 const ArgList &Args, in ConstructJob() argument
3797 if (Args.hasArg(options::OPT_gstabs)) in ConstructJob()
3799 else if (Args.hasArg(options::OPT_g_Group)) in ConstructJob()
3804 AddDarwinArch(Args, CmdArgs); in ConstructJob()
3809 Args.hasArg(options::OPT_force__cpusubtype__ALL)) in ConstructJob()
3813 (Args.hasArg(options::OPT_mkernel) || in ConstructJob()
3814 Args.hasArg(options::OPT_static) || in ConstructJob()
3815 Args.hasArg(options::OPT_fapple_kext))) in ConstructJob()
3818 Args.AddAllArgValues(CmdArgs, options::OPT_Wa_COMMA, in ConstructJob()
3831 Args.MakeArgString(getToolChain().GetProgramPath("as")); in ConstructJob()
3837 void darwin::DarwinTool::AddDarwinArch(const ArgList &Args, in AddDarwinArch() argument
3839 StringRef ArchName = getDarwinToolChain().getDarwinArchName(Args); in AddDarwinArch()
3843 CmdArgs.push_back(Args.MakeArgString(ArchName)); in AddDarwinArch()
3851 const ArgList &Args, in AddLinkArgs() argument
3857 if (Arg *A = Args.getLastArg(options::OPT_mlinker_version_EQ)) { in AddLinkArgs()
3859 if (!Driver::GetReleaseVersion(A->getValue(Args), Version[0], in AddLinkArgs()
3863 << A->getAsString(Args); in AddLinkArgs()
3868 if (Version[0] >= 100 && !Args.hasArg(options::OPT_Z_Xlinker__no_demangle)) { in AddLinkArgs()
3873 Args.hasArg(options::OPT_static)); in AddLinkArgs()
3875 for (arg_iterator it = Args.filtered_begin(options::OPT_Xlinker, in AddLinkArgs()
3877 ie = Args.filtered_end(); it != ie; ++it) { in AddLinkArgs()
3880 if (StringRef(A->getValue(Args, i)) == "-kext") in AddLinkArgs()
3891 if (Version[0] >= 116 && D.IsUsingLTO(Args)) { in AddLinkArgs()
3900 Args.AddAllArgs(CmdArgs, options::OPT_static); in AddLinkArgs()
3901 if (!Args.hasArg(options::OPT_static)) in AddLinkArgs()
3903 if (Args.hasArg(options::OPT_fgnu_runtime)) { in AddLinkArgs()
3908 if (!Args.hasArg(options::OPT_dynamiclib)) { in AddLinkArgs()
3909 AddDarwinArch(Args, CmdArgs); in AddLinkArgs()
3911 Args.AddLastArg(CmdArgs, options::OPT_force__cpusubtype__ALL); in AddLinkArgs()
3913 Args.AddLastArg(CmdArgs, options::OPT_bundle); in AddLinkArgs()
3914 Args.AddAllArgs(CmdArgs, options::OPT_bundle__loader); in AddLinkArgs()
3915 Args.AddAllArgs(CmdArgs, options::OPT_client__name); in AddLinkArgs()
3918 if ((A = Args.getLastArg(options::OPT_compatibility__version)) || in AddLinkArgs()
3919 (A = Args.getLastArg(options::OPT_current__version)) || in AddLinkArgs()
3920 (A = Args.getLastArg(options::OPT_install__name))) in AddLinkArgs()
3922 << A->getAsString(Args) << "-dynamiclib"; in AddLinkArgs()
3924 Args.AddLastArg(CmdArgs, options::OPT_force__flat__namespace); in AddLinkArgs()
3925 Args.AddLastArg(CmdArgs, options::OPT_keep__private__externs); in AddLinkArgs()
3926 Args.AddLastArg(CmdArgs, options::OPT_private__bundle); in AddLinkArgs()
3931 if ((A = Args.getLastArg(options::OPT_bundle)) || in AddLinkArgs()
3932 (A = Args.getLastArg(options::OPT_bundle__loader)) || in AddLinkArgs()
3933 (A = Args.getLastArg(options::OPT_client__name)) || in AddLinkArgs()
3934 (A = Args.getLastArg(options::OPT_force__flat__namespace)) || in AddLinkArgs()
3935 (A = Args.getLastArg(options::OPT_keep__private__externs)) || in AddLinkArgs()
3936 (A = Args.getLastArg(options::OPT_private__bundle))) in AddLinkArgs()
3938 << A->getAsString(Args) << "-dynamiclib"; in AddLinkArgs()
3940 Args.AddAllArgsTranslated(CmdArgs, options::OPT_compatibility__version, in AddLinkArgs()
3942 Args.AddAllArgsTranslated(CmdArgs, options::OPT_current__version, in AddLinkArgs()
3945 AddDarwinArch(Args, CmdArgs); in AddLinkArgs()
3947 Args.AddAllArgsTranslated(CmdArgs, options::OPT_install__name, in AddLinkArgs()
3951 Args.AddLastArg(CmdArgs, options::OPT_all__load); in AddLinkArgs()
3952 Args.AddAllArgs(CmdArgs, options::OPT_allowable__client); in AddLinkArgs()
3953 Args.AddLastArg(CmdArgs, options::OPT_bind__at__load); in AddLinkArgs()
3955 Args.AddLastArg(CmdArgs, options::OPT_arch__errors__fatal); in AddLinkArgs()
3956 Args.AddLastArg(CmdArgs, options::OPT_dead__strip); in AddLinkArgs()
3957 Args.AddLastArg(CmdArgs, options::OPT_no__dead__strip__inits__and__terms); in AddLinkArgs()
3958 Args.AddAllArgs(CmdArgs, options::OPT_dylib__file); in AddLinkArgs()
3959 Args.AddLastArg(CmdArgs, options::OPT_dynamic); in AddLinkArgs()
3960 Args.AddAllArgs(CmdArgs, options::OPT_exported__symbols__list); in AddLinkArgs()
3961 Args.AddLastArg(CmdArgs, options::OPT_flat__namespace); in AddLinkArgs()
3962 Args.AddAllArgs(CmdArgs, options::OPT_force__load); in AddLinkArgs()
3963 Args.AddAllArgs(CmdArgs, options::OPT_headerpad__max__install__names); in AddLinkArgs()
3964 Args.AddAllArgs(CmdArgs, options::OPT_image__base); in AddLinkArgs()
3965 Args.AddAllArgs(CmdArgs, options::OPT_init); in AddLinkArgs()
3977 if (Args.hasArg(options::OPT_mios_simulator_version_min_EQ)) in AddLinkArgs()
3983 CmdArgs.push_back(Args.MakeArgString(TargetVersion.getAsString())); in AddLinkArgs()
3985 Args.AddLastArg(CmdArgs, options::OPT_nomultidefs); in AddLinkArgs()
3986 Args.AddLastArg(CmdArgs, options::OPT_multi__module); in AddLinkArgs()
3987 Args.AddLastArg(CmdArgs, options::OPT_single__module); in AddLinkArgs()
3988 Args.AddAllArgs(CmdArgs, options::OPT_multiply__defined); in AddLinkArgs()
3989 Args.AddAllArgs(CmdArgs, options::OPT_multiply__defined__unused); in AddLinkArgs()
3991 if (const Arg *A = Args.getLastArg(options::OPT_fpie, options::OPT_fPIE, in AddLinkArgs()
4001 Args.AddLastArg(CmdArgs, options::OPT_prebind); in AddLinkArgs()
4002 Args.AddLastArg(CmdArgs, options::OPT_noprebind); in AddLinkArgs()
4003 Args.AddLastArg(CmdArgs, options::OPT_nofixprebinding); in AddLinkArgs()
4004 Args.AddLastArg(CmdArgs, options::OPT_prebind__all__twolevel__modules); in AddLinkArgs()
4005 Args.AddLastArg(CmdArgs, options::OPT_read__only__relocs); in AddLinkArgs()
4006 Args.AddAllArgs(CmdArgs, options::OPT_sectcreate); in AddLinkArgs()
4007 Args.AddAllArgs(CmdArgs, options::OPT_sectorder); in AddLinkArgs()
4008 Args.AddAllArgs(CmdArgs, options::OPT_seg1addr); in AddLinkArgs()
4009 Args.AddAllArgs(CmdArgs, options::OPT_segprot); in AddLinkArgs()
4010 Args.AddAllArgs(CmdArgs, options::OPT_segaddr); in AddLinkArgs()
4011 Args.AddAllArgs(CmdArgs, options::OPT_segs__read__only__addr); in AddLinkArgs()
4012 Args.AddAllArgs(CmdArgs, options::OPT_segs__read__write__addr); in AddLinkArgs()
4013 Args.AddAllArgs(CmdArgs, options::OPT_seg__addr__table); in AddLinkArgs()
4014 Args.AddAllArgs(CmdArgs, options::OPT_seg__addr__table__filename); in AddLinkArgs()
4015 Args.AddAllArgs(CmdArgs, options::OPT_sub__library); in AddLinkArgs()
4016 Args.AddAllArgs(CmdArgs, options::OPT_sub__umbrella); in AddLinkArgs()
4024 } else if (const Arg *A = Args.getLastArg(options::OPT_isysroot)) { in AddLinkArgs()
4026 CmdArgs.push_back(A->getValue(Args)); in AddLinkArgs()
4032 Args.AddLastArg(CmdArgs, options::OPT_twolevel__namespace); in AddLinkArgs()
4033 Args.AddLastArg(CmdArgs, options::OPT_twolevel__namespace__hints); in AddLinkArgs()
4034 Args.AddAllArgs(CmdArgs, options::OPT_umbrella); in AddLinkArgs()
4035 Args.AddAllArgs(CmdArgs, options::OPT_undefined); in AddLinkArgs()
4036 Args.AddAllArgs(CmdArgs, options::OPT_unexported__symbols__list); in AddLinkArgs()
4037 Args.AddAllArgs(CmdArgs, options::OPT_weak__reference__mismatches); in AddLinkArgs()
4038 Args.AddLastArg(CmdArgs, options::OPT_X_Flag); in AddLinkArgs()
4039 Args.AddAllArgs(CmdArgs, options::OPT_y); in AddLinkArgs()
4040 Args.AddLastArg(CmdArgs, options::OPT_w); in AddLinkArgs()
4041 Args.AddAllArgs(CmdArgs, options::OPT_pagezero__size); in AddLinkArgs()
4042 Args.AddAllArgs(CmdArgs, options::OPT_segs__read__); in AddLinkArgs()
4043 Args.AddLastArg(CmdArgs, options::OPT_seglinkedit); in AddLinkArgs()
4044 Args.AddLastArg(CmdArgs, options::OPT_noseglinkedit); in AddLinkArgs()
4045 Args.AddAllArgs(CmdArgs, options::OPT_sectalign); in AddLinkArgs()
4046 Args.AddAllArgs(CmdArgs, options::OPT_sectobjectsymbols); in AddLinkArgs()
4047 Args.AddAllArgs(CmdArgs, options::OPT_segcreate); in AddLinkArgs()
4048 Args.AddLastArg(CmdArgs, options::OPT_whyload); in AddLinkArgs()
4049 Args.AddLastArg(CmdArgs, options::OPT_whatsloaded); in AddLinkArgs()
4050 Args.AddAllArgs(CmdArgs, options::OPT_dylinker__install__name); in AddLinkArgs()
4051 Args.AddLastArg(CmdArgs, options::OPT_dylinker); in AddLinkArgs()
4052 Args.AddLastArg(CmdArgs, options::OPT_Mach); in AddLinkArgs()
4058 const ArgList &Args, in ConstructJob() argument
4068 if (Args.hasArg(options::OPT_ccc_arcmt_check, in ConstructJob()
4070 for (ArgList::const_iterator I = Args.begin(), E = Args.end(); I != E; ++I) in ConstructJob()
4073 Args.MakeArgString(getToolChain().GetProgramPath("touch")); in ConstructJob()
4081 AddLinkArgs(C, Args, CmdArgs); in ConstructJob()
4083 Args.AddAllArgs(CmdArgs, options::OPT_d_Flag); in ConstructJob()
4084 Args.AddAllArgs(CmdArgs, options::OPT_s); in ConstructJob()
4085 Args.AddAllArgs(CmdArgs, options::OPT_t); in ConstructJob()
4086 Args.AddAllArgs(CmdArgs, options::OPT_Z_Flag); in ConstructJob()
4087 Args.AddAllArgs(CmdArgs, options::OPT_u_Group); in ConstructJob()
4088 Args.AddAllArgs(CmdArgs, options::OPT_A); in ConstructJob()
4089 Args.AddLastArg(CmdArgs, options::OPT_e); in ConstructJob()
4090 Args.AddAllArgs(CmdArgs, options::OPT_m_Separate); in ConstructJob()
4091 Args.AddAllArgs(CmdArgs, options::OPT_r); in ConstructJob()
4096 if (Args.hasArg(options::OPT_ObjC) || Args.hasArg(options::OPT_ObjCXX)) in ConstructJob()
4102 if (!Args.hasArg(options::OPT_A) && in ConstructJob()
4103 !Args.hasArg(options::OPT_nostdlib) && in ConstructJob()
4104 !Args.hasArg(options::OPT_nostartfiles)) { in ConstructJob()
4106 if (Args.hasArg(options::OPT_dynamiclib)) { in ConstructJob()
4121 if (Args.hasArg(options::OPT_bundle)) { in ConstructJob()
4122 if (!Args.hasArg(options::OPT_static)) { in ConstructJob()
4136 if (Args.hasArg(options::OPT_pg) && in ConstructJob()
4138 if (Args.hasArg(options::OPT_static) || in ConstructJob()
4139 Args.hasArg(options::OPT_object) || in ConstructJob()
4140 Args.hasArg(options::OPT_preload)) { in ConstructJob()
4148 if (Args.hasArg(options::OPT_static) || in ConstructJob()
4149 Args.hasArg(options::OPT_object) || in ConstructJob()
4150 Args.hasArg(options::OPT_preload)) { in ConstructJob()
4178 Args.hasArg(options::OPT_shared_libgcc) && in ConstructJob()
4181 Args.MakeArgString(getToolChain().GetFilePath("crt3.o")); in ConstructJob()
4186 Args.AddAllArgs(CmdArgs, options::OPT_L); in ConstructJob()
4191 if (Args.hasFlag(options::OPT_faddress_sanitizer, in ConstructJob()
4193 if (Args.hasArg(options::OPT_dynamiclib) || in ConstructJob()
4194 Args.hasArg(options::OPT_bundle)) { in ConstructJob()
4200 if (Args.hasArg(options::OPT_fopenmp)) in ConstructJob()
4204 getDarwinToolChain().AddLinkSearchPathArgs(Args, CmdArgs); in ConstructJob()
4206 if (isObjCRuntimeLinked(Args)) { in ConstructJob()
4216 if ((!runtime.HasARC && isObjCAutoRefCount(Args)) || in ConstructJob()
4218 getDarwinToolChain().AddLinkARCArgs(Args, CmdArgs); in ConstructJob()
4226 AddLinkerInputs(getToolChain(), Inputs, Args, CmdArgs); in ConstructJob()
4234 if (Args.hasArg(options::OPT_fnested_functions)) in ConstructJob()
4237 if (!Args.hasArg(options::OPT_nostdlib) && in ConstructJob()
4238 !Args.hasArg(options::OPT_nodefaultlibs)) { in ConstructJob()
4240 getToolChain().AddCXXStdlibLibArgs(Args, CmdArgs); in ConstructJob()
4245 getDarwinToolChain().AddLinkRuntimeLibArgs(Args, CmdArgs); in ConstructJob()
4248 if (!Args.hasArg(options::OPT_A) && in ConstructJob()
4249 !Args.hasArg(options::OPT_nostdlib) && in ConstructJob()
4250 !Args.hasArg(options::OPT_nostartfiles)) { in ConstructJob()
4254 Args.AddAllArgs(CmdArgs, options::OPT_T_Group); in ConstructJob()
4255 Args.AddAllArgs(CmdArgs, options::OPT_F); in ConstructJob()
4258 Args.MakeArgString(getToolChain().GetProgramPath("ld")); in ConstructJob()
4265 const ArgList &Args, in ConstructJob() argument
4282 Args.MakeArgString(getToolChain().GetProgramPath("lipo")); in ConstructJob()
4289 const ArgList &Args, in ConstructJob() argument
4302 Args.MakeArgString(getToolChain().GetProgramPath("dsymutil")); in ConstructJob()
4309 const ArgList &Args, in ConstructJob() argument
4325 Args.MakeArgString(getToolChain().GetProgramPath("dwarfdump")); in ConstructJob()
4332 const ArgList &Args, in ConstructJob() argument
4336 Args.AddAllArgValues(CmdArgs, options::OPT_Wa_COMMA, in ConstructJob()
4349 Args.MakeArgString(getToolChain().GetProgramPath("as")); in ConstructJob()
4357 const ArgList &Args, in ConstructJob() argument
4384 if ((!Args.hasArg(options::OPT_nostdlib)) && in ConstructJob()
4385 (!Args.hasArg(options::OPT_shared))) { in ConstructJob()
4390 if (Args.hasArg(options::OPT_static)) { in ConstructJob()
4395 if (Args.hasArg(options::OPT_shared)) { in ConstructJob()
4399 CmdArgs.push_back(Args.MakeArgString(LibPath + "ld.so.1")); in ConstructJob()
4410 if (!Args.hasArg(options::OPT_nostdlib) && in ConstructJob()
4411 !Args.hasArg(options::OPT_nostartfiles)) { in ConstructJob()
4412 if (!Args.hasArg(options::OPT_shared)) { in ConstructJob()
4413 CmdArgs.push_back(Args.MakeArgString(LibPath + "crt1.o")); in ConstructJob()
4414 CmdArgs.push_back(Args.MakeArgString(LibPath + "crti.o")); in ConstructJob()
4415 CmdArgs.push_back(Args.MakeArgString(LibPath + "values-Xa.o")); in ConstructJob()
4416 CmdArgs.push_back(Args.MakeArgString(GCCLibPath + "crtbegin.o")); in ConstructJob()
4418 CmdArgs.push_back(Args.MakeArgString(LibPath + "crti.o")); in ConstructJob()
4419 CmdArgs.push_back(Args.MakeArgString(LibPath + "values-Xa.o")); in ConstructJob()
4420 CmdArgs.push_back(Args.MakeArgString(GCCLibPath + "crtbegin.o")); in ConstructJob()
4423 CmdArgs.push_back(Args.MakeArgString(LibPath + "cxa_finalize.o")); in ConstructJob()
4426 CmdArgs.push_back(Args.MakeArgString("-L" + GCCLibPath)); in ConstructJob()
4428 Args.AddAllArgs(CmdArgs, options::OPT_L); in ConstructJob()
4429 Args.AddAllArgs(CmdArgs, options::OPT_T_Group); in ConstructJob()
4430 Args.AddAllArgs(CmdArgs, options::OPT_e); in ConstructJob()
4431 Args.AddAllArgs(CmdArgs, options::OPT_r); in ConstructJob()
4433 AddLinkerInputs(getToolChain(), Inputs, Args, CmdArgs); in ConstructJob()
4435 if (!Args.hasArg(options::OPT_nostdlib) && in ConstructJob()
4436 !Args.hasArg(options::OPT_nodefaultlibs)) { in ConstructJob()
4438 getToolChain().AddCXXStdlibLibArgs(Args, CmdArgs); in ConstructJob()
4440 if (!Args.hasArg(options::OPT_shared)) { in ConstructJob()
4447 if (!Args.hasArg(options::OPT_nostdlib) && in ConstructJob()
4448 !Args.hasArg(options::OPT_nostartfiles)) { in ConstructJob()
4449 CmdArgs.push_back(Args.MakeArgString(GCCLibPath + "crtend.o")); in ConstructJob()
4451 CmdArgs.push_back(Args.MakeArgString(LibPath + "crtn.o")); in ConstructJob()
4453 addProfileRT(getToolChain(), Args, CmdArgs, getToolChain().getTriple()); in ConstructJob()
4456 Args.MakeArgString(getToolChain().GetProgramPath("ld")); in ConstructJob()
4463 const ArgList &Args, in ConstructJob() argument
4467 Args.AddAllArgValues(CmdArgs, options::OPT_Wa_COMMA, in ConstructJob()
4480 Args.MakeArgString(getToolChain().GetProgramPath("gas")); in ConstructJob()
4487 const ArgList &Args, in ConstructJob() argument
4491 if ((!Args.hasArg(options::OPT_nostdlib)) && in ConstructJob()
4492 (!Args.hasArg(options::OPT_shared))) { in ConstructJob()
4497 if (Args.hasArg(options::OPT_static)) { in ConstructJob()
4503 if (Args.hasArg(options::OPT_shared)) { in ConstructJob()
4518 if (!Args.hasArg(options::OPT_nostdlib) && in ConstructJob()
4519 !Args.hasArg(options::OPT_nostartfiles)) { in ConstructJob()
4520 if (!Args.hasArg(options::OPT_shared)) { in ConstructJob()
4521 CmdArgs.push_back(Args.MakeArgString( in ConstructJob()
4523 CmdArgs.push_back(Args.MakeArgString( in ConstructJob()
4525 CmdArgs.push_back(Args.MakeArgString( in ConstructJob()
4528 CmdArgs.push_back(Args.MakeArgString( in ConstructJob()
4531 CmdArgs.push_back(Args.MakeArgString( in ConstructJob()
4535 CmdArgs.push_back(Args.MakeArgString("-L/opt/gcc4/lib/gcc/" in ConstructJob()
4539 Args.AddAllArgs(CmdArgs, options::OPT_L); in ConstructJob()
4540 Args.AddAllArgs(CmdArgs, options::OPT_T_Group); in ConstructJob()
4541 Args.AddAllArgs(CmdArgs, options::OPT_e); in ConstructJob()
4543 AddLinkerInputs(getToolChain(), Inputs, Args, CmdArgs); in ConstructJob()
4545 if (!Args.hasArg(options::OPT_nostdlib) && in ConstructJob()
4546 !Args.hasArg(options::OPT_nodefaultlibs)) { in ConstructJob()
4551 if (Args.hasArg(options::OPT_pthread)) in ConstructJob()
4553 if (!Args.hasArg(options::OPT_shared)) in ConstructJob()
4558 if (!Args.hasArg(options::OPT_nostdlib) && in ConstructJob()
4559 !Args.hasArg(options::OPT_nostartfiles)) { in ConstructJob()
4560 if (!Args.hasArg(options::OPT_shared)) in ConstructJob()
4561 CmdArgs.push_back(Args.MakeArgString( in ConstructJob()
4565 addProfileRT(getToolChain(), Args, CmdArgs, getToolChain().getTriple()); in ConstructJob()
4568 Args.MakeArgString(getToolChain().GetProgramPath("ld")); in ConstructJob()
4575 const ArgList &Args, in ConstructJob() argument
4579 Args.AddAllArgValues(CmdArgs, options::OPT_Wa_COMMA, in ConstructJob()
4592 Args.MakeArgString(getToolChain().GetProgramPath("as")); in ConstructJob()
4599 const ArgList &Args, in ConstructJob() argument
4604 if ((!Args.hasArg(options::OPT_nostdlib)) && in ConstructJob()
4605 (!Args.hasArg(options::OPT_shared))) { in ConstructJob()
4610 if (Args.hasArg(options::OPT_static)) { in ConstructJob()
4613 if (Args.hasArg(options::OPT_rdynamic)) in ConstructJob()
4617 if (Args.hasArg(options::OPT_shared)) { in ConstructJob()
4632 if (!Args.hasArg(options::OPT_nostdlib) && in ConstructJob()
4633 !Args.hasArg(options::OPT_nostartfiles)) { in ConstructJob()
4634 if (!Args.hasArg(options::OPT_shared)) { in ConstructJob()
4635 if (Args.hasArg(options::OPT_pg)) in ConstructJob()
4636 CmdArgs.push_back(Args.MakeArgString( in ConstructJob()
4639 CmdArgs.push_back(Args.MakeArgString( in ConstructJob()
4641 CmdArgs.push_back(Args.MakeArgString( in ConstructJob()
4644 CmdArgs.push_back(Args.MakeArgString( in ConstructJob()
4652 CmdArgs.push_back(Args.MakeArgString("-L/usr/lib/gcc-lib/" + Triple + in ConstructJob()
4655 Args.AddAllArgs(CmdArgs, options::OPT_L); in ConstructJob()
4656 Args.AddAllArgs(CmdArgs, options::OPT_T_Group); in ConstructJob()
4657 Args.AddAllArgs(CmdArgs, options::OPT_e); in ConstructJob()
4659 AddLinkerInputs(getToolChain(), Inputs, Args, CmdArgs); in ConstructJob()
4661 if (!Args.hasArg(options::OPT_nostdlib) && in ConstructJob()
4662 !Args.hasArg(options::OPT_nodefaultlibs)) { in ConstructJob()
4664 getToolChain().AddCXXStdlibLibArgs(Args, CmdArgs); in ConstructJob()
4665 if (Args.hasArg(options::OPT_pg)) in ConstructJob()
4675 if (Args.hasArg(options::OPT_pthread)) in ConstructJob()
4677 if (!Args.hasArg(options::OPT_shared)) { in ConstructJob()
4678 if (Args.hasArg(options::OPT_pg)) in ConstructJob()
4686 if (!Args.hasArg(options::OPT_nostdlib) && in ConstructJob()
4687 !Args.hasArg(options::OPT_nostartfiles)) { in ConstructJob()
4688 if (!Args.hasArg(options::OPT_shared)) in ConstructJob()
4689 CmdArgs.push_back(Args.MakeArgString( in ConstructJob()
4692 CmdArgs.push_back(Args.MakeArgString( in ConstructJob()
4697 Args.MakeArgString(getToolChain().GetProgramPath("ld")); in ConstructJob()
4704 const ArgList &Args, in ConstructJob() argument
4722 Args.AddAllArgValues(CmdArgs, options::OPT_Wa_COMMA, in ConstructJob()
4735 Args.MakeArgString(getToolChain().GetProgramPath("as")); in ConstructJob()
4742 const ArgList &Args, in ConstructJob() argument
4748 CmdArgs.push_back(Args.MakeArgString("--sysroot=" + D.SysRoot)); in ConstructJob()
4750 if (Args.hasArg(options::OPT_static)) { in ConstructJob()
4753 if (Args.hasArg(options::OPT_rdynamic)) in ConstructJob()
4756 if (Args.hasArg(options::OPT_shared)) { in ConstructJob()
4783 if (!Args.hasArg(options::OPT_nostdlib) && in ConstructJob()
4784 !Args.hasArg(options::OPT_nostartfiles)) { in ConstructJob()
4785 if (!Args.hasArg(options::OPT_shared)) { in ConstructJob()
4786 if (Args.hasArg(options::OPT_pg)) in ConstructJob()
4787 CmdArgs.push_back(Args.MakeArgString( in ConstructJob()
4790 const char *crt = Args.hasArg(options::OPT_pie) ? "Scrt1.o" : "crt1.o"; in ConstructJob()
4791 CmdArgs.push_back(Args.MakeArgString( in ConstructJob()
4794 CmdArgs.push_back(Args.MakeArgString( in ConstructJob()
4796 CmdArgs.push_back(Args.MakeArgString( in ConstructJob()
4799 CmdArgs.push_back(Args.MakeArgString( in ConstructJob()
4801 CmdArgs.push_back(Args.MakeArgString( in ConstructJob()
4806 Args.AddAllArgs(CmdArgs, options::OPT_L); in ConstructJob()
4810 CmdArgs.push_back(Args.MakeArgString(StringRef("-L") + *i)); in ConstructJob()
4811 Args.AddAllArgs(CmdArgs, options::OPT_T_Group); in ConstructJob()
4812 Args.AddAllArgs(CmdArgs, options::OPT_e); in ConstructJob()
4813 Args.AddAllArgs(CmdArgs, options::OPT_s); in ConstructJob()
4814 Args.AddAllArgs(CmdArgs, options::OPT_t); in ConstructJob()
4815 Args.AddAllArgs(CmdArgs, options::OPT_Z_Flag); in ConstructJob()
4816 Args.AddAllArgs(CmdArgs, options::OPT_r); in ConstructJob()
4818 AddLinkerInputs(getToolChain(), Inputs, Args, CmdArgs); in ConstructJob()
4820 if (!Args.hasArg(options::OPT_nostdlib) && in ConstructJob()
4821 !Args.hasArg(options::OPT_nodefaultlibs)) { in ConstructJob()
4823 getToolChain().AddCXXStdlibLibArgs(Args, CmdArgs); in ConstructJob()
4824 if (Args.hasArg(options::OPT_pg)) in ConstructJob()
4831 if (Args.hasArg(options::OPT_pg)) in ConstructJob()
4835 if (Args.hasArg(options::OPT_static)) { in ConstructJob()
4837 } else if (Args.hasArg(options::OPT_pg)) { in ConstructJob()
4845 if (Args.hasArg(options::OPT_pthread)) { in ConstructJob()
4846 if (Args.hasArg(options::OPT_pg)) in ConstructJob()
4852 if (Args.hasArg(options::OPT_pg)) { in ConstructJob()
4853 if (Args.hasArg(options::OPT_shared)) in ConstructJob()
4863 if (Args.hasArg(options::OPT_static)) { in ConstructJob()
4865 } else if (Args.hasArg(options::OPT_pg)) { in ConstructJob()
4874 if (!Args.hasArg(options::OPT_nostdlib) && in ConstructJob()
4875 !Args.hasArg(options::OPT_nostartfiles)) { in ConstructJob()
4876 if (!Args.hasArg(options::OPT_shared)) in ConstructJob()
4877 CmdArgs.push_back(Args.MakeArgString(getToolChain().GetFilePath( in ConstructJob()
4880 CmdArgs.push_back(Args.MakeArgString(getToolChain().GetFilePath( in ConstructJob()
4882 CmdArgs.push_back(Args.MakeArgString(getToolChain().GetFilePath( in ConstructJob()
4886 addProfileRT(getToolChain(), Args, CmdArgs, getToolChain().getTriple()); in ConstructJob()
4889 Args.MakeArgString(getToolChain().GetProgramPath("ld")); in ConstructJob()
4896 const ArgList &Args, in ConstructJob() argument
4911 Args.AddAllArgValues(CmdArgs, options::OPT_Wa_COMMA, in ConstructJob()
4923 const char *Exec = Args.MakeArgString((getToolChain().GetProgramPath("as"))); in ConstructJob()
4930 const ArgList &Args, in ConstructJob() argument
4936 CmdArgs.push_back(Args.MakeArgString("--sysroot=" + D.SysRoot)); in ConstructJob()
4938 if (Args.hasArg(options::OPT_static)) { in ConstructJob()
4941 if (Args.hasArg(options::OPT_rdynamic)) in ConstructJob()
4944 if (Args.hasArg(options::OPT_shared)) { in ConstructJob()
4966 if (!Args.hasArg(options::OPT_nostdlib) && in ConstructJob()
4967 !Args.hasArg(options::OPT_nostartfiles)) { in ConstructJob()
4968 if (!Args.hasArg(options::OPT_shared)) { in ConstructJob()
4969 CmdArgs.push_back(Args.MakeArgString( in ConstructJob()
4971 CmdArgs.push_back(Args.MakeArgString( in ConstructJob()
4973 CmdArgs.push_back(Args.MakeArgString( in ConstructJob()
4976 CmdArgs.push_back(Args.MakeArgString( in ConstructJob()
4978 CmdArgs.push_back(Args.MakeArgString( in ConstructJob()
4983 Args.AddAllArgs(CmdArgs, options::OPT_L); in ConstructJob()
4984 Args.AddAllArgs(CmdArgs, options::OPT_T_Group); in ConstructJob()
4985 Args.AddAllArgs(CmdArgs, options::OPT_e); in ConstructJob()
4986 Args.AddAllArgs(CmdArgs, options::OPT_s); in ConstructJob()
4987 Args.AddAllArgs(CmdArgs, options::OPT_t); in ConstructJob()
4988 Args.AddAllArgs(CmdArgs, options::OPT_Z_Flag); in ConstructJob()
4989 Args.AddAllArgs(CmdArgs, options::OPT_r); in ConstructJob()
4991 AddLinkerInputs(getToolChain(), Inputs, Args, CmdArgs); in ConstructJob()
4993 if (!Args.hasArg(options::OPT_nostdlib) && in ConstructJob()
4994 !Args.hasArg(options::OPT_nodefaultlibs)) { in ConstructJob()
4996 getToolChain().AddCXXStdlibLibArgs(Args, CmdArgs); in ConstructJob()
5001 if (Args.hasArg(options::OPT_static)) { in ConstructJob()
5010 if (Args.hasArg(options::OPT_pthread)) in ConstructJob()
5015 if (Args.hasArg(options::OPT_static)) { in ConstructJob()
5024 if (!Args.hasArg(options::OPT_nostdlib) && in ConstructJob()
5025 !Args.hasArg(options::OPT_nostartfiles)) { in ConstructJob()
5026 if (!Args.hasArg(options::OPT_shared)) in ConstructJob()
5027 CmdArgs.push_back(Args.MakeArgString(getToolChain().GetFilePath( in ConstructJob()
5030 CmdArgs.push_back(Args.MakeArgString(getToolChain().GetFilePath( in ConstructJob()
5032 CmdArgs.push_back(Args.MakeArgString(getToolChain().GetFilePath( in ConstructJob()
5036 addProfileRT(getToolChain(), Args, CmdArgs, getToolChain().getTriple()); in ConstructJob()
5038 const char *Exec = Args.MakeArgString(getToolChain().GetProgramPath("ld")); in ConstructJob()
5045 const ArgList &Args, in ConstructJob() argument
5073 getMipsCPUAndABI(Args, getToolChain(), CPUName, ABIName); in ConstructJob()
5094 Args.AddLastArg(CmdArgs, options::OPT_march_EQ); in ConstructJob()
5095 Args.AddLastArg(CmdArgs, options::OPT_mcpu_EQ); in ConstructJob()
5096 Args.AddLastArg(CmdArgs, options::OPT_mfpu_EQ); in ConstructJob()
5098 Args.AddAllArgValues(CmdArgs, options::OPT_Wa_COMMA, in ConstructJob()
5111 Args.MakeArgString(getToolChain().GetProgramPath("as")); in ConstructJob()
5116 const ArgList &Args) { in AddLibgcc() argument
5117 bool StaticLibgcc = Args.hasArg(options::OPT_static) || in AddLibgcc()
5118 Args.hasArg(options::OPT_static_libgcc); in AddLibgcc()
5135 else if (!Args.hasArg(options::OPT_shared) && D.CCCIsCXX) in AddLibgcc()
5142 const ArgList &Args, in ConstructJob() argument
5150 Args.ClaimAllArgs(options::OPT_g_Group); in ConstructJob()
5152 Args.ClaimAllArgs(options::OPT_emit_llvm); in ConstructJob()
5155 Args.ClaimAllArgs(options::OPT_w); in ConstructJob()
5158 CmdArgs.push_back(Args.MakeArgString("--sysroot=" + D.SysRoot)); in ConstructJob()
5160 if (Args.hasArg(options::OPT_pie)) in ConstructJob()
5163 if (Args.hasArg(options::OPT_rdynamic)) in ConstructJob()
5166 if (Args.hasArg(options::OPT_s)) in ConstructJob()
5174 if (!Args.hasArg(options::OPT_static)) { in ConstructJob()
5199 if (Args.hasArg(options::OPT_static)) { in ConstructJob()
5205 } else if (Args.hasArg(options::OPT_shared)) { in ConstructJob()
5211 (!Args.hasArg(options::OPT_static) && in ConstructJob()
5212 !Args.hasArg(options::OPT_shared))) { in ConstructJob()
5236 if (!Args.hasArg(options::OPT_nostdlib) && in ConstructJob()
5237 !Args.hasArg(options::OPT_nostartfiles)) { in ConstructJob()
5239 if (!Args.hasArg(options::OPT_shared)){ in ConstructJob()
5240 if (Args.hasArg(options::OPT_pie)) in ConstructJob()
5246 CmdArgs.push_back(Args.MakeArgString(ToolChain.GetFilePath(crt1))); in ConstructJob()
5248 CmdArgs.push_back(Args.MakeArgString(ToolChain.GetFilePath("crti.o"))); in ConstructJob()
5251 if (Args.hasArg(options::OPT_static)) in ConstructJob()
5253 else if (Args.hasArg(options::OPT_shared) || Args.hasArg(options::OPT_pie)) in ConstructJob()
5257 CmdArgs.push_back(Args.MakeArgString(ToolChain.GetFilePath(crtbegin))); in ConstructJob()
5260 Args.AddAllArgs(CmdArgs, options::OPT_L); in ConstructJob()
5266 CmdArgs.push_back(Args.MakeArgString(StringRef("-L") + *i)); in ConstructJob()
5271 if (D.IsUsingLTO(Args) || Args.hasArg(options::OPT_use_gold_plugin)) { in ConstructJob()
5274 CmdArgs.push_back(Args.MakeArgString(Plugin)); in ConstructJob()
5277 AddLinkerInputs(ToolChain, Inputs, Args, CmdArgs); in ConstructJob()
5279 if (D.CCCIsCXX && !Args.hasArg(options::OPT_nostdlib)) { in ConstructJob()
5280 bool OnlyLibstdcxxStatic = Args.hasArg(options::OPT_static_libstdcxx) && in ConstructJob()
5281 !Args.hasArg(options::OPT_static); in ConstructJob()
5284 ToolChain.AddCXXStdlibLibArgs(Args, CmdArgs); in ConstructJob()
5291 addAsanRTLinux(getToolChain(), Args, CmdArgs); in ConstructJob()
5293 if (!Args.hasArg(options::OPT_nostdlib)) { in ConstructJob()
5294 if (Args.hasArg(options::OPT_static)) in ConstructJob()
5297 AddLibgcc(D, CmdArgs, Args); in ConstructJob()
5299 if (Args.hasArg(options::OPT_pthread) || in ConstructJob()
5300 Args.hasArg(options::OPT_pthreads)) in ConstructJob()
5305 if (Args.hasArg(options::OPT_static)) in ConstructJob()
5308 AddLibgcc(D, CmdArgs, Args); in ConstructJob()
5311 if (!Args.hasArg(options::OPT_nostartfiles)) { in ConstructJob()
5313 if (Args.hasArg(options::OPT_shared) || Args.hasArg(options::OPT_pie)) in ConstructJob()
5318 CmdArgs.push_back(Args.MakeArgString(ToolChain.GetFilePath(crtend))); in ConstructJob()
5319 CmdArgs.push_back(Args.MakeArgString(ToolChain.GetFilePath("crtn.o"))); in ConstructJob()
5323 addProfileRT(getToolChain(), Args, CmdArgs, getToolChain().getTriple()); in ConstructJob()
5331 const ArgList &Args, in ConstructJob() argument
5335 Args.AddAllArgValues(CmdArgs, options::OPT_Wa_COMMA, in ConstructJob()
5348 Args.MakeArgString(getToolChain().GetProgramPath("as")); in ConstructJob()
5355 const ArgList &Args, in ConstructJob() argument
5367 if (!Args.hasArg(options::OPT_nostdlib) && in ConstructJob()
5368 !Args.hasArg(options::OPT_nostartfiles)) { in ConstructJob()
5369 CmdArgs.push_back(Args.MakeArgString(getToolChain().GetFilePath("crt1.o"))); in ConstructJob()
5370 CmdArgs.push_back(Args.MakeArgString(getToolChain().GetFilePath("crti.o"))); in ConstructJob()
5371 CmdArgs.push_back(Args.MakeArgString(getToolChain().GetFilePath("crtbegin.o"))); in ConstructJob()
5372 CmdArgs.push_back(Args.MakeArgString(getToolChain().GetFilePath("crtn.o"))); in ConstructJob()
5375 Args.AddAllArgs(CmdArgs, options::OPT_L); in ConstructJob()
5376 Args.AddAllArgs(CmdArgs, options::OPT_T_Group); in ConstructJob()
5377 Args.AddAllArgs(CmdArgs, options::OPT_e); in ConstructJob()
5379 AddLinkerInputs(getToolChain(), Inputs, Args, CmdArgs); in ConstructJob()
5381 addProfileRT(getToolChain(), Args, CmdArgs, getToolChain().getTriple()); in ConstructJob()
5383 if (!Args.hasArg(options::OPT_nostdlib) && in ConstructJob()
5384 !Args.hasArg(options::OPT_nodefaultlibs)) { in ConstructJob()
5386 getToolChain().AddCXXStdlibLibArgs(Args, CmdArgs); in ConstructJob()
5391 if (!Args.hasArg(options::OPT_nostdlib) && in ConstructJob()
5392 !Args.hasArg(options::OPT_nostartfiles)) { in ConstructJob()
5393 if (Args.hasArg(options::OPT_pthread)) in ConstructJob()
5399 Args.MakeArgString(getToolChain().GetFilePath("crtend.o"))); in ConstructJob()
5402 const char *Exec = Args.MakeArgString(getToolChain().GetProgramPath("ld")); in ConstructJob()
5413 const ArgList &Args, in ConstructJob() argument
5422 Args.AddAllArgValues(CmdArgs, options::OPT_Wa_COMMA, in ConstructJob()
5435 Args.MakeArgString(getToolChain().GetProgramPath("as")); in ConstructJob()
5442 const ArgList &Args, in ConstructJob() argument
5448 CmdArgs.push_back(Args.MakeArgString("--sysroot=" + D.SysRoot)); in ConstructJob()
5450 if (Args.hasArg(options::OPT_static)) { in ConstructJob()
5453 if (Args.hasArg(options::OPT_shared)) in ConstructJob()
5475 if (!Args.hasArg(options::OPT_nostdlib) && in ConstructJob()
5476 !Args.hasArg(options::OPT_nostartfiles)) { in ConstructJob()
5477 if (!Args.hasArg(options::OPT_shared)) { in ConstructJob()
5479 Args.MakeArgString(getToolChain().GetFilePath("crt1.o"))); in ConstructJob()
5481 Args.MakeArgString(getToolChain().GetFilePath("crti.o"))); in ConstructJob()
5483 Args.MakeArgString(getToolChain().GetFilePath("crtbegin.o"))); in ConstructJob()
5486 Args.MakeArgString(getToolChain().GetFilePath("crti.o"))); in ConstructJob()
5488 Args.MakeArgString(getToolChain().GetFilePath("crtbeginS.o"))); in ConstructJob()
5492 Args.AddAllArgs(CmdArgs, options::OPT_L); in ConstructJob()
5493 Args.AddAllArgs(CmdArgs, options::OPT_T_Group); in ConstructJob()
5494 Args.AddAllArgs(CmdArgs, options::OPT_e); in ConstructJob()
5496 AddLinkerInputs(getToolChain(), Inputs, Args, CmdArgs); in ConstructJob()
5498 if (!Args.hasArg(options::OPT_nostdlib) && in ConstructJob()
5499 !Args.hasArg(options::OPT_nodefaultlibs)) { in ConstructJob()
5504 if (!Args.hasArg(options::OPT_static)) { in ConstructJob()
5519 getToolChain().AddCXXStdlibLibArgs(Args, CmdArgs); in ConstructJob()
5523 if (Args.hasArg(options::OPT_shared)) { in ConstructJob()
5530 if (Args.hasArg(options::OPT_pthread)) in ConstructJob()
5533 if (!Args.hasArg(options::OPT_nolibc)) { in ConstructJob()
5537 if (Args.hasArg(options::OPT_shared)) { in ConstructJob()
5544 if (!Args.hasArg(options::OPT_nostdlib) && in ConstructJob()
5545 !Args.hasArg(options::OPT_nostartfiles)) { in ConstructJob()
5546 if (!Args.hasArg(options::OPT_shared)) in ConstructJob()
5547 CmdArgs.push_back(Args.MakeArgString( in ConstructJob()
5550 CmdArgs.push_back(Args.MakeArgString( in ConstructJob()
5552 CmdArgs.push_back(Args.MakeArgString( in ConstructJob()
5556 addProfileRT(getToolChain(), Args, CmdArgs, getToolChain().getTriple()); in ConstructJob()
5559 Args.MakeArgString(getToolChain().GetProgramPath("ld")); in ConstructJob()
5566 const ArgList &Args, in ConstructJob() argument
5571 CmdArgs.push_back(Args.MakeArgString(std::string("-out:") + in ConstructJob()
5577 if (!Args.hasArg(options::OPT_nostdlib) && in ConstructJob()
5578 !Args.hasArg(options::OPT_nostartfiles)) { in ConstructJob()
5584 AddLinkerInputs(getToolChain(), Inputs, Args, CmdArgs); in ConstructJob()
5587 Args.MakeArgString(getToolChain().GetProgramPath("link.exe")); in ConstructJob()