Merge branch 'maint'
[platform/upstream/isl.git] / isl_multi_templ.h
1 #define xCAT(A,B) A ## B
2 #define CAT(A,B) xCAT(A,B)
3 #undef EL
4 #define EL CAT(isl_,BASE)
5 #define xMULTI(BASE) isl_multi_ ## BASE
6 #define MULTI(BASE) xMULTI(BASE)
7
8 struct MULTI(BASE) {
9         int ref;
10         isl_space *space;
11
12         int n;
13         EL *p[1];
14 };
15
16 #define ISL_DECLARE_MULTI_PRIVATE(BASE)                                 \
17 __isl_give isl_multi_##BASE *isl_multi_##BASE##_alloc(                  \
18         __isl_take isl_space *space);                                   \
19 __isl_give isl_multi_##BASE *isl_multi_##BASE##_set_##BASE(             \
20         __isl_take isl_multi_##BASE *multi, int pos, __isl_take EL *el);
21
22 ISL_DECLARE_MULTI_PRIVATE(aff)