xref: /netbsd-src/external/mit/isl/dist/check_single_reference_templ.c (revision 5971e316fdea024efff6be8f03536623db06833e)
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