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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

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

--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Note, with
int x, y;

void
foo ()
{
  x = 0;
  y = 0;
  if (x != 0)
    y++;
  else
    x++;
}

int x[1] = { 0 };

the type of x isn't overritten, only when it is int x[] = { 0 };

The type replacement happened in pop_scope:
1370                  gcc_assert (I_SYMBOL_BINDING (b->id) == b);
1371                  I_SYMBOL_BINDING (b->id) = b->shadowed;
1372                  if (b->shadowed && b->shadowed->u.type)
1373                    TREE_TYPE (b->shadowed->decl) = b->shadowed->u.type;

Reply via email to