With the move from 32-bit to 64-bit location_t, the recommended number of range bits will change from 5 to 7. line-map.h now exports the recommended setting, so use that instead of hard-coding 5.
Also silently ignore -flarge-source-files, which will become unnecessary with 64-bit location_t and would harm performance. gcc/ChangeLog: * common.opt: Mark -flarge-source-files as Ignored. * doc/invoke.texi: Remove -flarge-source-files. * toplev.cc (general_init): Use new constant line_map_suggested_range_bits instead of the hard-coded integer 5. (process_options): Remove support for -flarge-source-files. --- gcc/common.opt | 5 ++--- gcc/doc/invoke.texi | 17 +---------------- gcc/toplev.cc | 5 +---- 3 files changed, 4 insertions(+), 23 deletions(-) diff --git a/gcc/common.opt b/gcc/common.opt index 33be6b8042a..be74dc177c8 100644 --- a/gcc/common.opt +++ b/gcc/common.opt @@ -1804,9 +1804,8 @@ Common Undocumented Var(flag_keep_gc_roots_live) Optimization ; Always keep a pointer to a live memory block flarge-source-files -Common Var(flag_large_source_files) Init(0) -Improve GCC's ability to track column numbers in large source files, -at the expense of slower compilation. +Common Ignore +Does nothing. Preserved for backward compatibility. flate-combine-instructions Common Var(flag_late_combine_instructions) Optimization Init(0) diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index 929feaf23fb..ba7ff14979b 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -691,7 +691,7 @@ Objective-C and Objective-C++ Dialects}. -dD -dI -dM -dN -dU -fdebug-cpp -fdirectives-only -fdollars-in-identifiers -fexec-charset=@var{charset} -fextended-identifiers --finput-charset=@var{charset} -flarge-source-files +-finput-charset=@var{charset} -fmacro-prefix-map=@var{old}=@var{new} -fmax-include-depth=@var{depth} -fno-canonical-system-headers -fpch-deps -fpch-preprocess -fpreprocessed -ftabstop=@var{width} -ftrack-macro-expansion @@ -18664,21 +18664,6 @@ This option may be useful in conjunction with the @option{-B} or perform additional processing of the program source between normal preprocessing and compilation. -@opindex flarge-source-files -@item -flarge-source-files -Adjust GCC to expect large source files, at the expense of slower -compilation and higher memory usage. - -Specifically, GCC normally tracks both column numbers and line numbers -within source files and it normally prints both of these numbers in -diagnostics. However, once it has processed a certain number of source -lines, it stops tracking column numbers and only tracks line numbers. -This means that diagnostics for later lines do not include column numbers. -It also means that options like @option{-Wmisleading-indentation} cease to work -at that point, although the compiler prints a note if this happens. -Passing @option{-flarge-source-files} significantly increases the number -of source lines that GCC can process before it stops tracking columns. - @end table @node Assembler Options diff --git a/gcc/toplev.cc b/gcc/toplev.cc index 779049674b4..bd95521e3ff 100644 --- a/gcc/toplev.cc +++ b/gcc/toplev.cc @@ -1137,7 +1137,7 @@ general_init (const char *argv0, bool init_signals, unique_argv original_argv) linemap_init (line_table, BUILTINS_LOCATION); line_table->m_reallocator = realloc_for_line_map; line_table->m_round_alloc_size = ggc_round_alloc_size; - line_table->default_range_bits = 5; + line_table->default_range_bits = line_map_suggested_range_bits; init_ttree (); /* Initialize register usage now so switches may override. */ @@ -1765,9 +1765,6 @@ process_options () hash_table_sanitize_eq_limit = param_hash_table_verification_limit; - if (flag_large_source_files) - line_table->default_range_bits = 0; - diagnose_options (&global_options, &global_options_set, UNKNOWN_LOCATION); /* Please don't change global_options after this point, those changes won't