1b4e715beeb670b30a8d1237085e3379fe28afb0fDouglas Gregor/* Used with the types.c test */
2b4e715beeb670b30a8d1237085e3379fe28afb0fDouglas Gregor
36d473967121ac70ecede83bb2b47247e9a3766f3Douglas Gregor// TYPE_EXT_QUAL
46d473967121ac70ecede83bb2b47247e9a3766f3Douglas Gregortypedef __attribute__((address_space(1))) int ASInt;
56d473967121ac70ecede83bb2b47247e9a3766f3Douglas Gregor
6b4e715beeb670b30a8d1237085e3379fe28afb0fDouglas Gregor// TYPE_COMPLEX
7b4e715beeb670b30a8d1237085e3379fe28afb0fDouglas Gregortypedef _Complex float Cfloat;
8b4e715beeb670b30a8d1237085e3379fe28afb0fDouglas Gregor
9dbc68bd28d5868f3b1b5179add40b33cec7bea07Eli Friedman// TYPE_ATOMIC
10dbc68bd28d5868f3b1b5179add40b33cec7bea07Eli Friedmantypedef _Atomic(int) AtomicInt;
11dbc68bd28d5868f3b1b5179add40b33cec7bea07Eli Friedman
12b4e715beeb670b30a8d1237085e3379fe28afb0fDouglas Gregor// TYPE_POINTER
13b4e715beeb670b30a8d1237085e3379fe28afb0fDouglas Gregortypedef int * int_ptr;
14b4e715beeb670b30a8d1237085e3379fe28afb0fDouglas Gregor
15b4e715beeb670b30a8d1237085e3379fe28afb0fDouglas Gregor// TYPE_BLOCK_POINTER
16b4e715beeb670b30a8d1237085e3379fe28afb0fDouglas Gregortypedef int (^Block)(int, float);
17b4e715beeb670b30a8d1237085e3379fe28afb0fDouglas Gregor
18b4e715beeb670b30a8d1237085e3379fe28afb0fDouglas Gregor// TYPE_CONSTANT_ARRAY
19b4e715beeb670b30a8d1237085e3379fe28afb0fDouglas Gregortypedef int five_ints[5];
20b4e715beeb670b30a8d1237085e3379fe28afb0fDouglas Gregor
21b4e715beeb670b30a8d1237085e3379fe28afb0fDouglas Gregor// TYPE_INCOMPLETE_ARRAY
22b4e715beeb670b30a8d1237085e3379fe28afb0fDouglas Gregortypedef float float_array[];
23b4e715beeb670b30a8d1237085e3379fe28afb0fDouglas Gregor
24ba48d05c9c43dca8efa49d70ad3331fdcd6e2b3aDouglas Gregor// TYPE_VARIABLE_ARRAY in stmts.[ch]
25b4e715beeb670b30a8d1237085e3379fe28afb0fDouglas Gregor
26b4e715beeb670b30a8d1237085e3379fe28afb0fDouglas Gregor// TYPE_VECTOR
27b4e715beeb670b30a8d1237085e3379fe28afb0fDouglas Gregortypedef float float4 __attribute__((vector_size(16)));
28b4e715beeb670b30a8d1237085e3379fe28afb0fDouglas Gregor
29b4e715beeb670b30a8d1237085e3379fe28afb0fDouglas Gregor// TYPE_EXT_VECTOR
30b4e715beeb670b30a8d1237085e3379fe28afb0fDouglas Gregortypedef float ext_float4 __attribute__((ext_vector_type(4)));
31b4e715beeb670b30a8d1237085e3379fe28afb0fDouglas Gregor
32b4e715beeb670b30a8d1237085e3379fe28afb0fDouglas Gregor// TYPE_FUNCTION_NO_PROTO
33b4e715beeb670b30a8d1237085e3379fe28afb0fDouglas Gregortypedef int noproto();
34b4e715beeb670b30a8d1237085e3379fe28afb0fDouglas Gregor
35b4e715beeb670b30a8d1237085e3379fe28afb0fDouglas Gregor// TYPE_FUNCTION_PROTO
36b4e715beeb670b30a8d1237085e3379fe28afb0fDouglas Gregortypedef float proto(float, float, ...);
37b4e715beeb670b30a8d1237085e3379fe28afb0fDouglas Gregor
38b4e715beeb670b30a8d1237085e3379fe28afb0fDouglas Gregor// TYPE_TYPEDEF
39b4e715beeb670b30a8d1237085e3379fe28afb0fDouglas Gregortypedef int_ptr * int_ptr_ptr;
40b4e715beeb670b30a8d1237085e3379fe28afb0fDouglas Gregor
410b7489194f9f89fac39d57211c1e7953ae50251fDouglas Gregor// TYPE_TYPEOF_EXPR
420b7489194f9f89fac39d57211c1e7953ae50251fDouglas Gregortypedef typeof(17) typeof_17;
43b4e715beeb670b30a8d1237085e3379fe28afb0fDouglas Gregor
44b4e715beeb670b30a8d1237085e3379fe28afb0fDouglas Gregor// TYPE_TYPEOF
45b4e715beeb670b30a8d1237085e3379fe28afb0fDouglas Gregortypedef typeof(int_ptr *) int_ptr_ptr2;
46400f5125e2432d648f2c8a31b36a7f318a880c47Argyrios Kyrtzidis
47400f5125e2432d648f2c8a31b36a7f318a880c47Argyrios Kyrtzidisstruct S2;
48400f5125e2432d648f2c8a31b36a7f318a880c47Argyrios Kyrtzidisstruct S2 {};
49400f5125e2432d648f2c8a31b36a7f318a880c47Argyrios Kyrtzidisenum E;
50400f5125e2432d648f2c8a31b36a7f318a880c47Argyrios Kyrtzidisenum E { myenum };
51