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

Reply via email to