diff options
author | qing zhao <qing.zhao@oracle.com> | 2020-05-06 10:46:09 -0700 |
---|---|---|
committer | qing zhao <qing.zhao@oracle.com> | 2020-05-06 10:46:09 -0700 |
commit | 530b44094354758d0dea5374188caa6863647114 (patch) | |
tree | f9809668f848e2ade12de9aaa53f3180bcb147c3 | |
parent | 7c2879301d3b027a1ba427a5d5c7557decb8a7ab (diff) | |
download | gcc-530b44094354758d0dea5374188caa6863647114.zip gcc-530b44094354758d0dea5374188caa6863647114.tar.gz gcc-530b44094354758d0dea5374188caa6863647114.tar.bz2 |
add a new option -flarge-source-files.
gcc/ChangeLog:
PR c/94230
* common.opt: Add -flarge-source-files.
* doc/invoke.texi: Document it.
* toplev.c (process_options): set line_table->default_range_bits
to 0 when flag_large_source_files is true.
gcc/c-family/ChangeLog:
PR c/94230
* c-indentation.c (get_visual_column): Add a hint to use the new
-flarge-source-files option.
gcc/testsuite/ChangeLog:
PR c/94230
* gcc.dg/plugin/location-overflow-test-1.c (fn_1): New message to
provide hint to use the new -flarge-source-files option.
-rw-r--r-- | gcc/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/c-family/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/c-family/c-indentation.c | 5 | ||||
-rw-r--r-- | gcc/common.opt | 5 | ||||
-rw-r--r-- | gcc/doc/invoke.texi | 19 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/plugin/location-overflow-test-1.c | 2 | ||||
-rw-r--r-- | gcc/toplev.c | 3 |
8 files changed, 51 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index bc27083..18800ec 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2020-05-06 qing zhao <qing.zhao@oracle.com> + + PR c/94230 + * common.opt: Add -flarge-source-files. + * doc/invoke.texi: Document it. + * toplev.c (process_options): set line_table->default_range_bits + to 0 when flag_large_source_files is true. + 2020-05-06 Uroš Bizjak <ubizjak@gmail.com> PR target/94913 diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog index fe6cfe7..a7faf829b 100644 --- a/gcc/c-family/ChangeLog +++ b/gcc/c-family/ChangeLog @@ -1,3 +1,9 @@ +2020-05-06 qing zhao <qing.zhao@oracle.com> + + PR c/94230 + * c-indentation.c (get_visual_column): Add a hint to use the new + -flarge-source-files option. + 2020-05-05 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com> * c-attribs.c (handle_vector_size_attribute): Add attribute diff --git a/gcc/c-family/c-indentation.c b/gcc/c-family/c-indentation.c index f737555..9fba3bc 100644 --- a/gcc/c-family/c-indentation.c +++ b/gcc/c-family/c-indentation.c @@ -67,6 +67,11 @@ get_visual_column (expanded_location exploc, location_t loc, "%<-Wmisleading-indentation%> is disabled from this point" " onwards, since column-tracking was disabled due to" " the size of the code/headers"); + if (!flag_large_source_files) + inform (loc, + "adding %<-flarge-source-files%> will allow for more" + " column-tracking support, at the expense of compilation" + " time and memory"); } return false; } diff --git a/gcc/common.opt b/gcc/common.opt index d33383b..30d0573 100644 --- a/gcc/common.opt +++ b/gcc/common.opt @@ -1609,6 +1609,11 @@ fkeep-gc-roots-live Common Undocumented Report Var(flag_keep_gc_roots_live) Optimization ; Always keep a pointer to a live memory block +flarge-source-files +Common Report 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. + floop-parallelize-all Common Report Var(flag_loop_parallelize_all) Optimization Mark all loops as parallel. diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index 3537a81..c97318f 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -574,8 +574,8 @@ Objective-C and Objective-C++ Dialects}. -dD -dI -dM -dN -dU @gol -fdebug-cpp -fdirectives-only -fdollars-in-identifiers @gol -fexec-charset=@var{charset} -fextended-identifiers @gol --finput-charset=@var{charset} -fmacro-prefix-map=@var{old}=@var{new} @gol --fmax-include-depth=@var{depth} @gol +-finput-charset=@var{charset} -flarge-source-files @gol +-fmacro-prefix-map=@var{old}=@var{new} -fmax-include-depth=@var{depth} @gol -fno-canonical-system-headers -fpch-deps -fpch-preprocess @gol -fpreprocessed -ftabstop=@var{width} -ftrack-macro-expansion @gol -fwide-exec-charset=@var{charset} -fworking-directory @gol @@ -14174,6 +14174,21 @@ This option may be useful in conjunction with the @option{-B} or perform additional processing of the program source between normal preprocessing and compilation. +@item -flarge-source-files +@opindex 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/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index ccdbf98..6aa4378 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2020-05-06 qing zhao <qing.zhao@oracle.com> + + PR c/94230 + * gcc.dg/plugin/location-overflow-test-1.c (fn_1): New message to + provide hint to use the new -flarge-source-files option. + 2020-05-06 Uroš Bizjak <ubizjak@gmail.com> PR target/94913 diff --git a/gcc/testsuite/gcc.dg/plugin/location-overflow-test-1.c b/gcc/testsuite/gcc.dg/plugin/location-overflow-test-1.c index 1a80a66..a3ac12d 100644 --- a/gcc/testsuite/gcc.dg/plugin/location-overflow-test-1.c +++ b/gcc/testsuite/gcc.dg/plugin/location-overflow-test-1.c @@ -13,7 +13,7 @@ int fn_1 (int flag) { int x = 4, y = 5; - if (flag) x = 3; y = 2; /* { dg-message "-:disabled from this point" } */ + if (flag) x = 3; y = 2; /* { dg-message "-:disabled from this point" "adding '-flarge-source-files'" } */ return x * y; } diff --git a/gcc/toplev.c b/gcc/toplev.c index 5c026fe..96316fb 100644 --- a/gcc/toplev.c +++ b/gcc/toplev.c @@ -1854,6 +1854,9 @@ process_options (void) hash_table_sanitize_eq_limit = param_hash_table_verification_limit; + if (flag_large_source_files) + line_table->default_range_bits = 0; + /* Please don't change global_options after this point, those changes won't be reflected in optimization_{default,current}_node. */ } |