Various minor fixes for compiler/linter (other then splint itself) warnings.
[splint-patched.git] / src / Headers / lsymbolSet.h
blobefe94adc77f666f59053afc6aa09a432f30c3527
1 /*
2 ** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2003.
3 ** See ../LICENSE for license information.
4 **
5 */
6 /*
7 ** lsymbolSet.h
8 **
9 ** based on set_template.h
12 # ifndef LSYMBOLSET_H
13 # define LSYMBOLSET_H
15 abst_typedef /*@null@*/ struct
17 int entries;
18 int nspace;
19 /*@reldef@*/ /*@relnull@*/ lsymbol *elements;
20 } *lsymbolSet ;
22 /*@constant null lsymbolSet lsymbolSet_undefined; @*/
23 # define lsymbolSet_undefined (NULL)
25 extern /*@falsewhennull@*/ bool lsymbolSet_isDefined (lsymbolSet p_l) /*@*/ ;
26 # define lsymbolSet_isDefined(l) ((l) != lsymbolSet_undefined)
28 /*@iter lsymbolSet_elements (sef lsymbolSet s, yield lsymbol el); @*/
29 # define lsymbolSet_elements(x, m_el) \
30 if (lsymbolSet_isDefined (x)) \
31 { int m_ind; \
32 for (m_ind = 0 ; m_ind < (x)->entries; m_ind++) \
33 { lsymbol m_el = (x)->elements[m_ind];
35 # define end_lsymbolSet_elements }}
37 extern /*@only@*/ lsymbolSet lsymbolSet_new(void) /*@*/ ;
38 extern bool lsymbolSet_insert (lsymbolSet p_s, lsymbol p_el) /*@modifies p_s@*/ ;
39 extern bool lsymbolSet_member (lsymbolSet p_s, lsymbol p_el) /*@*/ ;
40 extern void lsymbolSet_free (/*@only@*/ lsymbolSet p_s);
42 # else
43 # error "Multiple include"
44 # endif