1*5971e316Smrg #define xFN(TYPE,NAME) TYPE ## _ ## NAME
2*5971e316Smrg #define FN(TYPE,NAME) xFN(TYPE,NAME)
3*5971e316Smrg
4*5971e316Smrg /* Check that "obj" has a single reference.
5*5971e316Smrg * That is, check that "obj" can be changed inplace.
6*5971e316Smrg */
FN(TYPE,check_single_reference)7*5971e316Smrg isl_stat FN(TYPE,check_single_reference)(__isl_keep TYPE *obj)
8*5971e316Smrg {
9*5971e316Smrg isl_bool single;
10*5971e316Smrg
11*5971e316Smrg single = FN(TYPE,has_single_reference)(obj);
12*5971e316Smrg if (single < 0)
13*5971e316Smrg return isl_stat_error;
14*5971e316Smrg if (!single)
15*5971e316Smrg isl_die(FN(TYPE,get_ctx)(obj), isl_error_invalid,
16*5971e316Smrg "object should have a single reference",
17*5971e316Smrg return isl_stat_error);
18*5971e316Smrg return isl_stat_ok;
19*5971e316Smrg }
20