https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88584
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
> extern int a[];
Is already have the completed type in the global scope and the declaration
merged with it:
int a[1] = { 0 };
So I think GCC is correct here.