Hi, Richard,
> On Apr 23, 2020, at 1:27 PM, Richard Sandiford <richard.sandif...@arm.com> > wrote: > > Qing Zhao <qing.z...@oracle.com> writes: >> --- >> gcc/c-family/c-indentation.c | 3 +++ >> gcc/common.opt | 5 +++++ >> gcc/doc/invoke.texi | 15 ++++++++++++++- >> gcc/testsuite/gcc.dg/plugin/location-overflow-test-1.c | 2 +- >> gcc/toplev.c | 3 +++ >> 5 files changed, 26 insertions(+), 2 deletions(-) >> >> diff --git a/gcc/c-family/c-indentation.c b/gcc/c-family/c-indentation.c >> index f737555..7074b10 100644 >> --- a/gcc/c-family/c-indentation.c >> +++ b/gcc/c-family/c-indentation.c >> @@ -67,6 +67,9 @@ 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"); >> + inform (loc, >> + "please add %<-flarge-source-files%> to invoke more" >> + " column-tracking for large source files"); >> } >> return false; >> } > > This should be conditional on !flag_large_source_files. Yes, indeed, will add it. > >> diff --git a/gcc/common.opt b/gcc/common.opt >> index 4368910..10a3d5b 100644 >> --- a/gcc/common.opt >> +++ b/gcc/common.opt >> @@ -1597,6 +1597,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) >> +Adjust GCC to cope with large source files to provide more accurate >> +column information. >> + > > I'm having difficulty suggesting wording here, but I think would be good > to mention the downside. How about: > > ---------------------- > Improve GCC's ability to track column numbers in large source files, > at the expense of slower compilation. > ——————————— Sounds better than my previous wording. Thanks. > >> 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 96a9516..c6ea9ef 100644 >> --- a/gcc/doc/invoke.texi >> +++ b/gcc/doc/invoke.texi >> @@ -574,7 +574,7 @@ Objective-C and Objective-C++ Dialects}. >> -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 >> +-fmax-include-depth=@var{depth} -flarge-source-files @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 > > This should be kept in alphabetical order, so after -finput-charset. Okay. > >> @@ -14151,6 +14151,19 @@ 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 cope with large source files to provide more accurate >> +column information. >> +By default, GCC will lose accurate column information if the source >> +file is very large. >> +If this option is provided, GCC will adapt accordingly to provide more >> +accurate column information. >> +This option may be useful when any user hits the >> @option{-Wmisleading-indent} >> +note, "is disabled from this point onwards, since column-tracking was >> disabled >> +due to the size of the code/headers", or hits the limit at which columns get >> +dropped from diagnostics. >> + > > On a similar vein, how about: > > ---------------------- > 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-indent} 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 column > numbers. > ——————————— Thanks a lot for this paragraph. I will use it. Qing > > Thanks, > Richard