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

Dmitry G. Dyachenko <dimhen at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |dimhen at gmail dot com

--- Comment #12 from Dmitry G. Dyachenko <dimhen at gmail dot com> ---
I see new warnings -Wuninitialized and -Wmaybe-uninitialized after r276993

r276992 no warnings
r276993 warnings

$ cat x_3.i
int *a;
int b, d;

int g() {
  int *c;
  int e[6];
  int f = 1;
  if (0)
    goto cd;
  c = 0;
  for (; d; d++)
    *e = 1 ^ *(c + 1);
  if (f)
    for (b = 0;;)
      a[0] = e[b];
cd:
  return 0;
}

$ ~/arch-gcc/gcc_276993/bin/gcc -fpreprocessed -O2 -Wall -c x_3.i

x_3.i: In function ‘g’:
x_3.i:15:15: warning: ‘e[0]’ may be used uninitialized in this function
[-Wmaybe-uninitialized]
   15 |       a[0] = e[b];
      |              ~^~~


$ cat x.i
typedef struct {
  int a[0];
} c;
typedef struct {
  c d;
} * e;
e a;
void f(void);
void f() {
  int c[1];
  for (;;) {
    unsigned long d[0];
    int b, g, h = b = h;
    unsigned long *e = d;
    for (; g; ++g)
      e[g] = 0;
    *a->d.a = *c;
  }
}

$ ~/arch-gcc/gcc_276993/bin/gcc -fpreprocessed -O2 -Wall -c x.i
x.i: In function ‘f’:
x.i:17:13: warning: ‘c[0]’ is used uninitialized in this function
[-Wuninitialized]
   17 |     *a->d.a = *c;
      |     ~~~~~~~~^~~~

Reply via email to