Lines Matching refs:Opts

204 static bool ParseAnalyzerArgs(AnalyzerOptions &Opts, ArgList &Args,  in ParseAnalyzerArgs()  argument
219 Opts.AnalysisStoreOpt = Value; in ParseAnalyzerArgs()
235 Opts.AnalysisConstraintsOpt = Value; in ParseAnalyzerArgs()
251 Opts.AnalysisDiagOpt = Value; in ParseAnalyzerArgs()
267 Opts.AnalysisPurgeOpt = Value; in ParseAnalyzerArgs()
283 Opts.InliningMode = Value; in ParseAnalyzerArgs()
287 Opts.ShowCheckerHelp = Args.hasArg(OPT_analyzer_checker_help); in ParseAnalyzerArgs()
288 Opts.ShowConfigOptionsList = Args.hasArg(OPT_analyzer_config_help); in ParseAnalyzerArgs()
289 Opts.ShowEnabledCheckerList = Args.hasArg(OPT_analyzer_list_enabled_checkers); in ParseAnalyzerArgs()
290 Opts.ShouldEmitErrorsOnInvalidConfigValue = in ParseAnalyzerArgs()
296 Opts.DisableAllChecks = Args.hasArg(OPT_analyzer_disable_all_checks); in ParseAnalyzerArgs()
298 Opts.visualizeExplodedGraphWithGraphViz = in ParseAnalyzerArgs()
300 Opts.DumpExplodedGraphTo = Args.getLastArgValue(OPT_analyzer_dump_egraph); in ParseAnalyzerArgs()
301 Opts.NoRetryExhausted = Args.hasArg(OPT_analyzer_disable_retry_exhausted); in ParseAnalyzerArgs()
302 Opts.AnalyzeAll = Args.hasArg(OPT_analyzer_opt_analyze_headers); in ParseAnalyzerArgs()
303 Opts.AnalyzerDisplayProgress = Args.hasArg(OPT_analyzer_display_progress); in ParseAnalyzerArgs()
304 Opts.AnalyzeNestedBlocks = in ParseAnalyzerArgs()
306 Opts.AnalyzeSpecificFunction = Args.getLastArgValue(OPT_analyze_function); in ParseAnalyzerArgs()
307 Opts.UnoptimizedCFG = Args.hasArg(OPT_analysis_UnoptimizedCFG); in ParseAnalyzerArgs()
308 Opts.TrimGraph = Args.hasArg(OPT_trim_egraph); in ParseAnalyzerArgs()
309 Opts.maxBlockVisitOnPath = in ParseAnalyzerArgs()
311 Opts.PrintStats = Args.hasArg(OPT_analyzer_stats); in ParseAnalyzerArgs()
312 Opts.InlineMaxStackDepth = in ParseAnalyzerArgs()
314 Opts.InlineMaxStackDepth, Diags); in ParseAnalyzerArgs()
316 Opts.CheckersControlList.clear(); in ParseAnalyzerArgs()
327 Opts.CheckersControlList.emplace_back(checker, enable); in ParseAnalyzerArgs()
357 if (!key.contains(":") && Opts.isUnknownAnalyzerConfig(key)) { in ParseAnalyzerArgs()
358 if (Opts.ShouldEmitErrorsOnInvalidConfigValue) in ParseAnalyzerArgs()
364 Opts.Config[key] = val; in ParseAnalyzerArgs()
368 if (Opts.ShouldEmitErrorsOnInvalidConfigValue) in ParseAnalyzerArgs()
369 parseAnalyzerConfigs(Opts, &Diags); in ParseAnalyzerArgs()
371 parseAnalyzerConfigs(Opts, nullptr); in ParseAnalyzerArgs()
373 llvm::raw_string_ostream os(Opts.FullCompilerInvocation); in ParseAnalyzerArgs()
469 static bool ParseMigratorArgs(MigratorOptions &Opts, ArgList &Args) { in ParseMigratorArgs() argument
470 Opts.NoNSAllocReallocError = Args.hasArg(OPT_migrator_no_nsalloc_error); in ParseMigratorArgs()
471 Opts.NoFinalizeRemoval = Args.hasArg(OPT_migrator_no_finalize_removal); in ParseMigratorArgs()
475 static void ParseCommentArgs(CommentOptions &Opts, ArgList &Args) { in ParseCommentArgs() argument
476 Opts.BlockCommandNames = Args.getAllArgValues(OPT_fcomment_block_commands); in ParseCommentArgs()
477 Opts.ParseAllComments = Args.hasArg(OPT_fparse_all_comments); in ParseCommentArgs()
581 static void setPGOInstrumentor(CodeGenOptions &Opts, ArgList &Args, in setPGOInstrumentor() argument
598 Opts.setProfileInstr(Instrumentor); in setPGOInstrumentor()
602 static void setPGOUseInstrumentor(CodeGenOptions &Opts, in setPGOUseInstrumentor() argument
608 Opts.setProfileUse(CodeGenOptions::ProfileClangInstr); in setPGOUseInstrumentor()
614 Opts.setProfileUse(CodeGenOptions::ProfileIRInstr); in setPGOUseInstrumentor()
616 Opts.setProfileUse(CodeGenOptions::ProfileClangInstr); in setPGOUseInstrumentor()
619 static bool ParseCodeGenArgs(CodeGenOptions &Opts, ArgList &Args, InputKind IK, in ParseCodeGenArgs() argument
636 Opts.OptimizationLevel = OptimizationLevel; in ParseCodeGenArgs()
640 Opts.setInlining((Opts.OptimizationLevel == 0) in ParseCodeGenArgs()
648 if (Opts.OptimizationLevel > 0) { in ParseCodeGenArgs()
651 Opts.setInlining(CodeGenOptions::NormalInlining); in ParseCodeGenArgs()
653 Opts.setInlining(CodeGenOptions::OnlyHintInlining); in ParseCodeGenArgs()
655 Opts.setInlining(CodeGenOptions::OnlyAlwaysInlining); in ParseCodeGenArgs()
659 Opts.ExperimentalNewPassManager = Args.hasFlag( in ParseCodeGenArgs()
663 Opts.DebugPassManager = in ParseCodeGenArgs()
670 Opts.setVecLib(CodeGenOptions::Accelerate); in ParseCodeGenArgs()
672 Opts.setVecLib(CodeGenOptions::SVML); in ParseCodeGenArgs()
674 Opts.setVecLib(CodeGenOptions::NoLibrary); in ParseCodeGenArgs()
691 Opts.setDebugInfo(static_cast<codegenoptions::DebugInfoKind>(Val)); in ParseCodeGenArgs()
703 Opts.setDebuggerTuning(static_cast<llvm::DebuggerKind>(Val)); in ParseCodeGenArgs()
705 Opts.DwarfVersion = getLastArgIntValue(Args, OPT_dwarf_version_EQ, 0, Diags); in ParseCodeGenArgs()
706 Opts.DebugColumnInfo = Args.hasArg(OPT_dwarf_column_info); in ParseCodeGenArgs()
707 Opts.EmitCodeView = Args.hasArg(OPT_gcodeview); in ParseCodeGenArgs()
708 Opts.CodeViewGHash = Args.hasArg(OPT_gcodeview_ghash); in ParseCodeGenArgs()
709 Opts.MacroDebugInfo = Args.hasArg(OPT_debug_info_macro); in ParseCodeGenArgs()
710 Opts.WholeProgramVTables = Args.hasArg(OPT_fwhole_program_vtables); in ParseCodeGenArgs()
711 Opts.LTOVisibilityPublicStd = Args.hasArg(OPT_flto_visibility_public_std); in ParseCodeGenArgs()
712 Opts.SplitDwarfFile = Args.getLastArgValue(OPT_split_dwarf_file); in ParseCodeGenArgs()
713 Opts.SplitDwarfInlining = !Args.hasArg(OPT_fno_split_dwarf_inlining); in ParseCodeGenArgs()
718 Opts.setSplitDwarfMode(CodeGenOptions::SplitFileFission); in ParseCodeGenArgs()
722 Opts.setSplitDwarfMode(CodeGenOptions::SingleFileFission); in ParseCodeGenArgs()
724 Opts.setSplitDwarfMode(CodeGenOptions::SplitFileFission); in ParseCodeGenArgs()
731 Opts.DebugTypeExtRefs = Args.hasArg(OPT_dwarf_ext_refs); in ParseCodeGenArgs()
732 Opts.DebugExplicitImport = Args.hasArg(OPT_dwarf_explicit_import); in ParseCodeGenArgs()
733 Opts.DebugFwdTemplateParams = Args.hasArg(OPT_debug_forward_template_params); in ParseCodeGenArgs()
734 Opts.EmbedSource = Args.hasArg(OPT_gembed_source); in ParseCodeGenArgs()
737 Opts.DebugPrefixMap.insert(StringRef(Arg).split('=')); in ParseCodeGenArgs()
741 Opts.EmitLLVMUseLists = A->getOption().getID() == OPT_emit_llvm_uselists; in ParseCodeGenArgs()
743 Opts.DisableLLVMPasses = Args.hasArg(OPT_disable_llvm_passes); in ParseCodeGenArgs()
744 Opts.DisableLifetimeMarkers = Args.hasArg(OPT_disable_lifetimemarkers); in ParseCodeGenArgs()
745 Opts.DisableO0ImplyOptNone = Args.hasArg(OPT_disable_O0_optnone); in ParseCodeGenArgs()
746 Opts.DisableRedZone = Args.hasArg(OPT_disable_red_zone); in ParseCodeGenArgs()
747 Opts.IndirectTlsSegRefs = Args.hasArg(OPT_mno_tls_direct_seg_refs); in ParseCodeGenArgs()
748 Opts.ForbidGuardVariables = Args.hasArg(OPT_fforbid_guard_variables); in ParseCodeGenArgs()
749 Opts.UseRegisterSizedBitfieldAccess = Args.hasArg( in ParseCodeGenArgs()
751 Opts.RelaxedAliasing = Args.hasArg(OPT_relaxed_aliasing); in ParseCodeGenArgs()
752 Opts.StructPathTBAA = !Args.hasArg(OPT_no_struct_path_tbaa); in ParseCodeGenArgs()
753 Opts.NewStructPathTBAA = !Args.hasArg(OPT_no_struct_path_tbaa) && in ParseCodeGenArgs()
755 Opts.FineGrainedBitfieldAccesses = in ParseCodeGenArgs()
758 Opts.DwarfDebugFlags = Args.getLastArgValue(OPT_dwarf_debug_flags); in ParseCodeGenArgs()
759 Opts.RecordCommandLine = Args.getLastArgValue(OPT_record_command_line); in ParseCodeGenArgs()
760 Opts.MergeAllConstants = Args.hasArg(OPT_fmerge_all_constants); in ParseCodeGenArgs()
761 Opts.NoCommon = Args.hasArg(OPT_fno_common); in ParseCodeGenArgs()
762 Opts.NoImplicitFloat = Args.hasArg(OPT_no_implicit_float); in ParseCodeGenArgs()
763 Opts.OptimizeSize = getOptimizationLevelSize(Args); in ParseCodeGenArgs()
764 Opts.SimplifyLibCalls = !(Args.hasArg(OPT_fno_builtin) || in ParseCodeGenArgs()
766 if (Opts.SimplifyLibCalls) in ParseCodeGenArgs()
767 getAllNoBuiltinFuncValues(Args, Opts.NoBuiltinFuncs); in ParseCodeGenArgs()
768 Opts.UnrollLoops = in ParseCodeGenArgs()
770 (Opts.OptimizationLevel > 1)); in ParseCodeGenArgs()
771 Opts.RerollLoops = Args.hasArg(OPT_freroll_loops); in ParseCodeGenArgs()
773 Opts.DisableIntegratedAS = Args.hasArg(OPT_fno_integrated_as); in ParseCodeGenArgs()
774 Opts.Autolink = !Args.hasArg(OPT_fno_autolink); in ParseCodeGenArgs()
775 Opts.SampleProfileFile = Args.getLastArgValue(OPT_fprofile_sample_use_EQ); in ParseCodeGenArgs()
776 Opts.DebugInfoForProfiling = Args.hasFlag( in ParseCodeGenArgs()
778 Opts.DebugNameTable = static_cast<unsigned>( in ParseCodeGenArgs()
784 Opts.DebugRangesBaseAddress = Args.hasArg(OPT_fdebug_ranges_base_address); in ParseCodeGenArgs()
786 setPGOInstrumentor(Opts, Args, Diags); in ParseCodeGenArgs()
787 Opts.InstrProfileOutput = in ParseCodeGenArgs()
789 Opts.ProfileInstrumentUsePath = in ParseCodeGenArgs()
791 if (!Opts.ProfileInstrumentUsePath.empty()) in ParseCodeGenArgs()
792 setPGOUseInstrumentor(Opts, Opts.ProfileInstrumentUsePath); in ParseCodeGenArgs()
793 Opts.ProfileRemappingFile = in ParseCodeGenArgs()
795 if (!Opts.ProfileRemappingFile.empty() && !Opts.ExperimentalNewPassManager) { in ParseCodeGenArgs()
801 Opts.CoverageMapping = in ParseCodeGenArgs()
803 Opts.DumpCoverageMapping = Args.hasArg(OPT_dump_coverage_mapping); in ParseCodeGenArgs()
804 Opts.AsmVerbose = Args.hasArg(OPT_masm_verbose); in ParseCodeGenArgs()
805 Opts.PreserveAsmComments = !Args.hasArg(OPT_fno_preserve_as_comments); in ParseCodeGenArgs()
806 Opts.AssumeSaneOperatorNew = !Args.hasArg(OPT_fno_assume_sane_operator_new); in ParseCodeGenArgs()
807 Opts.ObjCAutoRefCountExceptions = Args.hasArg(OPT_fobjc_arc_exceptions); in ParseCodeGenArgs()
808 Opts.CXAAtExit = !Args.hasArg(OPT_fno_use_cxa_atexit); in ParseCodeGenArgs()
809 Opts.RegisterGlobalDtorsWithAtExit = in ParseCodeGenArgs()
811 Opts.CXXCtorDtorAliases = Args.hasArg(OPT_mconstructor_aliases); in ParseCodeGenArgs()
812 Opts.CodeModel = TargetOpts.CodeModel; in ParseCodeGenArgs()
813 Opts.DebugPass = Args.getLastArgValue(OPT_mdebug_pass); in ParseCodeGenArgs()
814 Opts.DisableFPElim = in ParseCodeGenArgs()
816 Opts.DisableFree = Args.hasArg(OPT_disable_free); in ParseCodeGenArgs()
817 Opts.DiscardValueNames = Args.hasArg(OPT_discard_value_names); in ParseCodeGenArgs()
818 Opts.DisableTailCalls = Args.hasArg(OPT_mdisable_tail_calls); in ParseCodeGenArgs()
819 Opts.NoEscapingBlockTailCalls = in ParseCodeGenArgs()
821 Opts.FloatABI = Args.getLastArgValue(OPT_mfloat_abi); in ParseCodeGenArgs()
822 Opts.LessPreciseFPMAD = Args.hasArg(OPT_cl_mad_enable) || in ParseCodeGenArgs()
825 Opts.LimitFloatPrecision = Args.getLastArgValue(OPT_mlimit_float_precision); in ParseCodeGenArgs()
826 Opts.NoInfsFPMath = (Args.hasArg(OPT_menable_no_infinities) || in ParseCodeGenArgs()
829 Opts.NoNaNsFPMath = (Args.hasArg(OPT_menable_no_nans) || in ParseCodeGenArgs()
833 Opts.NoSignedZeros = (Args.hasArg(OPT_fno_signed_zeros) || in ParseCodeGenArgs()
837 Opts.Reassociate = Args.hasArg(OPT_mreassociate); in ParseCodeGenArgs()
838 Opts.FlushDenorm = Args.hasArg(OPT_cl_denorms_are_zero) || in ParseCodeGenArgs()
841 Opts.CorrectlyRoundedDivSqrt = in ParseCodeGenArgs()
843 Opts.UniformWGSize = in ParseCodeGenArgs()
845 Opts.Reciprocals = Args.getAllArgValues(OPT_mrecip_EQ); in ParseCodeGenArgs()
846 Opts.ReciprocalMath = Args.hasArg(OPT_freciprocal_math); in ParseCodeGenArgs()
847 Opts.NoTrappingMath = Args.hasArg(OPT_fno_trapping_math); in ParseCodeGenArgs()
848 Opts.StrictFloatCastOverflow = in ParseCodeGenArgs()
851 Opts.NoZeroInitializedInBSS = Args.hasArg(OPT_mno_zero_initialized_in_bss); in ParseCodeGenArgs()
852 Opts.NumRegisterParameters = getLastArgIntValue(Args, OPT_mregparm, 0, Diags); in ParseCodeGenArgs()
853 Opts.NoExecStack = Args.hasArg(OPT_mno_exec_stack); in ParseCodeGenArgs()
854 Opts.FatalWarnings = Args.hasArg(OPT_massembler_fatal_warnings); in ParseCodeGenArgs()
855 Opts.EnableSegmentedStacks = Args.hasArg(OPT_split_stacks); in ParseCodeGenArgs()
856 Opts.RelaxAll = Args.hasArg(OPT_mrelax_all); in ParseCodeGenArgs()
857 Opts.IncrementalLinkerCompatible = in ParseCodeGenArgs()
859 Opts.PIECopyRelocations = in ParseCodeGenArgs()
861 Opts.NoPLT = Args.hasArg(OPT_fno_plt); in ParseCodeGenArgs()
862 Opts.OmitLeafFramePointer = Args.hasArg(OPT_momit_leaf_frame_pointer); in ParseCodeGenArgs()
863 Opts.SaveTempLabels = Args.hasArg(OPT_msave_temp_labels); in ParseCodeGenArgs()
864 Opts.NoDwarfDirectoryAsm = Args.hasArg(OPT_fno_dwarf_directory_asm); in ParseCodeGenArgs()
865 Opts.SoftFloat = Args.hasArg(OPT_msoft_float); in ParseCodeGenArgs()
866 Opts.StrictEnums = Args.hasArg(OPT_fstrict_enums); in ParseCodeGenArgs()
867 Opts.StrictReturn = !Args.hasArg(OPT_fno_strict_return); in ParseCodeGenArgs()
868 Opts.StrictVTablePointers = Args.hasArg(OPT_fstrict_vtable_pointers); in ParseCodeGenArgs()
869 Opts.ForceEmitVTables = Args.hasArg(OPT_fforce_emit_vtables); in ParseCodeGenArgs()
870 Opts.UnsafeFPMath = Args.hasArg(OPT_menable_unsafe_fp_math) || in ParseCodeGenArgs()
873 Opts.UnwindTables = Args.hasArg(OPT_munwind_tables); in ParseCodeGenArgs()
874 Opts.RelocationModel = getRelocModel(Args, Diags); in ParseCodeGenArgs()
875 Opts.ThreadModel = Args.getLastArgValue(OPT_mthread_model, "posix"); in ParseCodeGenArgs()
876 if (Opts.ThreadModel != "posix" && Opts.ThreadModel != "single") in ParseCodeGenArgs()
879 << Opts.ThreadModel; in ParseCodeGenArgs()
880 Opts.TrapFuncName = Args.getLastArgValue(OPT_ftrap_function_EQ); in ParseCodeGenArgs()
881 Opts.UseInitArray = Args.hasArg(OPT_fuse_init_array); in ParseCodeGenArgs()
883 Opts.FunctionSections = Args.hasFlag(OPT_ffunction_sections, in ParseCodeGenArgs()
885 Opts.DataSections = Args.hasFlag(OPT_fdata_sections, in ParseCodeGenArgs()
887 Opts.StackSizeSection = in ParseCodeGenArgs()
889 Opts.UniqueSectionNames = Args.hasFlag(OPT_funique_section_names, in ParseCodeGenArgs()
892 Opts.MergeFunctions = Args.hasArg(OPT_fmerge_functions); in ParseCodeGenArgs()
894 Opts.NoUseJumpTables = Args.hasArg(OPT_fno_jump_tables); in ParseCodeGenArgs()
896 Opts.NullPointerIsValid = Args.hasArg(OPT_fno_delete_null_pointer_checks); in ParseCodeGenArgs()
898 Opts.ProfileSampleAccurate = Args.hasArg(OPT_fprofile_sample_accurate); in ParseCodeGenArgs()
900 Opts.PrepareForLTO = Args.hasArg(OPT_flto, OPT_flto_EQ); in ParseCodeGenArgs()
901 Opts.PrepareForThinLTO = false; in ParseCodeGenArgs()
905 Opts.PrepareForThinLTO = true; in ParseCodeGenArgs()
909 Opts.LTOUnit = Args.hasFlag(OPT_flto_unit, OPT_fno_lto_unit, false); in ParseCodeGenArgs()
910 Opts.EnableSplitLTOUnit = Args.hasArg(OPT_fsplit_lto_unit); in ParseCodeGenArgs()
915 Opts.ThinLTOIndexFile = Args.getLastArgValue(OPT_fthinlto_index_EQ); in ParseCodeGenArgs()
918 Opts.SaveTempsFilePrefix = in ParseCodeGenArgs()
923 Opts.ThinLinkBitcodeFile = Args.getLastArgValue(OPT_fthin_link_bitcode_EQ); in ParseCodeGenArgs()
925 Opts.MSVolatile = Args.hasArg(OPT_fms_volatile); in ParseCodeGenArgs()
927 Opts.VectorizeLoop = Args.hasArg(OPT_vectorize_loops); in ParseCodeGenArgs()
928 Opts.VectorizeSLP = Args.hasArg(OPT_vectorize_slp); in ParseCodeGenArgs()
930 Opts.PreferVectorWidth = Args.getLastArgValue(OPT_mprefer_vector_width_EQ); in ParseCodeGenArgs()
932 Opts.MainFileName = Args.getLastArgValue(OPT_main_file_name); in ParseCodeGenArgs()
933 Opts.VerifyModule = !Args.hasArg(OPT_disable_llvm_verifier); in ParseCodeGenArgs()
935 Opts.ControlFlowGuard = Args.hasArg(OPT_cfguard); in ParseCodeGenArgs()
937 Opts.DisableGCov = Args.hasArg(OPT_test_coverage); in ParseCodeGenArgs()
938 Opts.EmitGcovArcs = Args.hasArg(OPT_femit_coverage_data); in ParseCodeGenArgs()
939 Opts.EmitGcovNotes = Args.hasArg(OPT_femit_coverage_notes); in ParseCodeGenArgs()
940 if (Opts.EmitGcovArcs || Opts.EmitGcovNotes) { in ParseCodeGenArgs()
941 Opts.CoverageDataFile = Args.getLastArgValue(OPT_coverage_data_file); in ParseCodeGenArgs()
942 Opts.CoverageNotesFile = Args.getLastArgValue(OPT_coverage_notes_file); in ParseCodeGenArgs()
943 Opts.CoverageExtraChecksum = Args.hasArg(OPT_coverage_cfg_checksum); in ParseCodeGenArgs()
944 Opts.CoverageNoFunctionNamesInData = in ParseCodeGenArgs()
946 Opts.ProfileFilterFiles = in ParseCodeGenArgs()
948 Opts.ProfileExcludeFiles = in ParseCodeGenArgs()
950 Opts.CoverageExitBlockBeforeBody = in ParseCodeGenArgs()
959 memcpy(Opts.CoverageVersion, CoverageVersion.data(), 4); in ParseCodeGenArgs()
976 Opts.setEmbedBitcode( in ParseCodeGenArgs()
982 if (Opts.getEmbedBitcode() == CodeGenOptions::Embed_All) { in ParseCodeGenArgs()
996 Opts.CmdArgs.insert(Opts.CmdArgs.end(), ArgStr.begin(), ArgStr.end()); in ParseCodeGenArgs()
998 Opts.CmdArgs.push_back('\0'); in ParseCodeGenArgs()
1003 Opts.PreserveVec3Type = Args.hasArg(OPT_fpreserve_vec3_type); in ParseCodeGenArgs()
1004 Opts.InstrumentFunctions = Args.hasArg(OPT_finstrument_functions); in ParseCodeGenArgs()
1005 Opts.InstrumentFunctionsAfterInlining = in ParseCodeGenArgs()
1007 Opts.InstrumentFunctionEntryBare = in ParseCodeGenArgs()
1010 Opts.XRayInstrumentFunctions = in ParseCodeGenArgs()
1012 Opts.XRayAlwaysEmitCustomEvents = in ParseCodeGenArgs()
1014 Opts.XRayAlwaysEmitTypedEvents = in ParseCodeGenArgs()
1016 Opts.XRayInstructionThreshold = in ParseCodeGenArgs()
1022 Opts.XRayInstrumentationBundle.Mask = XRayInstrKind::All; in ParseCodeGenArgs()
1026 Diags, Opts.XRayInstrumentationBundle); in ParseCodeGenArgs()
1028 Opts.InstrumentForProfiling = Args.hasArg(OPT_pg); in ParseCodeGenArgs()
1029 Opts.CallFEntry = Args.hasArg(OPT_mfentry); in ParseCodeGenArgs()
1030 Opts.EmitOpenCLArgMetadata = Args.hasArg(OPT_cl_kernel_arg_info); in ParseCodeGenArgs()
1035 Opts.CFProtectionReturn = 1; in ParseCodeGenArgs()
1036 Opts.CFProtectionBranch = 1; in ParseCodeGenArgs()
1038 Opts.CFProtectionReturn = 1; in ParseCodeGenArgs()
1040 Opts.CFProtectionBranch = 1; in ParseCodeGenArgs()
1051 Opts.setCompressDebugSections(llvm::DebugCompressionType::GNU); in ParseCodeGenArgs()
1058 Opts.setCompressDebugSections(DCT); in ParseCodeGenArgs()
1062 Opts.RelaxELFRelocations = Args.hasArg(OPT_mrelax_relocations); in ParseCodeGenArgs()
1063 Opts.DebugCompilationDir = Args.getLastArgValue(OPT_fdebug_compilation_dir); in ParseCodeGenArgs()
1075 Opts.LinkBitcodeFiles.push_back(F); in ParseCodeGenArgs()
1077 Opts.SanitizeCoverageType = in ParseCodeGenArgs()
1079 Opts.SanitizeCoverageIndirectCalls = in ParseCodeGenArgs()
1081 Opts.SanitizeCoverageTraceBB = Args.hasArg(OPT_fsanitize_coverage_trace_bb); in ParseCodeGenArgs()
1082 Opts.SanitizeCoverageTraceCmp = Args.hasArg(OPT_fsanitize_coverage_trace_cmp); in ParseCodeGenArgs()
1083 Opts.SanitizeCoverageTraceDiv = Args.hasArg(OPT_fsanitize_coverage_trace_div); in ParseCodeGenArgs()
1084 Opts.SanitizeCoverageTraceGep = Args.hasArg(OPT_fsanitize_coverage_trace_gep); in ParseCodeGenArgs()
1085 Opts.SanitizeCoverage8bitCounters = in ParseCodeGenArgs()
1087 Opts.SanitizeCoverageTracePC = Args.hasArg(OPT_fsanitize_coverage_trace_pc); in ParseCodeGenArgs()
1088 Opts.SanitizeCoverageTracePCGuard = in ParseCodeGenArgs()
1090 Opts.SanitizeCoverageNoPrune = Args.hasArg(OPT_fsanitize_coverage_no_prune); in ParseCodeGenArgs()
1091 Opts.SanitizeCoverageInline8bitCounters = in ParseCodeGenArgs()
1093 Opts.SanitizeCoveragePCTable = Args.hasArg(OPT_fsanitize_coverage_pc_table); in ParseCodeGenArgs()
1094 Opts.SanitizeCoverageStackDepth = in ParseCodeGenArgs()
1096 Opts.SanitizeMemoryTrackOrigins = in ParseCodeGenArgs()
1098 Opts.SanitizeMemoryUseAfterDtor = in ParseCodeGenArgs()
1102 Opts.SanitizeMinimalRuntime = Args.hasArg(OPT_fsanitize_minimal_runtime); in ParseCodeGenArgs()
1103 Opts.SanitizeCfiCrossDso = Args.hasArg(OPT_fsanitize_cfi_cross_dso); in ParseCodeGenArgs()
1104 Opts.SanitizeCfiICallGeneralizePointers = in ParseCodeGenArgs()
1106 Opts.SanitizeStats = Args.hasArg(OPT_fsanitize_stats); in ParseCodeGenArgs()
1110 Opts.SanitizeAddressPoisonCustomArrayCookie = in ParseCodeGenArgs()
1116 Opts.SanitizeAddressUseAfterScope = in ParseCodeGenArgs()
1119 Opts.SanitizeAddressGlobalsDeadStripping = in ParseCodeGenArgs()
1123 Opts.SanitizeAddressUseOdrIndicator = in ParseCodeGenArgs()
1126 Opts.SSPBufferSize = in ParseCodeGenArgs()
1128 Opts.StackRealignment = Args.hasArg(OPT_mstackrealign); in ParseCodeGenArgs()
1131 unsigned StackAlignment = Opts.StackAlignment; in ParseCodeGenArgs()
1133 Opts.StackAlignment = StackAlignment; in ParseCodeGenArgs()
1138 unsigned StackProbeSize = Opts.StackProbeSize; in ParseCodeGenArgs()
1140 Opts.StackProbeSize = StackProbeSize; in ParseCodeGenArgs()
1143 Opts.NoStackArgProbe = Args.hasArg(OPT_mno_stack_arg_probe); in ParseCodeGenArgs()
1156 Opts.setObjCDispatchMethod( in ParseCodeGenArgs()
1163 Opts.ObjCConvertMessagesToRuntimeCalls = 0; in ParseCodeGenArgs()
1167 Opts.ExplicitEmulatedTLS = true; in ParseCodeGenArgs()
1168 Opts.EmulatedTLS = in ParseCodeGenArgs()
1184 Opts.setDefaultTLSModel(static_cast<CodeGenOptions::TLSModel>(Model)); in ParseCodeGenArgs()
1191 Opts.FPDenormalMode = "ieee"; in ParseCodeGenArgs()
1193 Opts.FPDenormalMode = "preserve-sign"; in ParseCodeGenArgs()
1195 Opts.FPDenormalMode = "positive-zero"; in ParseCodeGenArgs()
1202 Opts.setStructReturnConvention(CodeGenOptions::SRCK_OnStack); in ParseCodeGenArgs()
1205 Opts.setStructReturnConvention(CodeGenOptions::SRCK_InRegs); in ParseCodeGenArgs()
1209 Opts.DependentLibraries = Args.getAllArgValues(OPT_dependent_lib); in ParseCodeGenArgs()
1210 Opts.LinkerOptions = Args.getAllArgValues(OPT_linker_option); in ParseCodeGenArgs()
1213 Opts.OptRecordFile = Args.getLastArgValue(OPT_opt_record_file); in ParseCodeGenArgs()
1214 if (!Opts.OptRecordFile.empty()) in ParseCodeGenArgs()
1218 Opts.OptimizationRemarkPattern = in ParseCodeGenArgs()
1224 Opts.OptimizationRemarkMissedPattern = in ParseCodeGenArgs()
1230 Opts.OptimizationRemarkAnalysisPattern = in ParseCodeGenArgs()
1235 Opts.DiagnosticsWithHotness = in ParseCodeGenArgs()
1237 bool UsingSampleProfile = !Opts.SampleProfileFile.empty(); in ParseCodeGenArgs()
1239 (Opts.getProfileUse() != CodeGenOptions::ProfileNone); in ParseCodeGenArgs()
1241 if (Opts.DiagnosticsWithHotness && !UsingProfile && in ParseCodeGenArgs()
1247 Opts.DiagnosticsHotnessThreshold = getLastArgUInt64Value( in ParseCodeGenArgs()
1249 if (Opts.DiagnosticsHotnessThreshold > 0 && !UsingProfile) in ParseCodeGenArgs()
1261 if (NeedLocTracking && Opts.getDebugInfo() == codegenoptions::NoDebugInfo) in ParseCodeGenArgs()
1262 Opts.setDebugInfo(codegenoptions::LocTrackingOnly); in ParseCodeGenArgs()
1264 Opts.RewriteMapFiles = Args.getAllArgValues(OPT_frewrite_map_file); in ParseCodeGenArgs()
1270 Opts.SanitizeRecover); in ParseCodeGenArgs()
1273 Opts.SanitizeTrap); in ParseCodeGenArgs()
1275 Opts.CudaGpuBinaryFileName = in ParseCodeGenArgs()
1278 Opts.Backchain = Args.hasArg(OPT_mbackchain); in ParseCodeGenArgs()
1280 Opts.EmitCheckPathComponentsToStrip = getLastArgIntValue( in ParseCodeGenArgs()
1283 Opts.EmitVersionIdentMetadata = Args.hasFlag(OPT_Qy, OPT_Qn, true); in ParseCodeGenArgs()
1285 Opts.Addrsig = Args.hasArg(OPT_faddrsig); in ParseCodeGenArgs()
1291 Opts.setSignReturnAddress(CodeGenOptions::SignReturnAddressScope::None); in ParseCodeGenArgs()
1293 Opts.setSignReturnAddress(CodeGenOptions::SignReturnAddressScope::All); in ParseCodeGenArgs()
1295 Opts.setSignReturnAddress( in ParseCodeGenArgs()
1305 Opts.setSignReturnAddressKey( in ParseCodeGenArgs()
1308 Opts.setSignReturnAddressKey( in ParseCodeGenArgs()
1317 Opts.BranchTargetEnforcement = Args.hasArg(OPT_mbranch_target_enforce); in ParseCodeGenArgs()
1319 Opts.KeepStaticConsts = Args.hasArg(OPT_fkeep_static_consts); in ParseCodeGenArgs()
1321 Opts.SpeculativeLoadHardening = Args.hasArg(OPT_mspeculative_load_hardening); in ParseCodeGenArgs()
1323 Opts.DefaultFunctionAttrs = Args.getAllArgValues(OPT_default_function_attr); in ParseCodeGenArgs()
1328 static void ParseDependencyOutputArgs(DependencyOutputOptions &Opts, in ParseDependencyOutputArgs() argument
1330 Opts.OutputFile = Args.getLastArgValue(OPT_dependency_file); in ParseDependencyOutputArgs()
1331 Opts.Targets = Args.getAllArgValues(OPT_MT); in ParseDependencyOutputArgs()
1332 Opts.IncludeSystemHeaders = Args.hasArg(OPT_sys_header_deps); in ParseDependencyOutputArgs()
1333 Opts.IncludeModuleFiles = Args.hasArg(OPT_module_file_deps); in ParseDependencyOutputArgs()
1334 Opts.UsePhonyTargets = Args.hasArg(OPT_MP); in ParseDependencyOutputArgs()
1335 Opts.ShowHeaderIncludes = Args.hasArg(OPT_H); in ParseDependencyOutputArgs()
1336 Opts.HeaderIncludeOutputFile = Args.getLastArgValue(OPT_header_include_file); in ParseDependencyOutputArgs()
1337 Opts.AddMissingHeaderDeps = Args.hasArg(OPT_MG); in ParseDependencyOutputArgs()
1343 Opts.ShowIncludesDest = ShowIncludesDestination::Stderr; in ParseDependencyOutputArgs()
1345 Opts.ShowIncludesDest = ShowIncludesDestination::Stdout; in ParseDependencyOutputArgs()
1347 Opts.ShowIncludesDest = ShowIncludesDestination::None; in ParseDependencyOutputArgs()
1349 Opts.DOTOutputFile = Args.getLastArgValue(OPT_dependency_dot); in ParseDependencyOutputArgs()
1350 Opts.ModuleDependencyOutputDir = in ParseDependencyOutputArgs()
1353 Opts.OutputFormat = DependencyOutputFormat::NMake; in ParseDependencyOutputArgs()
1357 Opts.ExtraDeps = Args.getAllArgValues(OPT_fdepfile_entry); in ParseDependencyOutputArgs()
1362 Opts.ExtraDeps.push_back(Val); in ParseDependencyOutputArgs()
1419 bool clang::ParseDiagnosticArgs(DiagnosticOptions &Opts, ArgList &Args, in ParseDiagnosticArgs() argument
1424 Opts.DiagnosticLogFile = Args.getLastArgValue(OPT_diagnostic_log_file); in ParseDiagnosticArgs()
1427 Opts.DiagnosticSerializationFile = A->getValue(); in ParseDiagnosticArgs()
1428 Opts.IgnoreWarnings = Args.hasArg(OPT_w); in ParseDiagnosticArgs()
1429 Opts.NoRewriteMacros = Args.hasArg(OPT_Wno_rewrite_macros); in ParseDiagnosticArgs()
1430 Opts.Pedantic = Args.hasArg(OPT_pedantic); in ParseDiagnosticArgs()
1431 Opts.PedanticErrors = Args.hasArg(OPT_pedantic_errors); in ParseDiagnosticArgs()
1432 Opts.ShowCarets = !Args.hasArg(OPT_fno_caret_diagnostics); in ParseDiagnosticArgs()
1433 Opts.ShowColors = parseShowColorsArgs(Args, DefaultDiagColor); in ParseDiagnosticArgs()
1434 Opts.ShowColumn = Args.hasFlag(OPT_fshow_column, in ParseDiagnosticArgs()
1437 Opts.ShowFixits = !Args.hasArg(OPT_fno_diagnostics_fixit_info); in ParseDiagnosticArgs()
1438 Opts.ShowLocation = !Args.hasArg(OPT_fno_show_source_location); in ParseDiagnosticArgs()
1439 Opts.AbsolutePath = Args.hasArg(OPT_fdiagnostics_absolute_paths); in ParseDiagnosticArgs()
1440 Opts.ShowOptionNames = in ParseDiagnosticArgs()
1447 Opts.ShowNoteIncludeStack = false; in ParseDiagnosticArgs()
1451 Opts.ShowNoteIncludeStack = true; in ParseDiagnosticArgs()
1456 Opts.setShowOverloads(Ovl_Best); in ParseDiagnosticArgs()
1458 Opts.setShowOverloads(Ovl_All); in ParseDiagnosticArgs()
1470 Opts.ShowCategories = 0; in ParseDiagnosticArgs()
1472 Opts.ShowCategories = 1; in ParseDiagnosticArgs()
1474 Opts.ShowCategories = 2; in ParseDiagnosticArgs()
1486 Opts.setFormat(DiagnosticOptions::Clang); in ParseDiagnosticArgs()
1488 Opts.setFormat(DiagnosticOptions::MSVC); in ParseDiagnosticArgs()
1490 Opts.setFormat(DiagnosticOptions::MSVC); in ParseDiagnosticArgs()
1491 Opts.CLFallbackMode = true; in ParseDiagnosticArgs()
1493 Opts.setFormat(DiagnosticOptions::Vi); in ParseDiagnosticArgs()
1502 Opts.ShowSourceRanges = Args.hasArg(OPT_fdiagnostics_print_source_range_info); in ParseDiagnosticArgs()
1503 Opts.ShowParseableFixits = Args.hasArg(OPT_fdiagnostics_parseable_fixits); in ParseDiagnosticArgs()
1504 Opts.ShowPresumedLoc = !Args.hasArg(OPT_fno_diagnostics_use_presumed_location); in ParseDiagnosticArgs()
1505 Opts.VerifyDiagnostics = Args.hasArg(OPT_verify) || Args.hasArg(OPT_verify_EQ); in ParseDiagnosticArgs()
1506 Opts.VerifyPrefixes = Args.getAllArgValues(OPT_verify_EQ); in ParseDiagnosticArgs()
1508 Opts.VerifyPrefixes.push_back("expected"); in ParseDiagnosticArgs()
1511 if (!checkVerifyPrefixes(Opts.VerifyPrefixes, Diags)) { in ParseDiagnosticArgs()
1512 Opts.VerifyDiagnostics = false; in ParseDiagnosticArgs()
1516 llvm::sort(Opts.VerifyPrefixes); in ParseDiagnosticArgs()
1523 Opts.setVerifyIgnoreUnexpected(DiagMask); in ParseDiagnosticArgs()
1524 Opts.ElideType = !Args.hasArg(OPT_fno_elide_type); in ParseDiagnosticArgs()
1525 Opts.ShowTemplateTree = Args.hasArg(OPT_fdiagnostics_show_template_tree); in ParseDiagnosticArgs()
1526 Opts.ErrorLimit = getLastArgIntValue(Args, OPT_ferror_limit, 0, Diags); in ParseDiagnosticArgs()
1527 Opts.MacroBacktraceLimit = in ParseDiagnosticArgs()
1530 Opts.TemplateBacktraceLimit = getLastArgIntValue( in ParseDiagnosticArgs()
1533 Opts.ConstexprBacktraceLimit = getLastArgIntValue( in ParseDiagnosticArgs()
1536 Opts.SpellCheckingLimit = getLastArgIntValue( in ParseDiagnosticArgs()
1539 Opts.SnippetLineLimit = getLastArgIntValue( in ParseDiagnosticArgs()
1542 Opts.TabStop = getLastArgIntValue(Args, OPT_ftabstop, in ParseDiagnosticArgs()
1544 if (Opts.TabStop == 0 || Opts.TabStop > DiagnosticOptions::MaxTabStop) { in ParseDiagnosticArgs()
1545 Opts.TabStop = DiagnosticOptions::DefaultTabStop; in ParseDiagnosticArgs()
1548 << Opts.TabStop << DiagnosticOptions::DefaultTabStop; in ParseDiagnosticArgs()
1550 Opts.MessageLength = getLastArgIntValue(Args, OPT_fmessage_length, 0, Diags); in ParseDiagnosticArgs()
1551 addDiagnosticArgs(Args, OPT_W_Group, OPT_W_value_Group, Opts.Warnings); in ParseDiagnosticArgs()
1552 addDiagnosticArgs(Args, OPT_R_Group, OPT_R_value_Group, Opts.Remarks); in ParseDiagnosticArgs()
1557 static void ParseFileSystemArgs(FileSystemOptions &Opts, ArgList &Args) { in ParseFileSystemArgs() argument
1558 Opts.WorkingDir = Args.getLastArgValue(OPT_working_directory); in ParseFileSystemArgs()
1585 static InputKind ParseFrontendArgs(FrontendOptions &Opts, ArgList &Args, in ParseFrontendArgs() argument
1588 Opts.ProgramAction = frontend::ParseSyntaxOnly; in ParseFrontendArgs()
1594 Opts.ProgramAction = frontend::ASTDeclList; break; in ParseFrontendArgs()
1598 Opts.ProgramAction = frontend::ASTDump; break; in ParseFrontendArgs()
1600 Opts.ProgramAction = frontend::ASTPrint; break; in ParseFrontendArgs()
1602 Opts.ProgramAction = frontend::ASTView; break; in ParseFrontendArgs()
1604 Opts.ProgramAction = frontend::DumpCompilerOptions; break; in ParseFrontendArgs()
1606 Opts.ProgramAction = frontend::DumpRawTokens; break; in ParseFrontendArgs()
1608 Opts.ProgramAction = frontend::DumpTokens; break; in ParseFrontendArgs()
1610 Opts.ProgramAction = frontend::EmitAssembly; break; in ParseFrontendArgs()
1612 Opts.ProgramAction = frontend::EmitBC; break; in ParseFrontendArgs()
1614 Opts.ProgramAction = frontend::EmitHTML; break; in ParseFrontendArgs()
1616 Opts.ProgramAction = frontend::EmitLLVM; break; in ParseFrontendArgs()
1618 Opts.ProgramAction = frontend::EmitLLVMOnly; break; in ParseFrontendArgs()
1620 Opts.ProgramAction = frontend::EmitCodeGenOnly; break; in ParseFrontendArgs()
1622 Opts.ProgramAction = frontend::EmitObj; break; in ParseFrontendArgs()
1624 Opts.FixItSuffix = A->getValue(); in ParseFrontendArgs()
1627 Opts.ProgramAction = frontend::FixIt; break; in ParseFrontendArgs()
1629 Opts.ProgramAction = frontend::GenerateModule; break; in ParseFrontendArgs()
1631 Opts.ProgramAction = frontend::GenerateModuleInterface; break; in ParseFrontendArgs()
1633 Opts.ProgramAction = frontend::GenerateHeaderModule; break; in ParseFrontendArgs()
1635 Opts.ProgramAction = frontend::GeneratePCH; break; in ParseFrontendArgs()
1637 Opts.ProgramAction = frontend::InitOnly; break; in ParseFrontendArgs()
1639 Opts.ProgramAction = frontend::ParseSyntaxOnly; break; in ParseFrontendArgs()
1641 Opts.ProgramAction = frontend::ModuleFileInfo; break; in ParseFrontendArgs()
1643 Opts.ProgramAction = frontend::VerifyPCH; break; in ParseFrontendArgs()
1645 Opts.ProgramAction = frontend::PrintPreamble; break; in ParseFrontendArgs()
1647 Opts.ProgramAction = frontend::PrintPreprocessedInput; break; in ParseFrontendArgs()
1649 Opts.ProgramAction = frontend::TemplightDump; break; in ParseFrontendArgs()
1651 Opts.ProgramAction = frontend::RewriteMacros; break; in ParseFrontendArgs()
1653 Opts.ProgramAction = frontend::RewriteObjC; break; in ParseFrontendArgs()
1655 Opts.ProgramAction = frontend::RewriteTest; break; in ParseFrontendArgs()
1657 Opts.ProgramAction = frontend::RunAnalysis; break; in ParseFrontendArgs()
1659 Opts.ProgramAction = frontend::MigrateSource; break; in ParseFrontendArgs()
1661 Opts.ProgramAction = frontend::RunPreprocessorOnly; break; in ParseFrontendArgs()
1666 Opts.Plugins.emplace_back(A->getValue(0)); in ParseFrontendArgs()
1667 Opts.ProgramAction = frontend::PluginAction; in ParseFrontendArgs()
1668 Opts.ActionName = A->getValue(); in ParseFrontendArgs()
1670 Opts.AddPluginActions = Args.getAllArgValues(OPT_add_plugin); in ParseFrontendArgs()
1672 Opts.PluginArgs[AA->getValue(0)].emplace_back(AA->getValue(1)); in ParseFrontendArgs()
1689 Opts.ModuleFileExtensions.push_back( in ParseFrontendArgs()
1695 Opts.CodeCompletionAt = in ParseFrontendArgs()
1697 if (Opts.CodeCompletionAt.FileName.empty()) in ParseFrontendArgs()
1701 Opts.DisableFree = Args.hasArg(OPT_disable_free); in ParseFrontendArgs()
1703 Opts.OutputFile = Args.getLastArgValue(OPT_o); in ParseFrontendArgs()
1704 Opts.Plugins = Args.getAllArgValues(OPT_load); in ParseFrontendArgs()
1705 Opts.RelocatablePCH = Args.hasArg(OPT_relocatable_pch); in ParseFrontendArgs()
1706 Opts.ShowHelp = Args.hasArg(OPT_help); in ParseFrontendArgs()
1707 Opts.ShowStats = Args.hasArg(OPT_print_stats); in ParseFrontendArgs()
1708 Opts.ShowTimers = Args.hasArg(OPT_ftime_report); in ParseFrontendArgs()
1709 Opts.ShowVersion = Args.hasArg(OPT_version); in ParseFrontendArgs()
1710 Opts.ASTMergeFiles = Args.getAllArgValues(OPT_ast_merge); in ParseFrontendArgs()
1711 Opts.LLVMArgs = Args.getAllArgValues(OPT_mllvm); in ParseFrontendArgs()
1712 Opts.FixWhatYouCan = Args.hasArg(OPT_fix_what_you_can); in ParseFrontendArgs()
1713 Opts.FixOnlyWarnings = Args.hasArg(OPT_fix_only_warnings); in ParseFrontendArgs()
1714 Opts.FixAndRecompile = Args.hasArg(OPT_fixit_recompile); in ParseFrontendArgs()
1715 Opts.FixToTemporaries = Args.hasArg(OPT_fixit_to_temp); in ParseFrontendArgs()
1716 Opts.ASTDumpDecls = Args.hasArg(OPT_ast_dump); in ParseFrontendArgs()
1717 Opts.ASTDumpAll = Args.hasArg(OPT_ast_dump_all); in ParseFrontendArgs()
1718 Opts.ASTDumpFilter = Args.getLastArgValue(OPT_ast_dump_filter); in ParseFrontendArgs()
1719 Opts.ASTDumpLookups = Args.hasArg(OPT_ast_dump_lookups); in ParseFrontendArgs()
1720 Opts.UseGlobalModuleIndex = !Args.hasArg(OPT_fno_modules_global_index); in ParseFrontendArgs()
1721 Opts.GenerateGlobalModuleIndex = Opts.UseGlobalModuleIndex; in ParseFrontendArgs()
1722 Opts.ModuleMapFiles = Args.getAllArgValues(OPT_fmodule_map_file); in ParseFrontendArgs()
1727 Opts.ModuleFiles.push_back(Val); in ParseFrontendArgs()
1729 Opts.ModulesEmbedFiles = Args.getAllArgValues(OPT_fmodules_embed_file_EQ); in ParseFrontendArgs()
1730 Opts.ModulesEmbedAllFiles = Args.hasArg(OPT_fmodules_embed_all_files); in ParseFrontendArgs()
1731 Opts.IncludeTimestamps = !Args.hasArg(OPT_fno_pch_timestamp); in ParseFrontendArgs()
1733 Opts.CodeCompleteOpts.IncludeMacros in ParseFrontendArgs()
1735 Opts.CodeCompleteOpts.IncludeCodePatterns in ParseFrontendArgs()
1737 Opts.CodeCompleteOpts.IncludeGlobals in ParseFrontendArgs()
1739 Opts.CodeCompleteOpts.IncludeNamespaceLevelDecls in ParseFrontendArgs()
1741 Opts.CodeCompleteOpts.IncludeBriefComments in ParseFrontendArgs()
1743 Opts.CodeCompleteOpts.IncludeFixIts in ParseFrontendArgs()
1746 Opts.OverrideRecordLayoutsFile in ParseFrontendArgs()
1748 Opts.AuxTriple = Args.getLastArgValue(OPT_aux_triple); in ParseFrontendArgs()
1749 Opts.StatsFile = Args.getLastArgValue(OPT_stats_file); in ParseFrontendArgs()
1758 Opts.ARCMTAction = FrontendOptions::ARCMT_Check; in ParseFrontendArgs()
1761 Opts.ARCMTAction = FrontendOptions::ARCMT_Modify; in ParseFrontendArgs()
1764 Opts.ARCMTAction = FrontendOptions::ARCMT_Migrate; in ParseFrontendArgs()
1768 Opts.MTMigrateDir = Args.getLastArgValue(OPT_mt_migrate_directory); in ParseFrontendArgs()
1769 Opts.ARCMTMigrateReportOut in ParseFrontendArgs()
1771 Opts.ARCMTMigrateEmitARCErrors in ParseFrontendArgs()
1775 Opts.ObjCMTAction |= FrontendOptions::ObjCMT_Literals; in ParseFrontendArgs()
1777 Opts.ObjCMTAction |= FrontendOptions::ObjCMT_Subscripting; in ParseFrontendArgs()
1779 Opts.ObjCMTAction |= FrontendOptions::ObjCMT_PropertyDotSyntax; in ParseFrontendArgs()
1781 Opts.ObjCMTAction |= FrontendOptions::ObjCMT_Property; in ParseFrontendArgs()
1783 Opts.ObjCMTAction |= FrontendOptions::ObjCMT_ReadonlyProperty; in ParseFrontendArgs()
1785 Opts.ObjCMTAction |= FrontendOptions::ObjCMT_ReadwriteProperty; in ParseFrontendArgs()
1787 Opts.ObjCMTAction |= FrontendOptions::ObjCMT_Annotation; in ParseFrontendArgs()
1789 Opts.ObjCMTAction |= FrontendOptions::ObjCMT_ReturnsInnerPointerProperty; in ParseFrontendArgs()
1791 Opts.ObjCMTAction |= FrontendOptions::ObjCMT_Instancetype; in ParseFrontendArgs()
1793 Opts.ObjCMTAction |= FrontendOptions::ObjCMT_NsMacros; in ParseFrontendArgs()
1795 Opts.ObjCMTAction |= FrontendOptions::ObjCMT_ProtocolConformance; in ParseFrontendArgs()
1797 Opts.ObjCMTAction |= FrontendOptions::ObjCMT_AtomicProperty; in ParseFrontendArgs()
1799 Opts.ObjCMTAction |= FrontendOptions::ObjCMT_NsAtomicIOSOnlyProperty; in ParseFrontendArgs()
1801 Opts.ObjCMTAction |= FrontendOptions::ObjCMT_DesignatedInitializer; in ParseFrontendArgs()
1803 Opts.ObjCMTAction |= FrontendOptions::ObjCMT_MigrateDecls; in ParseFrontendArgs()
1805 Opts.ObjCMTWhiteListPath = Args.getLastArgValue(OPT_objcmt_whitelist_dir_path); in ParseFrontendArgs()
1807 if (Opts.ARCMTAction != FrontendOptions::ARCMT_None && in ParseFrontendArgs()
1808 Opts.ObjCMTAction != FrontendOptions::ObjCMT_None) { in ParseFrontendArgs()
1866 Opts.Inputs.clear(); in ParseFrontendArgs()
1883 if (Opts.ProgramAction == frontend::GenerateModule && in ParseFrontendArgs()
1887 Opts.Inputs.emplace_back(std::move(Inputs[i]), IK); in ParseFrontendArgs()
1911 static void ParseHeaderSearchArgs(HeaderSearchOptions &Opts, ArgList &Args, in ParseHeaderSearchArgs() argument
1913 Opts.Sysroot = Args.getLastArgValue(OPT_isysroot, "/"); in ParseHeaderSearchArgs()
1914 Opts.Verbose = Args.hasArg(OPT_v); in ParseHeaderSearchArgs()
1915 Opts.UseBuiltinIncludes = !Args.hasArg(OPT_nobuiltininc); in ParseHeaderSearchArgs()
1916 Opts.UseStandardSystemIncludes = !Args.hasArg(OPT_nostdsysteminc); in ParseHeaderSearchArgs()
1917 Opts.UseStandardCXXIncludes = !Args.hasArg(OPT_nostdincxx); in ParseHeaderSearchArgs()
1919 Opts.UseLibcxx = (strcmp(A->getValue(), "libc++") == 0); in ParseHeaderSearchArgs()
1920 Opts.ResourceDir = Args.getLastArgValue(OPT_resource_dir); in ParseHeaderSearchArgs()
1931 Opts.ModuleCachePath = P.str(); in ParseHeaderSearchArgs()
1933 Opts.ModuleUserBuildPath = Args.getLastArgValue(OPT_fmodules_user_build_path); in ParseHeaderSearchArgs()
1938 Opts.PrebuiltModuleFiles.insert(Val.split('=')); in ParseHeaderSearchArgs()
1941 Opts.AddPrebuiltModulePath(A->getValue()); in ParseHeaderSearchArgs()
1942 Opts.DisableModuleHash = Args.hasArg(OPT_fdisable_module_hash); in ParseHeaderSearchArgs()
1943 Opts.ModulesHashContent = Args.hasArg(OPT_fmodules_hash_content); in ParseHeaderSearchArgs()
1944 Opts.ModulesValidateDiagnosticOptions = in ParseHeaderSearchArgs()
1946 Opts.ImplicitModuleMaps = Args.hasArg(OPT_fimplicit_module_maps); in ParseHeaderSearchArgs()
1947 Opts.ModuleMapFileHomeIsCwd = Args.hasArg(OPT_fmodule_map_file_home_is_cwd); in ParseHeaderSearchArgs()
1948 Opts.ModuleCachePruneInterval = in ParseHeaderSearchArgs()
1950 Opts.ModuleCachePruneAfter = in ParseHeaderSearchArgs()
1952 Opts.ModulesValidateOncePerBuildSession = in ParseHeaderSearchArgs()
1954 Opts.BuildSessionTimestamp = in ParseHeaderSearchArgs()
1956 Opts.ModulesValidateSystemHeaders = in ParseHeaderSearchArgs()
1959 Opts.ModuleFormat = A->getValue(); in ParseHeaderSearchArgs()
1963 Opts.ModulesIgnoreMacros.insert( in ParseHeaderSearchArgs()
1986 llvm::sys::path::append(Buffer, Opts.Sysroot, in ParseHeaderSearchArgs()
1991 Opts.AddPath(Path, Group, IsFramework, in ParseHeaderSearchArgs()
2003 Opts.AddPath(Prefix.str() + A->getValue(), frontend::After, false, true); in ParseHeaderSearchArgs()
2005 Opts.AddPath(Prefix.str() + A->getValue(), frontend::Angled, false, true); in ParseHeaderSearchArgs()
2009 Opts.AddPath(A->getValue(), frontend::After, false, true); in ParseHeaderSearchArgs()
2011 Opts.AddPath(A->getValue(), frontend::Quoted, false, true); in ParseHeaderSearchArgs()
2013 Opts.AddPath(A->getValue(), frontend::System, false, in ParseHeaderSearchArgs()
2016 Opts.AddPath(A->getValue(), frontend::System, true, true); in ParseHeaderSearchArgs()
2018 Opts.AddPath(A->getValue(), frontend::System, /*IsFramework=*/true, in ParseHeaderSearchArgs()
2023 Opts.AddPath(A->getValue(), frontend::CSystem, false, true); in ParseHeaderSearchArgs()
2025 Opts.AddPath(A->getValue(), frontend::CXXSystem, false, true); in ParseHeaderSearchArgs()
2027 Opts.AddPath(A->getValue(), frontend::ObjCSystem, false,true); in ParseHeaderSearchArgs()
2029 Opts.AddPath(A->getValue(), frontend::ObjCXXSystem, false, true); in ParseHeaderSearchArgs()
2037 Opts.AddPath(A->getValue(), Group, false, true); in ParseHeaderSearchArgs()
2043 Opts.AddSystemHeaderPrefix( in ParseHeaderSearchArgs()
2047 Opts.AddVFSOverlayFile(A->getValue()); in ParseHeaderSearchArgs()
2050 void CompilerInvocation::setLangDefaults(LangOptions &Opts, InputKind IK, in setLangDefaults() argument
2062 Opts.AsmPreprocessor = 1; in setLangDefaults()
2064 Opts.ObjC = 1; in setLangDefaults()
2116 Opts.LineComment = Std.hasLineComments(); in setLangDefaults()
2117 Opts.C99 = Std.isC99(); in setLangDefaults()
2118 Opts.C11 = Std.isC11(); in setLangDefaults()
2119 Opts.C17 = Std.isC17(); in setLangDefaults()
2120 Opts.CPlusPlus = Std.isCPlusPlus(); in setLangDefaults()
2121 Opts.CPlusPlus11 = Std.isCPlusPlus11(); in setLangDefaults()
2122 Opts.CPlusPlus14 = Std.isCPlusPlus14(); in setLangDefaults()
2123 Opts.CPlusPlus17 = Std.isCPlusPlus17(); in setLangDefaults()
2124 Opts.CPlusPlus2a = Std.isCPlusPlus2a(); in setLangDefaults()
2125 Opts.Digraphs = Std.hasDigraphs(); in setLangDefaults()
2126 Opts.GNUMode = Std.isGNUMode(); in setLangDefaults()
2127 Opts.GNUInline = !Opts.C99 && !Opts.CPlusPlus; in setLangDefaults()
2128 Opts.HexFloats = Std.hasHexFloats(); in setLangDefaults()
2129 Opts.ImplicitInt = Std.hasImplicitInt(); in setLangDefaults()
2132 Opts.OpenCL = Std.isOpenCL(); in setLangDefaults()
2134 Opts.OpenCLVersion = 100; in setLangDefaults()
2136 Opts.OpenCLVersion = 110; in setLangDefaults()
2138 Opts.OpenCLVersion = 120; in setLangDefaults()
2140 Opts.OpenCLVersion = 200; in setLangDefaults()
2142 Opts.OpenCLCPlusPlusVersion = 100; in setLangDefaults()
2145 if (Opts.OpenCL) { in setLangDefaults()
2146 Opts.AltiVec = 0; in setLangDefaults()
2147 Opts.ZVector = 0; in setLangDefaults()
2148 Opts.LaxVectorConversions = 0; in setLangDefaults()
2149 Opts.setDefaultFPContractMode(LangOptions::FPC_On); in setLangDefaults()
2150 Opts.NativeHalfType = 1; in setLangDefaults()
2151 Opts.NativeHalfArgsAndReturns = 1; in setLangDefaults()
2152 Opts.OpenCLCPlusPlus = Opts.CPlusPlus; in setLangDefaults()
2154 if (Opts.IncludeDefaultHeader) { in setLangDefaults()
2159 Opts.HIP = IK.getLanguage() == InputKind::HIP; in setLangDefaults()
2160 Opts.CUDA = IK.getLanguage() == InputKind::CUDA || Opts.HIP; in setLangDefaults()
2161 if (Opts.CUDA) in setLangDefaults()
2163 Opts.setDefaultFPContractMode(LangOptions::FPC_Fast); in setLangDefaults()
2165 Opts.RenderScript = IK.getLanguage() == InputKind::RenderScript; in setLangDefaults()
2166 if (Opts.RenderScript) { in setLangDefaults()
2167 Opts.NativeHalfType = 1; in setLangDefaults()
2168 Opts.NativeHalfArgsAndReturns = 1; in setLangDefaults()
2172 Opts.Bool = Opts.OpenCL || Opts.CPlusPlus; in setLangDefaults()
2175 Opts.Half = Opts.OpenCL; in setLangDefaults()
2178 Opts.WChar = Opts.CPlusPlus; in setLangDefaults()
2180 Opts.GNUKeywords = Opts.GNUMode; in setLangDefaults()
2181 Opts.CXXOperatorNames = Opts.CPlusPlus; in setLangDefaults()
2183 Opts.AlignedAllocation = Opts.CPlusPlus17; in setLangDefaults()
2185 Opts.DollarIdents = !Opts.AsmPreprocessor; in setLangDefaults()
2276 static void ParseLangArgs(LangOptions &Opts, ArgList &Args, InputKind IK, in ParseLangArgs() argument
2328 Opts.DllExportInlines = false; in ParseLangArgs()
2333 Opts.CFProtectionBranch = 1; in ParseLangArgs()
2356 Opts.IncludeDefaultHeader = Args.hasArg(OPT_finclude_default_header); in ParseLangArgs()
2359 CompilerInvocation::setLangDefaults(Opts, IK, T, PPOpts, LangStd); in ParseLangArgs()
2365 && Opts.OpenCLVersion > 100) { in ParseLangArgs()
2367 << Opts.getOpenCLVersionTuple().getAsString() in ParseLangArgs()
2376 Opts.GNUKeywords = Args.hasFlag(OPT_fgnu_keywords, OPT_fno_gnu_keywords, in ParseLangArgs()
2377 Opts.GNUKeywords); in ParseLangArgs()
2379 Opts.Digraphs = Args.hasFlag(OPT_fdigraphs, OPT_fno_digraphs, Opts.Digraphs); in ParseLangArgs()
2382 Opts.CXXOperatorNames = 0; in ParseLangArgs()
2385 Opts.CUDAIsDevice = 1; in ParseLangArgs()
2388 Opts.CUDAAllowVariadicFunctions = 1; in ParseLangArgs()
2391 Opts.CUDAHostDeviceConstexpr = 0; in ParseLangArgs()
2393 if (Opts.CUDAIsDevice && Args.hasArg(OPT_fcuda_approx_transcendentals)) in ParseLangArgs()
2394 Opts.CUDADeviceApproxTranscendentals = 1; in ParseLangArgs()
2396 Opts.GPURelocatableDeviceCode = Args.hasArg(OPT_fgpu_rdc); in ParseLangArgs()
2398 if (Opts.ObjC) { in ParseLangArgs()
2401 if (Opts.ObjCRuntime.tryParse(value)) in ParseLangArgs()
2406 Opts.setGC(LangOptions::GCOnly); in ParseLangArgs()
2408 Opts.setGC(LangOptions::HybridGC); in ParseLangArgs()
2410 Opts.ObjCAutoRefCount = 1; in ParseLangArgs()
2411 if (!Opts.ObjCRuntime.allowsARC()) in ParseLangArgs()
2420 Opts.ObjCWeakRuntime = 1; in ParseLangArgs()
2422 Opts.ObjCWeakRuntime = Opts.ObjCRuntime.allowsWeak(); in ParseLangArgs()
2428 assert(!Opts.ObjCWeak); in ParseLangArgs()
2429 } else if (Opts.getGC() != LangOptions::NonGC) { in ParseLangArgs()
2431 } else if (!Opts.ObjCWeakRuntime) { in ParseLangArgs()
2434 Opts.ObjCWeak = 1; in ParseLangArgs()
2436 } else if (Opts.ObjCAutoRefCount) { in ParseLangArgs()
2437 Opts.ObjCWeak = Opts.ObjCWeakRuntime; in ParseLangArgs()
2441 Opts.ObjCInferRelatedResultType = 0; in ParseLangArgs()
2444 Opts.ObjCSubscriptingLegacyRuntime = in ParseLangArgs()
2445 (Opts.ObjCRuntime.getKind() == ObjCRuntime::FragileMacOSX); in ParseLangArgs()
2449 if (Opts.CPlusPlus) in ParseLangArgs()
2453 Opts.GNUInline = 1; in ParseLangArgs()
2457 if (!Opts.CPlusPlus) in ParseLangArgs()
2460 Opts.AppleKext = 1; in ParseLangArgs()
2464 Opts.ObjCGCBitmapPrint = 1; in ParseLangArgs()
2467 Opts.NoConstantCFStrings = 1; in ParseLangArgs()
2469 Opts.CFRuntime = in ParseLangArgs()
2480 Opts.ZVector = 1; in ParseLangArgs()
2483 Opts.POSIXThreads = 1; in ParseLangArgs()
2487 Opts.setValueVisibilityMode(parseVisibility(visOpt, Args, Diags)); in ParseLangArgs()
2489 Opts.setValueVisibilityMode(DefaultVisibility); in ParseLangArgs()
2494 Opts.setTypeVisibilityMode(parseVisibility(typeVisOpt, Args, Diags)); in ParseLangArgs()
2496 Opts.setTypeVisibilityMode(Opts.getValueVisibilityMode()); in ParseLangArgs()
2500 Opts.InlineVisibilityHidden = 1; in ParseLangArgs()
2503 Opts.GlobalAllocationFunctionVisibilityHidden = 1; in ParseLangArgs()
2506 Opts.setSignedOverflowBehavior(LangOptions::SOB_Trapping); in ParseLangArgs()
2508 Opts.OverflowHandler = in ParseLangArgs()
2512 Opts.setSignedOverflowBehavior(LangOptions::SOB_Defined); in ParseLangArgs()
2514 Opts.MSVCCompat = Args.hasArg(OPT_fms_compatibility); in ParseLangArgs()
2515 Opts.MicrosoftExt = Opts.MSVCCompat || Args.hasArg(OPT_fms_extensions); in ParseLangArgs()
2516 Opts.AsmBlocks = Args.hasArg(OPT_fasm_blocks) || Opts.MicrosoftExt; in ParseLangArgs()
2517 Opts.MSCompatibilityVersion = 0; in ParseLangArgs()
2523 Opts.MSCompatibilityVersion = VT.getMajor() * 10000000 + in ParseLangArgs()
2531 Opts.Trigraphs = !Opts.GNUMode && !Opts.MSVCCompat && !Opts.CPlusPlus17; in ParseLangArgs()
2532 Opts.Trigraphs = in ParseLangArgs()
2533 Args.hasFlag(OPT_ftrigraphs, OPT_fno_trigraphs, Opts.Trigraphs); in ParseLangArgs()
2535 Opts.DollarIdents = Args.hasFlag(OPT_fdollars_in_identifiers, in ParseLangArgs()
2537 Opts.DollarIdents); in ParseLangArgs()
2538 Opts.PascalStrings = Args.hasArg(OPT_fpascal_strings); in ParseLangArgs()
2539 Opts.VtorDispMode = getLastArgIntValue(Args, OPT_vtordisp_mode_EQ, 1, Diags); in ParseLangArgs()
2540 Opts.Borland = Args.hasArg(OPT_fborland_extensions); in ParseLangArgs()
2541 Opts.WritableStrings = Args.hasArg(OPT_fwritable_strings); in ParseLangArgs()
2542 Opts.ConstStrings = Args.hasFlag(OPT_fconst_strings, OPT_fno_const_strings, in ParseLangArgs()
2543 Opts.ConstStrings); in ParseLangArgs()
2545 Opts.LaxVectorConversions = 0; in ParseLangArgs()
2547 Opts.ThreadsafeStatics = 0; in ParseLangArgs()
2548 Opts.Exceptions = Args.hasArg(OPT_fexceptions); in ParseLangArgs()
2549 Opts.ObjCExceptions = Args.hasArg(OPT_fobjc_exceptions); in ParseLangArgs()
2550 Opts.CXXExceptions = Args.hasArg(OPT_fcxx_exceptions); in ParseLangArgs()
2553 Opts.FixedPoint = in ParseLangArgs()
2555 !Opts.CPlusPlus; in ParseLangArgs()
2556 Opts.PaddingOnUnsignedFixedPoint = in ParseLangArgs()
2560 Opts.FixedPoint; in ParseLangArgs()
2573 Opts.SjLjExceptions = Opt.matches(options::OPT_fsjlj_exceptions); in ParseLangArgs()
2574 Opts.SEHExceptions = Opt.matches(options::OPT_fseh_exceptions); in ParseLangArgs()
2575 Opts.DWARFExceptions = Opt.matches(options::OPT_fdwarf_exceptions); in ParseLangArgs()
2578 Opts.ExternCNoUnwind = Args.hasArg(OPT_fexternc_nounwind); in ParseLangArgs()
2579 Opts.TraditionalCPP = Args.hasArg(OPT_traditional_cpp); in ParseLangArgs()
2581 Opts.RTTI = Opts.CPlusPlus && !Args.hasArg(OPT_fno_rtti); in ParseLangArgs()
2582 Opts.RTTIData = Opts.RTTI && !Args.hasArg(OPT_fno_rtti_data); in ParseLangArgs()
2583 Opts.Blocks = Args.hasArg(OPT_fblocks) || (Opts.OpenCL in ParseLangArgs()
2584 && Opts.OpenCLVersion == 200); in ParseLangArgs()
2585 Opts.BlocksRuntimeOptional = Args.hasArg(OPT_fblocks_runtime_optional); in ParseLangArgs()
2586 Opts.CoroutinesTS = Args.hasArg(OPT_fcoroutines_ts); in ParseLangArgs()
2589 Opts.DoubleSquareBracketAttributes = in ParseLangArgs()
2591 OPT_fno_double_square_bracket_attributes, Opts.CPlusPlus11); in ParseLangArgs()
2593 Opts.ModulesTS = Args.hasArg(OPT_fmodules_ts); in ParseLangArgs()
2594 Opts.Modules = Args.hasArg(OPT_fmodules) || Opts.ModulesTS; in ParseLangArgs()
2595 Opts.ModulesStrictDeclUse = Args.hasArg(OPT_fmodules_strict_decluse); in ParseLangArgs()
2596 Opts.ModulesDeclUse = in ParseLangArgs()
2597 Args.hasArg(OPT_fmodules_decluse) || Opts.ModulesStrictDeclUse; in ParseLangArgs()
2598 Opts.ModulesLocalVisibility = in ParseLangArgs()
2599 Args.hasArg(OPT_fmodules_local_submodule_visibility) || Opts.ModulesTS; in ParseLangArgs()
2600 Opts.ModulesCodegen = Args.hasArg(OPT_fmodules_codegen); in ParseLangArgs()
2601 Opts.ModulesDebugInfo = Args.hasArg(OPT_fmodules_debuginfo); in ParseLangArgs()
2602 Opts.ModulesSearchAll = Opts.Modules && in ParseLangArgs()
2605 Opts.ModulesErrorRecovery = !Args.hasArg(OPT_fno_modules_error_recovery); in ParseLangArgs()
2606 Opts.ImplicitModules = !Args.hasArg(OPT_fno_implicit_modules); in ParseLangArgs()
2607 Opts.CharIsSigned = Opts.OpenCL || !Args.hasArg(OPT_fno_signed_char); in ParseLangArgs()
2608 Opts.WChar = Opts.CPlusPlus && !Args.hasArg(OPT_fno_wchar); in ParseLangArgs()
2609 Opts.Char8 = Args.hasFlag(OPT_fchar8__t, OPT_fno_char8__t, Opts.CPlusPlus2a); in ParseLangArgs()
2611 Opts.WCharSize = llvm::StringSwitch<unsigned>(A->getValue()) in ParseLangArgs()
2616 if (Opts.WCharSize == 0) in ParseLangArgs()
2619 Opts.WCharIsSigned = Args.hasFlag(OPT_fsigned_wchar, OPT_fno_signed_wchar, true); in ParseLangArgs()
2620 Opts.ShortEnums = Args.hasArg(OPT_fshort_enums); in ParseLangArgs()
2621 Opts.Freestanding = Args.hasArg(OPT_ffreestanding); in ParseLangArgs()
2622 Opts.NoBuiltin = Args.hasArg(OPT_fno_builtin) || Opts.Freestanding; in ParseLangArgs()
2623 if (!Opts.NoBuiltin) in ParseLangArgs()
2624 getAllNoBuiltinFuncValues(Args, Opts.NoBuiltinFuncs); in ParseLangArgs()
2625 Opts.NoMathBuiltin = Args.hasArg(OPT_fno_math_builtin); in ParseLangArgs()
2626 Opts.RelaxedTemplateTemplateArgs = in ParseLangArgs()
2628 Opts.SizedDeallocation = Args.hasArg(OPT_fsized_deallocation); in ParseLangArgs()
2629 Opts.AlignedAllocation = in ParseLangArgs()
2631 Opts.AlignedAllocation); in ParseLangArgs()
2632 Opts.AlignedAllocationUnavailable = in ParseLangArgs()
2633 Opts.AlignedAllocation && Args.hasArg(OPT_aligned_alloc_unavailable); in ParseLangArgs()
2634 Opts.NewAlignOverride = in ParseLangArgs()
2636 if (Opts.NewAlignOverride && !llvm::isPowerOf2_32(Opts.NewAlignOverride)) { in ParseLangArgs()
2640 Opts.NewAlignOverride = 0; in ParseLangArgs()
2642 Opts.ConceptsTS = Args.hasArg(OPT_fconcepts_ts); in ParseLangArgs()
2643 Opts.HeinousExtensions = Args.hasArg(OPT_fheinous_gnu_extensions); in ParseLangArgs()
2644 Opts.AccessControl = !Args.hasArg(OPT_fno_access_control); in ParseLangArgs()
2645 Opts.ElideConstructors = !Args.hasArg(OPT_fno_elide_constructors); in ParseLangArgs()
2646 Opts.MathErrno = !Opts.OpenCL && Args.hasArg(OPT_fmath_errno); in ParseLangArgs()
2647 Opts.InstantiationDepth = in ParseLangArgs()
2649 Opts.ArrowDepth = in ParseLangArgs()
2651 Opts.ConstexprCallDepth = in ParseLangArgs()
2653 Opts.ConstexprStepLimit = in ParseLangArgs()
2655 Opts.BracketDepth = getLastArgIntValue(Args, OPT_fbracket_depth, 256, Diags); in ParseLangArgs()
2656 Opts.DelayedTemplateParsing = Args.hasArg(OPT_fdelayed_template_parsing); in ParseLangArgs()
2657 Opts.NumLargeByValueCopy = in ParseLangArgs()
2659 Opts.MSBitfields = Args.hasArg(OPT_mms_bitfields); in ParseLangArgs()
2660 Opts.ObjCConstantStringClass = in ParseLangArgs()
2662 Opts.ObjCDefaultSynthProperties = in ParseLangArgs()
2664 Opts.EncodeExtendedBlockSig = in ParseLangArgs()
2666 Opts.EmitAllDecls = Args.hasArg(OPT_femit_all_decls); in ParseLangArgs()
2667 Opts.PackStruct = getLastArgIntValue(Args, OPT_fpack_struct_EQ, 0, Diags); in ParseLangArgs()
2668 Opts.MaxTypeAlign = getLastArgIntValue(Args, OPT_fmax_type_align_EQ, 0, Diags); in ParseLangArgs()
2669 Opts.AlignDouble = Args.hasArg(OPT_malign_double); in ParseLangArgs()
2670 Opts.PICLevel = getLastArgIntValue(Args, OPT_pic_level, 0, Diags); in ParseLangArgs()
2671 Opts.PIE = Args.hasArg(OPT_pic_is_pie); in ParseLangArgs()
2672 Opts.Static = Args.hasArg(OPT_static_define); in ParseLangArgs()
2673 Opts.DumpRecordLayoutsSimple = Args.hasArg(OPT_fdump_record_layouts_simple); in ParseLangArgs()
2674 Opts.DumpRecordLayouts = Opts.DumpRecordLayoutsSimple in ParseLangArgs()
2676 Opts.DumpVTableLayouts = Args.hasArg(OPT_fdump_vtable_layouts); in ParseLangArgs()
2677 Opts.SpellChecking = !Args.hasArg(OPT_fno_spell_checking); in ParseLangArgs()
2678 Opts.NoBitFieldTypeAlign = Args.hasArg(OPT_fno_bitfield_type_align); in ParseLangArgs()
2679 Opts.SinglePrecisionConstants = Args.hasArg(OPT_cl_single_precision_constant); in ParseLangArgs()
2680 Opts.FastRelaxedMath = Args.hasArg(OPT_cl_fast_relaxed_math); in ParseLangArgs()
2681 Opts.HexagonQdsp6Compat = Args.hasArg(OPT_mqdsp6_compat); in ParseLangArgs()
2682 Opts.FakeAddressSpaceMap = Args.hasArg(OPT_ffake_address_space_map); in ParseLangArgs()
2683 Opts.ParseUnknownAnytype = Args.hasArg(OPT_funknown_anytype); in ParseLangArgs()
2684 Opts.DebuggerSupport = Args.hasArg(OPT_fdebugger_support); in ParseLangArgs()
2685 Opts.DebuggerCastResultToId = Args.hasArg(OPT_fdebugger_cast_result_to_id); in ParseLangArgs()
2686 Opts.DebuggerObjCLiteral = Args.hasArg(OPT_fdebugger_objc_literal); in ParseLangArgs()
2687 Opts.ApplePragmaPack = Args.hasArg(OPT_fapple_pragma_pack); in ParseLangArgs()
2688 Opts.ModuleName = Args.getLastArgValue(OPT_fmodule_name_EQ); in ParseLangArgs()
2689 Opts.CurrentModule = Opts.ModuleName; in ParseLangArgs()
2690 Opts.AppExt = Args.hasArg(OPT_fapplication_extension); in ParseLangArgs()
2691 Opts.ModuleFeatures = Args.getAllArgValues(OPT_fmodule_feature); in ParseLangArgs()
2692 llvm::sort(Opts.ModuleFeatures); in ParseLangArgs()
2693 Opts.NativeHalfType |= Args.hasArg(OPT_fnative_half_type); in ParseLangArgs()
2694 Opts.NativeHalfArgsAndReturns |= Args.hasArg(OPT_fnative_half_arguments_and_returns); in ParseLangArgs()
2697 Opts.HalfArgsAndReturns = Args.hasArg(OPT_fallow_half_arguments_and_returns) in ParseLangArgs()
2698 | Opts.NativeHalfArgsAndReturns; in ParseLangArgs()
2699 Opts.GNUAsm = !Args.hasArg(OPT_fno_gnu_inline_asm); in ParseLangArgs()
2709 Opts.DeclSpecKeyword = in ParseLangArgs()
2711 (Opts.MicrosoftExt || Opts.Borland || Opts.CUDA)); in ParseLangArgs()
2724 Opts.setAddressSpaceMapMangling(LangOptions::ASMM_Target); in ParseLangArgs()
2727 Opts.setAddressSpaceMapMangling(LangOptions::ASMM_On); in ParseLangArgs()
2730 Opts.setAddressSpaceMapMangling(LangOptions::ASMM_Off); in ParseLangArgs()
2750 Opts.setMSPointerToMemberRepresentationMethod(InheritanceModel); in ParseLangArgs()
2779 Opts.setDefaultCallingConv(DefaultCC); in ParseLangArgs()
2784 if (Opts.getDefaultCallingConv() != LangOptions::DCC_None) in ParseLangArgs()
2793 Opts.setDefaultCallingConv(LangOptions::DCC_StdCall); in ParseLangArgs()
2798 Opts.OpenMP = Args.hasArg(options::OPT_fopenmp) ? 1 : 0; in ParseLangArgs()
2803 Opts.OpenMPSimd = !Opts.OpenMP && IsSimdSpecified; in ParseLangArgs()
2804 Opts.OpenMPUseTLS = in ParseLangArgs()
2805 Opts.OpenMP && !Args.hasArg(options::OPT_fnoopenmp_use_tls); in ParseLangArgs()
2806 Opts.OpenMPIsDevice = in ParseLangArgs()
2807 Opts.OpenMP && Args.hasArg(options::OPT_fopenmp_is_device); in ParseLangArgs()
2809 Opts.OpenMPIsDevice || Args.hasArg(options::OPT_fopenmp_targets_EQ); in ParseLangArgs()
2811 if (Opts.OpenMP || Opts.OpenMPSimd) { in ParseLangArgs()
2814 (IsSimdSpecified || IsTargetSpecified) ? 45 : Opts.OpenMP, Diags)) in ParseLangArgs()
2815 Opts.OpenMP = Version; in ParseLangArgs()
2817 Opts.OpenMP = 45; in ParseLangArgs()
2820 if (!Opts.OpenMPIsDevice) { in ParseLangArgs()
2836 Opts.OpenMPHostCXXExceptions = Opts.Exceptions && Opts.CXXExceptions; in ParseLangArgs()
2837 if ((Opts.OpenMPIsDevice && T.isNVPTX()) || Opts.OpenCLCPlusPlus) { in ParseLangArgs()
2838 Opts.Exceptions = 0; in ParseLangArgs()
2839 Opts.CXXExceptions = 0; in ParseLangArgs()
2841 if (Opts.OpenMPIsDevice && T.isNVPTX()) { in ParseLangArgs()
2842 Opts.OpenMPCUDANumSMs = in ParseLangArgs()
2844 Opts.OpenMPCUDANumSMs, Diags); in ParseLangArgs()
2845 Opts.OpenMPCUDABlocksPerSM = in ParseLangArgs()
2847 Opts.OpenMPCUDABlocksPerSM, Diags); in ParseLangArgs()
2852 Opts.OpenMPOptimisticCollapse = in ParseLangArgs()
2871 Opts.OMPTargetTriples.push_back(TT); in ParseLangArgs()
2878 Opts.OMPHostIRFile = A->getValue(); in ParseLangArgs()
2879 if (!llvm::sys::fs::exists(Opts.OMPHostIRFile)) in ParseLangArgs()
2881 << Opts.OMPHostIRFile; in ParseLangArgs()
2885 Opts.OpenMPCUDAMode = Opts.OpenMPIsDevice && T.isNVPTX() && in ParseLangArgs()
2889 Opts.OpenMPCUDAForceFullRuntime = in ParseLangArgs()
2890 Opts.OpenMPIsDevice && T.isNVPTX() && in ParseLangArgs()
2894 Opts.Deprecated = Args.hasFlag(OPT_fdeprecated_macro, in ParseLangArgs()
2896 Opts.Deprecated); in ParseLangArgs()
2901 Opts.Optimize = Opt != 0; in ParseLangArgs()
2902 Opts.OptimizeSize = OptSize != 0; in ParseLangArgs()
2907 Opts.NoInlineDefine = !Opts.Optimize; in ParseLangArgs()
2912 Opts.NoInlineDefine = true; in ParseLangArgs()
2914 Opts.FastMath = Args.hasArg(OPT_ffast_math) || in ParseLangArgs()
2916 Opts.FiniteMathOnly = Args.hasArg(OPT_ffinite_math_only) || in ParseLangArgs()
2919 Opts.UnsafeFPMath = Args.hasArg(OPT_menable_unsafe_fp_math) || in ParseLangArgs()
2926 Opts.setDefaultFPContractMode(LangOptions::FPC_Fast); in ParseLangArgs()
2928 Opts.setDefaultFPContractMode(LangOptions::FPC_On); in ParseLangArgs()
2930 Opts.setDefaultFPContractMode(LangOptions::FPC_Off); in ParseLangArgs()
2935 Opts.RetainCommentsFromSystemHeaders = in ParseLangArgs()
2944 case 0: Opts.setStackProtector(LangOptions::SSPOff); break; in ParseLangArgs()
2945 case 1: Opts.setStackProtector(LangOptions::SSPOn); break; in ParseLangArgs()
2946 case 2: Opts.setStackProtector(LangOptions::SSPStrong); break; in ParseLangArgs()
2947 case 3: Opts.setStackProtector(LangOptions::SSPReq); break; in ParseLangArgs()
2953 Opts.setTrivialAutoVarInit( in ParseLangArgs()
2956 Opts.setTrivialAutoVarInit(LangOptions::TrivialAutoVarInitKind::Zero); in ParseLangArgs()
2958 Opts.setTrivialAutoVarInit(LangOptions::TrivialAutoVarInitKind::Pattern); in ParseLangArgs()
2965 Diags, Opts.Sanitize); in ParseLangArgs()
2967 Opts.SanitizeAddressFieldPadding = in ParseLangArgs()
2969 Opts.SanitizerBlacklistFiles = Args.getAllArgValues(OPT_fsanitize_blacklist); in ParseLangArgs()
2972 Opts.XRayInstrument = in ParseLangArgs()
2976 Opts.XRayAlwaysEmitCustomEvents = in ParseLangArgs()
2981 Opts.XRayAlwaysEmitTypedEvents = in ParseLangArgs()
2986 Opts.XRayAlwaysInstrumentFiles = in ParseLangArgs()
2988 Opts.XRayNeverInstrumentFiles = in ParseLangArgs()
2990 Opts.XRayAttrListFiles = Args.getAllArgValues(OPT_fxray_attr_list); in ParseLangArgs()
2993 Opts.ForceEmitVTables = Args.hasArg(OPT_fforce_emit_vtables); in ParseLangArgs()
2996 Opts.AllowEditorPlaceholders = Args.hasArg(OPT_fallow_editor_placeholders); in ParseLangArgs()
2998 Opts.RegisterStaticDestructors = !Args.hasArg(OPT_fno_cxx_static_destructors); in ParseLangArgs()
3001 Opts.setClangABICompat(LangOptions::ClangABI::Latest); in ParseLangArgs()
3018 Opts.setClangABICompat(LangOptions::ClangABI::Ver3_8); in ParseLangArgs()
3020 Opts.setClangABICompat(LangOptions::ClangABI::Ver4); in ParseLangArgs()
3022 Opts.setClangABICompat(LangOptions::ClangABI::Ver6); in ParseLangArgs()
3024 Opts.setClangABICompat(LangOptions::ClangABI::Ver7); in ParseLangArgs()
3031 Opts.CompleteMemberPointers = Args.hasArg(OPT_fcomplete_member_pointers); in ParseLangArgs()
3032 Opts.BuildingPCHWithObjectFile = Args.hasArg(OPT_building_pch_with_obj); in ParseLangArgs()
3077 static void ParsePreprocessorArgs(PreprocessorOptions &Opts, ArgList &Args, in ParsePreprocessorArgs() argument
3080 Opts.ImplicitPCHInclude = Args.getLastArgValue(OPT_include_pch); in ParsePreprocessorArgs()
3081 Opts.PCHWithHdrStop = Args.hasArg(OPT_pch_through_hdrstop_create) || in ParsePreprocessorArgs()
3083 Opts.PCHWithHdrStopCreate = Args.hasArg(OPT_pch_through_hdrstop_create); in ParsePreprocessorArgs()
3084 Opts.PCHThroughHeader = Args.getLastArgValue(OPT_pch_through_header_EQ); in ParsePreprocessorArgs()
3085 Opts.UsePredefines = !Args.hasArg(OPT_undef); in ParsePreprocessorArgs()
3086 Opts.DetailedRecord = Args.hasArg(OPT_detailed_preprocessing_record); in ParsePreprocessorArgs()
3087 Opts.DisablePCHValidation = Args.hasArg(OPT_fno_validate_pch); in ParsePreprocessorArgs()
3088 Opts.AllowPCHWithCompilerErrors = Args.hasArg(OPT_fallow_pch_with_errors); in ParsePreprocessorArgs()
3090 Opts.DumpDeserializedPCHDecls = Args.hasArg(OPT_dump_deserialized_pch_decls); in ParsePreprocessorArgs()
3092 Opts.DeserializedPCHDeclsToErrorOn.insert(A->getValue()); in ParsePreprocessorArgs()
3105 Opts.PrecompiledPreambleBytes.first = Bytes; in ParsePreprocessorArgs()
3106 Opts.PrecompiledPreambleBytes.second = (EndOfLine != 0); in ParsePreprocessorArgs()
3114 Opts.addMacroDef("__CET__=1"); in ParsePreprocessorArgs()
3116 Opts.addMacroDef("__CET__=2"); in ParsePreprocessorArgs()
3118 Opts.addMacroDef("__CET__=3"); in ParsePreprocessorArgs()
3124 Opts.addMacroDef(A->getValue()); in ParsePreprocessorArgs()
3126 Opts.addMacroUndef(A->getValue()); in ParsePreprocessorArgs()
3129 Opts.MacroIncludes = Args.getAllArgValues(OPT_imacros); in ParsePreprocessorArgs()
3133 Opts.Includes.emplace_back(A->getValue()); in ParsePreprocessorArgs()
3136 Opts.ChainedIncludes.emplace_back(A->getValue()); in ParsePreprocessorArgs()
3146 Opts.addRemappedFile(Split.first, Split.second); in ParsePreprocessorArgs()
3159 Opts.ObjCXXARCStandardLibrary = (ObjCXXARCStandardLibraryKind)Library; in ParsePreprocessorArgs()
3166 Opts.LexEditorPlaceholders = false; in ParsePreprocessorArgs()
3169 static void ParsePreprocessorOutputArgs(PreprocessorOutputOptions &Opts, in ParsePreprocessorOutputArgs() argument
3173 Opts.ShowCPP = !Args.hasArg(OPT_dM); in ParsePreprocessorOutputArgs()
3175 Opts.ShowCPP = 0; in ParsePreprocessorOutputArgs()
3177 Opts.ShowComments = Args.hasArg(OPT_C); in ParsePreprocessorOutputArgs()
3178 Opts.ShowLineMarkers = !Args.hasArg(OPT_P); in ParsePreprocessorOutputArgs()
3179 Opts.ShowMacroComments = Args.hasArg(OPT_CC); in ParsePreprocessorOutputArgs()
3180 Opts.ShowMacros = Args.hasArg(OPT_dM) || Args.hasArg(OPT_dD); in ParsePreprocessorOutputArgs()
3181 Opts.ShowIncludeDirectives = Args.hasArg(OPT_dI); in ParsePreprocessorOutputArgs()
3182 Opts.RewriteIncludes = Args.hasArg(OPT_frewrite_includes); in ParsePreprocessorOutputArgs()
3183 Opts.RewriteImports = Args.hasArg(OPT_frewrite_imports); in ParsePreprocessorOutputArgs()
3184 Opts.UseLineDirectives = Args.hasArg(OPT_fuse_line_directives); in ParsePreprocessorOutputArgs()
3187 static void ParseTargetArgs(TargetOptions &Opts, ArgList &Args, in ParseTargetArgs() argument
3189 Opts.CodeModel = getCodeModel(Args, Diags); in ParseTargetArgs()
3190 Opts.ABI = Args.getLastArgValue(OPT_target_abi); in ParseTargetArgs()
3203 Opts.EABIVersion = EABIVersion; in ParseTargetArgs()
3205 Opts.CPU = Args.getLastArgValue(OPT_target_cpu); in ParseTargetArgs()
3206 Opts.FPMath = Args.getLastArgValue(OPT_mfpmath); in ParseTargetArgs()
3207 Opts.FeaturesAsWritten = Args.getAllArgValues(OPT_target_feature); in ParseTargetArgs()
3208 Opts.LinkerVersion = Args.getLastArgValue(OPT_target_linker_version); in ParseTargetArgs()
3209 Opts.Triple = Args.getLastArgValue(OPT_triple); in ParseTargetArgs()
3211 if (Opts.Triple.empty()) in ParseTargetArgs()
3212 Opts.Triple = llvm::sys::getDefaultTargetTriple(); in ParseTargetArgs()
3213 Opts.Triple = llvm::Triple::normalize(Opts.Triple); in ParseTargetArgs()
3214 Opts.OpenCLExtensionsAsWritten = Args.getAllArgValues(OPT_cl_ext_EQ); in ParseTargetArgs()
3215 Opts.ForceEnableInt128 = Args.hasArg(OPT_fforce_enable_int128); in ParseTargetArgs()
3216 Opts.NVPTXUseShortPointers = Args.hasFlag( in ParseTargetArgs()
3224 Opts.SDKVersion = Version; in ParseTargetArgs()
3235 std::unique_ptr<OptTable> Opts = createDriverOptTable(); in CreateFromArgs() local
3239 Opts->ParseArgs(llvm::makeArrayRef(ArgBegin, ArgEnd), MissingArgIndex, in CreateFromArgs()
3254 if (Opts->findNearest(ArgString, Nearest, IncludedFlagsBitmask) > 1) in CreateFromArgs()