Oh, and this old documentation bug. (AFAICT this is a historical artifact from the pre-tree-ssa times when both -Wclobbered and -Wuninitialized were implemented on RTL.)
This one is actually independent of the others and, I believe, is obvious enough. I am going to install tomorrow.
>From 1ddc87c39b5bf938fd4838c86d19ceeb20d518d8 Mon Sep 17 00:00:00 2001 From: Vladislav Ivanishin <v...@ispras.ru> Date: Thu, 3 Oct 2019 17:01:48 +0300 Subject: [PATCH 4/4] [doc] -Wuninitialized doesn't do -Wclobbered's job * gcc/doc/invoke.texi (-Wuninitialized): Don't mention the clobbered by setjmp situation here. Fix a verb's ending: "the exact variables or elements for which there are warnings depends" -> "... depend". --- gcc/doc/invoke.texi | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index 77a2d561e38..36997d9fc7d 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -5576,21 +5576,20 @@ either specify @option{-Wextra -Wunused} (note that @option{-Wall} implies @item -Wuninitialized @opindex Wuninitialized @opindex Wno-uninitialized -Warn if an automatic variable is used without first being initialized -or if a variable may be clobbered by a @code{setjmp} call. In C++, -warn if a non-static reference or non-static @code{const} member -appears in a class without constructors. +Warn if an automatic variable is used without first being initialized. +In C++, warn if a non-static reference or non-static @code{const} +member appears in a class without constructors. If you want to warn about code that uses the uninitialized value of the variable in its own initializer, use the @option{-Winit-self} option. -These warnings occur for individual uninitialized or clobbered -elements of structure, union or array variables as well as for -variables that are uninitialized or clobbered as a whole. They do -not occur for variables or elements declared @code{volatile}. Because -these warnings depend on optimization, the exact variables or elements -for which there are warnings depends on the precise optimization -options and version of GCC used. +These warnings occur for individual uninitialized elements of +structure, union or array variables as well as for variables that are +uninitialized as a whole. They do not occur for variables or elements +declared @code{volatile}. Because these warnings depend on +optimization, the exact variables or elements for which there are +warnings depend on the precise optimization options and version of GCC +used. Note that there may be no warning about a variable that is used only to compute a value that itself is never used, because such -- 2.22.0