Improve -Wmaybe-uninitialized documentation
authorJonathan Wakely <jwakely@redhat.com>
Tue, 21 Nov 2017 18:38:18 +0000 (18:38 +0000)
committerJonathan Wakely <redi@gcc.gnu.org>
Tue, 21 Nov 2017 18:38:18 +0000 (18:38 +0000)
* doc/invoke.texi (-Wmaybe-uninitialized): Rephrase for clarity.

From-SVN: r255022

gcc/ChangeLog
gcc/doc/invoke.texi

index a34c125d429f6d5471b0cc200aa89e9b9bf893b7..36c55ebe709a99ebf58b8e0d6bae3bd192d2783c 100644 (file)
@@ -1,3 +1,7 @@
+2017-11-21  Jonathan Wakely  <jwakely@redhat.com>
+
+       * doc/invoke.texi (-Wmaybe-uninitialized): Rephrase for clarity.
+
 2017-11-21  Marc Glisse  <marc.glisse@inria.fr>
 
        * doc/generic.texi: Document POINTER_DIFF_EXPR, update
index e18fa545fd2053991eeb33b51105f7d22406641f..47323e5b0da27e9badbd76fe43dd8dee3c79e8df 100644 (file)
@@ -4974,14 +4974,18 @@ void store (int *i)
 @item -Wmaybe-uninitialized
 @opindex Wmaybe-uninitialized
 @opindex Wno-maybe-uninitialized
-For an automatic variable, if there exists a path from the function
-entry to a use of the variable that is initialized, but there exist
+For an automatic (i.e.@ local) variable, if there exists a path from the
+function entry to a use of the variable that is initialized, but there exist
 some other paths for which the variable is not initialized, the compiler
 emits a warning if it cannot prove the uninitialized paths are not
-executed at run time. These warnings are made optional because GCC is
-not smart enough to see all the reasons why the code might be correct
-in spite of appearing to have an error.  Here is one example of how
-this can happen:
+executed at run time.
+
+These warnings are only possible in optimizing compilation, because otherwise
+GCC does not keep track of the state of variables.
+
+These warnings are made optional because GCC may not be able to determine when
+the code is correct in spite of appearing to have an error.  Here is one
+example of how this can happen:
 
 @smallexample
 @group
@@ -5008,9 +5012,7 @@ similar code.
 
 @cindex @code{longjmp} warnings
 This option also warns when a non-volatile automatic variable might be
-changed by a call to @code{longjmp}.  These warnings as well are possible
-only in optimizing compilation.
-
+changed by a call to @code{longjmp}.
 The compiler sees only the calls to @code{setjmp}.  It cannot know
 where @code{longjmp} will be called; in fact, a signal handler could
 call it at any point in the code.  As a result, you may get a warning