typedef int T;

void f( void ) {
    int T( T p ) { return 3; }
    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 c, d;
typedef [ int ] f( * int ), g;
typedef [ * [static 10] int ] t;
typedef [ * [static 10] int x ] h();

// Local Variables: //
// tab-width: 4 //
// End: //
