typedef int T;

void f( void ) {
    int T( T );
    T( 3 );
}

struct {
    T (T);
} fred = { 3 };

typedef int (*a)(int, char);
a b;

int g(void) {
    double a;
}
a c;

typedef typeof(3) x, y;  /* GCC */

x p;
y q;

int main() {
    typedef typeof(3) z, p;
    z w;
    p x;
}

/* new-style function definitions */

typedef [10] * int arrayOf10Pointers;
arrayOf10Pointers array;
typedef const * int constantPointer;
typedef * [ int ]( [] int ) funcPtr;
typedef [ int ] funcProto( []  int );
typedef [ int, int ] tupleType;
typedef * [ int, int ] tupleTypePtr;
typedef * int a, b;
typedef [ int ] f( * int ), g;
typedef [ * [static 10] int ] t;
typedef [ * [static 10] int x ] f();
