int a[]; This declaration is a tentative definition with an incomplete type; it is a perfectly valid construct. clang gives a bogus "variable has incomplete type 'int []'" error. -Eli