• 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()
178 Args.ClaimAllArgs(options::OPT_fobjc_link_runtime); in isObjCRuntimeLinked()
181 return Args.hasArg(options::OPT_fobjc_link_runtime); in isObjCRuntimeLinked()
184 static void addProfileRT(const ToolChain &TC, const ArgList &Args, in addProfileRT() argument
187 if (!(Args.hasArg(options::OPT_fprofile_arcs) || in addProfileRT()
188 Args.hasArg(options::OPT_fprofile_generate) || in addProfileRT()
189 Args.hasArg(options::OPT_fcreate_profile) || in addProfileRT()
190 Args.hasArg(options::OPT_coverage))) in addProfileRT()
200 CmdArgs.push_back(Args.MakeArgString(ProfileRT)); in addProfileRT()
205 const ArgList &Args, in AddPreprocessingOptions() argument
211 CheckPreprocessingOptions(D, Args); in AddPreprocessingOptions()
213 Args.AddLastArg(CmdArgs, options::OPT_C); in AddPreprocessingOptions()
214 Args.AddLastArg(CmdArgs, options::OPT_CC); in AddPreprocessingOptions()
217 if ((A = Args.getLastArg(options::OPT_M, options::OPT_MM)) || in AddPreprocessingOptions()
218 (A = Args.getLastArg(options::OPT_MD)) || in AddPreprocessingOptions()
219 (A = Args.getLastArg(options::OPT_MMD))) { in AddPreprocessingOptions()
224 } else if (Arg *MF = Args.getLastArg(options::OPT_MF)) { in AddPreprocessingOptions()
225 DepFile = MF->getValue(Args); in AddPreprocessingOptions()
231 DepFile = darwin::CC1::getDependencyFileName(Args, Inputs); in AddPreprocessingOptions()
238 if (!Args.hasArg(options::OPT_MT) && !Args.hasArg(options::OPT_MQ)) { in AddPreprocessingOptions()
243 Arg *OutputOpt = Args.getLastArg(options::OPT_o); in AddPreprocessingOptions()
245 DepTarget = OutputOpt->getValue(Args); in AddPreprocessingOptions()
252 DepTarget = Args.MakeArgString(llvm::sys::path::filename(P)); in AddPreprocessingOptions()
258 CmdArgs.push_back(Args.MakeArgString(Quoted)); in AddPreprocessingOptions()
266 if (Args.hasArg(options::OPT_MG)) { in AddPreprocessingOptions()
273 Args.AddLastArg(CmdArgs, options::OPT_MP); in AddPreprocessingOptions()
276 for (arg_iterator it = Args.filtered_begin(options::OPT_MT, in AddPreprocessingOptions()
278 ie = Args.filtered_end(); it != ie; ++it) { in AddPreprocessingOptions()
285 QuoteTarget(A->getValue(Args), Quoted); in AddPreprocessingOptions()
286 CmdArgs.push_back(Args.MakeArgString(Quoted)); in AddPreprocessingOptions()
290 A->render(Args, CmdArgs); in AddPreprocessingOptions()
300 for (arg_iterator it = Args.filtered_begin(options::OPT_clang_i_Group), in AddPreprocessingOptions()
301 ie = Args.filtered_end(); it != ie; ++it) { in AddPreprocessingOptions()
313 llvm::sys::Path P(A->getValue(Args)); in AddPreprocessingOptions()
348 CmdArgs.push_back(Args.MakeArgString(P.str())); in AddPreprocessingOptions()
353 << P.str() << A->getAsString(Args); in AddPreprocessingOptions()
360 A->render(Args, CmdArgs); in AddPreprocessingOptions()
363 Args.AddAllArgs(CmdArgs, options::OPT_D, options::OPT_U); in AddPreprocessingOptions()
364 Args.AddAllArgs(CmdArgs, options::OPT_I_Group, options::OPT_F, in AddPreprocessingOptions()
373 Args.AddAllArgValues(CmdArgs, options::OPT_Wp_COMMA, in AddPreprocessingOptions()
377 if (Arg *A = Args.getLastArg(options::OPT_I_)) in AddPreprocessingOptions()
378 D.Diag(diag::err_drv_I_dash_not_supported) << A->getAsString(Args); in AddPreprocessingOptions()
384 if (!Args.hasArg(options::OPT_isysroot)) { in AddPreprocessingOptions()
392 if (Arg *A = Args.getLastArg(options::OPT_fmodule_cache_path)) { in AddPreprocessingOptions()
394 A->render(Args, CmdArgs); in AddPreprocessingOptions()
401 CmdArgs.push_back(Args.MakeArgString(DefaultModuleCache)); in AddPreprocessingOptions()
409 addDirectoryList(Args, CmdArgs, "-I", "CPATH"); in AddPreprocessingOptions()
411 addDirectoryList(Args, CmdArgs, "-c-isystem", "C_INCLUDE_PATH"); in AddPreprocessingOptions()
413 addDirectoryList(Args, CmdArgs, "-cxx-isystem", "CPLUS_INCLUDE_PATH"); in AddPreprocessingOptions()
415 addDirectoryList(Args, CmdArgs, "-objc-isystem", "OBJC_INCLUDE_PATH"); in AddPreprocessingOptions()
417 addDirectoryList(Args, CmdArgs, "-objcxx-isystem", "OBJCPLUS_INCLUDE_PATH"); in AddPreprocessingOptions()
421 getToolChain().AddClangCXXStdlibIncludeArgs(Args, CmdArgs); in AddPreprocessingOptions()
424 getToolChain().AddClangSystemIncludeArgs(Args, CmdArgs); in AddPreprocessingOptions()
455 static std::string getARMTargetCPU(const ArgList &Args, in getARMTargetCPU() argument
460 if (Arg *A = Args.getLastArg(options::OPT_mcpu_EQ)) { in getARMTargetCPU()
461 StringRef MCPU = A->getValue(Args); in getARMTargetCPU()
470 if (Arg *A = Args.getLastArg(options::OPT_march_EQ)) { in getARMTargetCPU()
472 MArch = A->getValue(Args); in getARMTargetCPU()
532 static void addFPUArgs(const Driver &D, const Arg *A, const ArgList &Args, in addFPUArgs() argument
534 StringRef FPU = A->getValue(Args); in addFPUArgs()
566 D.Diag(diag::err_drv_clang_unsupported) << A->getAsString(Args); in addFPUArgs()
570 static void addFPMathArgs(const Driver &D, const Arg *A, const ArgList &Args, in addFPMathArgs() argument
572 StringRef FPMath = A->getValue(Args); in addFPMathArgs()
589 D.Diag(diag::err_drv_clang_unsupported) << A->getAsString(Args); in addFPMathArgs()
595 const ArgList &Args, in getARMFloatABI() argument
598 if (Arg *A = Args.getLastArg(options::OPT_msoft_float, in getARMFloatABI()
606 FloatABI = A->getValue(Args); in getARMFloatABI()
609 << A->getAsString(Args); in getARMFloatABI()
625 getLLVMArchSuffixForARM(getARMTargetCPU(Args, Triple)); in getARMFloatABI()
648 getLLVMArchSuffixForARM(getARMTargetCPU(Args, Triple)); in getARMFloatABI()
668 void Clang::AddARMTargetArgs(const ArgList &Args, in AddARMTargetArgs() argument
678 if (Arg *A = Args.getLastArg(options::OPT_mabi_EQ)) { in AddARMTargetArgs()
679 ABIName = A->getValue(Args); in AddARMTargetArgs()
700 CmdArgs.push_back(Args.MakeArgString(getARMTargetCPU(Args, Triple))); in AddARMTargetArgs()
703 StringRef FloatABI = getARMFloatABI(D, Args, Triple); in AddARMTargetArgs()
741 if (const Arg *A = Args.getLastArg(options::OPT_mfpu_EQ)) in AddARMTargetArgs()
742 addFPUArgs(D, A, Args, CmdArgs); in AddARMTargetArgs()
745 if (const Arg *A = Args.getLastArg(options::OPT_mfpmath_EQ)) in AddARMTargetArgs()
746 addFPMathArgs(D, A, Args, CmdArgs, getARMTargetCPU(Args, Triple)); in AddARMTargetArgs()
770 if (Arg *A = Args.getLastArg(options::OPT_mglobal_merge, in AddARMTargetArgs()
776 if (Args.hasArg(options::OPT_mno_implicit_float)) in AddARMTargetArgs()
782 static void getMipsCPUAndABI(const ArgList &Args, in getMipsCPUAndABI() argument
789 if (Arg *A = Args.getLastArg(options::OPT_march_EQ, in getMipsCPUAndABI()
791 CPUName = A->getValue(Args); in getMipsCPUAndABI()
793 if (Arg *A = Args.getLastArg(options::OPT_mabi_EQ)) in getMipsCPUAndABI()
794 ABIName = A->getValue(Args); in getMipsCPUAndABI()
832 static StringRef getMipsFloatABI(const Driver &D, const ArgList &Args) { in getMipsFloatABI() argument
836 if (Arg *A = Args.getLastArg(options::OPT_msoft_float, in getMipsFloatABI()
844 FloatABI = A->getValue(Args); in getMipsFloatABI()
846 D.Diag(diag::err_drv_invalid_mfloat_abi) << A->getAsString(Args); in getMipsFloatABI()
863 static void AddTargetFeature(const ArgList &Args, in AddTargetFeature() argument
868 if (Arg *A = Args.getLastArg(OnOpt, OffOpt)) { in AddTargetFeature()
871 CmdArgs.push_back(Args.MakeArgString("+" + FeatureName)); in AddTargetFeature()
873 CmdArgs.push_back(Args.MakeArgString("-" + FeatureName)); in AddTargetFeature()
877 void Clang::AddMIPSTargetArgs(const ArgList &Args, in AddMIPSTargetArgs() argument
882 getMipsCPUAndABI(Args, getToolChain(), CPUName, ABIName); in AddMIPSTargetArgs()
890 StringRef FloatABI = getMipsFloatABI(D, Args); in AddMIPSTargetArgs()
917 AddTargetFeature(Args, CmdArgs, in AddMIPSTargetArgs()
920 AddTargetFeature(Args, CmdArgs, in AddMIPSTargetArgs()
923 AddTargetFeature(Args, CmdArgs, in AddMIPSTargetArgs()
927 if (Arg *A = Args.getLastArg(options::OPT_G)) { in AddMIPSTargetArgs()
928 StringRef v = A->getValue(Args); in AddMIPSTargetArgs()
930 CmdArgs.push_back(Args.MakeArgString("-mips-ssection-threshold=" + v)); in AddMIPSTargetArgs()
936 static std::string getPPCTargetCPU(const ArgList &Args) { in getPPCTargetCPU() argument
937 if (Arg *A = Args.getLastArg(options::OPT_mcpu_EQ)) { in getPPCTargetCPU()
938 StringRef CPUName = A->getValue(Args); in getPPCTargetCPU()
980 void Clang::AddPPCTargetArgs(const ArgList &Args, in AddPPCTargetArgs() argument
982 std::string TargetCPUName = getPPCTargetCPU(Args); in AddPPCTargetArgs()
997 CmdArgs.push_back(Args.MakeArgString(TargetCPUName.c_str())); in AddPPCTargetArgs()
1001 void Clang::AddSparcTargetArgs(const ArgList &Args, in AddSparcTargetArgs() argument
1005 if (const Arg *A = Args.getLastArg(options::OPT_march_EQ)) { in AddSparcTargetArgs()
1007 CmdArgs.push_back(A->getValue(Args)); in AddSparcTargetArgs()
1012 if (Arg *A = Args.getLastArg(options::OPT_msoft_float, in AddSparcTargetArgs()
1044 void Clang::AddX86TargetArgs(const ArgList &Args, in AddX86TargetArgs() argument
1046 if (!Args.hasFlag(options::OPT_mred_zone, in AddX86TargetArgs()
1049 Args.hasArg(options::OPT_mkernel) || in AddX86TargetArgs()
1050 Args.hasArg(options::OPT_fapple_kext)) in AddX86TargetArgs()
1053 if (Args.hasFlag(options::OPT_msoft_float, in AddX86TargetArgs()
1059 if (const Arg *A = Args.getLastArg(options::OPT_march_EQ)) { in AddX86TargetArgs()
1060 if (StringRef(A->getValue(Args)) == "native") { in AddX86TargetArgs()
1068 CPUName = Args.MakeArgString(CPU); in AddX86TargetArgs()
1070 CPUName = A->getValue(Args); in AddX86TargetArgs()
1127 for (arg_iterator it = Args.filtered_begin(options::OPT_m_x86_Features_Group), in AddX86TargetArgs()
1128 ie = Args.filtered_end(); it != ie; ++it) { in AddX86TargetArgs()
1144 Features.push_back(Args.MakeArgString((IsNegative ? "-" : "+") + Name)); in AddX86TargetArgs()
1154 static Arg* getLastHexagonArchArg (const ArgList &Args) in getLastHexagonArchArg() argument
1158 for (ArgList::const_iterator it = Args.begin(), ie = Args.end(); in getLastHexagonArchArg()
1166 StringRef Value = (*it)->getValue(Args,0); in getLastHexagonArchArg()
1176 static StringRef getHexagonTargetCPU(const ArgList &Args) in getHexagonTargetCPU() argument
1182 if ((A = getLastHexagonArchArg (Args))) { in getHexagonTargetCPU()
1183 WhichHexagon = A->getValue(Args); in getHexagonTargetCPU()
1193 void Clang::AddHexagonTargetArgs(const ArgList &Args, in AddHexagonTargetArgs() argument
1198 CmdArgs.push_back(Args.MakeArgString("hexagon" + getHexagonTargetCPU(Args))); in AddHexagonTargetArgs()
1202 if (Args.hasArg(options::OPT_mqdsp6_compat)) in AddHexagonTargetArgs()
1205 if (Arg *A = Args.getLastArg(options::OPT_G, in AddHexagonTargetArgs()
1208 SmallDataThreshold += A->getValue(Args); in AddHexagonTargetArgs()
1210 CmdArgs.push_back(Args.MakeArgString(SmallDataThreshold)); in AddHexagonTargetArgs()
1214 if (!Args.hasArg(options::OPT_fno_short_enums)) in AddHexagonTargetArgs()
1216 if (Args.getLastArg(options::OPT_mieee_rnd_near)) { in AddHexagonTargetArgs()
1246 static void addExceptionArgs(const ArgList &Args, types::ID InputType, in addExceptionArgs() argument
1254 Args.ClaimAllArgs(options::OPT_fexceptions); in addExceptionArgs()
1255 Args.ClaimAllArgs(options::OPT_fno_exceptions); in addExceptionArgs()
1256 Args.ClaimAllArgs(options::OPT_fobjc_exceptions); in addExceptionArgs()
1257 Args.ClaimAllArgs(options::OPT_fno_objc_exceptions); in addExceptionArgs()
1258 Args.ClaimAllArgs(options::OPT_fcxx_exceptions); in addExceptionArgs()
1259 Args.ClaimAllArgs(options::OPT_fno_cxx_exceptions); in addExceptionArgs()
1269 if (Arg *A = Args.getLastArg(options::OPT_fexceptions, in addExceptionArgs()
1289 Args.hasFlag(options::OPT_fobjc_exceptions, in addExceptionArgs()
1301 if (Arg *A = Args.getLastArg(options::OPT_fcxx_exceptions, in addExceptionArgs()
1322 static bool ShouldDisableCFI(const ArgList &Args, in ShouldDisableCFI() argument
1328 Default = Args.hasFlag(options::OPT_integrated_as, in ShouldDisableCFI()
1332 return !Args.hasFlag(options::OPT_fdwarf2_cfi_asm, in ShouldDisableCFI()
1337 static bool ShouldDisableDwarfDirectory(const ArgList &Args, in ShouldDisableDwarfDirectory() argument
1340 bool UseIntegratedAs = Args.hasFlag(options::OPT_integrated_as, in ShouldDisableDwarfDirectory()
1343 bool UseDwarfDirectory = Args.hasFlag(options::OPT_fdwarf_directory_asm, in ShouldDisableDwarfDirectory()
1363 static bool UseRelaxAll(Compilation &C, const ArgList &Args) { in UseRelaxAll() argument
1366 if (Arg *A = Args.getLastArg(options::OPT_O_Group)) in UseRelaxAll()
1380 return Args.hasFlag(options::OPT_mrelax_all, options::OPT_mno_relax_all, in UseRelaxAll()
1386 static void addAsanRTLinux(const ToolChain &TC, const ArgList &Args, in addAsanRTLinux() argument
1388 if (!Args.hasFlag(options::OPT_faddress_sanitizer, in addAsanRTLinux()
1392 if (!Args.hasArg(options::OPT_shared)) { in addAsanRTLinux()
1393 if (!Args.hasArg(options::OPT_pie)) in addAsanRTLinux()
1404 if (!Args.hasArg(options::OPT_shared)) { in addAsanRTLinux()
1411 CmdArgs.push_back(Args.MakeArgString(LibAsan)); in addAsanRTLinux()
1421 static void addTsanRTLinux(const ToolChain &TC, const ArgList &Args, in addTsanRTLinux() argument
1423 if (!Args.hasFlag(options::OPT_fthread_sanitizer, in addTsanRTLinux()
1426 if (!Args.hasArg(options::OPT_shared)) { in addTsanRTLinux()
1433 CmdArgs.push_back(Args.MakeArgString(LibTsan)); in addTsanRTLinux()
1440 static bool shouldUseFramePointer(const ArgList &Args, in shouldUseFramePointer() argument
1442 if (Arg *A = Args.getLastArg(options::OPT_fno_omit_frame_pointer, in shouldUseFramePointer()
1450 if (Arg *A = Args.getLastArg(options::OPT_O_Group)) in shouldUseFramePointer()
1461 const ArgList &Args, in ConstructJob() argument
1463 bool KernelOrKext = Args.hasArg(options::OPT_mkernel, in ConstructJob()
1477 std::string TripleStr = getToolChain().ComputeEffectiveClangTriple(Args); in ConstructJob()
1478 CmdArgs.push_back(Args.MakeArgString(TripleStr)); in ConstructJob()
1496 if (UseRelaxAll(C, Args)) in ConstructJob()
1501 for (arg_iterator it = Args.filtered_begin(options::OPT_Wa_COMMA, in ConstructJob()
1503 ie = Args.filtered_end(); it != ie; ++it) { in ConstructJob()
1508 StringRef Value = A->getValue(Args, i); in ConstructJob()
1527 (void) Args.hasArg(options::OPT_force__cpusubtype__ALL); in ConstructJob()
1576 CmdArgs.push_back(darwin::CC1::getBaseInputName(Args, Inputs)); in ConstructJob()
1580 if (Args.hasArg(options::OPT_static)) in ConstructJob()
1595 if (!Args.hasArg(options::OPT__analyzer_no_default_checks)) { in ConstructJob()
1618 if (Arg *A = Args.getLastArg(options::OPT__analyzer_output)) in ConstructJob()
1619 CmdArgs.push_back(A->getValue(Args)); in ConstructJob()
1629 Args.AddAllArgValues(CmdArgs, options::OPT_Xanalyzer); in ConstructJob()
1632 CheckCodeGenerationOptions(D, Args); in ConstructJob()
1643 Arg *LastPICArg = Args.getLastArg(options::OPT_fPIC, options::OPT_fno_PIC, in ConstructJob()
1660 if (Args.hasArg(options::OPT_mkernel)) in ConstructJob()
1662 if (Args.hasArg(options::OPT_static)) in ConstructJob()
1664 bool DynamicNoPIC = Args.hasArg(options::OPT_mdynamic_no_pic); in ConstructJob()
1697 if (!Args.hasFlag(options::OPT_fmerge_all_constants, in ConstructJob()
1703 if (Arg *A = Args.getLastArg(options::OPT_mregparm_EQ)) { in ConstructJob()
1705 CmdArgs.push_back(A->getValue(Args)); in ConstructJob()
1708 if (Args.hasFlag(options::OPT_mrtd, options::OPT_mno_rtd, false)) in ConstructJob()
1711 if (shouldUseFramePointer(Args, getToolChain().getTriple())) in ConstructJob()
1713 if (!Args.hasFlag(options::OPT_fzero_initialized_in_bss, in ConstructJob()
1716 if (!Args.hasFlag(options::OPT_fstrict_aliasing, in ConstructJob()
1720 if (Args.hasFlag(options::OPT_fstrict_enums, options::OPT_fno_strict_enums, in ConstructJob()
1723 if (!Args.hasFlag(options::OPT_foptimize_sibling_calls, in ConstructJob()
1732 if (Arg *A = Args.getLastArg(options::OPT_ffast_math, in ConstructJob()
1740 if (Arg *A = Args.getLastArg(options::OPT_ffast_math, in ConstructJob()
1751 if (Arg *A = Args.getLastArg(options::OPT_ffast_math, in ConstructJob()
1763 if (Arg *A = Args.getLastArg(options::OPT_ffast_math, in ConstructJob()
1772 if (Arg *A = Args.getLastArg(options::OPT_ffast_math, in ConstructJob()
1781 if (Arg *A = Args.getLastArg(options::OPT_ffast_math, in ConstructJob()
1790 if (Arg *A = Args.getLastArg(options::OPT_ffast_math, in ConstructJob()
1804 if (Arg *A = Args.getLastArg(options::OPT_ffast_math, in ConstructJob()
1807 StringRef Val = A->getValue(Args); in ConstructJob()
1809 CmdArgs.push_back(Args.MakeArgString("-ffp-contract=" + Val)); in ConstructJob()
1816 CmdArgs.push_back(Args.MakeArgString("-ffp-contract=fast")); in ConstructJob()
1825 if (Args.hasArg(options::OPT_ffast_math)) in ConstructJob()
1827 if (Args.hasArg(options::OPT_ffinite_math_only)) in ConstructJob()
1833 if (Args.hasFlag(options::OPT_fverbose_asm, options::OPT_fno_verbose_asm, in ConstructJob()
1835 Args.hasArg(options::OPT_dA)) in ConstructJob()
1838 if (Args.hasArg(options::OPT_fdebug_pass_structure)) { in ConstructJob()
1842 if (Args.hasArg(options::OPT_fdebug_pass_arguments)) { in ConstructJob()
1857 if (Args.hasArg(options::OPT_mms_bitfields)) { in ConstructJob()
1865 Args.hasFlag(options::OPT_fasynchronous_unwind_tables, in ConstructJob()
1869 if (Args.hasFlag(options::OPT_funwind_tables, options::OPT_fno_unwind_tables, in ConstructJob()
1875 if (Arg *A = Args.getLastArg(options::OPT_flimited_precision_EQ)) { in ConstructJob()
1877 CmdArgs.push_back(A->getValue(Args)); in ConstructJob()
1881 (void) Args.hasArg(options::OPT_mtune_EQ); in ConstructJob()
1883 if (Arg *A = Args.getLastArg(options::OPT_mcmodel_EQ)) { in ConstructJob()
1885 CmdArgs.push_back(A->getValue(Args)); in ConstructJob()
1895 AddARMTargetArgs(Args, CmdArgs, KernelOrKext); in ConstructJob()
1902 AddMIPSTargetArgs(Args, CmdArgs); in ConstructJob()
1907 AddPPCTargetArgs(Args, CmdArgs); in ConstructJob()
1911 AddSparcTargetArgs(Args, CmdArgs); in ConstructJob()
1916 AddX86TargetArgs(Args, CmdArgs); in ConstructJob()
1920 AddHexagonTargetArgs(Args, CmdArgs); in ConstructJob()
1927 if (Arg *A = Args.getLastArg(options::OPT_mlinker_version_EQ)) { in ConstructJob()
1929 CmdArgs.push_back(A->getValue(Args)); in ConstructJob()
1933 if (Args.hasFlag(options::OPT_momit_leaf_frame_pointer, in ConstructJob()
1941 if (!Args.hasArg(options::OPT_fallow_unsupported)) { in ConstructJob()
1946 if ((Unsupported = Args.getLastArg(options::OPT_fapple_kext)) || in ConstructJob()
1947 (Unsupported = Args.getLastArg(options::OPT_mkernel))) in ConstructJob()
1953 Args.AddAllArgs(CmdArgs, options::OPT_v); in ConstructJob()
1954 Args.AddLastArg(CmdArgs, options::OPT_H); in ConstructJob()
1960 Args.AddLastArg(CmdArgs, options::OPT_P); in ConstructJob()
1961 Args.AddLastArg(CmdArgs, options::OPT_print_ivar_layout); in ConstructJob()
1971 Args.ClaimAllArgs(options::OPT_g_Group); in ConstructJob()
1972 if (Arg *A = Args.getLastArg(options::OPT_g_Group)) { in ConstructJob()
1982 Args.ClaimAllArgs(options::OPT_g_flags_Group); in ConstructJob()
1984 Args.AddAllArgs(CmdArgs, options::OPT_ffunction_sections); in ConstructJob()
1985 Args.AddAllArgs(CmdArgs, options::OPT_fdata_sections); in ConstructJob()
1987 Args.AddAllArgs(CmdArgs, options::OPT_finstrument_functions); in ConstructJob()
1989 if (Args.hasArg(options::OPT_ftest_coverage) || in ConstructJob()
1990 Args.hasArg(options::OPT_coverage)) in ConstructJob()
1992 if (Args.hasArg(options::OPT_fprofile_arcs) || in ConstructJob()
1993 Args.hasArg(options::OPT_coverage)) in ConstructJob()
2002 CmdArgs.push_back(Args.MakeArgString(absFilename)); in ConstructJob()
2007 if (Args.hasArg(options::OPT_nostdinc)) { in ConstructJob()
2011 if (Args.hasArg(options::OPT_nostdlibinc)) in ConstructJob()
2013 Args.AddLastArg(CmdArgs, options::OPT_nostdincxx); in ConstructJob()
2014 Args.AddLastArg(CmdArgs, options::OPT_nobuiltininc); in ConstructJob()
2021 Args.AddLastArg(CmdArgs, options::OPT_working_directory); in ConstructJob()
2024 if (!Args.hasArg(options::OPT_fno_objc_arc)) { in ConstructJob()
2025 if (const Arg *A = Args.getLastArg(options::OPT_ccc_arcmt_check, in ConstructJob()
2041 CmdArgs.push_back(A->getValue(Args)); in ConstructJob()
2043 Args.AddLastArg(CmdArgs, options::OPT_arcmt_migrate_report_output); in ConstructJob()
2044 Args.AddLastArg(CmdArgs, options::OPT_arcmt_migrate_emit_arc_errors); in ConstructJob()
2050 if (const Arg *A = Args.getLastArg(options::OPT_ccc_objcmt_migrate)) { in ConstructJob()
2053 << A->getAsString(Args) << "-ccc-arcmt-migrate"; in ConstructJob()
2056 CmdArgs.push_back(A->getValue(Args)); in ConstructJob()
2058 if (!Args.hasArg(options::OPT_objcmt_migrate_literals, in ConstructJob()
2064 Args.AddLastArg(CmdArgs, options::OPT_objcmt_migrate_literals); in ConstructJob()
2065 Args.AddLastArg(CmdArgs, options::OPT_objcmt_migrate_subscripting); in ConstructJob()
2074 AddPreprocessingOptions(C, D, Args, CmdArgs, Output, Inputs); in ConstructJob()
2080 Args.ClaimAllArgs(options::OPT_D); in ConstructJob()
2084 if (Arg *A = Args.getLastArg(options::OPT_O_Group)) { in ConstructJob()
2088 A->getValue(Args)[0] == '\0') in ConstructJob()
2091 A->render(Args, CmdArgs); in ConstructJob()
2094 Args.AddAllArgs(CmdArgs, options::OPT_W_Group); in ConstructJob()
2095 if (Args.hasFlag(options::OPT_pedantic, options::OPT_no_pedantic, false)) in ConstructJob()
2097 Args.AddLastArg(CmdArgs, options::OPT_pedantic_errors); in ConstructJob()
2098 Args.AddLastArg(CmdArgs, options::OPT_w); in ConstructJob()
2105 if (Arg *Std = Args.getLastArg(options::OPT_std_EQ, options::OPT_ansi)) { in ConstructJob()
2112 Std->render(Args, CmdArgs); in ConstructJob()
2114 if (Arg *A = Args.getLastArg(options::OPT_std_EQ, options::OPT_ansi, in ConstructJob()
2117 A->render(Args, CmdArgs); in ConstructJob()
2126 Args.AddAllArgsTranslated(CmdArgs, options::OPT_std_default_EQ, in ConstructJob()
2131 Args.AddLastArg(CmdArgs, options::OPT_trigraphs); in ConstructJob()
2136 if (Args.hasFlag(options::OPT_Wwrite_strings, options::OPT_Wno_write_strings, in ConstructJob()
2147 Args.hasFlag(options::OPT_Wdeprecated, options::OPT_Wno_deprecated, in ConstructJob()
2153 if (Arg *Asm = Args.getLastArg(options::OPT_fasm, options::OPT_fno_asm)) { in ConstructJob()
2160 if (ShouldDisableCFI(Args, getToolChain())) in ConstructJob()
2163 if (ShouldDisableDwarfDirectory(Args, getToolChain())) in ConstructJob()
2172 CmdArgs.push_back(Args.MakeArgString(CompDir)); in ConstructJob()
2176 if (Arg *A = Args.getLastArg(options::OPT_ftemplate_depth_, in ConstructJob()
2179 CmdArgs.push_back(A->getValue(Args)); in ConstructJob()
2182 if (Arg *A = Args.getLastArg(options::OPT_fconstexpr_depth_EQ)) { in ConstructJob()
2184 CmdArgs.push_back(A->getValue(Args)); in ConstructJob()
2187 if (Arg *A = Args.getLastArg(options::OPT_Wlarge_by_value_copy_EQ, in ConstructJob()
2190 StringRef bytes = A->getValue(Args); in ConstructJob()
2191 CmdArgs.push_back(Args.MakeArgString("-Wlarge-by-value-copy=" + bytes)); in ConstructJob()
2196 if (Arg *A = Args.getLastArg(options::OPT_fbounds_checking, in ConstructJob()
2199 StringRef val = A->getValue(Args); in ConstructJob()
2200 CmdArgs.push_back(Args.MakeArgString("-fbounds-checking=" + val)); in ConstructJob()
2205 if (Args.hasArg(options::OPT__relocatable_pch)) in ConstructJob()
2208 if (Arg *A = Args.getLastArg(options::OPT_fconstant_string_class_EQ)) { in ConstructJob()
2210 CmdArgs.push_back(A->getValue(Args)); in ConstructJob()
2213 if (Arg *A = Args.getLastArg(options::OPT_ftabstop_EQ)) { in ConstructJob()
2215 CmdArgs.push_back(A->getValue(Args)); in ConstructJob()
2219 if (Arg *A = Args.getLastArg(options::OPT_ferror_limit_EQ)) in ConstructJob()
2220 CmdArgs.push_back(A->getValue(Args)); in ConstructJob()
2224 if (Arg *A = Args.getLastArg(options::OPT_fmacro_backtrace_limit_EQ)) { in ConstructJob()
2226 CmdArgs.push_back(A->getValue(Args)); in ConstructJob()
2229 if (Arg *A = Args.getLastArg(options::OPT_ftemplate_backtrace_limit_EQ)) { in ConstructJob()
2231 CmdArgs.push_back(A->getValue(Args)); in ConstructJob()
2234 if (Arg *A = Args.getLastArg(options::OPT_fconstexpr_backtrace_limit_EQ)) { in ConstructJob()
2236 CmdArgs.push_back(A->getValue(Args)); in ConstructJob()
2241 if (Arg *A = Args.getLastArg(options::OPT_fmessage_length_EQ)) { in ConstructJob()
2242 CmdArgs.push_back(A->getValue(Args)); in ConstructJob()
2247 CmdArgs.push_back(Args.MakeArgString(Twine(N))); in ConstructJob()
2250 if (const Arg *A = Args.getLastArg(options::OPT_fvisibility_EQ)) { in ConstructJob()
2252 CmdArgs.push_back(A->getValue(Args)); in ConstructJob()
2255 Args.AddLastArg(CmdArgs, options::OPT_fvisibility_inlines_hidden); in ConstructJob()
2257 Args.AddLastArg(CmdArgs, options::OPT_ftlsmodel_EQ); in ConstructJob()
2260 if (Args.hasFlag(options::OPT_ffreestanding, options::OPT_fhosted, false) || in ConstructJob()
2265 Args.AddLastArg(CmdArgs, options::OPT_fcatch_undefined_behavior); in ConstructJob()
2266 Args.AddLastArg(CmdArgs, options::OPT_femit_all_decls); in ConstructJob()
2267 Args.AddLastArg(CmdArgs, options::OPT_fheinous_gnu_extensions); in ConstructJob()
2268 Args.AddLastArg(CmdArgs, options::OPT_flimit_debug_info); in ConstructJob()
2269 Args.AddLastArg(CmdArgs, options::OPT_fno_limit_debug_info); in ConstructJob()
2270 Args.AddLastArg(CmdArgs, options::OPT_fno_operator_names); in ConstructJob()
2271 Args.AddLastArg(CmdArgs, options::OPT_faltivec); in ConstructJob()
2272 Args.AddLastArg(CmdArgs, options::OPT_fdiagnostics_show_template_tree); in ConstructJob()
2273 Args.AddLastArg(CmdArgs, options::OPT_fno_elide_type); in ConstructJob()
2276 if (const Arg *A = Args.getLastArg(options::OPT_faltivec)) in ConstructJob()
2280 << A->getAsString(Args) << "ppc/ppc64"; in ConstructJob()
2283 Args.AddLastArg(CmdArgs, options::OPT_pg); in ConstructJob()
2285 if (Args.hasFlag(options::OPT_faddress_sanitizer, in ConstructJob()
2289 if (Args.hasFlag(options::OPT_fthread_sanitizer, in ConstructJob()
2294 if (!Args.hasFlag(options::OPT_flax_vector_conversions, in ConstructJob()
2298 if (Args.getLastArg(options::OPT_fapple_kext)) in ConstructJob()
2301 if (Args.hasFlag(options::OPT_frewrite_includes, in ConstructJob()
2305 Args.AddLastArg(CmdArgs, options::OPT_fobjc_sender_dependent_dispatch); in ConstructJob()
2306 Args.AddLastArg(CmdArgs, options::OPT_fdiagnostics_print_source_range_info); in ConstructJob()
2307 Args.AddLastArg(CmdArgs, options::OPT_fdiagnostics_parseable_fixits); in ConstructJob()
2308 Args.AddLastArg(CmdArgs, options::OPT_ftime_report); in ConstructJob()
2309 Args.AddLastArg(CmdArgs, options::OPT_ftrapv); in ConstructJob()
2311 if (Arg *A = Args.getLastArg(options::OPT_ftrapv_handler_EQ)) { in ConstructJob()
2313 CmdArgs.push_back(A->getValue(Args)); in ConstructJob()
2316 Args.AddLastArg(CmdArgs, options::OPT_ftrap_function_EQ); in ConstructJob()
2320 if (Arg *A = Args.getLastArg(options::OPT_fwrapv, in ConstructJob()
2324 } else if (Arg *A = Args.getLastArg(options::OPT_fstrict_overflow, in ConstructJob()
2329 Args.AddLastArg(CmdArgs, options::OPT_fwritable_strings); in ConstructJob()
2330 Args.AddLastArg(CmdArgs, options::OPT_funroll_loops); in ConstructJob()
2332 Args.AddLastArg(CmdArgs, options::OPT_pthread); in ConstructJob()
2336 if (Arg *A = Args.getLastArg(options::OPT_fno_stack_protector, in ConstructJob()
2349 CmdArgs.push_back(Args.MakeArgString(Twine(StackProtectorLevel))); in ConstructJob()
2352 for (arg_iterator it = Args.filtered_begin(options::OPT__param), in ConstructJob()
2353 ie = Args.filtered_end(); it != ie; ++it) { in ConstructJob()
2354 StringRef Str((*it)->getValue(Args)); in ConstructJob()
2358 CmdArgs.push_back(Args.MakeArgString(Str.drop_front(16))); in ConstructJob()
2365 if (Args.hasFlag(options::OPT_mstackrealign, options::OPT_mno_stackrealign, in ConstructJob()
2370 if (!Args.hasFlag(options::OPT_mno_stackrealign, options::OPT_mstackrealign, in ConstructJob()
2372 CmdArgs.push_back(Args.MakeArgString("-mstackrealign")); in ConstructJob()
2375 if (Args.hasArg(options::OPT_mstack_alignment)) { in ConstructJob()
2376 StringRef alignment = Args.getLastArgValue(options::OPT_mstack_alignment); in ConstructJob()
2377 CmdArgs.push_back(Args.MakeArgString("-mstack-alignment=" + alignment)); in ConstructJob()
2383 if (Args.hasArg(options::OPT_mkernel)) { in ConstructJob()
2384 if (!Args.hasArg(options::OPT_fapple_kext) && types::isCXX(InputType)) in ConstructJob()
2386 if (!Args.hasArg(options::OPT_fbuiltin)) in ConstructJob()
2388 Args.ClaimAllArgs(options::OPT_fno_builtin); in ConstructJob()
2391 else if (!Args.hasFlag(options::OPT_fbuiltin, options::OPT_fno_builtin)) in ConstructJob()
2394 if (!Args.hasFlag(options::OPT_fassume_sane_operator_new, in ConstructJob()
2399 if (Args.hasFlag(options::OPT_fblocks, options::OPT_fno_blocks, in ConstructJob()
2401 (Args.hasArg(options::OPT_fgnu_runtime) && in ConstructJob()
2402 Args.hasArg(options::OPT_fobjc_nonfragile_abi) && in ConstructJob()
2403 !Args.hasArg(options::OPT_fno_blocks))) { in ConstructJob()
2406 if (!Args.hasArg(options::OPT_fgnu_runtime) && in ConstructJob()
2414 if (Args.hasFlag(options::OPT_fmodules, options::OPT_fno_modules, false)) { in ConstructJob()
2415 bool AllowedInCXX = Args.hasFlag(options::OPT_fcxx_modules, in ConstructJob()
2423 if (Args.hasFlag(options::OPT_fno_access_control, in ConstructJob()
2429 if (Args.hasFlag(options::OPT_fno_elide_constructors, in ConstructJob()
2435 if (!Args.hasFlag(options::OPT_frtti, options::OPT_fno_rtti) || in ConstructJob()
2440 if (Args.hasFlag(options::OPT_fshort_enums, in ConstructJob()
2447 if (!Args.hasFlag(options::OPT_fsigned_char, options::OPT_funsigned_char, in ConstructJob()
2452 if (!Args.hasFlag(options::OPT_fthreadsafe_statics, in ConstructJob()
2457 if (!Args.hasFlag(options::OPT_fuse_cxa_atexit, in ConstructJob()
2466 if (Args.hasFlag(options::OPT_fms_extensions, options::OPT_fno_ms_extensions, in ConstructJob()
2471 if (Args.hasArg(options::OPT_fenable_experimental_ms_inline_asm)) in ConstructJob()
2475 if (Args.hasFlag(options::OPT_fms_compatibility, in ConstructJob()
2478 Args.hasFlag(options::OPT_fms_extensions, in ConstructJob()
2484 if (Args.hasFlag(options::OPT_fms_extensions, options::OPT_fno_ms_extensions, in ConstructJob()
2486 Args.hasArg(options::OPT_fmsc_version)) { in ConstructJob()
2487 StringRef msc_ver = Args.getLastArgValue(options::OPT_fmsc_version); in ConstructJob()
2491 CmdArgs.push_back(Args.MakeArgString("-fmsc-version=" + msc_ver)); in ConstructJob()
2496 if (Args.hasFlag(options::OPT_fborland_extensions, in ConstructJob()
2502 if (Args.hasFlag(options::OPT_fdelayed_template_parsing, in ConstructJob()
2509 if (Arg *A = Args.getLastArg(options::OPT_fgnu_keywords, in ConstructJob()
2511 A->render(Args, CmdArgs); in ConstructJob()
2513 if (Args.hasFlag(options::OPT_fgnu89_inline, in ConstructJob()
2518 if (Args.hasArg(options::OPT_fno_inline)) in ConstructJob()
2521 if (Args.hasArg(options::OPT_fno_inline_functions)) in ConstructJob()
2524 ObjCRuntime objcRuntime = AddObjCRuntimeArgs(Args, CmdArgs, rewriteKind); in ConstructJob()
2529 if (!Args.hasFlag(options::OPT_fobjc_legacy_dispatch, in ConstructJob()
2548 bool ARC = isObjCAutoRefCount(Args); in ConstructJob()
2558 if (getToolChain().GetCXXStdlibType(Args) == ToolChain::CST_Libcxx) in ConstructJob()
2566 if (Args.hasFlag(options::OPT_fobjc_arc_exceptions, in ConstructJob()
2579 const Arg *GCArg = Args.getLastArg(options::OPT_fobjc_gc_only); in ConstructJob()
2581 GCArg = Args.getLastArg(options::OPT_fobjc_gc); in ConstructJob()
2585 << GCArg->getAsString(Args); in ConstructJob()
2587 GCArg->render(Args, CmdArgs); in ConstructJob()
2591 << GCArg->getAsString(Args); in ConstructJob()
2596 addExceptionArgs(Args, InputType, getToolChain().getTriple(), in ConstructJob()
2603 if (!Args.hasFlag(options::OPT_fassume_sane_operator_new, in ConstructJob()
2609 if (!Args.hasFlag(options::OPT_fconstant_cfstrings, in ConstructJob()
2611 !Args.hasFlag(options::OPT_mconstant_cfstrings, in ConstructJob()
2617 if (Arg *A = Args.getLastArg(options::OPT_fshort_wchar)) in ConstructJob()
2618 A->render(Args, CmdArgs); in ConstructJob()
2625 if (Args.hasFlag(options::OPT_fpascal_strings, in ConstructJob()
2628 Args.hasFlag(options::OPT_mpascal_strings, in ConstructJob()
2635 if (Arg *A = Args.getLastArg(options::OPT_fpack_struct_EQ)) { in ConstructJob()
2637 PackStructStr += A->getValue(Args); in ConstructJob()
2638 CmdArgs.push_back(Args.MakeArgString(PackStructStr)); in ConstructJob()
2639 } else if (Args.hasFlag(options::OPT_fpack_struct, in ConstructJob()
2644 if (Args.hasArg(options::OPT_mkernel) || in ConstructJob()
2645 Args.hasArg(options::OPT_fapple_kext)) { in ConstructJob()
2646 if (!Args.hasArg(options::OPT_fcommon)) in ConstructJob()
2648 Args.ClaimAllArgs(options::OPT_fno_common); in ConstructJob()
2652 else if (!Args.hasFlag(options::OPT_fcommon, options::OPT_fno_common)) in ConstructJob()
2657 if (!Args.hasFlag(options::OPT_fsigned_bitfields, in ConstructJob()
2660 << Args.getLastArg(options::OPT_funsigned_bitfields)->getAsString(Args); in ConstructJob()
2663 if (!Args.hasFlag(options::OPT_ffor_scope, in ConstructJob()
2666 << Args.getLastArg(options::OPT_fno_for_scope)->getAsString(Args); in ConstructJob()
2669 if (!Args.hasFlag(options::OPT_fcaret_diagnostics, in ConstructJob()
2674 if (!Args.hasFlag(options::OPT_fdiagnostics_fixit_info, in ConstructJob()
2679 if (Args.hasFlag(options::OPT_fdiagnostics_show_option, in ConstructJob()
2684 Args.getLastArg(options::OPT_fdiagnostics_show_category_EQ)) { in ConstructJob()
2686 CmdArgs.push_back(A->getValue(Args)); in ConstructJob()
2690 Args.getLastArg(options::OPT_fdiagnostics_format_EQ)) { in ConstructJob()
2692 CmdArgs.push_back(A->getValue(Args)); in ConstructJob()
2695 if (Arg *A = Args.getLastArg( in ConstructJob()
2707 if (Args.hasFlag(options::OPT_fcolor_diagnostics, in ConstructJob()
2712 if (!Args.hasFlag(options::OPT_fshow_source_location, in ConstructJob()
2716 if (!Args.hasFlag(options::OPT_fshow_column, in ConstructJob()
2721 if (!Args.hasFlag(options::OPT_fspell_checking, in ConstructJob()
2727 (void) Args.hasFlag(options::OPT_fasm_blocks, options::OPT_fno_asm_blocks, in ConstructJob()
2730 if (Arg *A = Args.getLastArg(options::OPT_fshow_overloads_EQ)) in ConstructJob()
2731 A->render(Args, CmdArgs); in ConstructJob()
2735 if (Arg *A = Args.getLastArg(options::OPT_fdollars_in_identifiers, in ConstructJob()
2745 if (Arg *A = Args.getLastArg(options::OPT_funit_at_a_time, in ConstructJob()
2748 D.Diag(diag::warn_drv_clang_unsupported) << A->getAsString(Args); in ConstructJob()
2751 if (Args.hasFlag(options::OPT_fapple_pragma_pack, in ConstructJob()
2762 if (!Args.hasArg(options::OPT_fbuiltin_strcat)) in ConstructJob()
2764 if (!Args.hasArg(options::OPT_fbuiltin_strcpy)) in ConstructJob()
2770 if (Arg *A = Args.getLastArg(options::OPT_traditional, in ConstructJob()
2775 D.Diag(diag::err_drv_clang_unsupported) << A->getAsString(Args); in ConstructJob()
2778 Args.AddLastArg(CmdArgs, options::OPT_dM); in ConstructJob()
2779 Args.AddLastArg(CmdArgs, options::OPT_dD); in ConstructJob()
2782 if (Arg *A = Args.getLastArg(options::OPT__serialize_diags)) { in ConstructJob()
2784 CmdArgs.push_back(Args.MakeArgString(A->getValue(Args))); in ConstructJob()
2789 Args.AddAllArgValues(CmdArgs, options::OPT_Xclang); in ConstructJob()
2790 for (arg_iterator it = Args.filtered_begin(options::OPT_mllvm), in ConstructJob()
2791 ie = Args.filtered_end(); it != ie; ++it) { in ConstructJob()
2796 if (StringRef((*it)->getValue(Args, 0)) == "-disable-llvm-optzns") in ConstructJob()
2799 (*it)->render(Args, CmdArgs); in ConstructJob()
2819 II.getInputArg().renderAsInput(Args, CmdArgs); in ConstructJob()
2822 Args.AddAllArgs(CmdArgs, options::OPT_undef); in ConstructJob()
2830 for (ArgList::const_iterator it = Args.begin(), in ConstructJob()
2831 ie = Args.end(); it != ie; ++it) in ConstructJob()
2832 (*it)->render(Args, OriginalArgs); in ConstructJob()
2841 CmdArgs.push_back(Args.MakeArgString(Flags.str())); in ConstructJob()
2846 if (Arg *A = Args.getLastArg(options::OPT_pg)) in ConstructJob()
2847 if (Args.hasArg(options::OPT_fomit_frame_pointer)) in ConstructJob()
2849 << "-fomit-frame-pointer" << A->getAsString(Args); in ConstructJob()
2856 Args.ClaimAllArgs(options::OPT_fpch_preprocess); in ConstructJob()
2860 Args.ClaimAllArgs(options::OPT_clang_ignored_f_Group); in ConstructJob()
2861 Args.ClaimAllArgs(options::OPT_clang_ignored_m_Group); in ConstructJob()
2864 Args.ClaimAllArgs(options::OPT_use_gold_plugin); in ConstructJob()
2865 Args.ClaimAllArgs(options::OPT_emit_llvm); in ConstructJob()
2868 void ClangAs::AddARMTargetArgs(const ArgList &Args, in AddARMTargetArgs() argument
2875 CmdArgs.push_back(Args.MakeArgString(getARMTargetCPU(Args, Triple))); in AddARMTargetArgs()
2878 if (const Arg *A = Args.getLastArg(options::OPT_mfpu_EQ)) in AddARMTargetArgs()
2879 addFPUArgs(D, A, Args, CmdArgs); in AddARMTargetArgs()
2882 if (const Arg *A = Args.getLastArg(options::OPT_mfpmath_EQ)) in AddARMTargetArgs()
2883 addFPMathArgs(D, A, Args, CmdArgs, getARMTargetCPU(Args, Triple)); in AddARMTargetArgs()
3014 const ArgList &Args, in ConstructJob() argument
3022 Args.ClaimAllArgs(options::OPT_w); in ConstructJob()
3024 Args.ClaimAllArgs(options::OPT_emit_llvm); in ConstructJob()
3026 Args.ClaimAllArgs(options::OPT_use_gold_plugin); in ConstructJob()
3036 getToolChain().ComputeEffectiveClangTriple(Args, Input.getType()); in ConstructJob()
3037 CmdArgs.push_back(Args.MakeArgString(TripleStr)); in ConstructJob()
3044 if (UseRelaxAll(C, Args)) in ConstructJob()
3054 AddARMTargetArgs(Args, CmdArgs); in ConstructJob()
3059 (void) Args.hasArg(options::OPT_force__cpusubtype__ALL); in ConstructJob()
3071 Args.ClaimAllArgs(options::OPT_g_Group); in ConstructJob()
3072 if (Arg *A = Args.getLastArg(options::OPT_g_Group)) in ConstructJob()
3081 for (ArgList::const_iterator it = Args.begin(), in ConstructJob()
3082 ie = Args.end(); it != ie; ++it) in ConstructJob()
3083 (*it)->render(Args, OriginalArgs); in ConstructJob()
3093 CmdArgs.push_back(Args.MakeArgString(Flags.str())); in ConstructJob()
3098 Args.AddAllArgValues(CmdArgs, options::OPT_Wa_COMMA, in ConstructJob()
3100 Args.AddAllArgs(CmdArgs, options::OPT_mllvm); in ConstructJob()
3116 const ArgList &Args, in ConstructJob() argument
3122 it = Args.begin(), ie = Args.end(); it != ie; ++it) { in ConstructJob()
3135 A->render(Args, CmdArgs); in ConstructJob()
3152 CmdArgs.push_back(Args.MakeArgString(Arch)); in ConstructJob()
3173 Args.AddAllArgValues(CmdArgs, options::OPT_Wa_COMMA, in ConstructJob()
3214 A.render(Args, CmdArgs); in ConstructJob()
3228 Args.MakeArgString(getToolChain().GetProgramPath(GCCName)); in ConstructJob()
3277 const ArgList &Args, in ConstructJob() argument
3284 MarchString += getHexagonTargetCPU(Args); in ConstructJob()
3285 CmdArgs.push_back(Args.MakeArgString(MarchString)); in ConstructJob()
3323 II.getInputArg().render(Args, CmdArgs); in ConstructJob()
3328 Args.MakeArgString(getToolChain().GetProgramPath(GCCName)); in ConstructJob()
3340 const ArgList &Args, in ConstructJob() argument
3347 it = Args.begin(), ie = Args.end(); it != ie; ++it) { in ConstructJob()
3360 A->render(Args, CmdArgs); in ConstructJob()
3368 if ((A = getLastHexagonArchArg(Args))) { in ConstructJob()
3370 A->render(Args, CmdArgs); in ConstructJob()
3372 CmdArgs.push_back (Args.MakeArgString("-m" + getHexagonTargetCPU(Args))); in ConstructJob()
3375 CmdArgs.push_back (Args.MakeArgString("-m" + getHexagonTargetCPU(Args))); in ConstructJob()
3386 Args.MakeArgString(getToolChain().GetProgramPath(GCCName)); in ConstructJob()
3410 II.getInputArg().render(Args, CmdArgs); in ConstructJob()
3442 const char *darwin::CC1::getBaseInputName(const ArgList &Args, in getBaseInputName() argument
3444 return Args.MakeArgString( in getBaseInputName()
3448 const char *darwin::CC1::getBaseInputStem(const ArgList &Args, in getBaseInputStem() argument
3450 const char *Str = getBaseInputName(Args, Inputs); in getBaseInputStem()
3453 return Args.MakeArgString(std::string(Str, End)); in getBaseInputStem()
3459 darwin::CC1::getDependencyFileName(const ArgList &Args, in getDependencyFileName() argument
3464 if (Arg *OutputOpt = Args.getLastArg(options::OPT_o)) { in getDependencyFileName()
3465 std::string Str(OutputOpt->getValue(Args)); in getDependencyFileName()
3468 Res = darwin::CC1::getBaseInputStem(Args, Inputs); in getDependencyFileName()
3470 return Args.MakeArgString(Res + ".d"); in getDependencyFileName()
3620 void darwin::CC1::AddCC1Args(const ArgList &Args, in AddCC1Args() argument
3624 CheckCodeGenerationOptions(D, Args); in AddCC1Args()
3627 if (!Args.hasArg(options::OPT_mkernel) && !Args.hasArg(options::OPT_static) && in AddCC1Args()
3628 !Args.hasArg(options::OPT_mdynamic_no_pic)) in AddCC1Args()
3633 if (!Args.hasArg(options::OPT_fbuiltin_strcat)) in AddCC1Args()
3635 if (!Args.hasArg(options::OPT_fbuiltin_strcpy)) in AddCC1Args()
3639 if (Args.hasArg(options::OPT_g_Flag) && in AddCC1Args()
3640 !Args.hasArg(options::OPT_fno_eliminate_unused_debug_symbols)) in AddCC1Args()
3644 void darwin::CC1::AddCC1OptionsArgs(const ArgList &Args, ArgStringList &CmdArgs, in AddCC1OptionsArgs() argument
3650 if (Args.hasArg(options::OPT_fast) || in AddCC1OptionsArgs()
3651 Args.hasArg(options::OPT_fastf) || in AddCC1OptionsArgs()
3652 Args.hasArg(options::OPT_fastcp)) in AddCC1OptionsArgs()
3655 if (Arg *A = Args.getLastArg(options::OPT_pg)) in AddCC1OptionsArgs()
3656 if (Args.hasArg(options::OPT_fomit_frame_pointer)) in AddCC1OptionsArgs()
3658 << A->getAsString(Args) << "-fomit-frame-pointer"; in AddCC1OptionsArgs()
3660 AddCC1Args(Args, CmdArgs); in AddCC1OptionsArgs()
3662 if (!Args.hasArg(options::OPT_Q)) in AddCC1OptionsArgs()
3666 CmdArgs.push_back(darwin::CC1::getBaseInputName(Args, Inputs)); in AddCC1OptionsArgs()
3668 Args.AddAllArgs(CmdArgs, options::OPT_d_Group); in AddCC1OptionsArgs()
3670 Args.AddAllArgs(CmdArgs, options::OPT_m_Group); in AddCC1OptionsArgs()
3671 Args.AddAllArgs(CmdArgs, options::OPT_a_Group); in AddCC1OptionsArgs()
3676 if ((Args.hasArg(options::OPT_c) || Args.hasArg(options::OPT_S)) && in AddCC1OptionsArgs()
3677 Args.hasArg(options::OPT_o)) { in AddCC1OptionsArgs()
3678 Arg *OutputOpt = Args.getLastArg(options::OPT_o); in AddCC1OptionsArgs()
3680 CmdArgs.push_back(OutputOpt->getValue(Args)); in AddCC1OptionsArgs()
3683 CmdArgs.push_back(darwin::CC1::getBaseInputStem(Args, Inputs)); in AddCC1OptionsArgs()
3686 Args.AddAllArgs(CmdArgs, options::OPT_g_Group); in AddCC1OptionsArgs()
3688 Args.AddAllArgs(CmdArgs, options::OPT_O); in AddCC1OptionsArgs()
3690 Args.AddAllArgs(CmdArgs, options::OPT_W_Group, options::OPT_pedantic_Group); in AddCC1OptionsArgs()
3691 Args.AddLastArg(CmdArgs, options::OPT_w); in AddCC1OptionsArgs()
3692 Args.AddAllArgs(CmdArgs, options::OPT_std_EQ, options::OPT_ansi, in AddCC1OptionsArgs()
3694 if (!Args.getLastArg(options::OPT_std_EQ, options::OPT_ansi)) { in AddCC1OptionsArgs()
3696 Args.AddAllArgsTranslated(CmdArgs, options::OPT_std_default_EQ, in AddCC1OptionsArgs()
3700 if (Args.hasArg(options::OPT_v)) in AddCC1OptionsArgs()
3702 if (Args.hasArg(options::OPT_pg) && in AddCC1OptionsArgs()
3705 Args.AddLastArg(CmdArgs, options::OPT_p); in AddCC1OptionsArgs()
3714 for (arg_iterator it = Args.filtered_begin(options::OPT_f_Group, in AddCC1OptionsArgs()
3716 ie = Args.filtered_end(); it != ie; ++it) { in AddCC1OptionsArgs()
3720 (*it)->render(Args, CmdArgs); in AddCC1OptionsArgs()
3724 Args.AddAllArgs(CmdArgs, options::OPT_f_Group, options::OPT_fsyntax_only); in AddCC1OptionsArgs()
3727 Args.ClaimAllArgs(options::OPT_f_clang_Group); in AddCC1OptionsArgs()
3729 Args.AddAllArgs(CmdArgs, options::OPT_undef); in AddCC1OptionsArgs()
3730 if (Args.hasArg(options::OPT_Qn)) in AddCC1OptionsArgs()
3740 Args.AddAllArgs(CmdArgs, options::OPT__param); in AddCC1OptionsArgs()
3742 if (Args.hasArg(options::OPT_fmudflap) || in AddCC1OptionsArgs()
3743 Args.hasArg(options::OPT_fmudflapth)) { in AddCC1OptionsArgs()
3748 if (Args.hasArg(options::OPT_coverage)) { in AddCC1OptionsArgs()
3757 void darwin::CC1::AddCPPOptionsArgs(const ArgList &Args, ArgStringList &CmdArgs, in AddCPPOptionsArgs() argument
3761 AddCPPUniqueOptionsArgs(Args, CmdArgs, Inputs); in AddCPPOptionsArgs()
3765 AddCC1Args(Args, CmdArgs); in AddCPPOptionsArgs()
3772 Args.AddAllArgs(CmdArgs, options::OPT_m_Group); in AddCPPOptionsArgs()
3773 Args.AddAllArgs(CmdArgs, options::OPT_std_EQ, options::OPT_ansi, in AddCPPOptionsArgs()
3775 if (!Args.getLastArg(options::OPT_std_EQ, options::OPT_ansi)) { in AddCPPOptionsArgs()
3777 Args.AddAllArgsTranslated(CmdArgs, options::OPT_std_default_EQ, in AddCPPOptionsArgs()
3780 Args.AddAllArgs(CmdArgs, options::OPT_W_Group, options::OPT_pedantic_Group); in AddCPPOptionsArgs()
3781 Args.AddLastArg(CmdArgs, options::OPT_w); in AddCPPOptionsArgs()
3784 Args.AddAllArgs(CmdArgs, options::OPT_f_Group, options::OPT_fsyntax_only); in AddCPPOptionsArgs()
3787 Args.ClaimAllArgs(options::OPT_f_clang_Group); in AddCPPOptionsArgs()
3789 if (Args.hasArg(options::OPT_g_Group) && !Args.hasArg(options::OPT_g0) && in AddCPPOptionsArgs()
3790 !Args.hasArg(options::OPT_fno_working_directory)) in AddCPPOptionsArgs()
3793 Args.AddAllArgs(CmdArgs, options::OPT_O); in AddCPPOptionsArgs()
3794 Args.AddAllArgs(CmdArgs, options::OPT_undef); in AddCPPOptionsArgs()
3795 if (Args.hasArg(options::OPT_save_temps)) in AddCPPOptionsArgs()
3799 void darwin::CC1::AddCPPUniqueOptionsArgs(const ArgList &Args, in AddCPPUniqueOptionsArgs() argument
3804 CheckPreprocessingOptions(D, Args); in AddCPPUniqueOptionsArgs()
3808 Args.AddLastArg(CmdArgs, options::OPT_C); in AddCPPUniqueOptionsArgs()
3809 Args.AddLastArg(CmdArgs, options::OPT_CC); in AddCPPUniqueOptionsArgs()
3810 if (!Args.hasArg(options::OPT_Q)) in AddCPPUniqueOptionsArgs()
3812 Args.AddAllArgs(CmdArgs, options::OPT_nostdinc); in AddCPPUniqueOptionsArgs()
3813 Args.AddAllArgs(CmdArgs, options::OPT_nostdincxx); in AddCPPUniqueOptionsArgs()
3814 Args.AddLastArg(CmdArgs, options::OPT_v); in AddCPPUniqueOptionsArgs()
3815 Args.AddAllArgs(CmdArgs, options::OPT_I_Group, options::OPT_F); in AddCPPUniqueOptionsArgs()
3816 Args.AddLastArg(CmdArgs, options::OPT_P); in AddCPPUniqueOptionsArgs()
3824 if (Args.hasArg(options::OPT_MD)) { in AddCPPUniqueOptionsArgs()
3826 CmdArgs.push_back(darwin::CC1::getDependencyFileName(Args, Inputs)); in AddCPPUniqueOptionsArgs()
3829 if (Args.hasArg(options::OPT_MMD)) { in AddCPPUniqueOptionsArgs()
3831 CmdArgs.push_back(darwin::CC1::getDependencyFileName(Args, Inputs)); in AddCPPUniqueOptionsArgs()
3834 Args.AddLastArg(CmdArgs, options::OPT_M); in AddCPPUniqueOptionsArgs()
3835 Args.AddLastArg(CmdArgs, options::OPT_MM); in AddCPPUniqueOptionsArgs()
3836 Args.AddAllArgs(CmdArgs, options::OPT_MF); in AddCPPUniqueOptionsArgs()
3837 Args.AddLastArg(CmdArgs, options::OPT_MG); in AddCPPUniqueOptionsArgs()
3838 Args.AddLastArg(CmdArgs, options::OPT_MP); in AddCPPUniqueOptionsArgs()
3839 Args.AddAllArgs(CmdArgs, options::OPT_MQ); in AddCPPUniqueOptionsArgs()
3840 Args.AddAllArgs(CmdArgs, options::OPT_MT); in AddCPPUniqueOptionsArgs()
3841 if (!Args.hasArg(options::OPT_M) && !Args.hasArg(options::OPT_MM) && in AddCPPUniqueOptionsArgs()
3842 (Args.hasArg(options::OPT_MD) || Args.hasArg(options::OPT_MMD))) { in AddCPPUniqueOptionsArgs()
3843 if (Arg *OutputOpt = Args.getLastArg(options::OPT_o)) { in AddCPPUniqueOptionsArgs()
3845 CmdArgs.push_back(OutputOpt->getValue(Args)); in AddCPPUniqueOptionsArgs()
3849 Args.AddLastArg(CmdArgs, options::OPT_remap); in AddCPPUniqueOptionsArgs()
3850 if (Args.hasArg(options::OPT_g3)) in AddCPPUniqueOptionsArgs()
3852 Args.AddLastArg(CmdArgs, options::OPT_H); in AddCPPUniqueOptionsArgs()
3854 AddCPPArgs(Args, CmdArgs); in AddCPPUniqueOptionsArgs()
3856 Args.AddAllArgs(CmdArgs, options::OPT_D, options::OPT_U, options::OPT_A); in AddCPPUniqueOptionsArgs()
3857 Args.AddAllArgs(CmdArgs, options::OPT_i_Group); in AddCPPUniqueOptionsArgs()
3866 Args.AddAllArgValues(CmdArgs, options::OPT_Wp_COMMA, in AddCPPUniqueOptionsArgs()
3869 if (Args.hasArg(options::OPT_fmudflap)) { in AddCPPUniqueOptionsArgs()
3875 if (Args.hasArg(options::OPT_fmudflapth)) { in AddCPPUniqueOptionsArgs()
3883 void darwin::CC1::AddCPPArgs(const ArgList &Args, in AddCPPArgs() argument
3887 if (Args.hasArg(options::OPT_static)) { in AddCPPArgs()
3896 if (Args.hasArg(options::OPT_pthread)) in AddCPPArgs()
3903 const ArgList &Args, in ConstructJob() argument
3911 if (Args.hasArg(options::OPT_traditional) || in ConstructJob()
3912 Args.hasArg(options::OPT_traditional_cpp)) in ConstructJob()
3920 if (Args.hasArg(options::OPT_E) || getToolChain().getDriver().CCCIsCPP) { in ConstructJob()
3921 AddCPPOptionsArgs(Args, CmdArgs, Inputs, OutputArgs); in ConstructJob()
3923 AddCPPOptionsArgs(Args, CmdArgs, Inputs, ArgStringList()); in ConstructJob()
3927 Args.AddAllArgs(CmdArgs, options::OPT_d_Group); in ConstructJob()
3933 Args.MakeArgString(getToolChain().GetProgramPath(CC1Name)); in ConstructJob()
3940 const ArgList &Args, in ConstructJob() argument
3948 Args.ClaimAllArgs(options::OPT__serialize_diags); in ConstructJob()
3951 if (const Arg *A = Args.getLastArg(options::OPT_traditional)) in ConstructJob()
3953 << A->getAsString(Args) << "-E"; in ConstructJob()
3980 bool OutputArgsEarly = (Args.hasArg(options::OPT_fsyntax_only) || in ConstructJob()
3981 Args.hasArg(options::OPT_S)); in ConstructJob()
3984 AddCPPUniqueOptionsArgs(Args, CmdArgs, Inputs); in ConstructJob()
3986 AddCC1OptionsArgs(Args, CmdArgs, Inputs, OutputArgs); in ConstructJob()
3988 AddCC1OptionsArgs(Args, CmdArgs, Inputs, ArgStringList()); in ConstructJob()
4009 AddCC1OptionsArgs(Args, CmdArgs, Inputs, OutputArgs); in ConstructJob()
4011 AddCC1OptionsArgs(Args, CmdArgs, Inputs, ArgStringList()); in ConstructJob()
4041 Args.MakeArgString(getToolChain().GetProgramPath(CC1Name)); in ConstructJob()
4048 const ArgList &Args, in ConstructJob() argument
4065 if (Args.hasArg(options::OPT_gstabs)) in ConstructJob()
4067 else if (Args.hasArg(options::OPT_g_Group)) in ConstructJob()
4072 AddDarwinArch(Args, CmdArgs); in ConstructJob()
4077 Args.hasArg(options::OPT_force__cpusubtype__ALL)) in ConstructJob()
4081 (Args.hasArg(options::OPT_mkernel) || in ConstructJob()
4082 Args.hasArg(options::OPT_static) || in ConstructJob()
4083 Args.hasArg(options::OPT_fapple_kext))) in ConstructJob()
4086 Args.AddAllArgValues(CmdArgs, options::OPT_Wa_COMMA, in ConstructJob()
4099 Args.MakeArgString(getToolChain().GetProgramPath("as")); in ConstructJob()
4105 void darwin::DarwinTool::AddDarwinArch(const ArgList &Args, in AddDarwinArch() argument
4107 StringRef ArchName = getDarwinToolChain().getDarwinArchName(Args); in AddDarwinArch()
4111 CmdArgs.push_back(Args.MakeArgString(ArchName)); in AddDarwinArch()
4119 const ArgList &Args, in AddLinkArgs() argument
4125 if (Arg *A = Args.getLastArg(options::OPT_mlinker_version_EQ)) { in AddLinkArgs()
4127 if (!Driver::GetReleaseVersion(A->getValue(Args), Version[0], in AddLinkArgs()
4131 << A->getAsString(Args); in AddLinkArgs()
4136 if (Version[0] >= 100 && !Args.hasArg(options::OPT_Z_Xlinker__no_demangle)) { in AddLinkArgs()
4141 Args.hasArg(options::OPT_static)); in AddLinkArgs()
4143 for (arg_iterator it = Args.filtered_begin(options::OPT_Xlinker, in AddLinkArgs()
4145 ie = Args.filtered_end(); it != ie; ++it) { in AddLinkArgs()
4148 if (StringRef(A->getValue(Args, i)) == "-kext") in AddLinkArgs()
4159 if (Version[0] >= 116 && D.IsUsingLTO(Args)) { in AddLinkArgs()
4168 Args.AddAllArgs(CmdArgs, options::OPT_static); in AddLinkArgs()
4169 if (!Args.hasArg(options::OPT_static)) in AddLinkArgs()
4171 if (Args.hasArg(options::OPT_fgnu_runtime)) { in AddLinkArgs()
4176 if (!Args.hasArg(options::OPT_dynamiclib)) { in AddLinkArgs()
4177 AddDarwinArch(Args, CmdArgs); in AddLinkArgs()
4179 Args.AddLastArg(CmdArgs, options::OPT_force__cpusubtype__ALL); in AddLinkArgs()
4181 Args.AddLastArg(CmdArgs, options::OPT_bundle); in AddLinkArgs()
4182 Args.AddAllArgs(CmdArgs, options::OPT_bundle__loader); in AddLinkArgs()
4183 Args.AddAllArgs(CmdArgs, options::OPT_client__name); in AddLinkArgs()
4186 if ((A = Args.getLastArg(options::OPT_compatibility__version)) || in AddLinkArgs()
4187 (A = Args.getLastArg(options::OPT_current__version)) || in AddLinkArgs()
4188 (A = Args.getLastArg(options::OPT_install__name))) in AddLinkArgs()
4190 << A->getAsString(Args) << "-dynamiclib"; in AddLinkArgs()
4192 Args.AddLastArg(CmdArgs, options::OPT_force__flat__namespace); in AddLinkArgs()
4193 Args.AddLastArg(CmdArgs, options::OPT_keep__private__externs); in AddLinkArgs()
4194 Args.AddLastArg(CmdArgs, options::OPT_private__bundle); in AddLinkArgs()
4199 if ((A = Args.getLastArg(options::OPT_bundle)) || in AddLinkArgs()
4200 (A = Args.getLastArg(options::OPT_bundle__loader)) || in AddLinkArgs()
4201 (A = Args.getLastArg(options::OPT_client__name)) || in AddLinkArgs()
4202 (A = Args.getLastArg(options::OPT_force__flat__namespace)) || in AddLinkArgs()
4203 (A = Args.getLastArg(options::OPT_keep__private__externs)) || in AddLinkArgs()
4204 (A = Args.getLastArg(options::OPT_private__bundle))) in AddLinkArgs()
4206 << A->getAsString(Args) << "-dynamiclib"; in AddLinkArgs()
4208 Args.AddAllArgsTranslated(CmdArgs, options::OPT_compatibility__version, in AddLinkArgs()
4210 Args.AddAllArgsTranslated(CmdArgs, options::OPT_current__version, in AddLinkArgs()
4213 AddDarwinArch(Args, CmdArgs); in AddLinkArgs()
4215 Args.AddAllArgsTranslated(CmdArgs, options::OPT_install__name, in AddLinkArgs()
4219 Args.AddLastArg(CmdArgs, options::OPT_all__load); in AddLinkArgs()
4220 Args.AddAllArgs(CmdArgs, options::OPT_allowable__client); in AddLinkArgs()
4221 Args.AddLastArg(CmdArgs, options::OPT_bind__at__load); in AddLinkArgs()
4223 Args.AddLastArg(CmdArgs, options::OPT_arch__errors__fatal); in AddLinkArgs()
4224 Args.AddLastArg(CmdArgs, options::OPT_dead__strip); in AddLinkArgs()
4225 Args.AddLastArg(CmdArgs, options::OPT_no__dead__strip__inits__and__terms); in AddLinkArgs()
4226 Args.AddAllArgs(CmdArgs, options::OPT_dylib__file); in AddLinkArgs()
4227 Args.AddLastArg(CmdArgs, options::OPT_dynamic); in AddLinkArgs()
4228 Args.AddAllArgs(CmdArgs, options::OPT_exported__symbols__list); in AddLinkArgs()
4229 Args.AddLastArg(CmdArgs, options::OPT_flat__namespace); in AddLinkArgs()
4230 Args.AddAllArgs(CmdArgs, options::OPT_force__load); in AddLinkArgs()
4231 Args.AddAllArgs(CmdArgs, options::OPT_headerpad__max__install__names); in AddLinkArgs()
4232 Args.AddAllArgs(CmdArgs, options::OPT_image__base); in AddLinkArgs()
4233 Args.AddAllArgs(CmdArgs, options::OPT_init); in AddLinkArgs()
4245 if (Args.hasArg(options::OPT_mios_simulator_version_min_EQ)) in AddLinkArgs()
4251 CmdArgs.push_back(Args.MakeArgString(TargetVersion.getAsString())); in AddLinkArgs()
4253 Args.AddLastArg(CmdArgs, options::OPT_nomultidefs); in AddLinkArgs()
4254 Args.AddLastArg(CmdArgs, options::OPT_multi__module); in AddLinkArgs()
4255 Args.AddLastArg(CmdArgs, options::OPT_single__module); in AddLinkArgs()
4256 Args.AddAllArgs(CmdArgs, options::OPT_multiply__defined); in AddLinkArgs()
4257 Args.AddAllArgs(CmdArgs, options::OPT_multiply__defined__unused); in AddLinkArgs()
4259 if (const Arg *A = Args.getLastArg(options::OPT_fpie, options::OPT_fPIE, in AddLinkArgs()
4269 Args.AddLastArg(CmdArgs, options::OPT_prebind); in AddLinkArgs()
4270 Args.AddLastArg(CmdArgs, options::OPT_noprebind); in AddLinkArgs()
4271 Args.AddLastArg(CmdArgs, options::OPT_nofixprebinding); in AddLinkArgs()
4272 Args.AddLastArg(CmdArgs, options::OPT_prebind__all__twolevel__modules); in AddLinkArgs()
4273 Args.AddLastArg(CmdArgs, options::OPT_read__only__relocs); in AddLinkArgs()
4274 Args.AddAllArgs(CmdArgs, options::OPT_sectcreate); in AddLinkArgs()
4275 Args.AddAllArgs(CmdArgs, options::OPT_sectorder); in AddLinkArgs()
4276 Args.AddAllArgs(CmdArgs, options::OPT_seg1addr); in AddLinkArgs()
4277 Args.AddAllArgs(CmdArgs, options::OPT_segprot); in AddLinkArgs()
4278 Args.AddAllArgs(CmdArgs, options::OPT_segaddr); in AddLinkArgs()
4279 Args.AddAllArgs(CmdArgs, options::OPT_segs__read__only__addr); in AddLinkArgs()
4280 Args.AddAllArgs(CmdArgs, options::OPT_segs__read__write__addr); in AddLinkArgs()
4281 Args.AddAllArgs(CmdArgs, options::OPT_seg__addr__table); in AddLinkArgs()
4282 Args.AddAllArgs(CmdArgs, options::OPT_seg__addr__table__filename); in AddLinkArgs()
4283 Args.AddAllArgs(CmdArgs, options::OPT_sub__library); in AddLinkArgs()
4284 Args.AddAllArgs(CmdArgs, options::OPT_sub__umbrella); in AddLinkArgs()
4292 } else if (const Arg *A = Args.getLastArg(options::OPT_isysroot)) { in AddLinkArgs()
4294 CmdArgs.push_back(A->getValue(Args)); in AddLinkArgs()
4297 Args.AddLastArg(CmdArgs, options::OPT_twolevel__namespace); in AddLinkArgs()
4298 Args.AddLastArg(CmdArgs, options::OPT_twolevel__namespace__hints); in AddLinkArgs()
4299 Args.AddAllArgs(CmdArgs, options::OPT_umbrella); in AddLinkArgs()
4300 Args.AddAllArgs(CmdArgs, options::OPT_undefined); in AddLinkArgs()
4301 Args.AddAllArgs(CmdArgs, options::OPT_unexported__symbols__list); in AddLinkArgs()
4302 Args.AddAllArgs(CmdArgs, options::OPT_weak__reference__mismatches); in AddLinkArgs()
4303 Args.AddLastArg(CmdArgs, options::OPT_X_Flag); in AddLinkArgs()
4304 Args.AddAllArgs(CmdArgs, options::OPT_y); in AddLinkArgs()
4305 Args.AddLastArg(CmdArgs, options::OPT_w); in AddLinkArgs()
4306 Args.AddAllArgs(CmdArgs, options::OPT_pagezero__size); in AddLinkArgs()
4307 Args.AddAllArgs(CmdArgs, options::OPT_segs__read__); in AddLinkArgs()
4308 Args.AddLastArg(CmdArgs, options::OPT_seglinkedit); in AddLinkArgs()
4309 Args.AddLastArg(CmdArgs, options::OPT_noseglinkedit); in AddLinkArgs()
4310 Args.AddAllArgs(CmdArgs, options::OPT_sectalign); in AddLinkArgs()
4311 Args.AddAllArgs(CmdArgs, options::OPT_sectobjectsymbols); in AddLinkArgs()
4312 Args.AddAllArgs(CmdArgs, options::OPT_segcreate); in AddLinkArgs()
4313 Args.AddLastArg(CmdArgs, options::OPT_whyload); in AddLinkArgs()
4314 Args.AddLastArg(CmdArgs, options::OPT_whatsloaded); in AddLinkArgs()
4315 Args.AddAllArgs(CmdArgs, options::OPT_dylinker__install__name); in AddLinkArgs()
4316 Args.AddLastArg(CmdArgs, options::OPT_dylinker); in AddLinkArgs()
4317 Args.AddLastArg(CmdArgs, options::OPT_Mach); in AddLinkArgs()
4323 const ArgList &Args, in ConstructJob() argument
4333 if (Args.hasArg(options::OPT_ccc_arcmt_check, in ConstructJob()
4335 for (ArgList::const_iterator I = Args.begin(), E = Args.end(); I != E; ++I) in ConstructJob()
4338 Args.MakeArgString(getToolChain().GetProgramPath("touch")); in ConstructJob()
4346 AddLinkArgs(C, Args, CmdArgs); in ConstructJob()
4348 Args.AddAllArgs(CmdArgs, options::OPT_d_Flag); in ConstructJob()
4349 Args.AddAllArgs(CmdArgs, options::OPT_s); in ConstructJob()
4350 Args.AddAllArgs(CmdArgs, options::OPT_t); in ConstructJob()
4351 Args.AddAllArgs(CmdArgs, options::OPT_Z_Flag); in ConstructJob()
4352 Args.AddAllArgs(CmdArgs, options::OPT_u_Group); in ConstructJob()
4353 Args.AddLastArg(CmdArgs, options::OPT_e); in ConstructJob()
4354 Args.AddAllArgs(CmdArgs, options::OPT_m_Separate); in ConstructJob()
4355 Args.AddAllArgs(CmdArgs, options::OPT_r); in ConstructJob()
4360 if (Args.hasArg(options::OPT_ObjC) || Args.hasArg(options::OPT_ObjCXX)) in ConstructJob()
4366 if (!Args.hasArg(options::OPT_nostdlib) && in ConstructJob()
4367 !Args.hasArg(options::OPT_nostartfiles)) { in ConstructJob()
4369 if (Args.hasArg(options::OPT_dynamiclib)) { in ConstructJob()
4384 if (Args.hasArg(options::OPT_bundle)) { in ConstructJob()
4385 if (!Args.hasArg(options::OPT_static)) { in ConstructJob()
4399 if (Args.hasArg(options::OPT_pg) && in ConstructJob()
4401 if (Args.hasArg(options::OPT_static) || in ConstructJob()
4402 Args.hasArg(options::OPT_object) || in ConstructJob()
4403 Args.hasArg(options::OPT_preload)) { in ConstructJob()
4419 if (Args.hasArg(options::OPT_static) || in ConstructJob()
4420 Args.hasArg(options::OPT_object) || in ConstructJob()
4421 Args.hasArg(options::OPT_preload)) { in ConstructJob()
4449 Args.hasArg(options::OPT_shared_libgcc) && in ConstructJob()
4452 Args.MakeArgString(getToolChain().GetFilePath("crt3.o")); in ConstructJob()
4457 Args.AddAllArgs(CmdArgs, options::OPT_L); in ConstructJob()
4462 if (Args.hasFlag(options::OPT_faddress_sanitizer, in ConstructJob()
4464 if (Args.hasArg(options::OPT_dynamiclib) || in ConstructJob()
4465 Args.hasArg(options::OPT_bundle)) { in ConstructJob()
4471 if (Args.hasArg(options::OPT_fopenmp)) in ConstructJob()
4475 AddLinkerInputs(getToolChain(), Inputs, Args, CmdArgs); in ConstructJob()
4477 if (isObjCRuntimeLinked(Args) && in ConstructJob()
4478 !Args.hasArg(options::OPT_nostdlib) && in ConstructJob()
4479 !Args.hasArg(options::OPT_nodefaultlibs)) { in ConstructJob()
4489 if ((!runtime.hasNativeARC() && isObjCAutoRefCount(Args)) || in ConstructJob()
4491 getDarwinToolChain().AddLinkARCArgs(Args, CmdArgs); in ConstructJob()
4505 if (Args.hasArg(options::OPT_fnested_functions)) in ConstructJob()
4508 if (!Args.hasArg(options::OPT_nostdlib) && in ConstructJob()
4509 !Args.hasArg(options::OPT_nodefaultlibs)) { in ConstructJob()
4511 getToolChain().AddCXXStdlibLibArgs(Args, CmdArgs); in ConstructJob()
4516 getDarwinToolChain().AddLinkRuntimeLibArgs(Args, CmdArgs); in ConstructJob()
4519 if (!Args.hasArg(options::OPT_nostdlib) && in ConstructJob()
4520 !Args.hasArg(options::OPT_nostartfiles)) { in ConstructJob()
4524 Args.AddAllArgs(CmdArgs, options::OPT_T_Group); in ConstructJob()
4525 Args.AddAllArgs(CmdArgs, options::OPT_F); in ConstructJob()
4528 Args.MakeArgString(getToolChain().GetProgramPath("ld")); in ConstructJob()
4535 const ArgList &Args, in ConstructJob() argument
4552 Args.MakeArgString(getToolChain().GetProgramPath("lipo")); in ConstructJob()
4559 const ArgList &Args, in ConstructJob() argument
4572 Args.MakeArgString(getToolChain().GetProgramPath("dsymutil")); in ConstructJob()
4579 const ArgList &Args, in ConstructJob() argument
4595 Args.MakeArgString(getToolChain().GetProgramPath("dwarfdump")); in ConstructJob()
4602 const ArgList &Args, in ConstructJob() argument
4606 Args.AddAllArgValues(CmdArgs, options::OPT_Wa_COMMA, in ConstructJob()
4619 Args.MakeArgString(getToolChain().GetProgramPath("as")); in ConstructJob()
4627 const ArgList &Args, in ConstructJob() argument
4654 if ((!Args.hasArg(options::OPT_nostdlib)) && in ConstructJob()
4655 (!Args.hasArg(options::OPT_shared))) { in ConstructJob()
4660 if (Args.hasArg(options::OPT_static)) { in ConstructJob()
4665 if (Args.hasArg(options::OPT_shared)) { in ConstructJob()
4669 CmdArgs.push_back(Args.MakeArgString(LibPath + "ld.so.1")); in ConstructJob()
4680 if (!Args.hasArg(options::OPT_nostdlib) && in ConstructJob()
4681 !Args.hasArg(options::OPT_nostartfiles)) { in ConstructJob()
4682 if (!Args.hasArg(options::OPT_shared)) { in ConstructJob()
4683 CmdArgs.push_back(Args.MakeArgString(LibPath + "crt1.o")); in ConstructJob()
4684 CmdArgs.push_back(Args.MakeArgString(LibPath + "crti.o")); in ConstructJob()
4685 CmdArgs.push_back(Args.MakeArgString(LibPath + "values-Xa.o")); in ConstructJob()
4686 CmdArgs.push_back(Args.MakeArgString(GCCLibPath + "crtbegin.o")); in ConstructJob()
4688 CmdArgs.push_back(Args.MakeArgString(LibPath + "crti.o")); in ConstructJob()
4689 CmdArgs.push_back(Args.MakeArgString(LibPath + "values-Xa.o")); in ConstructJob()
4690 CmdArgs.push_back(Args.MakeArgString(GCCLibPath + "crtbegin.o")); in ConstructJob()
4693 CmdArgs.push_back(Args.MakeArgString(LibPath + "cxa_finalize.o")); in ConstructJob()
4696 CmdArgs.push_back(Args.MakeArgString("-L" + GCCLibPath)); in ConstructJob()
4698 Args.AddAllArgs(CmdArgs, options::OPT_L); in ConstructJob()
4699 Args.AddAllArgs(CmdArgs, options::OPT_T_Group); in ConstructJob()
4700 Args.AddAllArgs(CmdArgs, options::OPT_e); in ConstructJob()
4701 Args.AddAllArgs(CmdArgs, options::OPT_r); in ConstructJob()
4703 AddLinkerInputs(getToolChain(), Inputs, Args, CmdArgs); in ConstructJob()
4705 if (!Args.hasArg(options::OPT_nostdlib) && in ConstructJob()
4706 !Args.hasArg(options::OPT_nodefaultlibs)) { in ConstructJob()
4708 getToolChain().AddCXXStdlibLibArgs(Args, CmdArgs); in ConstructJob()
4710 if (!Args.hasArg(options::OPT_shared)) { in ConstructJob()
4717 if (!Args.hasArg(options::OPT_nostdlib) && in ConstructJob()
4718 !Args.hasArg(options::OPT_nostartfiles)) { in ConstructJob()
4719 CmdArgs.push_back(Args.MakeArgString(GCCLibPath + "crtend.o")); in ConstructJob()
4721 CmdArgs.push_back(Args.MakeArgString(LibPath + "crtn.o")); in ConstructJob()
4723 addProfileRT(getToolChain(), Args, CmdArgs, getToolChain().getTriple()); in ConstructJob()
4726 Args.MakeArgString(getToolChain().GetProgramPath("ld")); in ConstructJob()
4733 const ArgList &Args, in ConstructJob() argument
4737 Args.AddAllArgValues(CmdArgs, options::OPT_Wa_COMMA, in ConstructJob()
4750 Args.MakeArgString(getToolChain().GetProgramPath("gas")); in ConstructJob()
4757 const ArgList &Args, in ConstructJob() argument
4761 if ((!Args.hasArg(options::OPT_nostdlib)) && in ConstructJob()
4762 (!Args.hasArg(options::OPT_shared))) { in ConstructJob()
4767 if (Args.hasArg(options::OPT_static)) { in ConstructJob()
4773 if (Args.hasArg(options::OPT_shared)) { in ConstructJob()
4788 if (!Args.hasArg(options::OPT_nostdlib) && in ConstructJob()
4789 !Args.hasArg(options::OPT_nostartfiles)) { in ConstructJob()
4790 if (!Args.hasArg(options::OPT_shared)) { in ConstructJob()
4791 CmdArgs.push_back(Args.MakeArgString( in ConstructJob()
4793 CmdArgs.push_back(Args.MakeArgString( in ConstructJob()
4795 CmdArgs.push_back(Args.MakeArgString( in ConstructJob()
4798 CmdArgs.push_back(Args.MakeArgString( in ConstructJob()
4801 CmdArgs.push_back(Args.MakeArgString( in ConstructJob()
4805 CmdArgs.push_back(Args.MakeArgString("-L/opt/gcc4/lib/gcc/" in ConstructJob()
4809 Args.AddAllArgs(CmdArgs, options::OPT_L); in ConstructJob()
4810 Args.AddAllArgs(CmdArgs, options::OPT_T_Group); in ConstructJob()
4811 Args.AddAllArgs(CmdArgs, options::OPT_e); in ConstructJob()
4813 AddLinkerInputs(getToolChain(), Inputs, Args, CmdArgs); in ConstructJob()
4815 if (!Args.hasArg(options::OPT_nostdlib) && in ConstructJob()
4816 !Args.hasArg(options::OPT_nodefaultlibs)) { in ConstructJob()
4821 if (Args.hasArg(options::OPT_pthread)) in ConstructJob()
4823 if (!Args.hasArg(options::OPT_shared)) in ConstructJob()
4828 if (!Args.hasArg(options::OPT_nostdlib) && in ConstructJob()
4829 !Args.hasArg(options::OPT_nostartfiles)) { in ConstructJob()
4830 if (!Args.hasArg(options::OPT_shared)) in ConstructJob()
4831 CmdArgs.push_back(Args.MakeArgString( in ConstructJob()
4835 addProfileRT(getToolChain(), Args, CmdArgs, getToolChain().getTriple()); in ConstructJob()
4838 Args.MakeArgString(getToolChain().GetProgramPath("ld")); in ConstructJob()
4845 const ArgList &Args, in ConstructJob() argument
4849 Args.AddAllArgValues(CmdArgs, options::OPT_Wa_COMMA, in ConstructJob()
4862 Args.MakeArgString(getToolChain().GetProgramPath("as")); in ConstructJob()
4869 const ArgList &Args, in ConstructJob() argument
4874 if ((!Args.hasArg(options::OPT_nostdlib)) && in ConstructJob()
4875 (!Args.hasArg(options::OPT_shared))) { in ConstructJob()
4880 if (Args.hasArg(options::OPT_static)) { in ConstructJob()
4883 if (Args.hasArg(options::OPT_rdynamic)) in ConstructJob()
4887 if (Args.hasArg(options::OPT_shared)) { in ConstructJob()
4902 if (!Args.hasArg(options::OPT_nostdlib) && in ConstructJob()
4903 !Args.hasArg(options::OPT_nostartfiles)) { in ConstructJob()
4904 if (!Args.hasArg(options::OPT_shared)) { in ConstructJob()
4905 if (Args.hasArg(options::OPT_pg)) in ConstructJob()
4906 CmdArgs.push_back(Args.MakeArgString( in ConstructJob()
4909 CmdArgs.push_back(Args.MakeArgString( in ConstructJob()
4911 CmdArgs.push_back(Args.MakeArgString( in ConstructJob()
4914 CmdArgs.push_back(Args.MakeArgString( in ConstructJob()
4922 CmdArgs.push_back(Args.MakeArgString("-L/usr/lib/gcc-lib/" + Triple + in ConstructJob()
4925 Args.AddAllArgs(CmdArgs, options::OPT_L); in ConstructJob()
4926 Args.AddAllArgs(CmdArgs, options::OPT_T_Group); in ConstructJob()
4927 Args.AddAllArgs(CmdArgs, options::OPT_e); in ConstructJob()
4929 AddLinkerInputs(getToolChain(), Inputs, Args, CmdArgs); in ConstructJob()
4931 if (!Args.hasArg(options::OPT_nostdlib) && in ConstructJob()
4932 !Args.hasArg(options::OPT_nodefaultlibs)) { in ConstructJob()
4934 getToolChain().AddCXXStdlibLibArgs(Args, CmdArgs); in ConstructJob()
4935 if (Args.hasArg(options::OPT_pg)) in ConstructJob()
4945 if (Args.hasArg(options::OPT_pthread)) in ConstructJob()
4947 if (!Args.hasArg(options::OPT_shared)) { in ConstructJob()
4948 if (Args.hasArg(options::OPT_pg)) in ConstructJob()
4956 if (!Args.hasArg(options::OPT_nostdlib) && in ConstructJob()
4957 !Args.hasArg(options::OPT_nostartfiles)) { in ConstructJob()
4958 if (!Args.hasArg(options::OPT_shared)) in ConstructJob()
4959 CmdArgs.push_back(Args.MakeArgString( in ConstructJob()
4962 CmdArgs.push_back(Args.MakeArgString( in ConstructJob()
4967 Args.MakeArgString(getToolChain().GetProgramPath("ld")); in ConstructJob()
4974 const ArgList &Args, in ConstructJob() argument
4978 Args.AddAllArgValues(CmdArgs, options::OPT_Wa_COMMA, in ConstructJob()
4991 Args.MakeArgString(getToolChain().GetProgramPath("as")); in ConstructJob()
4998 const ArgList &Args, in ConstructJob() argument
5003 if ((!Args.hasArg(options::OPT_nostdlib)) && in ConstructJob()
5004 (!Args.hasArg(options::OPT_shared))) { in ConstructJob()
5009 if (Args.hasArg(options::OPT_static)) { in ConstructJob()
5012 if (Args.hasArg(options::OPT_rdynamic)) in ConstructJob()
5016 if (Args.hasArg(options::OPT_shared)) { in ConstructJob()
5031 if (!Args.hasArg(options::OPT_nostdlib) && in ConstructJob()
5032 !Args.hasArg(options::OPT_nostartfiles)) { in ConstructJob()
5033 if (!Args.hasArg(options::OPT_shared)) { in ConstructJob()
5034 if (Args.hasArg(options::OPT_pg)) in ConstructJob()
5035 CmdArgs.push_back(Args.MakeArgString( in ConstructJob()
5038 CmdArgs.push_back(Args.MakeArgString( in ConstructJob()
5040 CmdArgs.push_back(Args.MakeArgString( in ConstructJob()
5043 CmdArgs.push_back(Args.MakeArgString( in ConstructJob()
5048 Args.AddAllArgs(CmdArgs, options::OPT_L); in ConstructJob()
5049 Args.AddAllArgs(CmdArgs, options::OPT_T_Group); in ConstructJob()
5050 Args.AddAllArgs(CmdArgs, options::OPT_e); in ConstructJob()
5052 AddLinkerInputs(getToolChain(), Inputs, Args, CmdArgs); in ConstructJob()
5054 if (!Args.hasArg(options::OPT_nostdlib) && in ConstructJob()
5055 !Args.hasArg(options::OPT_nodefaultlibs)) { in ConstructJob()
5057 getToolChain().AddCXXStdlibLibArgs(Args, CmdArgs); in ConstructJob()
5058 if (Args.hasArg(options::OPT_pg)) in ConstructJob()
5064 if (Args.hasArg(options::OPT_pthread)) in ConstructJob()
5066 if (!Args.hasArg(options::OPT_shared)) { in ConstructJob()
5067 if (Args.hasArg(options::OPT_pg)) in ConstructJob()
5089 CmdArgs.push_back(Args.MakeArgString(myarch)); in ConstructJob()
5092 if (!Args.hasArg(options::OPT_nostdlib) && in ConstructJob()
5093 !Args.hasArg(options::OPT_nostartfiles)) { in ConstructJob()
5094 if (!Args.hasArg(options::OPT_shared)) in ConstructJob()
5095 CmdArgs.push_back(Args.MakeArgString( in ConstructJob()
5098 CmdArgs.push_back(Args.MakeArgString( in ConstructJob()
5103 Args.MakeArgString(getToolChain().GetProgramPath("ld")); in ConstructJob()
5110 const ArgList &Args, in ConstructJob() argument
5126 getMipsCPUAndABI(Args, getToolChain(), CPUName, ABIName); in ConstructJob()
5146 Arg *LastPICArg = Args.getLastArg(options::OPT_fPIC, options::OPT_fno_PIC, in ConstructJob()
5159 Args.AddAllArgValues(CmdArgs, options::OPT_Wa_COMMA, in ConstructJob()
5172 Args.MakeArgString(getToolChain().GetProgramPath("as")); in ConstructJob()
5179 const ArgList &Args, in ConstructJob() argument
5187 Args.ClaimAllArgs(options::OPT_g_Group); in ConstructJob()
5189 Args.ClaimAllArgs(options::OPT_emit_llvm); in ConstructJob()
5192 Args.ClaimAllArgs(options::OPT_w); in ConstructJob()
5195 CmdArgs.push_back(Args.MakeArgString("--sysroot=" + D.SysRoot)); in ConstructJob()
5197 if (Args.hasArg(options::OPT_pie)) in ConstructJob()
5200 if (Args.hasArg(options::OPT_static)) { in ConstructJob()
5203 if (Args.hasArg(options::OPT_rdynamic)) in ConstructJob()
5206 if (Args.hasArg(options::OPT_shared)) { in ConstructJob()
5241 if (!Args.hasArg(options::OPT_nostdlib) && in ConstructJob()
5242 !Args.hasArg(options::OPT_nostartfiles)) { in ConstructJob()
5244 if (!Args.hasArg(options::OPT_shared)) { in ConstructJob()
5245 if (Args.hasArg(options::OPT_pg)) in ConstructJob()
5247 else if (Args.hasArg(options::OPT_pie)) in ConstructJob()
5253 CmdArgs.push_back(Args.MakeArgString(ToolChain.GetFilePath(crt1))); in ConstructJob()
5255 CmdArgs.push_back(Args.MakeArgString(ToolChain.GetFilePath("crti.o"))); in ConstructJob()
5258 if (Args.hasArg(options::OPT_static)) in ConstructJob()
5260 else if (Args.hasArg(options::OPT_shared) || Args.hasArg(options::OPT_pie)) in ConstructJob()
5265 CmdArgs.push_back(Args.MakeArgString(ToolChain.GetFilePath(crtbegin))); in ConstructJob()
5268 Args.AddAllArgs(CmdArgs, options::OPT_L); in ConstructJob()
5272 CmdArgs.push_back(Args.MakeArgString(StringRef("-L") + *i)); in ConstructJob()
5273 Args.AddAllArgs(CmdArgs, options::OPT_T_Group); in ConstructJob()
5274 Args.AddAllArgs(CmdArgs, options::OPT_e); in ConstructJob()
5275 Args.AddAllArgs(CmdArgs, options::OPT_s); in ConstructJob()
5276 Args.AddAllArgs(CmdArgs, options::OPT_t); in ConstructJob()
5277 Args.AddAllArgs(CmdArgs, options::OPT_Z_Flag); in ConstructJob()
5278 Args.AddAllArgs(CmdArgs, options::OPT_r); in ConstructJob()
5280 AddLinkerInputs(ToolChain, Inputs, Args, CmdArgs); in ConstructJob()
5282 if (!Args.hasArg(options::OPT_nostdlib) && in ConstructJob()
5283 !Args.hasArg(options::OPT_nodefaultlibs)) { in ConstructJob()
5285 ToolChain.AddCXXStdlibLibArgs(Args, CmdArgs); in ConstructJob()
5286 if (Args.hasArg(options::OPT_pg)) in ConstructJob()
5293 if (Args.hasArg(options::OPT_pg)) in ConstructJob()
5297 if (Args.hasArg(options::OPT_static)) { in ConstructJob()
5299 } else if (Args.hasArg(options::OPT_pg)) { in ConstructJob()
5307 if (Args.hasArg(options::OPT_pthread)) { in ConstructJob()
5308 if (Args.hasArg(options::OPT_pg)) in ConstructJob()
5314 if (Args.hasArg(options::OPT_pg)) { in ConstructJob()
5315 if (Args.hasArg(options::OPT_shared)) in ConstructJob()
5325 if (Args.hasArg(options::OPT_static)) { in ConstructJob()
5327 } else if (Args.hasArg(options::OPT_pg)) { in ConstructJob()
5336 if (!Args.hasArg(options::OPT_nostdlib) && in ConstructJob()
5337 !Args.hasArg(options::OPT_nostartfiles)) { in ConstructJob()
5338 if (Args.hasArg(options::OPT_shared) || Args.hasArg(options::OPT_pie)) in ConstructJob()
5339 CmdArgs.push_back(Args.MakeArgString(ToolChain.GetFilePath("crtendS.o"))); in ConstructJob()
5341 CmdArgs.push_back(Args.MakeArgString(ToolChain.GetFilePath("crtend.o"))); in ConstructJob()
5342 CmdArgs.push_back(Args.MakeArgString(ToolChain.GetFilePath("crtn.o"))); in ConstructJob()
5345 addProfileRT(ToolChain, Args, CmdArgs, ToolChain.getTriple()); in ConstructJob()
5348 Args.MakeArgString(ToolChain.GetProgramPath("ld")); in ConstructJob()
5355 const ArgList &Args, in ConstructJob() argument
5370 Args.AddAllArgValues(CmdArgs, options::OPT_Wa_COMMA, in ConstructJob()
5382 const char *Exec = Args.MakeArgString((getToolChain().GetProgramPath("as"))); in ConstructJob()
5389 const ArgList &Args, in ConstructJob() argument
5395 CmdArgs.push_back(Args.MakeArgString("--sysroot=" + D.SysRoot)); in ConstructJob()
5397 if (Args.hasArg(options::OPT_static)) { in ConstructJob()
5400 if (Args.hasArg(options::OPT_rdynamic)) in ConstructJob()
5403 if (Args.hasArg(options::OPT_shared)) { in ConstructJob()
5425 if (!Args.hasArg(options::OPT_nostdlib) && in ConstructJob()
5426 !Args.hasArg(options::OPT_nostartfiles)) { in ConstructJob()
5427 if (!Args.hasArg(options::OPT_shared)) { in ConstructJob()
5428 CmdArgs.push_back(Args.MakeArgString( in ConstructJob()
5430 CmdArgs.push_back(Args.MakeArgString( in ConstructJob()
5432 CmdArgs.push_back(Args.MakeArgString( in ConstructJob()
5435 CmdArgs.push_back(Args.MakeArgString( in ConstructJob()
5437 CmdArgs.push_back(Args.MakeArgString( in ConstructJob()
5442 Args.AddAllArgs(CmdArgs, options::OPT_L); in ConstructJob()
5443 Args.AddAllArgs(CmdArgs, options::OPT_T_Group); in ConstructJob()
5444 Args.AddAllArgs(CmdArgs, options::OPT_e); in ConstructJob()
5445 Args.AddAllArgs(CmdArgs, options::OPT_s); in ConstructJob()
5446 Args.AddAllArgs(CmdArgs, options::OPT_t); in ConstructJob()
5447 Args.AddAllArgs(CmdArgs, options::OPT_Z_Flag); in ConstructJob()
5448 Args.AddAllArgs(CmdArgs, options::OPT_r); in ConstructJob()
5450 AddLinkerInputs(getToolChain(), Inputs, Args, CmdArgs); in ConstructJob()
5452 if (!Args.hasArg(options::OPT_nostdlib) && in ConstructJob()
5453 !Args.hasArg(options::OPT_nodefaultlibs)) { in ConstructJob()
5455 getToolChain().AddCXXStdlibLibArgs(Args, CmdArgs); in ConstructJob()
5460 if (Args.hasArg(options::OPT_static)) { in ConstructJob()
5469 if (Args.hasArg(options::OPT_pthread)) in ConstructJob()
5474 if (Args.hasArg(options::OPT_static)) { in ConstructJob()
5483 if (!Args.hasArg(options::OPT_nostdlib) && in ConstructJob()
5484 !Args.hasArg(options::OPT_nostartfiles)) { in ConstructJob()
5485 if (!Args.hasArg(options::OPT_shared)) in ConstructJob()
5486 CmdArgs.push_back(Args.MakeArgString(getToolChain().GetFilePath( in ConstructJob()
5489 CmdArgs.push_back(Args.MakeArgString(getToolChain().GetFilePath( in ConstructJob()
5491 CmdArgs.push_back(Args.MakeArgString(getToolChain().GetFilePath( in ConstructJob()
5495 addProfileRT(getToolChain(), Args, CmdArgs, getToolChain().getTriple()); in ConstructJob()
5497 const char *Exec = Args.MakeArgString(getToolChain().GetProgramPath("ld")); in ConstructJob()
5504 const ArgList &Args, in ConstructJob() argument
5527 StringRef ARMFloatABI = getARMFloatABI(getToolChain().getDriver(), Args, in ConstructJob()
5529 CmdArgs.push_back(Args.MakeArgString("-mfloat-abi=" + ARMFloatABI)); in ConstructJob()
5531 Args.AddLastArg(CmdArgs, options::OPT_march_EQ); in ConstructJob()
5532 Args.AddLastArg(CmdArgs, options::OPT_mcpu_EQ); in ConstructJob()
5533 Args.AddLastArg(CmdArgs, options::OPT_mfpu_EQ); in ConstructJob()
5540 getMipsCPUAndABI(Args, getToolChain(), CPUName, ABIName); in ConstructJob()
5560 Arg *LastPICArg = Args.getLastArg(options::OPT_fPIC, options::OPT_fno_PIC, in ConstructJob()
5573 Args.AddAllArgValues(CmdArgs, options::OPT_Wa_COMMA, in ConstructJob()
5586 Args.MakeArgString(getToolChain().GetProgramPath("as")); in ConstructJob()
5591 ArgStringList &CmdArgs, const ArgList &Args) { in AddLibgcc() argument
5593 bool StaticLibgcc = isAndroid || Args.hasArg(options::OPT_static) || in AddLibgcc()
5594 Args.hasArg(options::OPT_static_libgcc); in AddLibgcc()
5611 else if (!Args.hasArg(options::OPT_shared) && D.CCCIsCXX) in AddLibgcc()
5618 const ArgList &Args, in ConstructJob() argument
5629 Args.ClaimAllArgs(options::OPT_g_Group); in ConstructJob()
5631 Args.ClaimAllArgs(options::OPT_emit_llvm); in ConstructJob()
5634 Args.ClaimAllArgs(options::OPT_w); in ConstructJob()
5637 CmdArgs.push_back(Args.MakeArgString("--sysroot=" + D.SysRoot)); in ConstructJob()
5639 if (Args.hasArg(options::OPT_pie)) in ConstructJob()
5642 if (Args.hasArg(options::OPT_rdynamic)) in ConstructJob()
5645 if (Args.hasArg(options::OPT_s)) in ConstructJob()
5653 if (!Args.hasArg(options::OPT_static)) { in ConstructJob()
5678 if (Args.hasArg(options::OPT_static)) { in ConstructJob()
5684 } else if (Args.hasArg(options::OPT_shared)) { in ConstructJob()
5694 (!Args.hasArg(options::OPT_static) && in ConstructJob()
5695 !Args.hasArg(options::OPT_shared))) { in ConstructJob()
5725 if (!Args.hasArg(options::OPT_nostdlib) && in ConstructJob()
5726 !Args.hasArg(options::OPT_nostartfiles)) { in ConstructJob()
5729 if (!Args.hasArg(options::OPT_shared)){ in ConstructJob()
5730 if (Args.hasArg(options::OPT_pie)) in ConstructJob()
5736 CmdArgs.push_back(Args.MakeArgString(ToolChain.GetFilePath(crt1))); in ConstructJob()
5738 CmdArgs.push_back(Args.MakeArgString(ToolChain.GetFilePath("crti.o"))); in ConstructJob()
5742 if (Args.hasArg(options::OPT_static)) in ConstructJob()
5744 else if (Args.hasArg(options::OPT_shared)) in ConstructJob()
5746 else if (Args.hasArg(options::OPT_pie)) in ConstructJob()
5750 CmdArgs.push_back(Args.MakeArgString(ToolChain.GetFilePath(crtbegin))); in ConstructJob()
5753 Args.AddAllArgs(CmdArgs, options::OPT_L); in ConstructJob()
5759 CmdArgs.push_back(Args.MakeArgString(StringRef("-L") + *i)); in ConstructJob()
5764 if (D.IsUsingLTO(Args) || Args.hasArg(options::OPT_use_gold_plugin)) { in ConstructJob()
5767 CmdArgs.push_back(Args.MakeArgString(Plugin)); in ConstructJob()
5770 if (Args.hasArg(options::OPT_Z_Xlinker__no_demangle)) in ConstructJob()
5773 AddLinkerInputs(ToolChain, Inputs, Args, CmdArgs); in ConstructJob()
5776 !Args.hasArg(options::OPT_nostdlib) && in ConstructJob()
5777 !Args.hasArg(options::OPT_nodefaultlibs)) { in ConstructJob()
5778 bool OnlyLibstdcxxStatic = Args.hasArg(options::OPT_static_libstdcxx) && in ConstructJob()
5779 !Args.hasArg(options::OPT_static); in ConstructJob()
5782 ToolChain.AddCXXStdlibLibArgs(Args, CmdArgs); in ConstructJob()
5789 addAsanRTLinux(getToolChain(), Args, CmdArgs); in ConstructJob()
5790 addTsanRTLinux(getToolChain(), Args, CmdArgs); in ConstructJob()
5792 if (!Args.hasArg(options::OPT_nostdlib)) { in ConstructJob()
5793 if (!Args.hasArg(options::OPT_nodefaultlibs)) { in ConstructJob()
5794 if (Args.hasArg(options::OPT_static)) in ConstructJob()
5797 AddLibgcc(ToolChain.getTriple(), D, CmdArgs, Args); in ConstructJob()
5799 if (Args.hasArg(options::OPT_pthread) || in ConstructJob()
5800 Args.hasArg(options::OPT_pthreads)) in ConstructJob()
5805 if (Args.hasArg(options::OPT_static)) in ConstructJob()
5808 AddLibgcc(ToolChain.getTriple(), D, CmdArgs, Args); in ConstructJob()
5811 if (!Args.hasArg(options::OPT_nostartfiles)) { in ConstructJob()
5813 if (Args.hasArg(options::OPT_shared)) in ConstructJob()
5815 else if (Args.hasArg(options::OPT_pie)) in ConstructJob()
5820 CmdArgs.push_back(Args.MakeArgString(ToolChain.GetFilePath(crtend))); in ConstructJob()
5822 CmdArgs.push_back(Args.MakeArgString(ToolChain.GetFilePath("crtn.o"))); in ConstructJob()
5826 addProfileRT(getToolChain(), Args, CmdArgs, getToolChain().getTriple()); in ConstructJob()
5834 const ArgList &Args, in ConstructJob() argument
5838 Args.AddAllArgValues(CmdArgs, options::OPT_Wa_COMMA, in ConstructJob()
5851 Args.MakeArgString(getToolChain().GetProgramPath("as")); in ConstructJob()
5858 const ArgList &Args, in ConstructJob() argument
5870 if (!Args.hasArg(options::OPT_nostdlib) && in ConstructJob()
5871 !Args.hasArg(options::OPT_nostartfiles)) { in ConstructJob()
5872 CmdArgs.push_back(Args.MakeArgString(getToolChain().GetFilePath("crt1.o"))); in ConstructJob()
5873 CmdArgs.push_back(Args.MakeArgString(getToolChain().GetFilePath("crti.o"))); in ConstructJob()
5874 CmdArgs.push_back(Args.MakeArgString(getToolChain().GetFilePath("crtbegin.o"))); in ConstructJob()
5875 CmdArgs.push_back(Args.MakeArgString(getToolChain().GetFilePath("crtn.o"))); in ConstructJob()
5878 Args.AddAllArgs(CmdArgs, options::OPT_L); in ConstructJob()
5879 Args.AddAllArgs(CmdArgs, options::OPT_T_Group); in ConstructJob()
5880 Args.AddAllArgs(CmdArgs, options::OPT_e); in ConstructJob()
5882 AddLinkerInputs(getToolChain(), Inputs, Args, CmdArgs); in ConstructJob()
5884 addProfileRT(getToolChain(), Args, CmdArgs, getToolChain().getTriple()); in ConstructJob()
5886 if (!Args.hasArg(options::OPT_nostdlib) && in ConstructJob()
5887 !Args.hasArg(options::OPT_nodefaultlibs)) { in ConstructJob()
5889 getToolChain().AddCXXStdlibLibArgs(Args, CmdArgs); in ConstructJob()
5894 if (!Args.hasArg(options::OPT_nostdlib) && in ConstructJob()
5895 !Args.hasArg(options::OPT_nostartfiles)) { in ConstructJob()
5896 if (Args.hasArg(options::OPT_pthread)) in ConstructJob()
5902 Args.MakeArgString(getToolChain().GetFilePath("crtend.o"))); in ConstructJob()
5905 const char *Exec = Args.MakeArgString(getToolChain().GetProgramPath("ld")); in ConstructJob()
5916 const ArgList &Args, in ConstructJob() argument
5925 Args.AddAllArgValues(CmdArgs, options::OPT_Wa_COMMA, in ConstructJob()
5938 Args.MakeArgString(getToolChain().GetProgramPath("as")); in ConstructJob()
5945 const ArgList &Args, in ConstructJob() argument
5951 CmdArgs.push_back(Args.MakeArgString("--sysroot=" + D.SysRoot)); in ConstructJob()
5953 if (Args.hasArg(options::OPT_static)) { in ConstructJob()
5956 if (Args.hasArg(options::OPT_shared)) in ConstructJob()
5978 if (!Args.hasArg(options::OPT_nostdlib) && in ConstructJob()
5979 !Args.hasArg(options::OPT_nostartfiles)) { in ConstructJob()
5980 if (!Args.hasArg(options::OPT_shared)) { in ConstructJob()
5982 Args.MakeArgString(getToolChain().GetFilePath("crt1.o"))); in ConstructJob()
5984 Args.MakeArgString(getToolChain().GetFilePath("crti.o"))); in ConstructJob()
5986 Args.MakeArgString(getToolChain().GetFilePath("crtbegin.o"))); in ConstructJob()
5989 Args.MakeArgString(getToolChain().GetFilePath("crti.o"))); in ConstructJob()
5991 Args.MakeArgString(getToolChain().GetFilePath("crtbeginS.o"))); in ConstructJob()
5995 Args.AddAllArgs(CmdArgs, options::OPT_L); in ConstructJob()
5996 Args.AddAllArgs(CmdArgs, options::OPT_T_Group); in ConstructJob()
5997 Args.AddAllArgs(CmdArgs, options::OPT_e); in ConstructJob()
5999 AddLinkerInputs(getToolChain(), Inputs, Args, CmdArgs); in ConstructJob()
6001 if (!Args.hasArg(options::OPT_nostdlib) && in ConstructJob()
6002 !Args.hasArg(options::OPT_nodefaultlibs)) { in ConstructJob()
6007 if (!Args.hasArg(options::OPT_static)) { in ConstructJob()
6022 getToolChain().AddCXXStdlibLibArgs(Args, CmdArgs); in ConstructJob()
6026 if (Args.hasArg(options::OPT_shared)) { in ConstructJob()
6033 if (Args.hasArg(options::OPT_pthread)) in ConstructJob()
6036 if (!Args.hasArg(options::OPT_nolibc)) { in ConstructJob()
6040 if (Args.hasArg(options::OPT_shared)) { in ConstructJob()
6047 if (!Args.hasArg(options::OPT_nostdlib) && in ConstructJob()
6048 !Args.hasArg(options::OPT_nostartfiles)) { in ConstructJob()
6049 if (!Args.hasArg(options::OPT_shared)) in ConstructJob()
6050 CmdArgs.push_back(Args.MakeArgString( in ConstructJob()
6053 CmdArgs.push_back(Args.MakeArgString( in ConstructJob()
6055 CmdArgs.push_back(Args.MakeArgString( in ConstructJob()
6059 addProfileRT(getToolChain(), Args, CmdArgs, getToolChain().getTriple()); in ConstructJob()
6062 Args.MakeArgString(getToolChain().GetProgramPath("ld")); in ConstructJob()
6069 const ArgList &Args, in ConstructJob() argument
6074 CmdArgs.push_back(Args.MakeArgString(std::string("-out:") + in ConstructJob()
6080 if (!Args.hasArg(options::OPT_nostdlib) && in ConstructJob()
6081 !Args.hasArg(options::OPT_nostartfiles)) { in ConstructJob()
6087 Args.AddAllArgValues(CmdArgs, options::OPT_l); in ConstructJob()
6097 Args.MakeArgString(getToolChain().GetProgramPath("link.exe")); in ConstructJob()