Error on valid array variable declaration?

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.


Fixed by r46179.



This testcase shouldn't give any errors or warnings. The declaration
of bar is a tentative definition.

struct foo bar;
struct foo* a() {
  return &bar;
struct foo {int a; int b;};

This testcase should give an error (at least in -pedantic mode):
static int s[];



As I said yesterday (in an email to Neil), there are still FIXME's wrt tentative definitions.

I need to focus on struct initializers, so I won't be able to get to this immediately.

Thanks for the testcase,


Okay; I didn't notice that email until after I sent mine.