# define constraintList_undefined ((constraintList)NULL)
-extern /*@falsenull@*/ bool constraintList_isDefined (constraintList p_e) /*@*/ ;
-extern /*@unused@*/ /*@truenull@*/ bool constraintList_isUndefined (constraintList p_e) /*@*/ ;
-extern /*@truenull@*/ /*@unused@*/ bool constraintList_isError (constraintList p_e) /*@*/ ;
+extern /*@falsewhennull@*/ bool constraintList_isDefined (constraintList p_e) /*@*/ ;
+extern /*@unused@*/ /*@nullwhentrue@*/ bool constraintList_isUndefined (constraintList p_e) /*@*/ ;
+extern /*@nullwhentrue@*/ /*@unused@*/ bool constraintList_isError (constraintList p_e) /*@*/ ;
# define constraintList_isDefined(e) ((e) != constraintList_undefined)
# define constraintList_isUndefined(e) ((e) == constraintList_undefined)
# define constraintList_isError(e) ((e) == constraintList_undefined)
+extern bool constraintList_isEmpty (/*@sef@*/ constraintList p_e) /*@*/;
+
+# define constraintList_isEmpty(e) ((constraintList_isUndefined((e)) ) ||(( (e)->nelements == 0) ) )
+
extern constraintList constraintList_single (/*@only@*/ constraint) ;
extern constraintList constraintList_addListFree (/*@returned@*/ constraintList, /*@only@*/ constraintList) ;
extern /*@only@*/ constraintList constraintList_makeNew(void) /*@*/;
extern constraintList constraintList_add (/*@returned@*/ constraintList p_s, /*@only@*/ constraint p_el) /*@modifies p_s@*/ ;
-extern /*@only@*/ constraintList constraintList_addList (/*@only@*/ /*@returned@*/ constraintList p_s, /*@observer@*/ constraintList p_newList) /*@modifies p_s@*/ ;
+ extern /*@only@*/ constraintList constraintList_addList (/*@only@*/ /*@returned@*/ constraintList p_s, /*@observer@*/ /*@temp@*/ constraintList p_newList) /*@modifies p_s@*/ ;
extern constraintList constraintList_copy ( /*@observer@*/ /*@temp@*/ constraintList p_s) /*@*/ ;
extern void constraintList_free (/*@only@*/ constraintList p_s) ;
-extern /*@only@*/ cstring constraintList_unparse ( /*@observer@*/ constraintList p_s) /*@*/;
-
-/*@only@*/ extern cstring constraintList_print ( /*@observer@*/ /*@temp@*/ constraintList p_s) /*@*/;
+extern /*@only@*/ cstring constraintList_unparse (/*@observer@*/ constraintList p_s) /*@*/;
-extern cstring
-constraintList_printDetailed ( /*@observer@*/ constraintList p_s) /*@*/;
+extern cstring constraintList_unparseDetailed (/*@observer@*/ constraintList p_s) /*@*/;
extern /*@only@*/ constraintList
constraintList_logicalOr ( /*@observer@*/ constraintList p_l1, /*@observer@*/ constraintList p_l2);
extern void constraintList_printErrorPostConditions (constraintList p_s, fileloc p_loc) ;
extern void constraintList_printError (constraintList p_s, /*@observer@*/ fileloc p_loc) ;
-void constraintList_dump (/*@observer@*/ constraintList p_c, FILE * p_f);
+extern constraintList constraintList_sort (/*@returned@*/ constraintList p_ret)
+ /*@modifies p_ret@*/ ;
+
+extern void constraintList_castConstraints (constraintList p_c, ctype p_tfrom, ctype p_tto)
+ /*@modifies p_c@*/ ;
+
+extern void constraintList_dump (/*@observer@*/ constraintList p_c, FILE * p_f);
/*@only@*/ constraintList constraintList_undump (FILE * p_f);
-constraintList constraintList_sort (/*@returned@*/ constraintList p_ret);
+/*@only@*/ constraintList constraintList_removeSurpressed (/*@only@*/ constraintList p_s);
+/*drl 1/6/2001: I didn't think these functions were solid enough to include in the stable release of splint.*/
+/*drl added 12/30/01 */
+/* / *@only@* / constraintList constraintList_doSRefFixStructConstraint(constraintList p_invars, sRef p_s, ctype p_ct ); */
# else
# error "Multiple include"