Heh :) I'll try yours, but meanwhile I tried to sort this out on my end, and ended up with somewhat large logic changes that don't seem so absurd: d86edca (based off a weird branch, beware).

Tested with a ridiculously complex case:

typedef struct Abc {
  int b, c;
} Abc;

extern int Abc;
int Abc = 0;
int Abc = 0;

int Abc(void);
int Abc(void);

int Abc(void)
{
    return 0;
}

and the simple case:

typedef struct Bcd {
  int b, c;
} Bcd;

int foo(void)
{
    return Bcd::b;
}


Reply to this email directly or view it on GitHub.