2 ** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2003.
3 ** See ../LICENSE for license information.
9 typedef /*@dependent@*/ sRefSet d_sRefSet
;
11 abst_typedef
/*@null@*/ struct
15 /*@reldef@*/ /*@relnull@*/ d_sRefSet
*elements
;
18 /*@iter sRefSetList_elements (sef sRefSetList x, yield exposed sRefSet el); @*/
19 # define sRefSetList_elements(x, m_el) \
20 { if (sRefSetList_isDefined (x)) { \
21 int m_ind; sRefSet *m_elements = &((x)->elements[0]); \
22 for (m_ind = 0 ; m_ind < (x)->nelements; m_ind++) \
23 { sRefSet m_el = *(m_elements++);
25 # define end_sRefSetList_elements }}}
27 /*@constant null sRefSetList sRefSetList_undefined; @*/
28 # define sRefSetList_undefined ((sRefSetList) NULL)
30 extern /*@falsewhennull@*/ bool sRefSetList_isDefined (sRefSetList p_s
);
31 # define sRefSetList_isDefined(s) ((s) != sRefSetList_undefined)
33 extern /*@unused@*/ /*@nullwhentrue@*/ bool sRefSetList_isUndefined (sRefSetList p_s
);
34 # define sRefSetList_isUndefined(s) ((s) == sRefSetList_undefined)
37 sRefSetList_add (/*@returned@*/ sRefSetList p_s
, /*@exposed@*/ sRefSet p_el
)
40 extern void sRefSetList_free (/*@only@*/ sRefSetList p_s
);
41 extern void sRefSetList_clear (sRefSetList p_s
);
43 /*@constant int sRefSetListBASESIZE;@*/
44 # define sRefSetListBASESIZE MIDBASESIZE
47 # error "Multiple include"