diff --git a/clang/include/clang/Driver/Options.td b/clang/include/clang/Driver/Options.td --- a/clang/include/clang/Driver/Options.td +++ b/clang/include/clang/Driver/Options.td @@ -313,8 +313,6 @@ HelpText<"Apply modifications to files to conform to ARC">; def ccc_arcmt_migrate : Separate<["-"], "ccc-arcmt-migrate">, InternalDriverOpt, HelpText<"Apply modifications and produces temporary files that conform to ARC">; -def arcmt_migrate_report_output : Separate<["-"], "arcmt-migrate-report-output">, - HelpText<"Output path for the plist report">, Flags<[CC1Option]>; def gen_reproducer: Flag<["-"], "gen-reproducer">, InternalDebugOpt, HelpText<"Auto-generates preprocessed source files and a reproduction script">; def gen_cdb_fragment_path: Separate<["-"], "gen-cdb-fragment-path">, InternalDebugOpt, @@ -327,13 +325,6 @@ HelpText<"Apply modifications and produces temporary files to migrate to " "modern ObjC syntax">; - -def objcmt_whitelist_dir_path: Joined<["-"], "objcmt-whitelist-dir-path=">, Flags<[CC1Option]>, - HelpText<"Only modify files with a filename contained in the provided directory path">; -// The misspelt "white-list" [sic] alias is due for removal. -def : Joined<["-"], "objcmt-white-list-dir-path=">, Flags<[CC1Option]>, - Alias; - // Make sure all other -ccc- options are rejected. def ccc_ : Joined<["-"], "ccc-">, Group, Flags<[Unsupported]>; @@ -511,6 +502,23 @@ " it will print the supported cpus for the default target)">, MarshallingInfoFlag<"FrontendOpts.PrintSupportedCPUs", "false">; +def o : JoinedOrSeparate<["-"], "o">, Flags<[DriverOption, RenderAsInput, CC1Option, CC1AsOption]>, + HelpText<"Write output to ">, MetaVarName<"">, + MarshallingInfoString<"FrontendOpts.OutputFile">; +def ftime_trace_granularity_EQ : Joined<["-"], "ftime-trace-granularity=">, Group, + HelpText<"Minimum time granularity (in microseconds) traced by time profiler">, + Flags<[CC1Option, CoreOption]>, + MarshallingInfoStringInt<"FrontendOpts.TimeTraceGranularity", "500u">; +def arcmt_migrate_report_output : Separate<["-"], "arcmt-migrate-report-output">, + HelpText<"Output path for the plist report">, Flags<[CC1Option]>, + MarshallingInfoString<"FrontendOpts.ARCMTMigrateReportOut">; +def objcmt_whitelist_dir_path: Joined<["-"], "objcmt-whitelist-dir-path=">, Flags<[CC1Option]>, + HelpText<"Only modify files with a filename contained in the provided directory path">, + MarshallingInfoString<"FrontendOpts.ObjCMTWhiteListPath">; +// The misspelt "white-list" [sic] alias is due for removal. +def : Joined<["-"], "objcmt-white-list-dir-path=">, Flags<[CC1Option]>, + Alias; + let Flags = [CC1Option, NoDriverOption] in { def code_completion_macros : Flag<["-"], "code-completion-macros">, @@ -574,6 +582,25 @@ HelpText<"Disable inclusion of timestamp in precompiled headers">, MarshallingInfoFlag<"FrontendOpts.IncludeTimestamps", "true">, IsNegative; +def ast_dump_filter : Separate<["-"], "ast-dump-filter">, + MetaVarName<"">, + HelpText<"Use with -ast-dump or -ast-print to dump/print only AST declaration" + " nodes having a certain substring in a qualified name. Use" + " -ast-list to list all filterable declaration node names.">, + MarshallingInfoString<"FrontendOpts.ASTDumpFilter">; +def aux_triple : Separate<["-"], "aux-triple">, + HelpText<"Auxiliary target triple.">, + MarshallingInfoString<"FrontendOpts.AuxTriple">; +def mt_migrate_directory : Separate<["-"], "mt-migrate-directory">, + HelpText<"Directory for temporary files produced during ARC or ObjC migration">, + MarshallingInfoString<"FrontendOpts.MTMigrateDir">; +def stats_file : Joined<["-"], "stats-file=">, + HelpText<"Filename to write statistics to">, + MarshallingInfoString<"FrontendOpts.StatsFile">; +def foverride_record_layout_EQ : Joined<["-"], "foverride-record-layout=">, + HelpText<"Override record layouts with those in the given file">, + MarshallingInfoString<"FrontendOpts.OverrideRecordLayoutsFile">; + } // Flags = [CC1Option, NoDriverOption] let Flags = [CC1Option, CC1AsOption, NoDriverOption] in { @@ -2626,9 +2653,6 @@ def Wframe_larger_than_EQ : Joined<["-"], "Wframe-larger-than=">, Group, Flags<[DriverOption]>; def : Flag<["-"], "fterminated-vtables">, Alias; -def ftime_trace_granularity_EQ : Joined<["-"], "ftime-trace-granularity=">, Group, - HelpText<"Minimum time granularity (in microseconds) traced by time profiler">, - Flags<[CC1Option, CoreOption]>; def ftlsmodel_EQ : Joined<["-"], "ftls-model=">, Group, Flags<[CC1Option]>; def ftrapv : Flag<["-"], "ftrapv">, Group, Flags<[CC1Option]>, HelpText<"Trap on integer overflow">; @@ -3360,8 +3384,6 @@ def nostdlib : Flag<["-"], "nostdlib">; def nostdlibxx : Flag<["-"], "nostdlib++">; def object : Flag<["-"], "object">; -def o : JoinedOrSeparate<["-"], "o">, Flags<[DriverOption, RenderAsInput, CC1Option, CC1AsOption]>, - HelpText<"Write output to ">, MetaVarName<"">; def pagezero__size : JoinedOrSeparate<["-"], "pagezero_size">; def pass_exit_codes : Flag<["-", "--"], "pass-exit-codes">, Flags<[Unsupported]>; def pipe : Flag<["-", "--"], "pipe">, @@ -4392,8 +4414,6 @@ HelpText<"Target a specific auxiliary cpu type">; def aux_target_feature : Separate<["-"], "aux-target-feature">, HelpText<"Target specific auxiliary attributes">; -def aux_triple : Separate<["-"], "aux-triple">, - HelpText<"Auxiliary target triple.">; def code_completion_at : Separate<["-"], "code-completion-at">, MetaVarName<"::">, HelpText<"Dump code-completion information at a location">; @@ -4411,11 +4431,6 @@ HelpText<"Pass to plugin ">; def add_plugin : Separate<["-"], "add-plugin">, MetaVarName<"">, HelpText<"Use the named plugin action in addition to the default action">; -def ast_dump_filter : Separate<["-"], "ast-dump-filter">, - MetaVarName<"">, - HelpText<"Use with -ast-dump or -ast-print to dump/print only AST declaration" - " nodes having a certain substring in a qualified name. Use" - " -ast-list to list all filterable declaration node names.">; def fmodule_feature : Separate<["-"], "fmodule-feature">, MetaVarName<"">, HelpText<"Enable in module map requires declarations">; @@ -4510,9 +4525,6 @@ HelpText<"Print the output of the dependency directives source minimizer">; } -def mt_migrate_directory : Separate<["-"], "mt-migrate-directory">, - HelpText<"Directory for temporary files produced during ARC or ObjC migration">; - def opt_record_file : Separate<["-"], "opt-record-file">, HelpText<"File name to use for YAML optimization record output">; def opt_record_passes : Separate<["-"], "opt-record-passes">, @@ -4520,13 +4532,9 @@ def opt_record_format : Separate<["-"], "opt-record-format">, HelpText<"The format used for serializing remarks (default: YAML)">; -def stats_file : Joined<["-"], "stats-file=">, - HelpText<"Filename to write statistics to">; def fdump_record_layouts : Flag<["-"], "fdump-record-layouts">, HelpText<"Dump record layout information">; -def foverride_record_layout_EQ : Joined<["-"], "foverride-record-layout=">, - HelpText<"Override record layouts with those in the given file">; def pch_through_header_EQ : Joined<["-"], "pch-through-header=">, HelpText<"Stop PCH generation after including this file. When using a PCH, " "skip tokens until after this file is included.">; diff --git a/clang/lib/Frontend/CompilerInvocation.cpp b/clang/lib/Frontend/CompilerInvocation.cpp --- a/clang/lib/Frontend/CompilerInvocation.cpp +++ b/clang/lib/Frontend/CompilerInvocation.cpp @@ -1760,15 +1760,11 @@ << A->getAsString(Args) << A->getValue(); } - Opts.OutputFile = std::string(Args.getLastArgValue(OPT_o)); Opts.Plugins = Args.getAllArgValues(OPT_load); - Opts.TimeTraceGranularity = getLastArgIntValue( - Args, OPT_ftime_trace_granularity_EQ, Opts.TimeTraceGranularity, Diags); Opts.ASTMergeFiles = Args.getAllArgValues(OPT_ast_merge); Opts.LLVMArgs = Args.getAllArgValues(OPT_mllvm); Opts.ASTDumpDecls = Args.hasArg(OPT_ast_dump, OPT_ast_dump_EQ); Opts.ASTDumpAll = Args.hasArg(OPT_ast_dump_all, OPT_ast_dump_all_EQ); - Opts.ASTDumpFilter = std::string(Args.getLastArgValue(OPT_ast_dump_filter)); Opts.ModuleMapFiles = Args.getAllArgValues(OPT_fmodule_map_file); // Only the -fmodule-file= form. for (const auto *A : Args.filtered(OPT_fmodule_file)) { @@ -1782,22 +1778,10 @@ Diags.Report(diag::err_drv_argument_only_allowed_with) << "-fsystem-module" << "-emit-module"; - Opts.OverrideRecordLayoutsFile = - std::string(Args.getLastArgValue(OPT_foverride_record_layout_EQ)); - Opts.AuxTriple = std::string(Args.getLastArgValue(OPT_aux_triple)); if (Args.hasArg(OPT_aux_target_cpu)) Opts.AuxTargetCPU = std::string(Args.getLastArgValue(OPT_aux_target_cpu)); if (Args.hasArg(OPT_aux_target_feature)) Opts.AuxTargetFeatures = Args.getAllArgValues(OPT_aux_target_feature); - Opts.StatsFile = std::string(Args.getLastArgValue(OPT_stats_file)); - - Opts.MTMigrateDir = - std::string(Args.getLastArgValue(OPT_mt_migrate_directory)); - Opts.ARCMTMigrateReportOut = - std::string(Args.getLastArgValue(OPT_arcmt_migrate_report_output)); - - Opts.ObjCMTWhiteListPath = - std::string(Args.getLastArgValue(OPT_objcmt_whitelist_dir_path)); if (Opts.ARCMTAction != FrontendOptions::ARCMT_None && Opts.ObjCMTAction != FrontendOptions::ObjCMT_None) {