Am 2018-07-18 um 01:50 schrieb Martin Sebor:
If there are no objections I'd like to backport the solution
for PR 85602 to avoid a class of unnecessary warnings for
safe uses of nonstring arrays.  With the release coming up
later this week I'll go ahead and commit the patch tomorrow.

https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=261718

Hi Martin,

and please remember the follow-up fix

https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=261751

The patch for PR 85602 makes the extended and enabled-by-Wall string warnings (which I like!) complete. There's a warning for the majority of cases and for the char-array-without-NUL cases there is the nonstring attribute describing it nicely, much better than to turn off the warning around such code. I know that probably not too many codebases will be affected, but for anyone affected the nonstring attribute is a much better way to avoid the warnings than to turn it off (and if they turn off the warnings for gcc-8 they often won't turn it on again for gcc-9+).
The nonstring attribute is also the documented way to silence the warnings.

BTW, while re-reading the documentation I noticed some minor omissions, I attached a patch (untested). Feel free to commit it (I have no access) if you think it's correct.

Franz.


2018-07-12  Franz Sirl  <franz.sirl-ker...@lauterbach.com>

        * invoke.texi (Wstringop-overflow, Wstringop-truncation):
        Mention enabling via -Wall.
        (Wall): Add -Wstringop-overflow02 and -Wstringop-truncation.


Index: invoke.texi
===================================================================
diff --git a/trunk/gcc/doc/invoke.texi b/trunk/gcc/doc/invoke.texi
--- a/trunk/gcc/doc/invoke.texi (revision 262850)
+++ b/trunk/gcc/doc/invoke.texi (working copy)
@@ -3992,6 +3992,8 @@
 -Wsizeof-pointer-memaccess @gol
 -Wstrict-aliasing  @gol
 -Wstrict-overflow=1  @gol
+-Wstringop-overflow=2  @gol
+-Wstringop-truncation  @gol
 -Wswitch  @gol
 -Wtautological-compare  @gol
 -Wtrigraphs  @gol
@@ -5318,7 +5320,7 @@
 @}
 @end smallexample
 
-Option @option{-Wstringop-overflow=2} is enabled by default.
+Option @option{-Wstringop-overflow=2} is enabled by @option{-Wall}.
 
 @table @gcctabopt
 @item -Wstringop-overflow
@@ -5416,6 +5418,8 @@
 such arrays GCC issues warnings unless it can prove that the use is
 safe.  @xref{Common Variable Attributes}.
 
+Option @option{-Wstringop-truncation} is enabled by @option{-Wall}.
+
 @item 
-Wsuggest-attribute=@r{[}pure@r{|}const@r{|}noreturn@r{|}format@r{|}cold@r{|}malloc@r{]}
 @opindex Wsuggest-attribute=
 @opindex Wno-suggest-attribute=

Reply via email to