https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88584
--- Comment #4 from Anders Granlund <anders.granlund.0 at gmail dot com> --- (In reply to Andrew Pinski from comment #3) > http://www.open-std.org/jtc1/sc22/wg14/docs/rr/dr_011.html To me it looks like the resolution of that defect report (and the current wording of the standard) indicates that the current behaviour of GCC for my test program (prog.c) is not correct. The declaration int a[1] = { 0 }; is not visible (because of shaddowing by int a; ) to the declaration extern int a[];