of a hash node. Actually, this may be useless now. */
typedef union u_hashvalue {
int ival;
- /*@owned@*/ char *cpval;
+ /*@null@*/ /*@owned@*/ char *cpval;
/*@owned@*/ DEFINITION *defn;
} hashValue;
/*@null@*/ /*@dependent@*/ hashNode *bucket_hdr;
enum node_type type; /* type of special token */
- int length; /* length of token, for quick comparison */
+ size_t length; /* length of token, for quick comparison */
cstring name; /* the actual name */
hashValue value; /* pointer to expansion, or whatever */
} ;
politeness, for use when speed isn't so important. */
extern void cppReader_deleteMacro (/*@exposed@*/ hashNode p_hp)
- /*@modifies internalState, *p_hp@*/;
+ /*@modifies internalState, p_hp@*/;
-extern /*@exposed@*/ hashNode cppReader_install (char *, int,
+extern /*@exposed@*/ hashNode cpphash_install (char *, int,
enum node_type, int,
/*@only@*/ /*@null@*/ char *, int);
extern void cppReader_hashCleanup (void);
-extern /*@null@*/ /*@exposed@*/ hashNode cppReader_lookup (char *, int, int);
-extern /*@null@*/ /*@exposed@*/ hashNode cppReader_lookupExpand (char *, int, int);
+extern /*@null@*/ /*@exposed@*/ hashNode cpphash_lookup (char *, int, int);
+extern /*@null@*/ /*@exposed@*/ hashNode cpphash_lookupExpand (char *, int, int,
+ bool p_forceExpand);
+extern int cpphash_hashCode (const char *p_name, size_t p_len, int p_hashsize) /*@*/ ;
extern void cppReader_saveHashtab (void);
extern void cppReader_restoreHashtab (void);
-extern int hashf (const char *p_name, int p_len, int p_hashsize);
extern /*@exposed@*/ hashNode
-cppReader_installMacro (char *p_name, int p_len,
- /*@only@*/ struct definition *p_defn, int p_hash);
+cpphash_installMacro (char *p_name, size_t p_len,
+ /*@only@*/ struct definition *p_defn, int p_hash);
# else
# error "Multiple include"