/* Test for multiple declarations and composite types, as in bug
   13801.  Test types saved from outer scopes are up to date.  Debug
   test.  */
/* Origin: Joseph Myers <jsm@polyomino.org.uk> */
/* { dg-do compile } */
/* { dg-options "-Wno-unused-value" } */

int x[];

void
f (void)
{
  extern int x[];
}

int x[10];

void
g (void)
{
  int x;
  {
    extern int x[10];
  }
}

void
h (void)
{
  sizeof (x);
}
