https://gcc.gnu.org/bugzilla/show_bug.cgi?id=18635

Martin Sebor <msebor at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |msebor at gcc dot gnu.org

--- Comment #18 from Martin Sebor <msebor at gcc dot gnu.org> ---
What is this a request for?

GCC 11 issues the warnings below, as well as for most of the test cases here. 
Since (I assume most of us agree) rejecting the code would not be
correct/conforming, is there something else to enhance?   (There are
bugs/limitations in -Wuninitialized that prevent diagnosing some similar cases
but I'd expect to track those as bugs separately from this request.)

$ cat t.C && gcc -S -Wall t.C
const int* fcp (const int *);

void gcp ()
{
  const int *p = fcp (p);    // -Wuninitialized
}

const int& fcr (const int &);

void gcr ()
{
  const int &i = fcr (i);    // -Wuninitialized
}

int& fr (int &);

void gr ()
{
  int &r = fr (r);           // -Wuninitialized
}

t.C: In function ‘void gcp()’:
t.C:5:22: warning: ‘p’ is used uninitialized [-Wuninitialized]
    5 |   const int *p = fcp (p);    // -Wuninitialized
      |                  ~~~~^~~
t.C:5:14: note: ‘p’ was declared here
    5 |   const int *p = fcp (p);    // -Wuninitialized
      |              ^
t.C: In function ‘void gcr()’:
t.C:12:22: warning: ‘i’ is used uninitialized [-Wuninitialized]
   12 |   const int &i = fcr (i);    // -Wuninitialized
      |                  ~~~~^~~
t.C:12:14: note: ‘i’ was declared here
   12 |   const int &i = fcr (i);    // -Wuninitialized
      |              ^
t.C: In function ‘void gr()’:
t.C:19:15: warning: ‘r’ is used uninitialized [-Wuninitialized]
   19 |   int &r = fr (r);           // -Wuninitialized
      |            ~~~^~~
t.C:19:8: note: ‘r’ was declared here
   19 |   int &r = fr (r);           // -Wuninitialized
      |        ^

Reply via email to