/*
-** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000.
+** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2003.
** See ../LICENSE for license information.
**
*/
/*
** only a few combiniations of type qualifiers and base types are
-** recognized in the ANSI standard. LCLint treats these as distinct
+** recognized in the ANSI standard. Splint treats these as distinct
** types.
*/
extern bool cprim_isAnyInt (/*@sef@*/ cprim p_c);
extern bool cprim_isAnyReal (/*@sef@*/ cprim p_c);
-# define cprim_isAnyInt(c) ((c) >= CTX_INT && (c) <= CTX_SIGNEDINTEGRAL)
-# define cprim_isAnyReal(c) ((c) >= CTX_FLOAT && (c) <= CTX_LDOUBLE)
+# define cprim_isAnyInt(c) ((c) >= CTX_INT && (c) <= CTX_SIGNEDINTEGRAL)
+
+extern bool cprim_isAnyUnsignedInt (/*@sef@*/ cprim p_c);
+# define cprim_isAnyUnsignedInt(c) ((c) == CTX_UINT || (c) == CTX_USINT \
+ || (c) == CTX_ULINT || (c) == CTX_ULLINT \
+ || (c) == CTX_UNSIGNEDINTEGRAL)
+# define cprim_isAnyReal(c) ((c) >= CTX_FLOAT && (c) <= CTX_LDOUBLE)
/*@constant int CTX_LAST;@*/
# define CTX_LAST CTX_LDOUBLE
extern bool cprim_closeEnoughDeep (cprim, cprim) /*@*/ ;
extern /*@only@*/ cstring cprim_unparse (cprim) /*@*/ ;
extern cprim cprim_fromInt (int p_i);
-
extern bool cprim_isInt(cprim p_c);
+extern int cprim_getExpectedBits (cprim p_c) /*@*/ ;
# else
# error "Multiple include"