Open
Description
I know of several bugs due to untracked options that should be tracked (e.g. #66955, #84225). Maybe we should go through all the untracked options and make sure they should actually be untracked?
All untracked options
$ grep '\[UNTRACKED\]' compiler/rustc_session/src/options.rs ($opt_name:ident, $opt_expr:expr, $sub_hashes:expr, [UNTRACKED]) => {{}};
// [UNTRACKED]
describe_lints: bool [UNTRACKED],
search_paths: Vec<SearchPath> [UNTRACKED],
maybe_sysroot: Option<PathBuf> [UNTRACKED],
error_format: ErrorOutputType [UNTRACKED],
incremental: Option<PathBuf> [UNTRACKED],
prints: Vec<PrintRequest> [UNTRACKED],
borrowck_mode: BorrowckMode [UNTRACKED],
externs: Externs [UNTRACKED],
extern_dep_specs: ExternDepSpecs [UNTRACKED],
cli_forced_codegen_units: Option<usize> [UNTRACKED],
cli_forced_thinlto_off: bool [UNTRACKED],
remap_path_prefix: Vec<(PathBuf, PathBuf)> [UNTRACKED],
json_unused_externs: bool [UNTRACKED],
pretty: Option<PpMode> [UNTRACKED],
ar: String = (String::new(), parse_string, [UNTRACKED],
codegen_units: Option<usize> = (None, parse_opt_number, [UNTRACKED],
default_linker_libraries: bool = (false, parse_bool, [UNTRACKED],
extra_filename: String = (String::new(), parse_string, [UNTRACKED],
incremental: Option<String> = (None, parse_opt_string, [UNTRACKED],
link_arg: (/* redirected to link_args */) = ((), parse_string_push, [UNTRACKED],
link_args: Vec<String> = (Vec::new(), parse_list, [UNTRACKED],
link_dead_code: Option<bool> = (None, parse_opt_bool, [UNTRACKED],
link_self_contained: Option<bool> = (None, parse_opt_bool, [UNTRACKED],
linker: Option<PathBuf> = (None, parse_opt_pathbuf, [UNTRACKED],
linker_flavor: Option<LinkerFlavor> = (None, parse_linker_flavor, [UNTRACKED],
no_stack_check: bool = (false, parse_no_flag, [UNTRACKED],
remark: Passes = (Passes::Some(Vec::new()), parse_passes, [UNTRACKED],
rpath: bool = (false, parse_bool, [UNTRACKED],
save_temps: bool = (false, parse_bool, [UNTRACKED],
ast_json: bool = (false, parse_bool, [UNTRACKED],
ast_json_noexpand: bool = (false, parse_bool, [UNTRACKED],
borrowck: String = ("migrate".to_string(), parse_string, [UNTRACKED],
deduplicate_diagnostics: bool = (true, parse_bool, [UNTRACKED],
dep_tasks: bool = (false, parse_bool, [UNTRACKED],
dont_buffer_diagnostics: bool = (false, parse_bool, [UNTRACKED],
dump_dep_graph: bool = (false, parse_bool, [UNTRACKED],
dump_mir: Option<String> = (None, parse_opt_string, [UNTRACKED],
dump_mir_dataflow: bool = (false, parse_bool, [UNTRACKED],
dump_mir_dir: String = ("mir_dump".to_string(), parse_string, [UNTRACKED],
dump_mir_exclude_pass_number: bool = (false, parse_bool, [UNTRACKED],
dump_mir_graphviz: bool = (false, parse_bool, [UNTRACKED],
dump_mir_spanview: Option<MirSpanview> = (None, parse_mir_spanview, [UNTRACKED],
emit_future_incompat_report: bool = (false, parse_bool, [UNTRACKED],
emit_stack_sizes: bool = (false, parse_bool, [UNTRACKED],
graphviz_dark_mode: bool = (false, parse_bool, [UNTRACKED],
graphviz_font: String = ("Courier, monospace".to_string(), parse_string, [UNTRACKED],
hir_stats: bool = (false, parse_bool, [UNTRACKED],
identify_regions: bool = (false, parse_bool, [UNTRACKED],
incremental_ignore_spans: bool = (false, parse_bool, [UNTRACKED],
incremental_info: bool = (false, parse_bool, [UNTRACKED],
incremental_verify_ich: bool = (false, parse_bool, [UNTRACKED],
input_stats: bool = (false, parse_bool, [UNTRACKED],
keep_hygiene_data: bool = (false, parse_bool, [UNTRACKED],
link_native_libraries: bool = (true, parse_bool, [UNTRACKED],
llvm_time_trace: bool = (false, parse_bool, [UNTRACKED],
ls: bool = (false, parse_bool, [UNTRACKED],
macro_backtrace: bool = (false, parse_bool, [UNTRACKED],
meta_stats: bool = (false, parse_bool, [UNTRACKED],
nll_facts: bool = (false, parse_bool, [UNTRACKED],
nll_facts_dir: String = ("nll-facts".to_string(), parse_string, [UNTRACKED],
no_analysis: bool = (false, parse_no_flag, [UNTRACKED],
no_interleave_lints: bool = (false, parse_no_flag, [UNTRACKED],
no_leak_check: bool = (false, parse_no_flag, [UNTRACKED],
no_parallel_llvm: bool = (false, parse_no_flag, [UNTRACKED],
parse_only: bool = (false, parse_bool, [UNTRACKED],
perf_stats: bool = (false, parse_bool, [UNTRACKED],
pre_link_arg: (/* redirected to pre_link_args */) = ((), parse_string_push, [UNTRACKED],
pre_link_args: Vec<String> = (Vec::new(), parse_list, [UNTRACKED],
print_link_args: bool = (false, parse_bool, [UNTRACKED],
print_llvm_passes: bool = (false, parse_bool, [UNTRACKED],
print_mono_items: Option<String> = (None, parse_opt_string, [UNTRACKED],
print_type_sizes: bool = (false, parse_bool, [UNTRACKED],
proc_macro_backtrace: bool = (false, parse_bool, [UNTRACKED],
query_dep_graph: bool = (false, parse_bool, [UNTRACKED],
query_stats: bool = (false, parse_bool, [UNTRACKED],
save_analysis: bool = (false, parse_bool, [UNTRACKED],
parse_switch_with_opt_path, [UNTRACKED],
self_profile_events: Option<Vec<String>> = (None, parse_opt_comma_list, [UNTRACKED],
span_debug: bool = (false, parse_bool, [UNTRACKED],
span_free_formats: bool = (false, parse_bool, [UNTRACKED],
strip: Strip = (Strip::None, parse_strip, [UNTRACKED],
split_dwarf_inlining: bool = (true, parse_bool, [UNTRACKED],
terminal_width: Option<usize> = (None, parse_opt_number, [UNTRACKED],
threads: usize = (1, parse_threads, [UNTRACKED],
time: bool = (false, parse_bool, [UNTRACKED],
time_llvm_passes: bool = (false, parse_bool, [UNTRACKED],
time_passes: bool = (false, parse_bool, [UNTRACKED],
trace_macros: bool = (false, parse_bool, [UNTRACKED],
trim_diagnostic_paths: bool = (true, parse_bool, [UNTRACKED],
ui_testing: bool = (false, parse_bool, [UNTRACKED],
unpretty: Option<String> = (None, parse_unpretty, [UNTRACKED],
unstable_options: bool = (false, parse_bool, [UNTRACKED],
validate_mir: bool = (false, parse_bool, [UNTRACKED],
verbose: bool = (false, parse_bool, [UNTRACKED],
cc @Aaron1011