Home | History | Annotate | Download | only in Frontend

Lines Matching refs:Args

74 // Serialization (to args)
880 // Deserialization (to args)
888 static unsigned getOptimizationLevel(ArgList &Args, InputKind IK,
891 if (IK == IK_OpenCL && !Args.hasArg(OPT_cl_opt_disable))
894 return (Args.hasArg(OPT_Os) || Args.hasArg (OPT_Oz)) ? 2 :
895 Args.getLastArgIntValue(OPT_O, DefaultOpt, Diags);
898 static void ParseAnalyzerArgs(AnalyzerOptions &Opts, ArgList &Args,
902 if (Arg *A = Args.getLastArg(OPT_analyzer_store)) {
903 StringRef Name = A->getValue(Args);
912 << A->getAsString(Args) << Name;
917 if (Arg *A = Args.getLastArg(OPT_analyzer_constraints)) {
918 StringRef Name = A->getValue(Args);
927 << A->getAsString(Args) << Name;
932 if (Arg *A = Args.getLastArg(OPT_analyzer_output)) {
933 StringRef Name = A->getValue(Args);
942 << A->getAsString(Args) << Name;
947 if (Arg *A = Args.getLastArg(OPT_analyzer_purge)) {
948 StringRef Name = A->getValue(Args);
957 << A->getAsString(Args) << Name;
962 Opts.ShowCheckerHelp = Args.hasArg(OPT_analyzer_checker_help);
963 Opts.VisualizeEGDot = Args.hasArg(OPT_analyzer_viz_egraph_graphviz);
964 Opts.VisualizeEGUbi = Args.hasArg(OPT_analyzer_viz_egraph_ubigraph);
965 Opts.AnalyzeAll = Args.hasArg(OPT_analyzer_opt_analyze_headers);
966 Opts.AnalyzerDisplayProgress = Args.hasArg(OPT_analyzer_display_progress);
968 Args.hasArg(OPT_analyzer_opt_analyze_nested_blocks);
969 Opts.EagerlyAssume = Args.hasArg(OPT_analyzer_eagerly_assume);
970 Opts.AnalyzeSpecificFunction = Args.getLastArgValue(OPT_analyze_function);
971 Opts.UnoptimizedCFG = Args.hasArg(OPT_analysis_UnoptimizedCFG);
972 Opts.CFGAddImplicitDtors = Args.hasArg(OPT_analysis_CFGAddImplicitDtors);
973 Opts.CFGAddInitializers = Args.hasArg(OPT_analysis_CFGAddInitializers);
974 Opts.TrimGraph = Args.hasArg(OPT_trim_egraph);
975 Opts.MaxNodes = Args.getLastArgIntValue(OPT_analyzer_max_nodes, 150000,Diags);
976 Opts.MaxLoop = Args.getLastArgIntValue(OPT_analyzer_max_loop, 4, Diags);
977 Opts.EagerlyTrimEGraph = !Args.hasArg(OPT_analyzer_no_eagerly_trim_egraph);
978 Opts.InlineCall = Args.hasArg(OPT_analyzer_inline_call);
981 for (arg_iterator it = Args.filtered_begin(OPT_analyzer_checker,
983 ie = Args.filtered_end(); it != ie; ++it) {
989 StringRef checkerList = A->getValue(Args);
997 static void ParseCodeGenArgs(CodeGenOptions &Opts, ArgList &Args, InputKind IK,
1001 Opts.OptimizationLevel = getOptimizationLevel(Args, IK, Diags);
1004 << Args.getLastArg(OPT_O)->getAsString(Args) << Opts.OptimizationLevel;
1012 Opts.DebugInfo = Args.hasArg(OPT_g);
1013 Opts.LimitDebugInfo = Args.hasArg(OPT_flimit_debug_info);
1014 Opts.DisableLLVMOpts = Args.hasArg(OPT_disable_llvm_optzns);
1015 Opts.DisableRedZone = Args.hasArg(OPT_disable_red_zone);
1016 Opts.ForbidGuardVariables = Args.hasArg(OPT_fforbid_guard_variables);
1017 Opts.UseRegisterSizedBitfieldAccess = Args.hasArg(
1019 Opts.RelaxedAliasing = Args.hasArg(OPT_relaxed_aliasing);
1020 Opts.DwarfDebugFlags = Args.getLastArgValue(OPT_dwarf_debug_flags);
1021 Opts.MergeAllConstants = !Args.hasArg(OPT_fno_merge_all_constants);
1022 Opts.NoCommon = Args.hasArg(OPT_fno_common);
1023 Opts.NoImplicitFloat = Args.hasArg(OPT_no_implicit_float);
1024 Opts.OptimizeSize = Args.hasArg(OPT_Os);
1025 Opts.OptimizeSize = Args.hasArg(OPT_Oz) ? 2 : Opts.OptimizeSize;
1026 Opts.SimplifyLibCalls = !(Args.hasArg(OPT_fno_builtin) ||
1027 Args.hasArg(OPT_ffreestanding));
1028 Opts.UnrollLoops = Args.hasArg(OPT_funroll_loops) ||
1031 Opts.AsmVerbose = Args.hasArg(OPT_masm_verbose);
1032 Opts.ObjCAutoRefCountExceptions = Args.hasArg(OPT_fobjc_arc_exceptions);
1033 Opts.ObjCRuntimeHasARC = Args.hasArg(OPT_fobjc_runtime_has_arc);
1034 Opts.ObjCRuntimeHasTerminate = Args.hasArg(OPT_fobjc_runtime_has_terminate);
1035 Opts.CUDAIsDevice = Args.hasArg(OPT_fcuda_is_device);
1036 Opts.CXAAtExit = !Args.hasArg(OPT_fno_use_cxa_atexit);
1037 Opts.CXXCtorDtorAliases = Args.hasArg(OPT_mconstructor_aliases);
1038 Opts.CodeModel = Args.getLastArgValue(OPT_mcode_model);
1039 Opts.DebugPass = Args.getLastArgValue(OPT_mdebug_pass);
1040 Opts.DisableFPElim = Args.hasArg(OPT_mdisable_fp_elim);
1041 Opts.FloatABI = Args.getLastArgValue(OPT_mfloat_abi);
1042 Opts.HiddenWeakVTables = Args.hasArg(OPT_fhidden_weak_vtables);
1043 Opts.LessPreciseFPMAD = Args.hasArg(OPT_cl_mad_enable);
1044 Opts.LimitFloatPrecision = Args.getLastArgValue(OPT_mlimit_float_precision);
1045 Opts.NoInfsFPMath = Opts.NoNaNsFPMath = Args.hasArg(OPT_cl_finite_math_only)||
1046 Args.hasArg(OPT_cl_fast_relaxed_math);
1047 Opts.NoZeroInitializedInBSS = Args.hasArg(OPT_mno_zero_initialized_in_bss);
1048 Opts.BackendOptions = Args.getAllArgValues(OPT_backend_option);
1049 Opts.NumRegisterParameters = Args.getLastArgIntValue(OPT_mregparm, 0, Diags);
1050 Opts.NoGlobalMerge = Args.hasArg(OPT_mno_global_merge);
1051 Opts.NoExecStack = Args.hasArg(OPT_mno_exec_stack);
1052 Opts.RelaxAll = Args.hasArg(OPT_mrelax_all);
1053 Opts.OmitLeafFramePointer = Args.hasArg(OPT_momit_leaf_frame_pointer);
1054 Opts.SaveTempLabels = Args.hasArg(OPT_msave_temp_labels);
1055 Opts.NoDwarf2CFIAsm = Args.hasArg(OPT_fno_dwarf2_cfi_asm);
1056 Opts.NoDwarfDirectoryAsm = Args.hasArg(OPT_fno_dwarf_directory_asm);
1057 Opts.SoftFloat = Args.hasArg(OPT_msoft_float);
1058 Opts.UnsafeFPMath = Args.hasArg(OPT_cl_unsafe_math_optimizations) ||
1059 Args.hasArg(OPT_cl_fast_relaxed_math);
1060 Opts.UnwindTables = Args.hasArg(OPT_munwind_tables);
1061 Opts.RelocationModel = Args.getLastArgValue(OPT_mrelocation_model, "pic");
1063 Opts.FunctionSections = Args.hasArg(OPT_ffunction_sections);
1064 Opts.DataSections = Args.hasArg(OPT_fdata_sections);
1066 Opts.MainFileName = Args.getLastArgValue(OPT_main_file_name);
1067 Opts.VerifyModule = !Args.hasArg(OPT_disable_llvm_verifier);
1069 Opts.InstrumentFunctions = Args.hasArg(OPT_finstrument_functions);
1070 Opts.InstrumentForProfiling = Args.hasArg(OPT_pg);
1071 Opts.EmitGcovArcs = Args.hasArg(OPT_femit_coverage_data);
1072 Opts.EmitGcovNotes = Args.hasArg(OPT_femit_coverage_notes);
1073 Opts.CoverageFile = Args.getLastArgValue(OPT_coverage_file);
1075 if (Arg *A = Args.getLastArg(OPT_fobjc_dispatch_method_EQ)) {
1076 StringRef Name = A->getValue(Args);
1083 Diags.Report(diag::err_drv_invalid_value) << A->getAsString(Args) << Name;
1090 ArgList &Args) {
1092 Opts.OutputFile = Args.getLastArgValue(OPT_dependency_file);
1093 Opts.Targets = Args.getAllArgValues(OPT_MT);
1094 Opts.IncludeSystemHeaders = Args.hasArg(OPT_sys_header_deps);
1095 Opts.UsePhonyTargets = Args.hasArg(OPT_MP);
1096 Opts.ShowHeaderIncludes = Args.hasArg(OPT_H);
1097 Opts.HeaderIncludeOutputFile = Args.getLastArgValue(OPT_header_include_file);
1098 Opts.AddMissingHeaderDeps = Args.hasArg(OPT_MG);
1101 static void ParseDiagnosticArgs(DiagnosticOptions &Opts, ArgList &Args,
1104 Opts.DiagnosticLogFile = Args.getLastArgValue(OPT_diagnostic_log_file);
1105 Opts.IgnoreWarnings = Args.hasArg(OPT_w);
1106 Opts.NoRewriteMacros = Args.hasArg(OPT_Wno_rewrite_macros);
1107 Opts.Pedantic = Args.hasArg(OPT_pedantic);
1108 Opts.PedanticErrors = Args.hasArg(OPT_pedantic_errors);
1109 Opts.ShowCarets = !Args.hasArg(OPT_fno_caret_diagnostics);
1110 Opts.ShowColors = Args.hasArg(OPT_fcolor_diagnostics);
1111 Opts.ShowColumn = Args.hasFlag(OPT_fshow_column,
1114 Opts.ShowFixits = !Args.hasArg(OPT_fno_diagnostics_fixit_info);
1115 Opts.ShowLocation = !Args.hasArg(OPT_fno_show_source_location);
1116 Opts.ShowNames = Args.hasArg(OPT_fdiagnostics_show_name);
1117 Opts.ShowOptionNames = Args.hasArg(OPT_fdiagnostics_show_option);
1121 if (Arg *A = Args.getLastArg(OPT_fdiagnostics_show_note_include_stack,
1127 Args.getLastArgValue(OPT_fshow_overloads_EQ, "all");
1134 << Args.getLastArg(OPT_fshow_overloads_EQ)->getAsString(Args)
1138 Args.getLastArgValue(OPT_fdiagnostics_show_category, "none");
1147 << Args.getLastArg(OPT_fdiagnostics_show_category)->getAsString(Args)
1151 Args.getLastArgValue(OPT_fdiagnostics_format, "clang");
1160 << Args.getLastArg(OPT_fdiagnostics_format)->getAsString(Args)
1163 Opts.ShowSourceRanges = Args.hasArg(OPT_fdiagnostics_print_source_range_info);
1164 Opts.ShowParseableFixits = Args.hasArg(OPT_fdiagnostics_parseable_fixits);
1165 Opts.VerifyDiagnostics = Args.hasArg(OPT_verify);
1166 Opts.ErrorLimit = Args.getLastArgIntValue(OPT_ferror_limit, 0, Diags);
1168 = Args.getLastArgIntValue(OPT_fmacro_backtrace_limit,
1171 = Args.getLastArgIntValue(OPT_ftemplate_backtrace_limit,
1174 Opts.TabStop = Args.getLastArgIntValue(OPT_ftabstop,
1181 Opts.MessageLength = Args.getLastArgIntValue(OPT_fmessage_length, 0, Diags);
1182 Opts.DumpBuildInformation = Args.getLastArgValue(OPT_dump_build_information);
1183 Opts.Warnings = Args.getAllArgValues(OPT_W);
1186 static void ParseFileSystemArgs(FileSystemOptions &Opts, ArgList &Args) {
1187 Opts.WorkingDir = Args.getLastArgValue(OPT_working_directory);
1190 static InputKind ParseFrontendArgs(FrontendOptions &Opts, ArgList &Args,
1194 if (const Arg *A = Args.getLastArg(OPT_Action_Group)) {
1225 Opts.FixItSuffix = A->getValue(Args);
1258 if (const Arg* A = Args.getLastArg(OPT_plugin)) {
1259 Opts.Plugins.push_back(A->getValue(Args,0));
1261 Opts.ActionName = A->getValue(Args);
1263 for (arg_iterator it = Args.filtered_begin(OPT_plugin_arg),
1264 end = Args.filtered_end(); it != end; ++it) {
1265 if ((*it)->getValue(Args, 0) == Opts.ActionName)
1266 Opts.PluginArgs.push_back((*it)->getValue(Args, 1));
1270 Opts.AddPluginActions = Args.getAllArgValues(OPT_add_plugin);
1273 for (arg_iterator it = Args.filtered_begin(OPT_plugin_arg),
1274 end = Args.filtered_end(); it != end; ++it) {
1275 if ((*it)->getValue(Args, 0) == Opts.AddPluginActions[i])
1276 Opts.AddPluginArgs[i].push_back((*it)->getValue(Args, 1));
1280 if (const Arg *A = Args.getLastArg(OPT_code_completion_at)) {
1282 ParsedSourceLocation::FromString(A->getValue(Args));
1285 << A->getAsString(Args) << A->getValue(Args);
1287 Opts.DisableFree = Args.hasArg(OPT_disable_free);
1289 Opts.OutputFile = Args.getLastArgValue(OPT_o);
1290 Opts.Plugins = Args.getAllArgValues(OPT_load);
1291 Opts.RelocatablePCH = Args.hasArg(OPT_relocatable_pch);
1292 Opts.ShowHelp = Args.hasArg(OPT_help);
1293 Opts.ShowMacrosInCodeCompletion = Args.hasArg(OPT_code_completion_macros);
1295 = Args.hasArg(OPT_code_completion_patterns);
1297 = !Args.hasArg(OPT_no_code_completion_globals);
1298 Opts.ShowStats = Args.hasArg(OPT_print_stats);
1299 Opts.ShowTimers = Args
1300 Opts.ShowVersion = Args.hasArg(OPT_version);
1301 Opts.ASTMergeFiles = Args.getAllArgValues(OPT_ast_merge);
1302 Opts.LLVMArgs = Args.getAllArgValues(OPT_mllvm);
1303 Opts.FixWhatYouCan = Args.hasArg(OPT_fix_what_you_can);
1306 if (const Arg *A = Args.getLastArg(OPT_arcmt_check,
1323 Opts.ARCMTMigrateDir = Args.getLastArgValue(OPT_arcmt_migrate_directory);
1325 = Args.getLastArgValue(OPT_arcmt_migrate_report_output);
1327 = Args.hasArg(OPT_arcmt_migrate_emit_arc_errors);
1330 if (const Arg *A = Args.getLastArg(OPT_x)) {
1331 DashX = llvm::StringSwitch<InputKind>(A->getValue(Args))
1355 << A->getAsString(Args) << A->getValue(Args);
1359 std::vector<std::string> Inputs = Args.getAllArgValues(OPT_INPUT);
1395 static void ParseHeaderSearchArgs(HeaderSearchOptions &Opts, ArgList &Args) {
1397 Opts.Sysroot = Args.getLastArgValue(OPT_isysroot, "/");
1398 Opts.Verbose = Args.hasArg(OPT_v);
1399 Opts.UseBuiltinIncludes = !Args.hasArg(OPT_nobuiltininc);
1400 Opts.UseStandardSystemIncludes = !Args.hasArg(OPT_nostdsysteminc);
1401 Opts.UseStandardCXXIncludes = !Args.hasArg(OPT_nostdincxx);
1402 if (const Arg *A = Args.getLastArg(OPT_stdlib_EQ))
1403 Opts.UseLibcxx = (strcmp(A->getValue(Args), "libc++") == 0);
1404 Opts.ResourceDir = Args.getLastArgValue(OPT_resource_dir);
1405 Opts.ModuleCachePath = Args.getLastArgValue(OPT_fmodule_cache_path);
1406 Opts.DisableModuleHash = Args.hasArg(OPT_fdisable_module_hash);
1410 for (arg_iterator it = Args.filtered_begin(OPT_I, OPT_F,
1412 ie = Args.filtered_end(); it != ie; ++it) {
1422 Opts.AddPath((*it)->getValue(Args), Group, true,
1429 for (arg_iterator it = Args.filtered_begin(OPT_iprefix, OPT_iwithprefix,
1431 ie = Args.filtered_end(); it != ie; ++it) {
1434 Prefix = A->getValue(Args);
1436 Opts.AddPath(Prefix.str() + A->getValue(Args),
1439 Opts.AddPath(Prefix.str() + A->getValue(Args),
1443 for (arg_iterator it = Args.filtered_begin(OPT_idirafter),
1444 ie = Args.filtered_end(); it != ie; ++it)
1445 Opts.AddPath((*it)->getValue(Args), frontend::After, true, false, false);
1446 for (arg_iterator it = Args.filtered_begin(OPT_iquote),
1447 ie = Args.filtered_end(); it != ie; ++it)
1448 Opts.AddPath((*it)->getValue(Args), frontend::Quoted, true, false, false);
1449 for (arg_iterator it = Args.filtered_begin(OPT_isystem,
1450 OPT_iwithsysroot), ie = Args.filtered_end(); it != ie; ++it)
1451 Opts.AddPath((*it)->getValue(Args), frontend::System, true, false,
1453 for (arg_iterator it = Args.filtered_begin(OPT_iframework),
1454 ie = Args.filtered_end(); it != ie; ++it)
1455 Opts.AddPath((*it)->getValue(Args), frontend::System, true, true,
1459 for (arg_iterator it = Args.filtered_begin(OPT_c_isystem),
1460 ie = Args.filtered_end(); it != ie; ++it)
1461 Opts.AddPath((*it)->getValue(Args), frontend::CSystem, true, false, true);
1462 for (arg_iterator it = Args.filtered_begin(OPT_cxx_isystem),
1463 ie = Args.filtered_end(); it != ie; ++it)
1464 Opts.AddPath((*it)->getValue(Args), frontend::CXXSystem, true, false, true);
1465 for (arg_iterator it = Args.filtered_begin(OPT_objc_isystem),
1466 ie = Args.filtered_end(); it != ie; ++it)
1467 Opts.AddPath((*it)->getValue(Args), frontend::ObjCSystem, true, false,true);
1468 for (arg_iterator it = Args.filtered_begin(OPT_objcxx_isystem),
1469 ie = Args.filtered_end(); it != ie; ++it)
1470 Opts.AddPath((*it)->getValue(Args), frontend::ObjCXXSystem, true, false,
1554 static void ParseLangArgs(LangOptions &Opts, ArgList &Args, InputKind IK,
1558 if (const Arg *A = Args.getLastArg(OPT_std_EQ)) {
1559 LangStd = llvm::StringSwitch<LangStandard::Kind>(A->getValue(Args))
1566 << A->getAsString(Args) << A->getValue(Args);
1577 << A->getAsString(Args) << "C/ObjC";
1585 << A->getAsString(Args) << "C++/ObjC++";
1590 << A->getAsString(Args) << "OpenCL";
1595 << A->getAsString(Args) << "CUDA";
1603 if (const Arg *A = Args.getLastArg(OPT_cl_std_EQ)) {
1604 if (strcmp(A->getValue(Args), "CL1.1") != 0) {
1606 << A->getAsString(Args) << A->getValue(Args);
1617 Opts.GNUKeywords = Args.hasFlag(OPT_fgnu_keywords, OPT_fno_gnu_keywords,
1620 if (Args.hasArg(OPT_fno_operator_names))
1624 if (Args.hasArg(OPT_fobjc_gc_only))
1626 else if (Args.hasArg(OPT_fobjc_gc))
1628 else if (Args.hasArg(OPT_fobjc_arc)) {
1630 if (Args.hasArg(OPT_fobjc_fragile_abi))
1634 if (Args.hasArg(OPT_fobjc_runtime_has_weak))
1637 if (Args.hasArg(OPT_fno_objc_infer_related_result_type))
1641 if (Args.hasArg(OPT_fgnu89_inline))
1644 if (Args.hasArg(OPT_fapple_kext)) {
1651 if (Args.hasArg(OPT_print_ivar_layout))
1653 if (Args.hasArg(OPT_fno_constant_cfstrings))
1656 if (Args.hasArg(OPT_faltivec))
1659 if (Args.hasArg(OPT_pthread))
1662 if (Args.hasArg(OPT_fdelayed_template_parsing))
1665 StringRef Vis = Args.getLastArgValue(OPT_fvisibility, "default");
1674 << Args.getLastArg(OPT_fvisibility)->getAsString(Args) << Vis;
1676 if (Args.hasArg(OPT_fvisibility_inlines_hidden))
1679 if (Args.hasArg(OPT_ftrapv)) {
1683 Args.getLastArgValue(OPT_ftrapv_handler);
1685 else if (Args.hasArg(OPT_fwrapv))
1688 if (Args.hasArg(OPT_trigraphs))
1691 Opts.DollarIdents = Args.hasFlag(OPT_fdollars_in_identifiers,
1694 Opts.PascalStrings = Args.hasArg(OPT_fpascal_strings);
1695 Opts.MicrosoftExt = Args.hasArg(OPT_fms_extensions);
1696 Opts.MicrosoftMode = Args.hasArg(OPT_fms_compatibility);
1697 Opts.MSCVersion = Args.getLastArgIntValue(OPT_fmsc_version, 0, Diags);
1698 Opts.Borland = Args.hasArg(OPT_fborland_extensions);
1699 Opts.WritableStrings = Args.hasArg(OPT_fwritable_strings);
1700 Opts.ConstStrings = Args.hasFlag(OPT_fconst_strings, OPT_fno_const_strings,
1702 if (Args.hasArg(OPT_fno_lax_vector_conversions))
1704 if (Args.hasArg(OPT_fno_threadsafe_statics))
1706 Opts.Exceptions = Args.hasArg(OPT_fexceptions);
1707 Opts.ObjCExceptions = Args.hasArg(OPT_fobjc_exceptions);
1708 Opts.CXXExceptions = Args.hasArg(OPT_fcxx_exceptions);
1709 Opts.SjLjExceptions = Args.hasArg(OPT_fsjlj_exceptions);
1710 Opts.TraditionalCPP = Args.hasArg(OPT_traditional_cpp);
1712 Opts.RTTI = !Args.hasArg(OPT_fno_rtti);
1713 Opts.Blocks = Args.hasArg(OPT_fblocks);
1714 Opts.BlocksRuntimeOptional = Args.hasArg(OPT_fblocks_runtime_optional);
1715 Opts.CharIsSigned = !Args.hasArg(OPT_fno_signed_char);
1716 Opts.ShortWChar = Args.hasArg(OPT_fshort_wchar);
1717 Opts.ShortEnums = Args.hasArg(OPT_fshort_enums);
1718 Opts.Freestanding = Args.hasArg(OPT_ffreestanding);
1719 Opts.NoBuiltin = Args.hasArg(OPT_fno_builtin) || Opts.Freestanding;
1720 Opts.AssumeSaneOperatorNew = !Args.hasArg(OPT_fno_assume_sane_operator_new);
1721 Opts.HeinousExtensions = Args.hasArg(OPT_fheinous_gnu_extensions);
1722 Opts.AccessControl = !Args.hasArg(OPT_fno_access_control);
1723 Opts.ElideConstructors = !Args.hasArg(OPT_fno_elide_constructors);
1724 Opts.MathErrno = Args.hasArg(OPT_fmath_errno);
1725 Opts.InstantiationDepth = Args.getLastArgIntValue(OPT_ftemplate_depth, 1024,
1727 Opts.DelayedTemplateParsing = Args.hasArg(OPT_fdelayed_template_parsing);
1728 Opts.NumLargeByValueCopy = Args
1730 Opts.MSBitfields = Args.hasArg(OPT_mms_bitfields);
1731 Opts.NeXTRuntime = !Args.hasArg(OPT_fgnu_runtime);
1733 Args.getLastArgValue(OPT_fconstant_string_class);
1734 Opts.ObjCNonFragileABI = !Args.hasArg(OPT_fobjc_fragile_abi);
1738 Args.hasArg(OPT_fobjc_default_synthesize_properties);
1739 Opts.CatchUndefined = Args.hasArg(OPT_fcatch_undefined_behavior);
1740 Opts.EmitAllDecls = Args.hasArg(OPT_femit_all_decls);
1741 Opts.PackStruct = Args.getLastArgIntValue(OPT_fpack_struct, 0, Diags);
1742 Opts.PICLevel = Args.getLastArgIntValue(OPT_pic_level, 0, Diags);
1743 Opts.Static = Args.hasArg(OPT_static_define);
1744 Opts.DumpRecordLayouts = Args.hasArg(OPT_fdump_record_layouts);
1745 Opts.DumpVTableLayouts = Args.hasArg(OPT_fdump_vtable_layouts);
1746 Opts.SpellChecking = !Args.hasArg(OPT_fno_spell_checking);
1747 Opts.NoBitFieldTypeAlign = Args.hasArg(OPT_fno_bitfield_type_align);
1748 Opts.SinglePrecisionConstants = Args.hasArg(OPT_cl_single_precision_constant);
1749 Opts.FastRelaxedMath = Args.hasArg(OPT_cl_fast_relaxed_math);
1751 Opts.MRTD = Args.hasArg(OPT_mrtd);
1752 Opts.FakeAddressSpaceMap = Args.hasArg(OPT_ffake_address_space_map);
1753 Opts.ParseUnknownAnytype = Args.hasArg(OPT_funknown_anytype);
1754 Opts.DebuggerSupport = Args.hasArg(OPT_fdebugger_support);
1757 Opts.Deprecated = Args.hasFlag(OPT_fdeprecated_macro,
1762 unsigned Opt = getOptimizationLevel(Args, IK, Diags);
1772 unsigned SSP = Args.getLastArgIntValue(OPT_stack_protector, 0, Diags);
1776 << Args.getLastArg(OPT_stack_protector)->getAsString(Args) << SSP;
1784 static void ParsePreprocessorArgs(PreprocessorOptions &Opts, ArgList &Args,
1788 Opts.ImplicitPCHInclude = Args.getLastArgValue(OPT_include_pch);
1789 Opts.ImplicitPTHInclude = Args.getLastArgValue(OPT_include_pth);
1790 if (const Arg *A = Args.getLastArg(OPT_token_cache))
1791 Opts.TokenCache = A->getValue(Args);
1794 Opts.UsePredefines = !Args.hasArg(OPT_undef);
1795 Opts.DetailedRecord = Args.hasArg(OPT_detailed_preprocessing_record);
1796 Opts.AutoModuleImport = Args.hasArg(OPT_fauto_module_import);
1797 Opts.DisablePCHValidation = Args.hasArg(OPT_fno_validate_pch);
1799 Opts.DumpDeserializedPCHDecls = Args.hasArg(OPT_dump_deserialized_pch_decls);
1800 for (arg_iterator it = Args.filtered_begin(OPT_error_on_deserialized_pch_decl),
1801 ie = Args.filtered_end(); it != ie; ++it) {
1803 Opts.DeserializedPCHDeclsToErrorOn.insert(A->getValue(Args));
1806 if (const Arg *A = Args.getLastArg(OPT_preamble_bytes_EQ)) {
1807 StringRef Value(A->getValue(Args));
1823 for (arg_iterator it = Args.filtered_begin(OPT_D, OPT_U),
1824 ie = Args.filtered_end(); it != ie; ++it) {
1826 Opts.addMacroDef((*it)->getValue(Args));
1828 Opts.addMacroUndef((*it)->getValue(Args));
1831 Opts.MacroIncludes = Args.getAllArgValues(OPT_imacros);
1834 for (arg_iterator it = Args.filtered_begin(OPT_include, OPT_include_pch,
1836 ie = Args.filtered_end(); it != ie; ++it) {
1841 ASTReader::getOriginalSourceFile(A->getValue(Args), FileMgr, Diags);
1847 Opts.Includes.push_back(A->getValue(Args));
1850 for (arg_iterator it = Args.filtered_begin(OPT_chain_include),
1851 ie = Args.filtered_end(); it != ie; ++it) {
1853 Opts.ChainedIncludes.push_back(A->getValue(Args));
1857 if (Args.hasArg(OPT_faltivec))
1860 for (arg_iterator it = Args.filtered_begin(OPT_remap_file),
1861 ie = Args.filtered_end(); it != ie; ++it) {
1864 StringRef(A->getValue(Args)).split(';');
1867 Diags.Report(diag::err_drv_invalid_remap_file) << A->getAsString(Args);
1874 if (Arg *A = Args.getLastArg(OPT_fobjc_arc_cxxlib_EQ)) {
1875 StringRef Name = A->getValue(Args);
1882 Diags.Report(diag::err_drv_invalid_value) << A->getAsString(Args) << Name;
1889 ArgList &Args) {
1891 Opts.ShowCPP = !Args.hasArg(OPT_dM);
1892 Opts.ShowComments = Args.hasArg(OPT_C);
1893 Opts.ShowLineMarkers = !Args.hasArg(OPT_P);
1894 Opts.ShowMacroComments = Args.hasArg(OPT_CC);
1895 Opts.ShowMacros = Args.hasArg(OPT_dM) || Args.hasArg(OPT_dD);
1898 static void ParseTargetArgs(TargetOptions &Opts, ArgList &Args) {
1900 Opts.ABI = Args.getLastArgValue(OPT_target_abi);
1901 Opts.CXXABI = Args.getLastArgValue(OPT_cxx_abi);
1902 Opts.CPU = Args.getLastArgValue(OPT_target_cpu);
1903 Opts.Features = Args.getAllArgValues(OPT_target_feature);
1904 Opts.LinkerVersion = Args.getLastArgValue(OPT_target_linker_version);
1905 Opts.Triple = llvm::Triple::normalize(Args.getLastArgValue(OPT_triple));
1921 llvm::OwningPtr<InputArgList> Args(
1927 << Args->getArgString(MissingArgIndex) << MissingArgCount;
1930 for (arg_iterator it = Args->filtered_begin(OPT_UNKNOWN),
1931 ie = Args->filtered_end(); it != ie; ++it)
1932 Diags.Report(diag::err_drv_unknown_argument) << (*it)->getAsString(*Args);
1934 ParseAnalyzerArgs(Res.getAnalyzerOpts(), *Args, Diags);
1935 ParseDependencyOutputArgs(Res.getDependencyOutputOpts(), *Args);
1936 ParseDiagnosticArgs(Res.getDiagnosticOpts(), *Args, Diags);
1937 ParseFileSystemArgs(Res.getFileSystemOpts(), *Args);
1939 InputKind DashX = ParseFrontendArgs(Res.getFrontendOpts(), *Args, Diags);
1940 ParseCodeGenArgs(Res.getCodeGenOpts(), *Args, DashX, Diags);
1941 ParseHeaderSearchArgs(Res.getHeaderSearchOpts(), *Args);
1943 ParseLangArgs(Res.getLangOpts(), *Args, DashX, Diags);
1952 ParsePreprocessorArgs(Res.getPreprocessorOpts(), *Args, FileMgr, Diags);
1953 ParsePreprocessorOutputArgs(Res.getPreprocessorOutputOpts(), *Args);
1954 ParseTargetArgs(Res.getTargetOpts(), *Args);